CS4310: Computer Networks

Fall 2012

Current course material is maintained on TRACS

[ Home ]

Instructor:
Mina Guirguis
Email: msg AT txstate DOT edu
Phone: (512) 245-6384
Office: Nueces building (office #265)

Office Hours:
Tuesdays: 10:00 - noon (in San Marcos, Nueces building, office #265)
Thursdays: 2:00 - 4:00 (in San Marcos, Nueces building, office #265)
Before and after class and also by appointment

Lectures:
Tuesdays: 12:30 - 1:50 Classes will be held in DERR (Room #235)
Thursdays: 12:30 - 1:50 Classes will be held in DERR (Room #235)

Textbook:
Computer Networks: A systems approach, Fifth Edition by L. Peterson and B. Davie.

Grading Policy:
Midterm exam (25%)
Final exam (35%)
Written assignments (15%)
Programming assignments (25%)

Late written assignments will not be accepted without prior arrangements. Late programming assignments would incur a penalty of 20% per day for up to 2 days, and then they will not be accepted.

Academic Honesty:
Discussion of course material and problem sets are encouraged between students. However, you must write-up your answers on your own. You must also write the names of other students you discussed each problem with. As for programming assignments, you may still discuss them with other students; however, you must never submit someone else's code as part of your own.

Course Description:
This course is about the design of computer networks and networking protocols.

Course Content:

  • History and evolution of the Internet.
  • Protocol layering and encapsulation.
  • The OSI model versus the TCP/IP model.
  • Networking performance metrics (bandwidth, latency, bandwidth-delay product).
  • Circuit switching versus packet switching.
  • Physical layer concepts (theoretical capacity of different mediums).
  • Data-link layer networking concepts (framing, error correction and detection, flow control of different protocols as Stop and Wait and Sliding Window).
  • IP addressing and header formats.
  • Internet routing algorithms (distance vector, link state, BGP)
  • Transport layer (UDP and TCP) and header formats.
  • Congestion control and flow control.
  • Application-level networking protocols (HTTP, DNS, P2P protocols, etc…).
  • Network security.

Learning Objectives:

  • Know the difference between the OSI model and the TCP/IP model.
  • Tell to which layer a specific protocol belongs.
  • Describe the purpose of each layer.
  • Discuss the differences between circuit switching and packet switching along with the advantages and disadvantages of each.
  • Discuss the media access control methods for Ethernet, token ring and wireless.
  • Explain how errors can be detected and/or corrected.
  • Know how subnetting works.
  • Describe how routers build routing tables.
  • Describe how packets get routed in the Internet.
  • Describe how distance vector routing protocols work.
  • Describe how link state routing protocols work.
  • Present a network as a weighted graph and find shortest paths.
  • Describe how BGP advertises routes to networks.
  • Explain the differences between TCP and UDP.
  • Explain the challenges in having a reliable byte stream over a best-effort network.
  • Describe how TCP implements flow control and congestion control.
  • Run an example of a sliding window protocol between two points.
  • Explain how network congestion impacts the performance of TCP flows.
  • Analyze the performance of different protocols in a variety of settings.
  • Write socket programs for servers and clients using the socket API.

Prerequisites:
CS 2308 C++ and C Programming
CS 3358 Data Structures

Accommodations:
If you require any special accommodation(s), please make sure to let me know during the first two weeks of the semester.