CPE 400/600 Computer Communication Networks
Department of Computer Science & Engineering
UNR, fall 2013
Course Information -
ABET Criteria -
| Class hours
|| Tuesday & Thursday, 11:00am - 12:15pm, DMS 104
|| Dr. Mehmet Gunes
|| mgunes (at) cse.unr.edu
|| (775) 784 - 4313
| Web page
|| SEM 238 (Scrugham Engineering-Mines)
| Office hours
|| Tuesday & Thursday 9:00 - 10:30 am or by appointment
ISO model, protocol layers, circuit/packet switching, sockets, reliable transport, congestion control, routing, addressing, switching, multiple access, error correction, coding, and digital modulation
This course is an introductory course on computer networks.
Using the Internet as a vehicle, this course introduces the underlying concepts and principles
of modern computer networks with emphasis on protocols, architectures, and implementation issues.
The main goal of this course is to understand layering in computer networks,
understand different protocol stacks (OSI and TCP/IP), understand functions and protocols
within a layer, understand how layers fit together and finally understand how the Internet works.
You may look at earlier courses from Fall 2008,
Fall 2011, and
Fall 2012 .
- Corequisite : CS 446.
- C/C++, Java or Python programming experience in UNIX-like environment.
This is a tentative list of topics, subject to modification and reorganization.
- Introduction to Computer Networks
- Network Concepts
- Network Security
- Web: HTTP
- File Transfer: FTP
- Electronic Mail: SMTP
- Domain Name Service: DNS
- Peer-to-Peer Applications
- Socket Programming
- Multiplexing and Demultiplexing
- Connectionless Transport: UDP
- Reliable Data Transfer
- Connection-Oriented Transport: TCP
- Flow/Congestion Control
- Virtual Circuit and Datagram Networks
- Internet Protocol: IP
- Routing Algorithms
- Routing Protocols: RIP, OSPF, BGP
- Broadcast and Multicast
- Error-Detection and -Correction Techniques: CRC
- Multiple Access: MAC, ARP
- Link-Layer Switches: VLAN
- Link Virtualization: MPLS
- Data and Signals
- Digital and Analog Data
- Bandwidth Utilization
- Except this web page, all course materials will be posted at the WebCampus.
- The organization of the course may evolve as the semester progresses.
I'm quite confident that it will be challenging but a fun course.
- Presentation slides are available on the class web page.
However, they might be modified before/after the lectures.
- Unless instructed otherwise, use of electronic devices including laptops are not allowed during lectures.
- Class participation in terms of asking questions is highly encouraged.
Please do not be afraid to ask questions no matter how simple you might think the answer could be.
This type of interaction helps improve the effectiveness of the class and breaks the monotony.
- Students are encouraged to bring articles, demos, web pages, news events, etc.
that are relevant to course topics to the attention of the instructor.
The success of the course depends on everyone in the class engaging the material
and bringing energy, enthusiasm, and intellect to class activities.
- Regular attendance is highly recommended. If you miss a class, you are responsible for all material covered or assigned in class.
You should arrive on time and be prepared to discuss the session's topic.
The underlying notion of the class is interaction, not passivity.
- Extra credit will be offered to the undergraduate students who attend the departmental colloquia (an extra point for two colloquium attendance). You will be reminded in class about upcoming talks but you should also check the colloquia page on a regular basis (http://www.cse.unr.edu/get-involved/colloquia/).
- There will be
26 12 reading assignments that you have to complete before each class. The lowest graded four two (numbers might change) will not affect your overall grade.
You must review lecture slides before each class and the questions in the assignment will be designed to affirm your preparedness for the upcoming lecture.
- There will be six in-class quizzes on Thursdays (to replace reading assignments). The lowest graded one will not affect your overall grade. These quizzes will be closed book/notes and extremely time-constrained, i.e., 5-10 mins. Questions in these quizzes will be designed to give you an opportunity to test and affirm your knowledge of the course content.
- There will be nine lab assignments. The lowest graded one will not affect your overall grade.
Providing hands on experience, the assignments will provide in depth analysis of some protocols.
You will use Wireshark packet sniffing tool to analyze communication protocols. Late assignments will be penalized by 20% per day, except holidays. Assignments will be accepted only through WebCampus.
- There will be a multi-part programming project. It will require turning in code that compiles and runs properly and a report documenting the code.
Late submissions will be penalized by 10% per day, except holidays. Note that knowledge of C/C++, Java or Python is required for the programming project.
In the project, there will be bonus components.
- There will be one midterm exam and one final exam. You should plan on taking the exams on the scheduled times.
No late/early exams unless in case of an emergency situation such as health emergency or similar un-avoid-able situations and you need to provide convincing documentation for it.
The exams will be closed books and closed notes but a single page cheat sheet (one side, letter) is allowed. No calculators (unless otherwise stated)
and no other electronic devices such as laptops, cell phones, beepers, etc. should be used during the exam.
- There will be extra questions in assignments and exams for CPE 600 students.
- From time to time, we may discuss vulnerabilities in networking systems.
This is not intended as an invitation to go exploit those vulnerabilities!
It is important that we be able to discuss real-world experience candidly;
everyone is expected to behave responsibly.
- Assignments and exams must be prepared strictly individually.
You are welcome to discuss the problems or solution strategies with your class mates but the resulting work should be your own.
Copying from each other or from other sources is considered as cheating.
Any form of cheating such as plagiarism or ghostwriting will incur a severe penalty, usually failure in the course.
Please refer to the UNR policy on Academic Standards.
- Surreptitious or covert video-taping of class or unauthorized audio recording of class is prohibited by law and by Board of Regents policy. This class may be videotaped or audio recorded only with the written permission of the instructor. In order to accommodate students with disabilities, some students may be given permission to record class lectures and discussions. Therefore, students should understand that their comments during class may be recorded.
- If you have a disability for which you will need to request accommodations, please contact the instructor or someone at the
Disability Resource Center (Thompson Student Services - 101) as soon as possible.
- Academic Success Services: Your student fees cover usage of the Math Center (784-4433 or www.unr.edu/mathcenter), Tutoring Center (784-6801 or www.unr.edu/tutoring), and University Writing Center (784-6030 orwww.unr.edu/writing_center. These centers support your classroom learning; it is your responsibility to take advantage of their services. Keep in mind that seeking help outside of class is the sign of a responsible and successful student.
Both grading policy and scale are subject to change.
Failure in either the assignments or the tests will result in failure in the course.
5 - Reading Assignments (10 of 12)
5 - Quiz (5 of 6)
21 - Programming Project (3 phase)
24 - Network Labs (8 of 9)
22 - Midterm Exam
23 - Final Exam
Grading Scale (Tentative)
A : 87 - 100
B : 75 - 86
C : 63 - 74
D : 51 - 62
F : 0 - 50 (or caught cheating)
Important Note: You will have one week to appeal for your grades after the graded assignments/tests are returned.
So, please keep this in mind if you think that there is a problem/issue with the grading of your work.
The course outcomes are skills and abilities students should have acquired by the end of the course.
These outcomes are defined in terms of the ABET Accreditation
Criterion 3 Program Outcomes which are relevant to this course.
Our graduates will have achieved:
- (2) an ability to design and conduct experiments, as well as to analyze and interpret data.
- (3) an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs, within realistic constraints specific to the field.
- (5) an ability to analyze a problem, and identify, formulate and use the appropriate computing and engineering requirements for obtaining its solution.
- (9) a recognition of the need for, and an ability to engage in continuing professional development and life-long learning.
- (11) an ability to use current techniques, skills, and tools necessary for computing and engineering practice.
- (12) an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
This is a tentative schedule including the exam dates.
It is subject to readjustment depending on the time we actually spend in class covering the topics.
Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.
|| Assignments & Notes
| Tue, Aug 27
|| Lecture #1: Introduction (1) - Internet architecture
|| Kurose&Ross ch. 1.1, 1.2
| Thu, Aug 29
|| Lecture #2: Introduction (2) - Network Core
|| Kurose&Ross ch. 1.3
| Tue, Sep 3
|| Lecture #3: Introduction (3) - Network Concepts
|| Kurose&Ross ch. 1.4, 1.5 - Lab 1: Wireshark
| Thu, Sep 5
|| Lecture #4: Introduction (4) - Network Security
|| Kurose&Ross ch. 1.6, 1.7
| Tue, Sep 10
|| Lecture #5: Application Layer (1) - Web, HTTP
|| Kurose&Ross 2.1, 2.2 - Lab 1 due - Lab 2: HTTP
| Thu, Sep 12
|| Lecture #6: Application Layer (2) - HTTP, FTP
|| Kurose&Ross ch. 2.2, 2.3
| Tue, Sep 17
|| Lecture #7: Application Layer (3) - e-mail, DNS
|| Kurose&Ross ch. 2.4, 2.5 - Lab 2 due - Lab 3: DNS
| Thu, Sep 19
|| Lecture #8: Application Layer (4) - Peer-to-Peer
|| Kurose&Ross ch. 2.6
| Tue, Sep 24
|| Lecture #9: Application Layer (5) - Socket Programming
|| Kurose&Ross ch. 2.7, 2.8 - Lab 3 due - Project 1
| Thu, Sep 26
|| Lecture #10: Transport Layer (1) - Multiplexing, UDP
|| Kurose&Ross ch. 3.1, 3.2, 3.3 - Lab 4: UDP
| Tue, Oct 1
|| Lecture #11: Transport Layer (2) - Reliable data transfer
|| Kurose&Ross ch. 3.4
| Thu, Oct 3
|| Lecture #12: Transport Layer (3) - TCP
|| Kurose&Ross ch. 3.5 - Lab 4 due
| Tue, Oct 8
|| Lecture #13: Transport Layer (4) - Flow Control and Connection Management
|| Kurose&Ross ch. 3.6
| Thu, Oct 10
|| Lecture #14: Transport Layer (5) - Congestion Control
|| Kurose&Ross ch. 3.7, 3.8 - Lab 5: TCP
| Tue, Oct 15
|| Midterm Exam
| Thu, Oct 17
|| Lecture #15: Network Layer (1) - Intro
|| Kurose&Ross ch. 4.1, 4.2
| Tue, Oct 22
|| Lecture #16: Network Layer (2) - Routers
|| Kurose&Ross ch. 4.3 - Lab 5 due
| Thu, Oct 24
|| Lecture #17: Network Layer (3) - IP
|| Kurose&Ross ch. 4.4 - Project 1 due on Sunday - Project 2
| Tue, Oct 29
|| Lecture #18: Network Layer (4) - NAT and IPv6
|| Kurose&Ross ch. 4.4 - Lab 6: IP
| Thu, Oct 31
|| Lecture #19: Network Layer (5) - Routing Algorithms
|| Kurose&Ross ch. 4.5
| Tue, Nov 5
|| Lecture #20: Network Layer (6) - Routing Protocols
|| Kurose&Ross ch. 4.6 - Lab 6 due - Lab 7: ICMP
| Thu, Nov 7
|| Lecture #21: Network Layer (7) - BGP and Broadcast
|| Kurose&Ross ch. 4.7
| Tue, Nov 12
|| Lecture #22: Network Layer (8) - Multicast
|| Kurose&Ross ch. 4.7 - Lab 7 due
| Thu, Nov 14
|| Lecture #23: Link Layer (1) - Error Detection/Correction
|| Kurose&Ross ch. 5.1, 5.2
| Tue, Nov 19
|| Lecture #24: Link Layer (2) - MAC
|| Kurose&Ross ch. 5.3, 5.4 - Lab 8: DHCP
| Thu, Nov 21
|| Lecture #25: Link Layer (3) - ARP, Ethernet, Switches
|| Kurose&Ross ch. 5.5 - Project 2 due - Project 3
| Tue, Nov 26
|| Lecture #26: Link Layer (4) - VLANS, Virtualization, Data centers
|| Kurose&Ross ch. 5.6, 5.7 - Lab 8: DHCP due
| Thu, Nov 28
|| Thanksgiving (no class)
| Tue, Dec 3
|| Lecture #27: Physical Layer (1) - Data and Signals
|| Forouzan ch. 3 - Lab 9: Ethernet
| Thu, Dec 5
|| Lecture #28: Physical Layer (2) - Digital Signals
|| Forouzan ch. 3
| Tue, Dec 10
|| Lecture #29: Physical Layer (3) - Performance
|| Forouzan ch. 3 - Lab 9 due - Project 3 due
| Thu, Dec 12
|| Final Exam @ 8:00am (Exam covers post-midterm material.
However, you are expected to remember important pre-midterm concepts.)
Acknowledgements: Slides are modified from the original slides of the textbook by Prof. Jim Kurose and Keith Ross.
Announcements regarding the course will be posted on this web page
and also sent by e-mail to your UNR e-mail account.
Please daily check your UNR e-mail.
- Aug 10: A very useful website that animates protocols: http://www.visualland.net
- Dec 10: Review session on Dec 11 at 1pm at SEM 234.
Course Information -
ABET Criteria -
Last updated on Dec 10, 2013.