Network Programming

Course Description

Basic concepts of network and distributed programming. TCP and UDP socket interface. Client and server design. Network applications based on UDP and TCP. Design and implementation using threading and concurrency. Broadcast and multicast applications. SCTP socket interface. Security issues. Practical examples of network applications in Unix environment using C. Practical examples of network programming in Java and script languages.

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

Lectures

Independent assignments

Independent assignments

Laboratory

Laboratory exercises

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
[FER3-EN] Computing - study
Elective Courses (6. semester)
[FER3-EN] 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,

For students

General

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

Grading System

90 Excellent
78 Very Good
65 Good
50 Acceptable