Network Programming

Learning Outcomes

  1. Define types socket interfaces and specify their properties.
  2. Distinguish between connection and connectionless oriented applications.
  3. Distinguish the design process of iterative and concurrent servers.
  4. Write simple UDP network applications using C in Unix environments.
  5. Analyze simple network applications and debug errors in own applications.
  6. Use the basic tools for design and testing of network programs in Unix environment.

Forms of Teaching

Lectures

Independent assignments

Laboratory

Week by Week Schedule

  1. Port and socket; Socket application programming interface (API); Name and address.
  2. Port and socket; Socket application programming interface (API); Name and address.
  3. User Datagram Protocol (UDP) server and client; Command line arguments parsing; Program testing; Application protocols based on UDP.
  4. Transmission Control Protocol (TCP) server and client; Concurrency; Application protocols based on TCP; Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (FTP); Simple HTTP server.
  5. Socket options; Raw socket.
  6. Socket options; Raw socket.
  7. Daemons and super-server "inetd".
  8. Midterm exam.
  9. I/O multiplexing; Threading.
  10. Broadcast and multicast addressing and applications.
  11. User Datagram Protocol (UDP) server and client; Command line arguments parsing; Program testing; Application protocols based on UDP.
  12. Transmission Control Protocol (TCP) server and client; Concurrency; Application protocols based on TCP; Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (FTP); Simple HTTP server.
  13. Application protocols based on Stream Control Transmission Protocol (SCTP); Security issues and programming guidelines.
  14. Case studies focused on Java network programming and network programming in Python.
  15. Final exam.

Study Programmes

University undergraduate
Computing (study)
Elective Courses (6. semester)
Electrical Engineering and Information Technology (study)
Elective Courses (6. semester)

Literature

(.), Unix Network Programming, Vol. 1: The Sockets Networking API; W. Richard Stevens, Bill Fenner, Andrew M. Rudoff Addison; Addison-Wesley Professional; 2003; ISBN: 978-0131411555,
(.), TCP/IP Illustrated: The Implementation, Vol. 2; Gary R. Wright, W. Richard Stevens; Addison-Wesley Professional; 1995; ISBN: 078-5342633542,

General

ID 183394
  Summer semester
5 ECTS
L3 English Level
L1 e-Learning
30 Lectures
0 Exercises
15 Laboratory exercises
0 Project laboratory