At the end of this course, students will be able to:
Understand the basic principles of communication protocols in the context of the Internet.
Explain the operation and architecture of the Internet including the software and hardware components to provide Internet services.
Compare and contrast various application layer protocols such as HTTP, SMTP, FTP, DNS; connection-oriented communication protocols such as TCP and connectlionless communication protocols such as UDP at the transport layer; virtual-circuit and packet switching at the network layer; link-state and distance-vector routing at the network layer; and multiple access techniques at the link layer.
Explain the key features of mobile networks such as cellular networks and elaborate on the impact of mobility on routiing protocols.
Devise protocols for reliable data transfer over unreliable channels, congestion control or flow control either in the user or kernel space of operating systems at the transport layer.
Design and implement networking protocols at any layer of the OSI communication stack above the physical layer using socket programming interface.