MINT 704

MINT 704 The Internet Protocol Suite

Calendar Description:

*3 (fi 6) (variable,36 hours) Rationale and organization of the Internet protocols. Protocol layering. Capturing and interpreting packet traces. Creating simple protocols with sockets. Connectionless versus connection oriented transport. Stateless versus stateful protocols. Addressing and routing; shortest path algorithms; intradomain routing protocols. Transport layer congestion control and flow control. Offered jointly by the Department of Electrical and Computing Engineering and the Department of Computing Science.

General Information:

Term: Winter
Location & Schedule: Bear Tracks


The overall goal of this course is to get you to the point that you're able to look at network traffic "on the wire", explore and diagnose protocol interactions, understand IP addressing, forwarding and routing, and finally be able to create some basic protocols yourself. The course presents the basic concepts and tools you will need to understand network traffic, diagnose problems, and understand how and why particular configuration items are required in switches, routers and endpoint hosts.


  1. Learn how various protocols format data for transport across a network, and understand protocol behaviors and responses.
  2. Understand Internet addressing and routing.
  3. Learn how to use sockets as the foundation for Internet protocols. Write a simple client, and a simple server.
  4. Learn how to use raw sockets to write code for switches and routers.

Course Topics:

1. Acquiring and using packet traces to understand protocol interactions and network activity. Application layer down to data link layer, plus a look at some aspects of network security.
2. IPv4 addressing. Subnets and masking. Route aggregation. Forwarding at L2 and L3. Intradomain routing. Interdomain routing.
3. Using sockets for basic client and server programs. Raw sockets. Some aspects of programming for network security.

Course Work and Evaluation:

  • 3 Protocol Assignments testing understanding of the TCP/IP protocol concepts
  • 3 Programming Assignments testing understanding of client server and socket programming
  • 1 Final Take Home Quiz

Course Material:

The following books will be used extensively in this course:

  1. Douglas E. Comer, "Internetworking with TCP/IP Vol I Prentice Hall
  2. John Goerzen, "Foundations of Python Network Programming", Apress, 200.4

The books will be stocked in the bookstore.

Academic Integrity:

The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour (online at /law/student-resources/graduate-resources/integrity-and-responsibilities) and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University. (GFC 29 SEP 2003)


While you may discuss your individual coursework with other students, the work claimed and submitted in your name must be your own. That said, there are assignment and project-specific policies on how much source code from publicly available sources may be borrowed. Always give proper credit to the original developers in your source code and documentation. Ask permission beforehand if you intend to recycle your work from another course in this course. More details on Appropriate Collaboration is given here.

Regulations listed in the GFC Policy Manual and the University Calendar will be used in resolving any discrepancies.