The Internet is one of the most fundamental technological advances in the last 50 years. In this class we explore the TCP/IP family of protocols: IP, UDP, TCP, routing, addresses and name translation, etc. We will review the application programming interface for networked applications (i.e., sockets programming), and some factors in client / server design. Security is one of the design aspects that will be repeatedly featured.
This course surveys about 15 or 16 protocols that cover all the protocol layers starting from the link layer (Ethernet, 802.11), the network layer (ARP,ICMP, IP,DHCP,NAT), the transport layer (TCP,UDP) and the application layer (DNS, HTTP, RTSP). For each protocol we discuss its function(s), messages, principles of operation, and design subtleties. The purpose of covering these protocols is to get a solid technical understanding of the Internet's foundations and a concrete example of complete network protocol family. The course material will be taken from the textbook but the students will also be required to read the actual protocol specifications (RFCs).
A major part of the class are the group programming projects that give the opportunity to implement some of the protocols (or simplified versions of them) covered in class.
You can buy these books from the Hopkins bookstore. They are also available from online and brick-and-mortar bookstores.
Andreas Terzis Last modified: Sun Aug 27 10:05:07 EDT 2006