Teaching

Networks and their Applications 

CS:3640 | Spring 2016
Class meeting time and location: Monday & Wednesday 8:00AM - 9:15AM  118 MacLean Hall (MLH)

Instructor: Behnam Dezfouli
Email: behnam-dezfouli [AT] uiowa [DOT] edu
Lab: B1C, MacLean Hall (MLH)
Office Hours: 101K, MLH
Office: 201K, MLH

Course Office Hours: Monday 10:00AM - 11:30AM | Other Days: By Appointment

TA: Avinash Talreja 
Email: avinash-talreja [AT] uiowa [DOT] edu
Office Hours: Monday 9:30AM - 11:00AM and Friday 2:00PM - 3:30PM 
Office Location: 201N, MacLean Hall (MLH)

Main Text Book:
Computer Networking: A Top-Down Approach | James F. Kurose, Keith W. Ross.—6th ed.
Find the book in: Amazon | Pearsons

Supplementary sources:
• Computer Networks, 5th Edition - By Andrew S. Tanenbaum, David J. Wetherall.
• Foundations of Modern Networking: SDN, NFV, QoE, IoT, and Cloud 1st Edition - by William Stallings (Author)
• Wireless Communication Networks and Systems 1st Edition - by Cory Beard (Author), William Stallings (Author)
• How Linux Works: What Every Superuser Should Know Second Edition - by Brian Ward

Student Evaluation:
• 5% Class Attendance
• 45% Assignments
• 20% Midterm Exam (Date: TBA)
• 30% Final Exam (Date: TBA)

Assignments:
Assignments include both theoretical and practical problems.
Programming problems can be implemented using Python, C++, or Java.
Students may be required to work on projects individually or collaboratively.
Assignments are posted through the ICON system.
Each assignment should be submitted through ICON before its deadline.
Late submissions:
• 15% of the actual score will be taken off for assignments submitted between 0 and 24 hours after the deadline.
• 25% of the actual score will be taken off for assignments submitted between 24 and 48 hours after the deadline.
• No assignments will be accepted after that.

Exams:
Midterm: The midterm will be a closed-book exam covering all material up to that point in the course.
Final: The final exam will be a closed-book exam, covering material from the whole semester, with emphasis on the second half of the course.

Class discussion: Learning the underlying problems, basic ideas, and concepts of computer networking requires critical thinking and interaction between the instructor and students. I highly encourage the students to challenge existing ideas and present their own solutions. Up to 10 extra credit will be given to those students that regularly participate in class discussions.

Course Objectives: As a result of successfully completing this course, students will:
• Become familiar with the organization of networking protocols within the layered architecture (OSI, TCP/IP).
• Understand the client/server model and key application layer protocols such as HTTP.
• Learn socket programming.
• Understand the concepts of reliable data transfer and how TCP implements these concepts.
• Know the principles of congestion control and trade-offs in fairness and efficiency.
• Learn the principles of routing, forwarding, and Internet’s IP protocol.
• Understand the basics of error detection including parity, checksums, and CRC.
• Learn the basic concepts of wireless networking and mobility.
• Learn the importance and mechanisms of network management.

The outline of this course is as follows:
Computer Networks and the Internet 1
1.1 What Is the Internet? 2
1.2 The Network Edge 9
1.3 The Network Core 22
1.4 Delay, Loss, and Throughput in Packet-Switched Networks 35
1.5 Protocol Layers and Their Service Models 47
1.6 Networks Under Attack 55

Application Layer 83
2.1 Principles of Network Applications 84
2.2 The Web and HTTP 98
2.3 File Transfer: FTP 116
2.4 Electronic Mail in the Internet 118
2.5 DNS–The Internet’s Directory Service 130
2.7 Socket Programming: Creating Network Applications 156

Transport Layer 185
3.1 Introduction and Transport-Layer Services 186
3.2 Multiplexing and Demultiplexing 191
3.3 Connectionless Transport: UDP 198
3.4 Principles of Reliable Data Transfer 204
3.5 Connection-Oriented Transport: TCP 230
3.6 Principles of Congestion Control 259
3.7 TCP Congestion Control 269

