The course presents all layers of TCP/IP protocol stack, including HTTP, FTP, POP, SMTP, DNS, Peer-to-peer and Client/Server paradigms, Socket programming, TCP, UDP, Flow control, Congestion control, IP, Internet routing, Error control, Multiple access techniques, Ethernet, Wireless Networks, CSMA, CSMA/CA/CD. The course also includes topics on network security such as Public-key cryptography, Secret-key cryptography, Authentication protocols, SSL, and IPSec.
Course learning outcomes
1. Define the basic concepts of data communications, including transmission media, error detection/correction, flow control, and multiplexing.
2. Develop the types and basic concepts of wide area networks, including circuit and packet switching, routing and congestion control in packet-switched networks.
3. Analyze, modify, and create the types and basic concepts of local area networks, including Ethernet and IEEE 802.11.
4. Describe the principles of internetworking, including IPv6, routing on the internet, and the TCP and UDP protocols.
5. Design and implement simple networked applications using the socket interface in JAVA and Python.