CPE 400/600 Computer Communication Networks
Department of Computer Science & Engineering
UNR, fall 2012
Course Information -
ABET Criteria -
| Class hours
|| Monday & Wednesday, 11:00am - 12:15pm, OSN 203
|| Dr. Mehmet Gunes
|| mgunes (at) cse (dot) unr (dot) edu
|| (775) 784 - 4313
| Web page
|| SEM 238 (Scrugham Engineering-Mines)
| Office hours
|| Monday & Wednesday 2:30 - 4:00 pm 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.
- 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 Edge and Core
- Delay, Loss, and Throughput
- Protocol Layers and Service Models
- 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
- 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.
Blog page at http://UNRcpe400.blogspot.com will be actively utilized, as well.
Students are encouraged to post articles, demos, web pages, and news events that are relevant to course.
- 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 will be available on the class web page.
I will try to put them up before each class meeting but no guarantees on that.
- 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.
- Unless instructed otherwise, use of electronic devices including laptops are not allowed during lectures.
- There will be three programming assignments. It will require turning in code that compiles and runs properly and a report documenting the code.
Late assignments will be penalized by 10% per day, except holidays. Note that knowledge of C/C++, Java or Python is required for the programming assignments.
As a bonus, you may submit up to two additional programming assingments from the book (one before the midterm exam and another before the prep day).
In each assignment, there will be bonus components.
- There will be seven 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.
- There will be four in-class quizzes. The lowest graded one will not affect your overall grade.
Exact date for some of these quizzes will not be exposed beforehand.
These quizzes will be open book/notes and extremely time-constrained, i.e., 10-15 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 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 (double 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.
- 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.
- 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.
- 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 maybe videotaped or audio recorded only with the written permission of the instructor.
In order to accommodate students with disabilities, some students may have been 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-6030 or www.unr.edu/tutoring), and
University Writing Center (784-6801 or http://www.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.
9 - Quizzes (3 of 4)
15 - Programming Assignments (3)
30 - Network Labs (6 of 7)
46 - Exams (2)
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
| Mon, Aug 27
|| Lecture #1: Introduction (1) - Internet architecture
|| Kurose&Ross ch. 1.1, 1.2
| Wed, Aug 29
|| Lecture #2: Introduction (2) - Networking Concepts
|| Kurose&Ross ch. 1.3, 1.4
| Mon, Sep 3
|| Labor day (no class)
| Wed, Sep 5
|| Lecture #3: Introduction (3) - Protocols
|| Kurose&Ross ch. 1.5
| Mon, Sep 10
|| Lecture #4: Introduction (4) - Network Security
|| Kurose&Ross ch. 1.6, 1.7
| Wed, Sep 12
|| Lecture #5: Application Layer (1) - Web, HTTP
|| Kurose&Ross 2.1, 2.2
Lab 1: HTTP
| Mon, Sep 17
|| Lecture #6: Application Layer (2) - FTP, e-mail
|| Kurose&Ross ch. 2.3, 2.4
| Wed, Sep 19
|| Lecture #7: Application Layer (3) - DNS
|| Kurose&Ross ch. 2.5
Lab 2: DNS - Lab 1 due
| Mon, Sep 24
|| Lecture #8: Application Layer (4) - Peer-to-Peer, Socket Programming
|| Kurose&Ross ch. 2.6, 2.7, 2.8
Progr.1: Mail client
| Wed, Sep 26
|| Lecture #9: Transport Layer (1) - Multiplexing, UDP
|| Kurose&Ross ch. 3.1, 3.2, 3.3
Lab 3: UDP - Lab 2 due
| Mon, Oct 1
|| Lecture #10: Transport Layer (2) - Reliable data transfer
|| Kurose&Ross ch. 3.4
| Wed, Oct 3
|| Lecture #11: Transport Layer (3) - TCP
|| Kurose&Ross ch. 3.5
Lab 3 due
| Mon, Oct 8
|| Lecture #12: Transport Layer (4) - Flow/Congestion Control
|| Kurose&Ross ch. 3.6
| Wed, Oct 10
|| Lecture #13: Transport Layer (5) - TCP Congestion Control
|| Kurose&Ross ch. 3.7, 3.8
Lab 4: TCP
| Mon, Oct 15
|| Lecture #14: Midterm review
| Wed, Oct 17
|| Midterm Exam
| Mon, Oct 22
|| Lecture #15: Network Layer (1) - Intro
|| Kurose&Ross ch. 4.1, 4.2
Lab 4 due
| Wed, Oct 24
|| Lecture #16: Network Layer (2) - Routers
|| Kurose&Ross ch. 4.3
| Mon, Oct 29
|| Lecture #17: Network Layer (3) - IP
|| Kurose&Ross ch. 4.4
Progr.2: Web Server
| Wed, Oct 31
|| Lecture #18: Network Layer (4) - NAT and IPv6
|| Kurose&Ross ch. 4.4
Lab 5: IP
| Mon, Nov 5
|| Lecture #19: Network Layer (5) - Routing Algorithms
|| Kurose&Ross ch. 4.5
| Wed, Nov 7
|| Lecture #20: Network Layer (6) - Routing Protocols
|| Kurose&Ross ch. 4.6 |
Lab 5 due at 11pm
| Mon, Nov 12
|| Veterans day (no class)
| Wed, Nov 14
|| Lecture #21: Network Layer (7) - Broadcast and Multicast
|| Kurose&Ross ch. 4.7
Prog.2 due - Progr.3: Network Probing
| Mon, Nov 19
|| Lecture #22: Link Layer (1) - Error Detection/Correction
|| Kurose&Ross ch. 5.1, 5.2
Lab 6: ICMP
| Wed, Nov 21
|| Activity: Routing Algorithms/Protocols
| Mon, Nov 26
|| Lecture #23: Link Layer (2) - MAC, ARP
|| Kurose&Ross ch. 5.3, 5.4
Lab 6 due
| Wed, Nov 28
|| Lecture #24: Link Layer (3) - Ethernet, Switches, VLANS
|| Kurose&Ross ch. 5.5
Lab 7: Ethernet
| Mon, Dec 3
|| Lecture #25: Link Layer (4) - Virtualization, Data centers
|| Kurose&Ross ch. 5.6, 5.7
| Wed, Dec 5
|| Lecture #26: Physical Layer (1) - Data and Signals
|| Forouzan ch. 3
| Mon, Dec 10
|| Lecture #27: Physical Layer (2) - Data and Signals
|| Forouzan ch. 3
Lab 7 due
| Wed, Dec 12
|| Prep day (no class)
| Wed, Dec 19
|| 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
- My office has been relocated to SEM 238.
- Final Exam review will be on Dec 10 after the class.
Course Information -
ABET Criteria -
Last updated on Dec 4, 2012.