Skip to main content

CS 465 Syllabus

Computer Networks

Revised: August 2018

Course Description

Network programming both at the socket interface and at higher levels. Key concepts in the higher layers of the network protocol stack emphasizing the application, transport, and network layers.

Prerequisite & Notes

  • CS 253.
  • 3 Credit hours.

Objectives

  • have an understanding of network programming at the socket level.
  • have an understanding of the Internet protocol stack with an emphasis on the application, transport, and network layers.
  • have an understanding of nodal delay.
  • have an understanding of a number of network protocols including: TCP/IP, UDP SMTP, and HTTP.
  • be able to write well designed, object oriented, multi-threaded, network applications.

Text

James F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach, Eighth Edition, Addison-Wesley, 2020.

Grading Procedure

Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.

Attendance Policy

Attendance policy is left to the discretion of individual instructors, subject to general university policy.

Course Outline

  • Introduction
    Basic terminology: hosts, network edge and network core. Connection-oriented versus connectionless service, packet switching versus circuit switching, virtual circuits, protocol stacks, encapsulation, fragmentation, multiplexing, statistical multiplexing, Internet and OSI protocol layer models, domain names, IP addresses, name resolution, link layer addresses, address resolution. Propagation delay versus bandwidth.
  • Application Layer: DNS and HTTP
    Client-server interaction, URLs (Uniform Resource Locators), HTTP (HyperText Transfer Protocol), URL encoding, DNS (Domain Name Service), iterative versus recursive query resolution. Traceroute, nslookup, and DIG.
  • Application Layer: Java Socket Programming
    Socket programming for both TCP and UDP.
  • Transport Layer: Error Control
    A sequence of window-based protocols for error control going from simplest (stop-and-wait) to more complex (Go-Back-N and Selective-Repeat). Correctness and performance.
  • Transport Layer: UDP and TCP
    Transport layer services (port-to-port, reliable/in-order delivery), connection establishment and release, UDP, TCP (service model and header, connection management, transmission policy, congestion control, timer management).
  • Network Layer: Internet Routing
    Link-state algorithm (reliable flooding, Dijkstra's shortest path algorithm). Distance-vector algorithm (basic concept, problems, Bellman-Ford).
  • Network Layer: IP
    ICMP (Internet Control Message Protocol), IP (Internet Protocol: Service model and packet format, fragmentation and reassembly, subnet addressing, using ifconfig and netstat, RIP (Routing Information Protocol), OSPF (Open Shortest Path First), and BGP
Office of Web Services