ECE 438 - Communication Networks

Fall 2020

Communication NetworksCS438X336061ONL31530 - 1645 T R    Romit Roy Choudhury
Communication NetworksCS438X457772ONL41530 - 1645 T R    Romit Roy Choudhury
Communication NetworksECE438X336066ONL31530 - 1645 T R    Romit Roy Choudhury
Communication NetworksECE438X457774ONL41530 - 1645 T R    Romit Roy Choudhury
Communication NetworksECE438ZJU75607OLC31530 - 1645 T R    Romit Roy Choudhury

Official Description

Course Information: Same as CS 438. See CS 438.

Subject Area

Computer Engineering

Course Director


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.

Course Goals

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.

Instructional Objectives

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)

9. Write a program to communicate over the Internet based on the client-server model and using TCP and UDP communication primitives. (2, 5, 6, 7)

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)

12. Measure round-trip propagation delays on the Internet, and infer how the TCP protocol manages flow and resolves congestion. (5, 6)

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)

15. Apply the concepts learned to send messages to a name server and analyze the results returned. (5,6)

16. Apply the concepts learned to design a program implementing a network protocol to do handshaking, flow control, and error recovery. (2, 5, 6, 7)

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)

23. Design the optimal hierarchy in hierarchical routing. (1, 2)

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))

31. Analyze the performance of the various multi-access protocols. Apply the techniques learned to analyze the performance of new network protocols. (1, 5, 6)

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)

Last updated

5/13/2019by Haitham Al-Hassanieh