Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie sieciowe
Tok studiów:
2019/2020
Kod:
IETP-1-504-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Elektronika i Telekomunikacja
Semestr:
5
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
dr inż. Gozdecki Janusz (gozdecki@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Student rozumie zasady działania gniazd sieciowych dla protokołów IP, IPv6, UDP, TCP, SCTP. Student potrafi wybrać odpowiednie protokoły i zaprojektować aplikację adekwatnie do wymagań sieciowych.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. ETP1A_W09, ETP1A_W11 Kolokwium
M_W002 Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP ETP1A_W09, ETP1A_W14, ETP1A_W08 Kolokwium
M_W003 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. ETP1A_W09, ETP1A_W11 Kolokwium
Umiejętności: potrafi
M_U001 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. ETP1A_U15, ETP1A_U02, ETP1A_U09 Kolokwium
M_U002 Student umie napisać zestaw programów, które komunikują się przez sieć. ETP1A_U02, ETP1A_U09 Kolokwium
M_U003 Student potrafi dobrać sposób obsługi gniazd sieciowych do specyfiki komunikacji i typu aplikacji. ETP1A_U04, ETP1A_U02, ETP1A_U09 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu,
Kolokwium
M_U004 Student potrafi zdiagnozować problemy w aplikacjach związane z komunikacją przez gniazda sieciowe. ETP1A_U11, ETP1A_U02, ETP1A_U06, ETP1A_U09 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu
M_U005 Student potrafi zaimplementować programy do monitorowania i diagnostyki sieci TCP/IP i Ethernet. ETP1A_U04, ETP1A_U02, ETP1A_U06, ETP1A_U09, ETP1A_U05 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu,
Aktywność na zajęciach
Kompetencje społeczne: jest gotów do
M_K001 Rozumie potrzebę uczenia się ETP1A_K03, ETP1A_K01
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
50 20 0 20 10 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. + - - - - - - - - - -
M_W002 Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP + - - - - - - - - - -
M_W003 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. + - - - - - - - - - -
Umiejętności
M_U001 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. - - + + - - - - - - -
M_U002 Student umie napisać zestaw programów, które komunikują się przez sieć. - - + + - - - - - - -
M_U003 Student potrafi dobrać sposób obsługi gniazd sieciowych do specyfiki komunikacji i typu aplikacji. - - + + - - - - - - -
M_U004 Student potrafi zdiagnozować problemy w aplikacjach związane z komunikacją przez gniazda sieciowe. - - + + - - - - - - -
M_U005 Student potrafi zaimplementować programy do monitorowania i diagnostyki sieci TCP/IP i Ethernet. - - + + - - - - - - -
Kompetencje społeczne
M_K001 Rozumie potrzebę uczenia się - - + + - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 100 godz
Punkty ECTS za moduł 4 ECTS
Udział w zajęciach dydaktycznych/praktyka 50 godz
Przygotowanie do zajęć 28 godz
Samodzielne studiowanie tematyki zajęć 20 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (20h):

1. Wstęp do programowania sieciowego.
Przedstawienie historii i architektury sieci TCP/IP. Ogólny przegląd protokołów. Numery portów. Standardowe usługi sieciowe. Podstawowe narzędzia sieciowe. Adresacja w sieci TCP/IP.
2. Komunikacja między-procesowa i między węzłowa. Systemy klient-serwer i systemy peer-to-peer. Opcje gniazd.
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. Omówienie sterowania protokołami przez opcje gniazd.
3. Programowanie gniazd TCP.
Omówienie zasady działania protokołu TCP. Struktura programu do komunikacji z użyciem protokołu TCP. Omówienie API dla gniazd TCP. Obsługa sygnałów dla gniazd sieciowych.
4. Programowanie gniazd UDP.
Omówienie zasady działania protokołu UDP. Struktura programu wykorzystującego gniazda UDP. Omówienie API dla gniazd UDP.
5. Implementacja protokołów rozgłoszeniowych i protokołów typu multicast.
Zapoznanie z architekturą oprogramowania realizującą protokoły rozgłoszeniowe i typu multicast. Omówienie adresacji. Opcje gniazd dla adresacji rozgłoszeniowej i rozgłaszania grupowego.
6. Programowanie gniazd SCTP.
Omówienie zasady działania protokołu SCTP. Struktura programu wykorzystującego gniazda SCTP. Omówienie API dla gniazd SCTP.
7. Multipleksacja funkcji we-wy dla gniazd sieciowych.
Omówienie modeli obsługi we-wy dla gniazd sieciowych. Omówienie API dla funkcji select, pselect i mechanizmu epool.
8. Procedury przekształcania nazw w sieci TCP/IP.
Zapoznanie z procedurami do operacji na adresach sieciowych, elementarne przekształcenia między nazwami a adresami.
9. API gniazd surowych i dostęp do warstwy kanałowej.
Zasady programowania gniazd surowych i gniazd w domenie PF_PACKET. Omówienie biblioteki libpcap. Podstawowe zasady pisania programów do przechwytywania danych na interfejsach sieciowych. Omówienie procedur do konfiguracji kart sieciowych.

Ćwiczenia laboratoryjne (20h):

1. Narzędzia sieciowe. Testowanie prostego programu klient-serwer (2 godz.)
2. Implementacja serwera iteracyjnego TCP. Sprawdzanie i ustawianie opcji gniazd. Optymalizacja wydajności protokołu TCP. (2 godz.)
3. Obsługa sygnałów w programach sieciowych. Implementacja serwera współbieżnego TCP (2 godz.)
4. Serwer i klient protokołu UDP (2 godz.)
5. Programy realizujące protokoły typu multicast i broadcast (2 godz.)
6. Programowanie serwera i klienta protokołu SCTP (2 godz.)
7. Multipleksacja funkcji we-wy dla gniazd sieciowych (2 godz.)
8. Procedury przekształcania adresów. Demon syslog. Oprogramowanie procesu demona. (2 godz.)
9. Dostęp do warstwy kanałowej. Sterowanie parametrami kart sieciowych (2 godz.)
10. Monitorowanie sieci. Gniazda surowe (2 godz.).

Ćwiczenia projektowe (10h):

Student projektuje i implementuje program sieciowy typu klient-serwer lub peer-to-peer z wykorzystaniem wiedzy, którą uzyskał na wykładzie i ćwiczeniach laboratoryjnych.

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
  • Ćwiczenia projektowe: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Do uzyskania pozytywnej oceny końcowej niezbędne jest uzyskanie pozytywnej oceny z laboratorium, projektu i kolokwium zaliczeniowego z wykładu, tzn. otrzymać min 50% punktów, które można zdobyć na wyżej wymienionych zajęciach.
Z zajęć laboratoryjnych nie ma zaliczeń poprawkowych. Zaliczenie poprawkowe z zajęć projektowych i wykładu będzie polegać na poprawie projektu i poprawie kolokwium zaliczeniowego, do których będzie można przystąpić maksymalnie dwa razy.

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
  • Ćwiczenia projektowe:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
Sposób obliczania oceny końcowej:

Maksymalnie na wszystkich formach zajęć można zdobyć 100 pkt. Ocena końcowa z przedmiotu jest wystawiana na podstawie sumy punktów zdobytych na zajęciach wymienionych w punkcie 1, tj.: za zdobycie:
91 – 100 pkt. bardzo dobry (5.0);
81 – 90 pkt. plus dobry (4.5);
71 – 80 pkt. dobry (4.0);
61 – 70 pkt. plus dostateczny (3.5);
50 – 60 pkt. dostateczny (3.0);
poniżej 50 pkt. niedostateczny (2.0).

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Student ma obowiązek przerobić materiał z zajęć, na których był nieobecny w własnym zakresie na podstawie materiałów udostępnionych przez prowadzącego. Znajomość przerobionego materiału zostanie zweryfikowana przez prowadzącego na zajęciach w formie kolokwium ustnego lub pisemnego.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Wymagana jest wiedza z zakresu przedmiotów „Sieci IP”, „Podstawy informatyki”, „Systemy operacyjne”.

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. UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API, By W. Richard Stevens, Bill Fenner, Andrew M. Rudof

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

1. “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 / Future Network & MobileSummit 2012, 4–6 July 2012, Berlin Germany. ISBN: 978-1-905824-30-4. S. 637–644
2. “Wireless link prediction and triggering using modified Ornstein-Uhlenbeck jump diffusion process” / Eric Chin, David Chieng, Victor Teh, Marek NATKANIEC, Krzysztof ŁOZIAK, Janusz GOZDECKI / Wireless Networks ; ISSN 1022-0038. — 2014 vol. 20 iss. 3, s. 379–396.
3. “Supporting QoS in integrated Ad-Hoc networks” / Marek NATKANIEC, Katarzyna KOSEK-SZOTT, Szymon SZOTT, Janusz GOZDECKI, Andrzej GŁOWACZ, Susana Sargento // Wireless Personal Communications ; ISSN 0929-6212. — 2011 vol. 56 no. 2, s. 183–206.

Informacje dodatkowe:

Brak