Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie sieciowe
Tok studiów:
2014/2015
Kod:
ITE-1-604-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Teleinformatyka
Semestr:
6
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr inż. Gozdecki Janusz (gozdecki@agh.edu.pl)
Osoby prowadzące:
dr inż. Gozdecki Janusz (gozdecki@agh.edu.pl)
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. TE1A_W10, TE1A_W11 Kolokwium
M_W002 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. TE1A_W10, TE1A_W11 Kolokwium
M_W003 Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP TE1A_W16, TE1A_W11, TE1A_W07 Kolokwium
Umiejętności
M_U001 Student umie napisać zestaw programów, które komunikują się przez sieć. TE1A_U13, TE1A_U01 Kolokwium
M_U002 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. TE1A_U24, TE1A_U13, TE1A_U01 Kolokwium
Kompetencje społeczne
M_K001 Rozumie potrzebę uczenia się TE1A_K01, TE1A_K03
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. + - - - - - - - - - -
M_W002 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. + - - - - - - - - - -
M_W003 Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP + - - - - - - - - - -
Umiejętności
M_U001 Student umie napisać zestaw programów, które komunikują się przez sieć. - - + - - - - - - - -
M_U002 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Rozumie potrzebę uczenia się + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

1. Wstęp do programowania sieciowego (2 godz.).
Przedstawienie historii i architektury sieci TCP/IP. Ogólny przegląd protokołów. Numery portów. Standardowe usługi sieciowe.
2. Komunikacja między-procesorowa i między węzłowa. Systemy klient-serwer i systemy peer-to-peer. (3 godz.)
Omówienie mechanizmów do komunikacji między procesowej w systemie Linux i podstawowych protokołów sieciowych. Omówienie architektur systemów klient-serwer i peer-to-peer.
3. Podstawy programowania gniazd sieciowych (2 godz.).
Zasady wymiany wiadomości przez sieć. Bajty a oktety – kolejność bajtów. Opakowanie danych, rozdrabnianie, scalanie. Obsługa błędów. Struktura prostego programu do komunikacji między procesorowej przez sieć TCP/IP.
4. Adresacja w sieci TCP/IP (2 godz.).
Omówienie adresacji w sieciach TCP/IP. Zapoznanie się z adresacją dla protokołu IPv4 i IPv6. Gniazdowe struktury adresowe, tworzenie adresów w sieci TCP/IP, poznanie procedur do operacji na adresach sieciowych, elementarne przekształcenia między nazwami a adresami (2 godz.).
5. API gniazd sieciowych (4 godz.)
Przegląd podstawowych funkcji do operacji na gniazdach sieciowych, funkcji służących do wysyłania i odbierania danych z gniazd sieciowych, procedur daty i czasu. Gniazda surowe.
6. Programowanie protokołów bezpołączeniowych (2 godz.).
Omówienie zasad i realizacji procedur do implementacji protokołów bezpołączeniowych w sieci TCP/IP.
7. Programowanie protokołów połączeniowych (2 godz.).
Omówienie zasad i realizacji procedur do implementacji protokołów połączeniowych w sieci TCP/IP.
8. Opcje gniazd i sterowanie kartami sieciowymi (4 godz.).
Opcje gniazd i obsługa sygnałów związanych z gniazdami. Omówienie funkcji systemowej ioctl() i mechanizmu netlink. Zapoznanie z mechanizmami udostępnianymi przez sterowniki kart sieciowych do konfiguracji parametrów. Omówienie procedur do konfiguracji kart sieciowych.
9. Implementacja protokołów rozgłoszeniowych i protokołów typu multicast (2 godz.).
Zapoznanie z architekturą oprogramowania realizującą protokoły rozgłoszeniowe i typu multicast.
10. Monitorowanie sieci (3 godz.).
Dostęp do warstwy kanałowej. Zapoznanie z biblioteką libpcap. Podstawowe zasady pisania programów do przechwytywania danych na interfejsach sieciowych. Zasady przetwarzania przechwyconych danych.
11. Wprowadzenie do komunikacji pomiędzy procesami a jądrem systemu Linux (4 godz.).
Podstawy programowania w jądrze systemu Linux. Architektura modułu do jądra systemu Linux. Podstawy mechanizmów komunikacji pomiędzy jądrem systemu Linux a procesami. Omówienie architektury sterownika karty sieciowej.

Ćwiczenia laboratoryjne:

