Module also offered within study programmes:
General information:
Name:
Programowanie sieciowe
Course of study:
2014/2015
Code:
IET-1-610-s
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
6
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Gozdecki Janusz (gozdecki@agh.edu.pl)
Academic teachers:
dr inż. Gozdecki Janusz (gozdecki@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Rozumie potrzebę uczenia się ET1A_K03, ET1A_K01
Skills
M_U001 Student potrafi implementować protokoły sieciowe przez dobór odpowiednich narzędzi programistycznych do postawionego zadania. ET1A_U24, ET1A_U13, ET1A_U01 Test
M_U002 Student umie napisać zestaw programów, które komunikują się przez sieć. ET1A_U13, ET1A_U01 Test
Knowledge
M_W001 Student zna i rozumie działanie podstawowych protokołów komunikacyjnych w sieci TCP/IP ET1A_W11, ET1A_W16, ET1A_W07 Test
M_W002 Student zna i rozumie mechanizmy komunikacji między procesowej w sieci pakietowej. ET1A_W11, ET1A_W10 Test
M_W003 Student zna i rozumie pojęcia związane z programowaniem struktur danych i gniazd sieciowych. ET1A_W11, ET1A_W10 Test
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Rozumie potrzebę uczenia się + - + - - - - - - - -
Skills
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ć. - - + - - - - - - - -
Knowledge
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. + - - - - - - - - - -
Module content
Lectures:

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.

Laboratory classes:

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

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 90 h
Module ECTS credits 3 ECTS
Participation in lectures 28 h
Participation in laboratory classes 28 h
Realization of independently performed tasks 12 h
Preparation for classes 20 h
Examination or Final test 2 h
Additional information
Method of calculating the final grade:

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

Prerequisites and additional requirements:

Wiadomości z zakresu przedmiotów „Sieci IP”, „Podstawy informatyki”, „Systemy operacyjne” i „Języki programowania obiektowego”

Recommended literature and teaching resources:

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

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None