ECE 438
Communication Networks

Section Type Times Days Location Instructor
X3 LCD 1500 - 1620 M W   1015 ECE Building  Romit Roy Choudhury
X4 LCD 1500 - 1620 M W   1015 ECE Building  Romit Roy Choudhury
Web Page
Official Description Course Information: Same as CS 438. See CS 438.
Subject Area Computer Engineering
Course Prerequisites Credit in CS 241 or ECE 391
Credit in ECE 313 or STAT 410 or MATH 461 or MATH 463
Course Directors Steven Sam Lumetta
Detailed Description and Outline


  • Overview: Examples and concepts of layered architecture; overview of higher layer protocols.
  • Transport layer: Internet addressing and Internet protocols; socket interface; TCP/IP protocols; client-server models.
  • Network layer: Taxonomies; relevant parameters of network and traffic.
  • Performance evaluation and queuing theory.
  • Multiple-access methods for broadcast networks. Taxonomies of multiple access methods; contention methods; polling methods; reservation methods.
  • Switched networks. Architectures of switches: circuit, packet, and ATM switches; scheduling and admission control; routing, flow control, and congestion control.
  • Interconnections of networks.
  • Logical data link protocols.

Same as CS 438.


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 letter(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. (a)

2. 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. (a)

3. Understand the four classes of Internet IPV4 addressing, their limitations, and their extensions to IPV6. (a)

4. Understand the ARP and RARP protocols. (a)

5. 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). (a, b)

6. Understand routing algorithms on the Internet, the construction of a routing table, and the concepts of subnetting, proxy ARP gateways, and transparent gateways. (a)

7. 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). (a, b)

B. After the 20th lecture hour, the student should be able to do all of the items listed in Part A plus the following:

8. Learn the socket interface on Unix, the client-server model, and TCP/IP networking commands on Unix. (a)

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

10. Learn the format and functionalities of IP datagrams, and understand the concept of protocol layering. (a)

11. Learn the UDP protocol and the way that ports are allocated in UDP. (a)

12. 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. (a)

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

14. 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, nslookup, traceroute). (a)

15. Apply the concepts learn to send messages to a name server and analyze the results returned. (b)

C. After the 32nd hour, the students should be able to do all of the items listed in Parts A and B plus the following:

16. Understand the logical link layer protocol, error detection and correction, various window protocols (stop and wait, selective repeat, and go-back N), and their performance analysis. (a)

17. Apply the concepts learned to design a program implementing a network protocol to do handshaking, flow control, and error recovery. (c, d)

18. Learn simple queuing theory based on the M/M/1 queuing system, M/G/1 queuing system, and networks of M/M/1 queues. Apply queuing theory to analyze network protocols. (a, b)

19. Learn the Aloha multi-access protocol and various IEEE 802 standard protocols (802.2, 802.3, 802.3u, 802.3z, 802.4, 802.5, 802.6, 802.7, 802.8, 801.11, 802.15, 802.16, and 802.20). (a)

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:

20. Analyze the performance of the various multi-access protocols. Apply the techniques learned to analyze the performance of new network protocols. (a, b)

21. Apply Dijkstra's shortest-path algorithm to find the shortest paths in a graph. (a)

22. Understand the differences between link-state routing and distance-vector routing, and the protocol used in the Internet for routing. (a)

23. Design the optimal hierarchy in hierarchical routing. (a)

24. Understand congestion prevention and avoidance strategies, leaky bucket protocols, fair queuing, jitter control, and issues in multicasting. (a)

25. Understand time division multiplexing, the SONET architecture, switched networks, interconnection networks, ISDN, B-ISDN, and ATM switches. (a)

26. Learn the design of the data-link and network layers in ATM, cell delineation, routing and switching in ATM, quality of service, and congestion control in ATM. (a)

27. 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. (b, c, d, e, g)

Last updated: 1/14/2014