CS 779/879 - Design of Network Protocols

Lectures - Spring 2011

 

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

 

 

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

Stevenss 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 &Threads

 

 

Select

Concurrent Client

Concurrent TCP Server Using Select

Poll

Concurrent TCP Server Using Poll

Threads

 

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