Yang Xiao Home

CS 371 (Spring 2023)
Introduction to Computer Networking

Course Information

Instructor: Yang Xiao (contact: xiaoy[AT]uky.edu)
Meeting Times: M/W/F 11:00 AM – 11:50 AM Eastern Time (location: register course to know)
Office Hour: Hardymon Rm 233, Fri 1:00 PM – 2:30 PM Eastern Time and by appointment
TA: Alex Barrera (contact: alexander.barrera[AT]uky.edu), Office Hour: Engineering Annex Rm 205, M/W/F 10:00 AM – 11:00 AM

Course Description

Introduction to the principles and concepts of the Internet; data communications and digital channel characteristics; networking applications and protocols, client-server paradigm and network programming; reliable data transfer, end-to-end transport; addressing, forwarding and routing, datagram networks; media access control, data link control; selected topics from cloud computing, network security and network management. Concepts are combined with programming and other hands-on assignments to enhance the learning of these topics.

Course Schedule (Tentative)

Week Agenda ([R]: Required Reading, [S]: Suggested Reading) Notes
1
  • 01/09: Lec1: Course Introduction.
  • 01/11: Lec2: Types of Networks.   ([S] A Brief History of NSF and the Internet)
  • 01/13: Lec3: Protocols and Reference Models.   ([R] textbook Ch. 1.5, 1.6)
  •  
    2
  • 01/16: No class – Martin Luther King Day holiday
  • 01/18: Lec4: Encapsulation, Standardization, Social Issues.   ([R] textbook Ch. 1.7; [S] Net neutrality - Wikipedia)
  • 01/20: Lec5: Starting physical layer - transmission media, foundations of data communication.   ([R] textbook Ch. 2.2, 2.4.1-2.4.3)
  •  
    3
  • 01/23: Lec6: Foundations (cont.), switching, delay and throughput.   ([R] textbook Ch. 2.4)
  • 01/25: Lec7: Digital modulation and multiplexing.   ([R] textbook Ch. 2.4.3, 2.4.4)
  • 01/27: Lec8: Starting data link layer - framing, error detection and correction   ([R] textbook Ch. 3.1, 3.2)
  • HW1 due 01/26
    4
  • 01/30: Lec9: Elementary data link layer protocols   ([R] textbook Ch. 3.3, 3.4)
  • 02/01: Lec10: Starting MAC sublayer, multiple access protocols   ([R] textbook Ch. 4.1, 4.2; [S] ALOHAnet - Wikipedia)
  • 02/03: Lec11: Ethernet and 802.3   ([R] textbook Ch. 4.3)
  • HW2 due 02/03
    5
  • 02/06: Lec12: Wireless LAN and 802.11   ([R] textbook Ch. 4.4)
  • 02/08: Lec13: Data link layer switching, QoS, MISC.
  • 02/10: Lec14: Socket programming basics   ([R] textbook Ch. 6.1)
  • HW3 due 02/10
    6
  • 02/13: Lec15: Starting Network layer - Design Issues   ([R] textbook Ch. 5.1)
  • 02/15: Lec16: Routing   ([R] textbook Ch. 5.2)
  • 02/17: Lec17: Traffic Management & QoS   ([R] textbook Ch. 5.3, 5.4)
  • 7
  • 02/20: PA1 Walk-through
  • 02/22: Lec18: Internetworking, Internet Protocol   ([R] textbook Ch. 5.5, 5.7.1)
  • 02/24: Lec19: IPv4, IPv6, Internet Control Protocols   ([R] textbook Ch. 5.7.2, 5.7.3, 5.7.4)
  • HW4 due 02/19
    8
  • 02/27: Lec20: OSPF, BGP   ([R] textbook Ch. 5.7.6, 5.7.7)
  • 03/01: Lec21: Starting Transport Layer - Elements   ([R] textbook Ch. 6.2, 6.3)
  • 03/03: Lec22: Midterm Review
  • PA1 due 03/03
    9
  • 03/06: Homework Problems Review
  • 03/08: Midterm Exam (Session 1: 9:00am-9:50am online, Session 2: 11:00am-11:50am in class)
  • 03/10: Lec23: UDP   ([R] textbook Ch. 6.4, 6.5.1-6.5.9)
  • HW5 due 03/05 11PM
    10
  • 03/13: No class – Spring Break
  • 03/15: No class – Spring Break
  • 03/17: No class – Spring Break
  •  
    11
  • 03/20: Lec24: TCP and TCP Congestion Control   ([R] textbook Ch. 6.5.10)
  • 03/22: Lec25: Transport Protocol Performance Issues
  • 03/24: Lec26: Starting Application Layer, Domain Name System   ([R] textbook Ch. 7.1)
  • 12
  • 03/27: Lec27: Email   ([R] textbook Ch. 7.2, 8.11)
  • 03/29: Lec28: The World Wide Web   ([R] textbook Ch. 7.3)
  • 03/31: Lec29: Streaming Audio and Video   ([R] textbook Ch. 7.4)
  • HW6 due 03/31
    13
  • 04/03: Lec30: Content Delivery - CDN and P2P Network   ([R] textbook Ch. 7.5)
  • 04/05: Lec31: Starting Network Security   ([R] textbook Ch. 8.1, 8.2)
  • 04/07: Lec32: Ingradients of an Attack; Firewalls and Intrusion Detection Systems   ([R] textbook Ch. 8.2, 8.3)
  • 14
  • 04/10: Lec33: Cryptography and Ciphers   ([R] textbook Ch. 8.4)
  • 04/12: Lec34: Symmetric-key and Public-key Encryption Algorithms   ([R] textbook Ch. 8.5, 8.6)
  • 04/14: Lec35: Digital Signature   ([R] textbook Ch. 8.7, 8.8)
  • PA2 due 04/14
    15
  • 04/17: Lec36: Authentication   ([R] textbook Ch. 8.9)
  • 04/19: Lec37: Communication Security (IPsec, VPN), Web Security and TLS   ([R] textbook Ch. 8.10, 12)
  • 04/21: Lec38: Bitcoin and Blockchain System
  • PA3 due 04/22
    16
  • 04/24: (Prep Days) Homework Problems Review (with HW8 2nd attempt)
  • 04/26: (Prep Days) Final Exam Review
  • 04/28: No class.
  •  
    17
  • 05/01 (Mon): Final exam, 10:30 AM - 12:30 PM, in classroom
  •  

    Learning Outcomes

    After completing CS 371, you will be able to:

    ◾  Explain how information is encoded for transmission over digital channels, and to explain the concepts of channel capacity (``bandwidth") and latency.
    ◾  Explain how to implement reliable data transfer over an unreliable channel.
    ◾  Explain how packets are delivered in datagram networks.
    ◾  Explain the basics of operation of important Internet protocols including IP, TCP, DNS, SMTP and HTTP protocols.
    ◾  Design, code, and test simple client and server programs that communicate via a network.
    ◾  Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline. (ABET SO2)
    ◾  Understand the design and development principles in the construction of software systems of varying complexity.

    Course Activities and Grading

    (A more detailed syllabus and rubrics will be released in Canvas)

    Class attendance (5%): Students are required to attend every class. The attendance points will be given if a student attended more than 65% of the classes and did not miss more than a consecutive month. Excused absences (see Policies) will not be counted.

    Homework (20%): There will be seven home assignments spread out during the semester. Homework must be individual effort.

    Project (30%): There will be one group project that takes the form of three programming assignments (PAs) with deadlines spread out during the semester. The project is done by groups of up to three students. Groups need to be formed no later than 1/30/2023. The project is designed to help students with implementing network protocols or important network concepts and analyze their performance. PA1 and PA2 will be self-contained and involve writing small pieces of code with provided testing cases. PA3 will be more open-ended in realizing a set of requirements.

    ◾  For each PA: please submit source code and a short report (self-testing results, result explanation, and each group member’s contribution).
    ◾  For PA3 only: the report should additionally contain the objectives, design, implementation steps towards realizing the objectives, and conclusions. A specific format will be provided. Bonus points will be given for outstanding merits and results.

    Exams (45%): There will be a midterm exam and a final exam, both will take place in class. For the midterm exam, students with excused absences (see Policies) must notify the instructor in advance with a valid proof and may take the exam through Canvas during the same exam time frame.

    Grading Scale: A: 90 – 100%, B: 76 – 89%, C: 65 – 75%, D: 50 – 64%, E: 0 – 49%

    Policies

    Academic Integreity: Please strictly follow the Academic Offenses Rules (plagiarism, cheating, and falsification or misuse of academic records). Also keep in mind that any copyrighted materials (e.g., images and other media), published contents (e.g., academic papers, books, web sources, online tools) used in your submissions should be properly cited. Help from other people should be properly acknowledged.

    Late Policy: Only submissions through Canvas before the deadline will not receive any penalty. Late submissions will be subject to a 25% grade penalty if you submit within 12 hours after the deadline (which will be auto-tagged “late” in Canvas). It is possible to email such late submissions (and subject to the same 25% grade penalty) to the TA if the student cannot access Canvas for any reason. After this 12-hour period, no late submission will be accepted, and the assignment will receive a grade of zero. Exceptions to above rule may be requested providing appropriate documentation (e.g., medical or other excused cases per the University Senate Rules) which will be considered at the discretion of the instructor. Do not submit assignments via email to the instructor, assignments submitted in this way will receive a grade of zero.

    Disability and Special Accommodation: Please let the instructor know of any needed accommodation in the first two weeks. Please also see Academic Accommodation for further assistance.

    Academic Policy Statements, Diversity, Equity, and Inclusion, Resources Available to Students

    Learning/Research Resources

    UK Libraries, Free Tutoring and Coaching at UK, Google Scholar, ACM Digital Library, IEEE Xplore, dblp: computer science bibliography