Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie sieciowe
Tok studiów:
2014/2015
Kod:
IET-1-610-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Elektronika i Telekomunikacja
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 działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP ET1A_W11, ET1A_W16, ET1A_W07 Kolokwium
M_W002 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. ET1A_W11, ET1A_W10 Kolokwium
M_W003 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. ET1A_W11, ET1A_W10 Kolokwium
Umiejętności
M_U001 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. ET1A_U24, ET1A_U13, ET1A_U01 Kolokwium
M_U002 Student umie napisać zestaw programów, które komunikują się przez sieć. ET1A_U13, ET1A_U01 Kolokwium
Kompetencje społeczne
M_K001 Rozumie potrzebę uczenia się ET1A_K03, ET1A_K01
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 działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP + - - - - - - - - - -
M_W002 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. + - - - - - - - - - -
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ć. - - + - - - - - - - -
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-procesowa 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. Opcje gniazd i sterowanie kartami sieciowymi (3 godz.).
Opcje gniazd i obsługa sygnałów związanych z gniazdami. Zapoznanie z mechanizmami udostępnianymi przez sterowniki kart sieciowych do konfiguracji parametrów. Omówienie procedur do konfiguracji kart sieciowych.
7. Programowanie protokołów bezpołączeniowych (2 godz.).
Omówienie zasad i realizacji procedur do implementacji protokołów bezpołączeniowych w sieci TCP/IP.
8. Programowanie protokołów połączeniowych (2 godz.).
Omówienie zasad i realizacji procedur do implementacji protokołów połączeniowych w sieci TCP/IP.
9. Wprowadzenie do komunikacji pomiędzy procesami a jądrem systemu Linux (3 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 użytkownika.
10. Implementacja protokołów rozgłoszeniowych i protokołów typu multicast (3 godz.).
Zapoznanie z architekturą oprogramowania realizującą protokoły rozgłoszeniowe i typu multicast.
11. Monitorowanie sieci (4 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.

Ć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. Programy realizujące protokoły rozgłoszeniowe (2 godz.)
5. Programy realizujące protokoły typu multicast (2 godz.)
6. Monitorowanie sieci (4 godz.)
7. Sterowanie parametrami kart sieciowych (4 godz.)
8. Implementacja modułów do jądra – komunikacja między procesami a jądrem systemu (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ęć 12 godz
Przygotowanie do zajęć 20 godz
Egzamin lub kolokwium zaliczeniowe 2 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
4. Jeżeli pozytywną ocenę z ćwiczeń i egzaminu uzyskano w pierwszym terminie oraz ocena końcowa jest mniejsza niż 5.0 to ocena końcowa jest podnoszona o 0.5

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. 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:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak