Curriculum.

The course focus is on the algorithmic and implementation aspects of network protocols, supplemented by some discussion of network architecture and technology. Because of the absence of engineering or mathematics pre-requisites, it is not possible to go into detail on the hardware, communications or performance aspects of networks.

After an introduction to terminology and basic hardware / architectural ideas, protocol concepts such as layering, addressing, connections, flow and error control and routing are briefly discussed. The course then considers protocols at successively higher OSI layers. At each layer, general concepts and issues are discussed followed by detailed discussion of several real protocols.

The link layer is used to illustrate the protocol concepts introduced earlier. For example, flow control alternatives are presented in detail (window management, pipelining, acknowledgment strategies) as are error control issues (checksums and retransmission strategies). The CRC algorithm is covered in detail (derivation and implementation). Students also read standards documents on CCITT X.25 Level 2/LAP-B and IEEE LLC and there are presentations of these protocols in class.

At the network layer, issues discussed include: type of service interface (connection-oriented vs connectionless), switching paradigm (datagram vs virtual circuit), routing, addressing and flow/congestion control mechanisms. The routing discussion focuses on properties, problems and good points of link state and distance vector protocols (class notes provided). The ISO IS-IS Intra-domain routing protocol and the Internet RIP and EGP protocols are presented as examples (class notes provided). In the future, the new IDRP protocol will replace EGP. The congestion/flow control discussion focuses on buffer management strategies, using a paper by Gerla and Kleinrock (Flow Control Protocols, in Computer Network Architectures and Protocols, ed. Paul Green Jr., Plenum Press) as a reference to supplement the text. Students read the X.25 Level 3 and either the Internet IP or ISO CLNP specification documents and there are presentations of these protocols in class.

At the transport layer, emphasis is placed on how the transport environment differs from that of the link layer and how this impacts on the complexity and characteristics of protocol features and implementations. Students read either the Internet TCP standard or the ISO TP4 standard. These protocols are compared and the various implementation improvements proposed by Van Jacobson are discussed.

The session layer discussion focuses on session properties such as higher level flow control and checkpointing. Only one class period is used to present the session layer and there is no supplemental reading.

At the application layer, one lecture is devoted to each of file transfer and electronic mail using the ISO FTAM and ISO MOTIS/CCITT X.400 protocols for illustration. In future semesters, directory services, as illustrated by the CCITT X.500 protocol, may be discussed.

The next topic discussed is local area networking. One lecture is devoted to each of Ethernet/CSMA-CD, Token Ring and FDDI. Topics discussed include architecture, MAC protocol and algorithms, and error handling procedures. Students read selected portions of the related IEEE standards documents.

The final topic is the Internet. Emphasis is placed on practical issues such as how the various protocols and networking technologies are applied. The organization of the Internet and the NSFNET are described. Protocols such as ICMP and ARP are discussed in the context of practical engineering considerations. In the future, SNMP may be discussed either in this part of the course or as part of an overview of network management issues and protocols.

If time permits, one class period is devoted to overviews of each of IBM SNA and DECNET.