CS 725: Computer Networks
Catalog description
Introduction to fundamental concepts of computer networks and exploration of widely used networking technologies. Topics include principles of congestion and error control protocols; network routing; local, wireless, and access networks; application protocol design; and network programming. In-depth discussion of the Internet suite of protocols.
Overview
A majority of current computing-based systems consist of components communicating with each other which makes understanding of the fundamental concepts and principles of computer networks critical for anyone in charge of design, development, deployment, operation, and security of such systems. As set of standard networking technologies, ranging from application protocols, such as HTTP, to TCP/IP as the dominant solution for end-to-end data delivery, and to the variety of Ethernet-based technologies that deliver packets at the local level. Each of which have specific properties that can have significant impact on functionality and performance of a computing system. The class objective if to outline the fundamental principles, illustrate how they relate to the current networking technologies, and to provide students with the understanding and skills necessary for a computing professional today. There is an expectation of substantial independent exploration of tools and techniques. Students are expected to demonstrate ability to apply these tools and techniques outside of the specific topics covered in the class.
Attributes
The course is an elective for CS majors. The minimum passing grade is D-.
Evaluation
- Five assignments, each consisting of a collection of exploratory problems and a programming project (40%)
- Two in-class exams (30%)
- Final exam (30%)
Grading scale: 94% and above: A, 90% and above: A-, 87% and above: B+, 84% and above: B, 80% and above: B-, 77% and above: C+, 74% and above: C, 70% and above: C-, etc.
ABET Outcomes
Outcome 6: students are asked to solve both conceptual problems in the area of computer networks as well as apply the concepts to design solutions in the programming assignments.
Outcome 7: students are asked to work problems based on the topics covered in the lectures but require substantial self-learning of tools and techniques to come up with solutions.
ABET Curriculum
- Curriculum 6: c) fundamental principles and concept of networking and communication, coverage of standard networking technologies and tools.
Topics
Basic Concepts
- Categories of networks. Basic concepts and terminology.
- Layered model, OSI 7-layer model. Internet layers, common functions of layers. Services of a layer, reliable vs. unreliable, connection-oriented vs. connectionless. Internet protocol “hourglass”.
- Time-space diagram. Network performance measures.
- Network standardization: key players, standard documents, standardization processes.
Networking Fundamentals
- Routed point-to-point networks vs local broadcast-based networks. Address Resolution Protocol (ARP). Anatomy of a routing/switching device.
- Domain Name Service (DNS) and Dynamic Host Configuration Protocol (DHCP),
- IP Subnets, prefix and subnet mask.
- Static routing, routing table. Routing loops. Classless InterDomain Routing (CIDR), private IP addresses.
- Basics of bridging and L2 switching, resilience and scaling of bridged networks: spanning tree protocols, VLANs.
Application Protocol Design and Implementation
- Client and server, ports, well-known and ephemeral ports. Application layer protocol architecture
- Networked application programming. Socket API. Handling of concurrent requests.
- World-wide web, historical evolution, HTTP.
- Email, SMTP, IMAP, POP-3, webmail. MIME.
- Network Management, SMTP, Software Defined Networks (SDNs).
Network Security
- Intro to network security. Encryption, goals, categories of encryption methods, public/private key cryptography, man-in-the-middle attack
- Encryption methods, authentication, message integrity, cryptographic hash functions.
- Public key certificates, certificate authority.
Principles of Reliable Transport - Transport Layer
- Functions of the layer, principles of reliable transport, ARQ. Congestion control, offered vs carried load diagram, load vs latency diagram.
- Principles of congestion control. Transmission Control Protocol (TCP).
- TCP session management, TCP flow control.
- TCP network congestion control, TCP variants. Fairness. UDP.
- User Datagram Protocol (UDP).
- TCP alternatives, QUIC.
- Transport Layer Security (TLS).
Routing and the Network Layer
- Fundamental concepts and services. Internet Protocol (IP). IP fragmentation.
- Internet Control Message Protocol (ICMP).
- IPv6
- Operations of link state and distance vector routing protocols, scaling routing protocols, Autonomous System, RIP, OSPS, BGP-4
- QoS in IP networks, TOS field and Differentiated Services.
- Multicasting, multicast routing, content delivery networks (CDNs).
- Circuit vs packet switching. Virtual circuit switching, MPLS.
Link and Physical Layers
- Basic concept, Data Link Control (DLC) and Media Access Control (MAC). Deterministic and stochastic (random) access methods, CSMA/CD.
- Ethernet/IEEE 802.3, frame format, nomenclature, historical evolution.
- Wireless networks, IEEE 802.11 - basic concepts. Hidden terminal problem, CSMA/CA.
Textbooks
Required
- James F. Kurose and Keith W. Ross: Computer Networking: A Top-Down Approach, Seventh Edition, Pearson, 2017, ISBN 0-13-359414-9. The sixth (ISBN 0-132-85620-4), and fifth (ISBN 0-136-07967-9) editions are also permissible.