1. Proste programy testujące podstawowe funkcje systemowe (4 godz.)
2. Programy realizujące model klient-serwer dla protokołów bezpołączeniowych (3 godz.)
3. Programy realizujące model klient-serwer dla protokołów połączeniowych (3 godz.)
4. Implementacja modułów do jądra – komunikacja między procesami a jądrem systemu (4 godz.)
5. Sterowanie parametrami kart sieciowych (4 godz.)
6. Programy realizujące protokoły rozgłoszeniowe (2 godz.)
7. Programy realizujące protokoły typu multicast (2 godz.)
8. Monitorowanie sieci (4 godz.)
9. Powtórzenie i sprawdzenie wiadomości (2 godz.)

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 90 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 28 godz
Udział w ćwiczeniach laboratoryjnych 28 godz
Samodzielne studiowanie tematyki zajęć 14 godz
Przygotowanie do zajęć 20 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

1. Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z laboratorium i kolokwium zaliczeniowego z wykładu.
2. Obliczamy średnią arytmetyczną z ocen zaliczenia laboratorium i kolokwium zaliczeniowego uzyskanych we wszystkich terminach.
3. Wyznaczmy ocenę końcową na podstawie zależności:
if sr>4.75 then OK:=5.0 else
if sr>4.25 then OK:=4.5 else
if sr>3.75 then OK:=4.0 else
if sr>3.25 then OK:=3.5 else OK:=3

Wymagania wstępne i dodatkowe:

Wiadomości z zakresu przedmiotów „Sieci IP”, „Podstawy informatyki”, „Systemy operacyjne” i „Języki programowania obiektowego”

Zalecana literatura i pomoce naukowe:

1. W. R. Stevens: TCP/IP Illustrated. Vol. 1: The protocols. Addison-Wesley, 1994.
2. D. E. Comer, D. L. Stevens: Internetworking with TCP/IP. Vol. 3: Client-server programming and applications BSD socket version: Prentice Hall, 1993 (ISBN 0-13-020272-X).
3. M. Santifaller , translated by Stephen S. Wilson: TCP/IP and ONC/NFS internetworking in a UNIX environment. 2nd Edition, Addison Wesley, 1994.
4. W. R. Stevens: UNIX Network Programming. Prentice Hall, 1990.
5. E. R. Harold: Java Network Programming. 3rd Edition, O’Reilly Media, 2004.
6. Jonathan Corbet, Allessandro Rubini & Greg Kroah-Hartman, Linux Device Drivers (3rd Edition), O’Reilly

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

1. Wirtualizacja bezprzewodowych sieci kratowych — [Virtualization of wireless mesh networks] / Michał WĄGROWSKI, Krzysztof ŁOZIAK, Janusz GOZDECKI // Przegląd Telekomunikacyjny, Wiadomości Telekomunikacyjne ; ISSN 1230-3496. — 2014 R. 87 nr 6, s. 164–167.
2. Równoległy Internet IPv6 QoS: realizacja systemu zarządzania i sygnalizacji — [IPv6 QoS Parallel Internet: implementation of signalling and management subsystems] / Halina Tarasiuk, [et al.], Janusz GOZDECKI, Krzysztof Gierłowski // Przegląd Telekomunikacyjny, Wiadomości Telekomunikacyjne ; ISSN 1230-3496. — 2013 R. 82 nr 8–9, s. 836—845.
3. Monitoring system for CaRier grade MESH Network / Krzysztof ŁOZIAK, Marek NATKANIEC, Janusz GOZDECKI, Eric Chin, David Chieng, Victor Teh // W: Future Network & MobileSummit 2010, 16–18 June 2010 : Florence, Italy 2010. e-ISBN: 978-1-905824-16-8. — S. [1–8].
4. A flexible provisioning module optimizing utilization of resources for the Future Internet IIP initiative / Janusz GOZDECKI, Mirosław KANTOR, Krzysztof WAJDA, Jacek Rak // W: Networks 2012: International telecommunication network strategy and planning symposium : Rome, October 15, 2012, S. 313–318.
5. A modular, flexible and virtualizable framework for IEEE 802.11 / Pablo Salvador, Stefano Paris, Claudio Pisa, Paul Patras, Yan Grunenberger, Xavier Perez-Costa, Janusz GOZDECKI // W: Future Network & MobileSummit 2012, 4–6 July 2012, Berlin Germany, ISBN: 978-1-905824-30-4., S. 637–644

Informacje dodatkowe:

Brak