Network Programming
Data is displayed for the academic year: 2024./2025.
Lecturers
Laboratory exercises
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.
Study Programmes
University undergraduate
[FER3-EN] Computing - study
Elective Courses
(6. semester)
[FER3-EN] Electrical Engineering and Information Technology - study
Elective Courses
(6. semester)
Learning Outcomes
- 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
Lectures
Independent assignmentsIndependent assignments
LaboratoryLaboratory exercises
Week by Week Schedule
- Port and socket; Socket application programming interface (API); Name and address
- Port and socket; Socket application programming interface (API); Name and address
- User Datagram Protocol (UDP) server and client; Command line arguments parsing; Program testing; Application protocols based on UDP
- 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
- Socket options; Raw socket
- Socket options; Raw socket
- Daemons and super-server "inetd"
- Midterm exam
- I/O multiplexing; Threading
- Broadcast and multicast addressing and applications
- User Datagram Protocol (UDP) server and client; Command line arguments parsing; Program testing; Application protocols based on UDP
- 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
- Application protocols based on Stream Control Transmission Protocol (SCTP), Security issues and programming guidelines
- Case studies focused on Java network programming and network programming in Python
- Final exam
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
0 Physical education excercises
Grading System
90 Excellent
78 Very Good
65 Good
50 Sufficient