From: Tom Christiansen (tomchr@ee.washington.edu)
Date: Tue Oct 05 2004 - 23:34:51 PDT
The Cerf & Kahn paper describes the development of a protocol and
infrastructure (gateways) for communicating between different packet
switched networks, TCP. The purpose of this was to enable sharing of
resources across the networks.
At the time of writing several packet switched networks existed but there
was no way to communicate between nodes on different networks. The main
contribution of this paper is to provide a method for connecting different
packet switched networks and provide an infrastructure for resource sharing
between networks.
Connecting different networks with different communications protocols
requires new technology: gateways. These gateways manage the communication
between two networks. As two networks connected via a gateway may not have
the same packet size, the gateways must manage the fragmentation of the
packets. Packets are fragmented at the gateway, but rather than combining
them at the receiving gateway, the authors chose to reassemble the packets
at the host. This was done to avoid deadlocks resulting from buffer overflow
caused by transmission errors and missed packets. This, however also places
the error handling at the hosts which means that packet errors will likely
cause retransmission across several networks, not just from gateway to
gateway on the same network.
Rather than requiring a certain packet size, the authors chose to support
arbitrary packet sizes. This was chosen to provide future expandability of
packet sizes.
For addressing, an 8-bit network address and a 16-bit port address was
implemented. While the 16-bit port address space seems adequate for modern
purposes (although if certain ports remain reserved for particular services
we will run out of port space at some point), but the 8-bit network address
field is obsolete by modern standards (even IPv4's 32-bit addresses are
getting obsolete).
A significant part of the paper describes how packets are fragmented and
defragmented. The core challenge here is how to deal with errors and packet
loss. As the hosts handle the error checking and as packets may be
fragmented into smaller segments by gateways, there is a risk of
re-transmission of 'good' segments. This risk, however, is minimized by
using a windowing method where the receiver as part of the acknowledge
indicates which segment or package it expects to receive next. This also
simplifies the handling of duplets.
The paper briefly touches on how to implement a simple form for encryption
through pseudo-random use of ports.
Future work involves writing a detailed specification and implementing test
code.
Tom Christiansen
This archive was generated by hypermail 2.1.6 : Tue Oct 05 2004 - 23:35:02 PDT