This course examines methods for designing and managing LANs and WANs theoretically
and practically. The topics covered include the OSI architecture, data link networks,
packet switching, routing, TCP/UDP, IP, flow control, congestion control, network security,
and application protocols such as DNS, SMTP, FTP, Web Service (REST and SOAP), and HTTP.
The course is largely oriented to network programming utilizing Linux and C++.
You are given five programming assignments,
some followed by performance evaluation. Exmamples include sockets (socket, connect, write, writev, bind, listen,
accept, signal, fcntl, and read), the sliding window algorithm, TCP tools (ttcp, tcpdump, and netstat),
and DNS access (gethostbyname and hostent). In addition, you will work on the
final project that implements an ftp client program.