ECE 438 - Communication Networks
Layered architectures and the OSI Reference Model; design issues and protocols in the transport, network, and data link layers; architectures and control algorithms of local-area, point-to- point, and satellite networks; standards in networks access protocols; models of network interconnection; overview of networking and communication software.
Same as CS 438.
- Networks Overview
- Application Layer
- Transport Layer
- Network Layer
- Link Layer
- Wireless Networks
- Network Security
Detailed Description and Outline
- Overview: Concepts of network architecture; network edge and core; performance metrics; protocol layers; and Internet history.
- Application Layer: Application layer principles; Web & HTTP; Email; DNS; P2P; Video Streaming
- Transport Layer: Internet addressing and Internet protocols; socket interface; TCP/IP protocols; client-server models; TCP Congestion Control.
- Network Layer: Data plane and control plane; routers; IP protocol; Routing Algorithms: Link state and distance vector; Intra-AS and Inter-AS routing: SDNs; Networking management.
- Link Layer: Framing; error detection and correction; Multiple access protocols; LANs: Addressing, ARP, Ethernet, Switches, Virtual LANs; MPLS; Data Center Networks.
- Wireless Networks: wireless link properties; wireless MAC; 802.11 wireless LANs; cellular networks; mobility.
- Network Security: principles of network security; cryptography; authentication; message integrity; SSL/TLS protocols;
Computer Networking (A Top-Down Approach Featuring the Internet): J. F. Kurose and D. W. Ross, 7th edition, Addison-Wesley.
Computer Networks: A Systems Approach, by Peterson and Davie, 5th Ed.
The course aims to provide advanced undergraduate and graduate students in Computer Science and Computer Engineering with the basic background, and design and evaluation skills in telecommunication and communication networks. The material taught will form the foundation for more advanced courses in computer networks. In each objective below, the number(s) in parenthesis represents the element(s) of ABET Criterion 3 met by the objective.
A. After the 10th lecture hour, the students should be able to do the following:
1. Understand different multi-layer protocol stacks, their functionalities, their relationship to each other, their limitations, and their design issues. (1)
2. Learn concepts like RTT, Throughput, Bandwidth delay product, latency. (1)
3. Understand different versions of the HTTP protocol and learn to compute the number of RTTs required to perform page loads. (1)
4. Understand the domain name system on the Internet, the design of a domain name server, and Unix networking commands related to name service (resolver, name daemon, dnslookup, traceroute). (1)
5. Learn the electronic mail protocols STMP, POP3, IMAP. (1)
6. Understand the difference between P2P and client-server architecture, compute file distribution time, understand BitTorrent protocol and distributed hash tables (DHT). (1)
7. Learn video streaming over the internet using DASH protocol and CDNs. (1)
8. Learn the socket interface on Unix, the client-server model, and TCP/IP networking commands on Unix. (1)
B. After the 20th lecture hour, the student should be able to do all of the items listed in Part A plus the following:
10. Learn the UDP protocol and the way that ports are allocated in UDP. (1)
11. Learn the TCP protocol, the TCP fragment header, the adaptive retransmission algorithm, acknowledgment ambiguities, Karn's algorithm, Jacobson's algorithm, congestion avoidance, fast retransmit, fast recovery, and silly window syndromes. (1)
13. Understand various window protocols (stop and wait, selective repeat, and go-back N), and their performance analysis. (1)
14. Understand congestion prevention and avoidance strategies, leaky bucket protocols, fair queuing, jitter control, and issues in multicasting. (1)
C. After the 30th hour, the students should be able to do all of the items listed in Parts A and B plus the following:
17. Learn the format and functionalities of IP datagrams, and understand the concept of IP fragmentation. (1)
18. Understand the four classes of Internet IPV4 addressing, their limitations, and their extensions to IPV6. (1)
19. Understand routing algorithms on the Internet, the construction of a routing table, and the concepts of subnetting, proxy ARP gateways, NATs, and transparent gateways. (1)
20. Apply the concepts learned on an existing local area network to find out how routing is performed and the routes that messages take. Learn the use of other Unix network management commands (netstat, tcpdump, traceroute, ifconfig). (1, 5, 6)
21. Apply concepts learned to write a program that runs Dijkstra's shortest-path algorithm and Bellman-Ford distance vector algorithm to find the shortest paths in a graph. (1)
22. Understand the differences between link-state routing and distance-vector routing, and the protocol used in the Internet for routing. (1)
24. Apply the concepts learned to find the topology, hardware addresses, and IP addresses of a local area network on campus. Learn the use of Unix network management commands (arp and ping). (1, 5, 6)
25. Understand the difference between the control plane and data plane and the importance of software-defined networks. (1)
D. After the 45th hour, the students should be able to do all of the items listed in Parts A, B, and C, plus the following:
26. Understand the logical link layer protocol, error detection and correction. (1)
27. Understand the basic Ethernet technologies, Ethernet addressing, hardware interfaces, their connections to form local area networks, bridges, learning bridges, repeaters, switched Ethernets, routers, and gateways. (1)
28. Understand the ARP and RARP protocols. (1)
29. Learn multiple access protocols: FDMA, TDMA, CSMA, Aloha, Slotted Aloha, CDMA, Token Ring. (1)
30. Learn various IEEE 802 standard protocols (802.2, 802.3, 801.11, 802.15, 802.16, and 802.20). (1))
32. Understand the major differences between wireless and wired networks. (1)
33. Learn various WiFi protocols (802.11a,b,g,n,ac). (1)
34. Learn various cellular protocols: 2G/GSM, 3G, 4G/LTE, 5G and how base stations perform handoff and deal with mobility. (1)
35. Learn concepts of network security: confidentiality, authentication, message integrity, access & availability, eavesdropping, hijacking, denial of service, RSA, DES, AED, TLS. (1)
36. Apply the concepts learned to design a comprehensive program that performs flow control, error detection, error recovery, connection setup, and connection tear-down across an unreliable network. (1, 2, 3, 5, 6, 7)