Fall 2007 CSci 553 Lab 5
Exercise 5
create a directory labs/lab05 and add it to your repository.
You will use this to create a file called lab05.txt with your answers to the following questions.
Make sure you add and check in your lab05.txt answers when you are complete with the assignment.
Exercise 5.1
We have mentioned IP versions 4 and 6. What happened to version 5 and what were versions 0, 1, 2 and 3? (Hint: Find the IANA's “Internet Protocol” registery at http://www.iana.org and find the Internet Protocol version number document which describes what the version numbers mean in the IP header)
Exercise 5.2
You can find and read the RFC's for all of the various Internet Protocols at this site http://www.rfc-editor.org/rfc.html. What is the RFC that describes the IP protocol? Which RFC lays out the basic UDP and TCP protocols? It might be useful to read a bit of these RFC's, especially about the TCP protocol.
Exercise 5.3
There is a python standard library framework for creating server applications called SocketServer. The python SocketServer supports asynchronous behavior using separate forked processes as we discussed in class. It can also use another method for serving multiple asynchronous sockets. What is this other method?
Exercise 5.4
The unpv13e code for the UNP book contains a directory of simple echo client/servers called tcpcliserv. The server is actually a asynchronous server that uses unix fork to create new child processes to handle new incoming connections asynchronously. Modify the tcpserv01.c to turn it back into a synchronous server (call your modifications tcpservsynch.c). Also modify the Makefile to build your synchronous server. Place your c source and Makefile in the repository and submit it for this assignment.