Project 1.3: The Home Stretch

CS233/333 - Networks and Distributed Systems
Fall, 1999.

Final Due Date: Tuesday, November 2, 11:59 p.m.

1. Overview

Well, now you should be in the home stretch with the project. To finish the project, you need to implement both a datagram and stream based network interface. The datagram interface (UDP) should have been completed already. This part of the project will primarily involve the stream based protocol (TCP).

2. TCP

To finish the project, you must implement a stream-based protocol similiar in functionality to TCP. However, given the complexity of TCP you are free to implement your protocol in any manner you see fit as long as it is layered on top of IP. In other words, keep it as simple as possible.

Your stream-based protocol should work roughly as follows:

3. The socket interface

Continuing your work from last time, finish the implementation of the lsock.py file so that it defines the following functions:

4. Testing

Your code will be tested with a number of simple networked programs that only make use of the 'lsock' module. That is, they will create some sockets and try to communicate with each other in various ways. Because the internals will not be tested explicitly, you have complete freedom in terms of how you actually implement IP, UDP, and TCP. Tests will be made available on mailing list.

5. General comments

This last part of the project may be extremely difficult if you have not made good progress on earlier parts of the project. Here are the general grading criteria: Please come and see me if you run into trouble.