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