CS 779/879 - Design of Network Protocols

Lectures - Spring 2009

 

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

 

3.           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

 

4.           Useful Network Tools

 

Ø DNS lookup utilities

Ø Stevens’s sock

Ø  Ttcp

Ø  Lsof

Ø  Tcpdump

Ø Arp

Ø Ping

 

 

5.           TCP sockets

 

Ø Socket Address Structure

Ø Utility Functions:

ü Byte Order

ü Byte Manipulation

ü Conversion

ü Read/Write

Ø Socket Functions:

ü Connect

ü Bind

ü Listen

ü Accept

ü Close

Ø Value_Result Arguments

 

6.           Multiplexing using select & poll

 

 

Ø Select

Ø Concurrent Client

Ø Concurrent TCP Server Using Select

Ø Poll

Ø Concurrent TCP Server Using Poll

 

7.           UDP sockets

Ø Basic UDP Client and Server

Ø Displaying Destination Address

Ø Connected UDP Clients

Ø Reliability of  UDP

Ø Big Packets

Ø Select UDP and TCP

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.           Non-blocking I/O

Ø Non-blocking Read/Write

Ø Non-blocking Connect

Ø Non-blocking Accept

 

10.  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

11.  IPV6

Ø Overview & Concepts

Ø TCP Unicast Examples

Ø UDP Unicast Examples

Ø Sctp Examples

Ø Multicast Example

 

 

12.  Name and Address Conversions 

 

Ø Domain Name Servers 

Ø Basic Functions

Ø Support for both IPv4 and IPv6

Ø Example of Protocol-Independent Client

 

13.  Peeking, Unix Sockets & Threads

 

Ø Peeking at received data

Ø Unix domain sockets

ü Stream

ü Datagram

Ø Threads

ü Functions

ü Simple Example

ü Synchronization

 

14.  Server Design Alternatives

Ø The Client

Ø Iterative Server

Ø Forking on Demand

Ø Threading on Demand