ECE 40863 - Introduction to Computer Networks
Note:
This course ran as ECE 46300 prior to Fall 2022. Compter Engineering students are allowed to count this course OR ECE 50863 Computer Network Systems toward CmpE Selective credits. If both are taken, one will count as a CmpE Selective and the other will count as a Complementary Elective.
Course Details
Lecture Hours: 3 Lab Hours: 1 Credits: 4
Counts as:
- EE Elective
- EE Adv Level Lab
- CMPE Selective
Normally Offered:
Each Fall
Campus/Online:
On-campus only
Requisites:
ECE 20875 and ECE 26400 and ECE 36800
Requisites by Topic:
Python for Data Science, Advanced C Programming, Data Structures
Catalog Description:
This course provides students with a proper grounding in the fundamentals of computer networking. The course will cover classic concepts such as Internet architecture, naming and addressing, routing, forwarding, reliability, flow control, congestion control, and socket programming. The later part of the course will introduce students to topics such as secure communication, router architecture, datacenter and software-defined network. The course will also provide students with a hands-on experience of building practical and efficient networked systems and applications through various programming labs.
Required Text(s):
None.
Recommended Text(s):
- Computer Networks: A systems Approach , 5th Edition , Peterson and Davie , Morgan Kaufmann Publishers , 2011 , ISBN No. 978-0123850591
Learning Outcomes:
- an understanding of the architectural principles underlying the Internet design. [1]
- an understanding of the design of various layers in the network stack, including datalink layer, network later, transport layer, and application layer. [1]
- a familiarity with secure communication, router architecture, software???defined network, and datacenter network. [1]
- an ability to implement distributed routing, forwarding, and reliability protocols. [1,2,5,6]
- an ability to implement networked applications using socket interface. [1,2,5,6]
Lecture Outline:
Lectures | Topic |
---|---|
3 | Introduction and Background |
2 | Internet Architecture Principles |
5 | Data Link Layer - MAC Addressing, ARP, CSMA/CD, Switched Ethernet, MAC Learning, STP |
11 | Network Layer - IP Addressing, NAT, IP Forwarding, Distance Vector, Link State, BGP, DNS |
9 | Transport Layer - UDP, TCP Reliability, TCP Flow Control, TCP Congestion Control |
4 | Application Layer -Web, HTTP, TLS, HTTPS, HTTP/2, QUIC, Socket Programming |
1 | Secure Communication |
4 | Router Architecture |
3 | Datacenter and Software-defined Network |
2 | Examinations |
Lab Outline:
Lab | Topic |
---|---|
1 | MAC Learning, Forwarding, and STP |
2 | Distributed Network Routing Protocols |
3 | Reliable Transport |
4 | HTTP Web Client and Server |
Engineering Design Content:
- Establishment of Objectives and Criteria
- Synthesis
- Analysis
- Testing
- Evaluation
Engineering Design Consideration(s):
- Political
- Social
Assessment Method:
Assessment will be based on programming projects and written examinations. There will be four programming labs. The first two labs (Lab 1 and Lab 2) will be in Python and the last two (Lab 3 and Lab 4) will be in C. Each lab will be 3 weeks long, and must be done in group of at most two students.