Generuj PDF tej strony
Transkrypt
Generuj PDF tej strony
Nazwa modułu: Programowanie sieciowe Rok akademicki: Wydział: Kierunek: 2013/2014 Kod: IET-1-614-s Punkty ECTS: 3 Informatyki, Elektroniki i Telekomunikacji Elektronika i Telekomunikacja Poziom studiów: Studia I stopnia Język wykładowy: Polski Profil kształcenia: Specjalność: - Forma i tryb studiów: Ogólnoakademicki (A) Semestr: 6 Strona www: Osoba odpowiedzialna: Gozdecki Janusz ([email protected]) Osoby prowadzące: Gozdecki Janusz ([email protected]) 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ń) M_W001 Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP ET1A_W07, ET1A_W11, ET1A_W16 Kolokwium M_W002 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. ET1A_W10, ET1A_W11 Kolokwium M_W003 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. ET1A_W10, ET1A_W11 Kolokwium M_U001 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. ET1A_U01, ET1A_U13, ET1A_U24 Kolokwium M_U002 Student umie napisać zestaw programów, które komunikują się przez sieć. ET1A_U01, ET1A_U13 Kolokwium Wiedza Umiejętności Kompetencje społeczne M_K001 Rozumie potrzebę uczenia się ET1A_K01, ET1A_K03 1/4 Karta modułu - Programowanie sieciowe Matryca efektów kształcenia w odniesieniu do form zajęć Zajęcia praktyczne - - - - - - - - - - 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. + - - - - - - - - - - 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ć. - - + - - - - - - - - + - + - - - - - - - - E-learning Zajęcia seminaryjne + Zajęcia Konwersatori um Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP Zajęcia terenowe Ćwiczenia projektowe M_W001 Inne Ćwiczenia laboratoryjne Forma zajęć Ćwiczenia audytoryjne Student, który zaliczył moduł zajęć wie/umie/potrafi Wykład Kod EKM Wiedza Umiejętności 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.). 2/4 Karta modułu - Programowanie sieciowe 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. 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. 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. Programy realizujące model klient-serwer dla protokołów bezpołączeniowych (2 godz.) 2. Programy realizujące model klient-serwer dla protokołów połączeniowych (3 godz.) 3. Implementacja modułów do jądra – komunikacja między procesami a jądrem systemu (4 godz.) 4. Sterowanie parametrami kart sieciowych (2 godz.) 5. Monitorowanie sieci (2 godz.) 6. Powtórzenie i sprawdzenie wiadomości (2 godz.) 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 3/4 Karta modułu - Programowanie sieciowe 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 Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Obciążenie studenta Udział w wykładach 30 godz Udział w ćwiczeniach laboratoryjnych 15 godz Samodzielne studiowanie tematyki zajęć 10 godz Przygotowanie do zajęć 20 godz Egzamin lub kolokwium zaliczeniowe 2 godz Sumaryczne obciążenie pracą studenta 77 godz Punkty ECTS za moduł 3 ECTS 4/4