Generate PDF of this page
Transkrypt
Generate PDF of this page
Nazwa modułu: Programowanie sieciowe Rok akademicki: Wydział: Kierunek: 2016/2017 Kod: ITE-1-604-s Punkty ECTS: 3 Informatyki, Elektroniki i Telekomunikacji Teleinformatyka Poziom studiów: Specjalność: Studia I stopnia Język wykładowy: Polski Profil kształcenia: - 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 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_W07, TE1A_W11, TE1A_W16 Kolokwium M_U001 Student umie napisać zestaw programów, które komunikują się przez sieć. TE1A_U01, TE1A_U13 Kolokwium M_U002 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. TE1A_U01, TE1A_U13, TE1A_U24 Kolokwium Wiedza Umiejętności Kompetencje społeczne M_K001 Rozumie potrzebę uczenia się TE1A_K01, TE1A_K03 1/4 Karta modułu - Programowanie sieciowe Matryca efektów kształcenia w odniesieniu do form zajęć Konwersatori um Zajęcia seminaryjne Zajęcia praktyczne Zajęcia terenowe Zajęcia warsztatowe 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 + - - - - - - - - - - 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. - - + - - - - - - - - + - + - - - - - - - - E-learning Ć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-procesorowa i między węzłowa. Systemy klient-serwer i systemy peer-to-peer. (2 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.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. Zwielokrotnianie wejścia-wyjącia (2 godz.). Omówienie modeli wejścia-wyjścia: blokujące, nieblokujące, zwielokrotnione, sterowne sygnałami, asynchroniczne. Omówienie metod zwielokrotniania wejścia-wyjścia: funkcje select(), pool() i epoll(). 9.Opcje gniazd i sterowanie kartami sieciowymi (2 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. 10.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. 11.Monitorowanie sieci (2 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. 12.Wprowadzenie do komunikacji pomiędzy procesami a jądrem systemu Linux (2 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. Ćwiczenia laboratoryjne 1.Proste programy testujące podstawowe funkcje systemowe (3 godz.) 2.Programy realizujące model klient-serwer dla protokołów bezpołączeniowych (4 godz.) 3.Programy realizujące model klient-serwer dla protokołów połączeniowych (4 godz.) 5.Sterowanie parametrami protokołów i 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.) 4.Implementacja modułów do jądra – komunikacja między procesami a jądrem systemu (3 godz.) 9.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 3/4 Karta modułu - Programowanie sieciowe 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. 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 28 godz Udział w ćwiczeniach laboratoryjnych 28 godz Samodzielne studiowanie tematyki zajęć 10 godz Przygotowanie do zajęć 20 godz Sumaryczne obciążenie pracą studenta 86 godz Punkty ECTS za moduł 3 ECTS 4/4