CS 779/879 - Design of Network Protocols

Lectures - Spring 2013

 

1.           Introduction and simple examples

 

Ø Stevens's Texts (Stevens passed away Sept 1, 1999)

Ø Comers's Texts

Ø Introduction

Ø Discovering Network Topology

Ø Simple TCP client/server examples

 

 

2.           Multicasting

Ø Receiving Multicast Messages

Ø Sending Multicast Message

Ø Multicast Control

Ø Multicast Examples

Ø  Displaying Destination Address

Ø  Binding Options

 

3.           Multiplexing &Threads

 

 

Ø Select

Ø Concurrent Client

Ø Concurrent TCP Server Using Select

Ø Poll

Ø Concurrent TCP Server Using Poll

Ø Threads and Synchronization

Ø Shared Memory & Forking

 

 

4.           UDP/TCP/IP protocol architecture

 

Ø Overall Picture of the TCP/UDP/IP protocols

Ø Protocol Headers

Ø Overview of TCP  

Ø State Transition Diagram

Ø Connection end-points

Ø Buffering

Ø Overview of UPD

Ø Standard Services and Protocol Usage

 

5.           Useful Network Tools

 

Ø DNS lookup utilities

Ø Stevens’s sock

Ø  Ttcp

Ø  Lsof

Ø  Tcpdump

Ø Arp

Ø Ping

Ø Applications: TCP Simultanious Open and Close

 

6.           TCP sockets

 

Ø Socket Address Structure

Ø Utility Functions:

§  Byte Order

§  Byte Manipulation

§  Conversion

§  Read/Write

Ø Socket Functions:

§  Connect

§  Bind

§  Listen

§  Accept

§  Close

Ø Value_Result Arguments

7.           Peeking, Unix Sockets  

 

Ø Peeking at received data

Ø Unix domain sockets

 

 

8.           SCTP (Stream Control Transmission Protocol)

 

Ø Overview

Ø State Transitions

Ø Dr. Wahab Examples

§  tcpServerSctp & tcpClientSctp

§  udpServerSctp & udpClientSctp

Ø Basic Examples

§  sctp_serverQ  & sctp_clientQ

§  sctp_serverS  &  sctp_clientS

Ø Advanced Examples

§  sctp_server & sctp_client

Ø Advanced Features

§  Autoclosing

§  Peeloff, 

§  sctp_serverQpeel

§  Streems

 

 

9.           IPV6

 

Ø Overview & Concepts

Ø TCP Unicast Examples

Ø UDP Unicast Examples

Ø Sctp Examples

Ø Multicast Example

 

 

10.  Non-blocking I/O

 

Ø Non-blocking Read/Write

Ø Non-blocking Connect

Ø Non-blocking Accept

 

11.  Signals and out-of-band data   

 

Ø Signal Handling

Ø Handling SIG_CHLD

Ø Handling SIG_ALRM

Ø Termination of Server Process

Ø Out-of-Band Data Using SIG_URG

Ø Heartbeat

 

12.  UDP sockets

 

Ø Basic UDP Client and Server

Ø Connected UDP Clients

Ø Reliability of  UDP

Ø Big Packets

Ø  Select UDP and TCP

 

13.  Name and Address Conversions 

 

 

Ø Domain Name Servers 

Ø Basic Functions

Ø Support for both IPv4 and IPv6

Ø Example of Protocol-Independent Client

 

14.  Server Design Alternatives

 

Ø The Client

Ø Iterative Server

Ø Forking on Demand

Ø Pre-Forking

Ø Threading on Demand

Ø Pre-Threading