Computer networks have revolutionized the way societies create and communicate information. In particular, the Internet is a massive deployment of network algorithms and systems, with lasting social, scientific, and economical impact. Network algorithms and systems are specified by protocols, which allow different organizations to interoperate. Protocols are designed to handle network failures and non-cooperative agents, and to operate at large scale without critical performance issues. Algorithms and systems associated with network protocols are elegant and significant applications of fundamental Computer Science ideas. This course studies fundamental Internet protocols such as ARP, IP, ICM, and TCP; higher-level application protocols, such as DNS, HTTP, SMTP, and security-related protocols; as well as medium access control specifications for Ethernet and wireless networks. All of these protocols are studied from a perspective that emphasizes their algorithmic and design-related aspects, with focus on the fundamental computer science principles underlying the associated algorithms and systems.
Fulfills the Systems area requirement of the Computer Science major.
Satisfies a requirement in the Computer Science minor.
CSC 221 (Data Structures) and CSC 250 (Computer Organization)