Instructor Fall 2018: Sangtae Ha

Course Description

Fit within curriculum: core option for Computer Science BS students; Computer Science elective option for Computer Science BA students. Focuses on design and implementation of network programs and systems, including topics in network protocols, file transfer, client-server computing, remote procedure call, and other contemporary network system design and programming techniques. Same as CSCI 5273 and ECEN 5273.

Requisites:

Requires prerequisite course of CSCI 3753 (minimum grade C-).

Familiarity with C and Unix is required.

Textbooks and Materials

Required text: Computer Networks: A Systems Approach, Fifth Edition. Peterson and Davie. 2011.
Other supplemental materials: Computer Networking: A Top-Down Approach, Sixth Edition. Kurose and Ross. 2012.

Course Outcomes

Upon completion of this course, students are able to:
• Identify and explain the functionality of each of the different layers in the Internet TCP/IP network stack, as well as the motivation for a layered network architecture.
• Explain basic physical layer signaling techniques to communicate digital bits over analog media (wireless and wired).
• Explain basic concepts in the design and implementation of link layer protocols, including medium access control (MAC) protocols governing Ethernet and WiFi, bridging/switching, packet framing, and sliding window reliable protocols.
• Explain basic concepts in the design and implementation of network layer protocols, including packet-switched IP routing, Dijkstra’s algorithm, virtual circuits, address resolution, and hierarchical addressing and routing.
• Explain basic concepts in the design and implementation of transport layer protocols, including TCP’s adaptive retransmission and congestion control strategies and UDP’s unreliable datagram delivery.
• Explain basic concepts in the design and implementation of application layer protocols, including the Domain Name Service (DNS), Web (HTTP), email (SMTP, IMAP) and remote procedure call (RPC) protocols.
• Explain basic concepts in networked security, including how firewalls are achieved via Network Address Translation (NAT) and how symmetric key and certified public key encryption protects digital communication in the TLS/SSL, SSH, HTTPS and IPSEC protocols.
• Explain network bootstrapping as implemented via the Dynamic Host Configuration Protocol (DHCP).
• Demonstrate practical network skills, including the ability to use network socket programming to build distributed client/server programs as well as the ability to use network diagnostic tools to characterize network performance.

Brief list of topics to be covered
• Layered Network Architecture
• Physical Layer Digital Communication
• Data Link Layer and Medium Access Control
• Network Layer Routing
• Transport Layer Design and Reliability
• Application Layer Protocols
• Networked Security