The Network Layer 305
4.1 Introduction 306
4.2 Virtual Circuit and Datagram Networks 313
4.3 What’s Inside a Router? 320
4.4 The Internet Protocol (IP): Forwarding and Addressing in the Internet 331
4.5 Routing Algorithms 363
4.6 Routing in the Internet 383
4.7 Broadcast and Multicast Routing 399

The Link Layer: Links, Access Networks, and LANs 433
5.1 Introduction to the Link Layer 434
5.2 Error-Detection and -Correction Techniques 438
5.3 Multiple Access Links and Protocols 445
5.4 Switched Local Area Networks 461
5.5 Link Virtualization: A Network as a Link Layer 486
5.6 Data Center Networking 490
5.7 Retrospective: A Day in the Life of a Web Page Request 495

Wireless and Mobile Networks 513
6.1 Introduction 514
6.2 Wireless Links and Network Characteristics 519
6.3 WiFi: 802.11 Wireless LANs 526
6.4 Cellular Internet Access 546
6.5 Mobility Management: Principles 555
6.6 Mobile IP 564
6.7 Managing Mobility in Cellular Networks 570
6.8 Wireless and Mobility: Impact on Higher-Layer Protocols 575

Network Management 755
9.1 What Is Network Management? 756
9.2 The Infrastructure for Network Management 760
9.3 The Internet-Standard Management Framework 764


Administrative Home
The College of Liberal Arts and Sciences is the administrative home of this course and governs matters such as the add/drop deadlines, the second-grade-only option, and other related issues. Different colleges may have different policies. Questions may be addressed to 120 Schaeffer Hall, or see the CLAS Academic Policies Handbook at http://clas.uiowa.edu/students/handbook.

Electronic Communication
University policy specifies that students are responsible for all official correspondences sent to their University of Iowa e-mail address (@uiowa.edu). Faculty and students should use this account for correspondences (Operations Manual, III.15.2, k.11).

Accommodations for Disabilities
A student seeking academic accommodations should first register with Student Disability Services and then meet with the course instructor privately in the instructor's office to make particular arrangements. See http://sds.studentlife.uiowa.edu/ for more information.

Academic Honesty
All CLAS students or students taking classes offered by CLAS have, in essence, agreed to the College's Code of Academic Honesty: "I pledge to do my own academic work and to excel to the best of my abilities, upholding the IOWA Challenge. I promise not to lie about my academic work, to cheat, or to steal the words or ideas of others; nor will I help fellow students to violate the Code of Academic Honesty." Any student committing academic misconduct is reported to the College and placed on disciplinary probation or may be suspended or expelled (CLAS Academic Policies Handbook).

CLAS Final Examination Policies
The final examination schedule for each class is announced by the Registrar generally by the fifth week of classes. Final exams are offered only during the official final examination period. No exams of any kind are allowed during the last week of classes. All students should plan on being at the UI through the final examination period. Once the Registrar has announced the date, time, and location of each final exam, the complete schedule will be published on the Registrar's web site and will be shared with instructors and students. It is the student's responsibility to know the date, time, and place of a final exam.

Making a Suggestion or a Complaint
Students with a suggestion or complaint should first visit with the instructor (and the course supervisor), and then with the departmental DEO. Complaints must be made within six months of the incident (CLAS Academic Policies Handbook).

Understanding Sexual Harassment
Sexual harassment subverts the mission of the University and threatens the well-being of students, faculty, and staff. All members of the UI community have a responsibility to uphold this mission and to contribute to a safe environment that enhances learning. Incidents of sexual harassment should be reported immediately. See the UI Comprehensive Guide on Sexual Harassment for assistance, definitions, and the full University policy.

Reacting Safely to Severe Weather
In severe weather, class members should seek appropriate shelter immediately, leaving the classroom if necessary. The class will continue if possible when the event is over. For more information on Hawk Alert and the siren warning system, visit the Department of Public Safety website.