Students will learn about network programming which will enable them to fully understand the abilities and uses of network applications. Students will gain practical skills in creation of network applications in Unix environment using C with some examples in Java and scripting languages.
- Define types socket interfaces and specify their properties.
- Distinguish between connection and connectionless oriented applications.
- Distinguish the design process of iterative and concurrent servers.
- Write simple UDP network applications using C in Unix environments.
- Analyze simple network applications and debug errors in own applications.
- Use the basic tools for design and testing of network programs in Unix environment.
Forms of Teaching
Lectures, with lecture notes and presentations available in advance on the web. Lectures will be held in two cycles (7 + 6 weeks), 2 hours a week.Exams
Midterm exam will be held after the first lecture cycle, the final exam after the second lecture cycle. The students can also take regular exams.Laboratory Work
Design of UDP and TCP clients and servers (using C-programming language) and verification in IMUNES network simulator environment. Laboratory exercises will be held in 3 cycles, each in extent of 5 hours.Consultations
Regular weekly consultations.Acquisition of Skills
Literature search on communication networks. Building software in C-programming language, debugging.Programming Exercises
in homework and laboratoryOther Forms of Group and Self Study
Students independently solve program problems as a preparation for laboratory exercises.
|Type||Threshold||Percent of Grade||Threshold||Percent of Grade|
|Laboratory Exercises||0 %||15 %||0 %||15 %|
|Homeworks||0 %||10 %||0 %||0 %|
|Class participation||0 %||5 %||0 %||0 %|
|Mid Term Exam: Written||0 %||30 %||0 %|
|Final Exam: Written||50 %||40 %|
|Exam: Written||50 %||85 %|
Week by Week Schedule
- Introduction. OSI and TCP/IP reference model. Client-server and peer-to-peer models.
- Port and socket. Socket API. Name and address.
- UDP server and client. Command line arguments parsing. Program testing.
- TCP server and client. Concurrency.
- Socket options.
- Raw socket.
- Daemons and super-server "inetd".
- Midterm examination.
- I/O multiplexing. Threading.
- Broadcast and multicast addressing and applications.
- Application protocols based on UDP. TFTP.
- Application protocols based on TCP. HTTP and FTP. Simple HTTP server.
- Security issues and programming guidelines.
- Java network programming.
- Final examination.