[ih] Separation of TCP and IP

Karl Auerbach karl at cavebear.com
Fri Jun 24 19:47:15 PDT 2022


On 6/23/22 12:15 AM, Noel Chiappa via Internet-history wrote:
> I'm interested in finding out more about the process by which TCP and IP were
> separated:]

Sorry for jumping in so late (I have been in the Rockies for a couple of 
weeks.)

Back in 1974 our group at SDC was working for an unnamed three letter 
agency trying to coax end-to-end, per-session encryption into a very 
early TCP based network.

TCP had not gelled at that time, but it was clearly the path to the future.

We had already been doing a lot of datagram/packet encryption. We 
usually added a wrapper header to contain the needed information to 
maintain crypto key selection and synchronization despite packet loss, 
duplication, or resequencing.  We were not permitted to talk much about 
this stuff - the boundaries were not clear but parts were definitely 
protected by US military security classifications.  A lot of our effort 
involved things like how to build systems with "safe" control paths 
between "red" and "black" zones.  We did a lot with formal verification 
and, my specialty, capability based hardware and operating systems.

As part of our work we came to the conclusion that given the 
capabilities of hardware of that era that we didn't really want to bulk 
encrypt an entire TCP data flow as one object. That could have required 
a lot of storage and it created problems for interactive sessions where 
the content wasn't fixed before the connection was set up.

So we decided that it would be easier to carve TCP into two parts - an 
upper part concerned with sequencing, flow control, and data integrity, 
and a lower part that pretty much just did datagrams. In between we 
would insert a security layer - somewhat resembling IPSEC (but that had 
to be independently invented later by others because we couldn't publish.)

I do have a photograph of a blackboard that was done at SDC by myself 
and Vint on the evening of Dec 31, 1974 - New Year's Eve: we had such 
dedication! ;-)

It's hard to read, especially the part in blue chalk, but we were 
envisioning that intermediate layer and using a kind of packet-to-packet 
crypto synchronization and integrity protection that could have been 
called "block chaining".  I wonder where I have heard that phrase 
recently?  (The phrase "IH" in the photo means "Initialization Header".)

Here's a link to that photo:

https://www.cavebear.com/images/karl/tcp-1974-5782x3946.jpg

(This was before public-key crypto, so we tended to use things like DES, 
although in the real implementations all of that was inside a very 
opaque box that we were not allowed to physically touch.)

We actually implemented this stuff and it was actually deployed and used 
for a couple of decades.

I suspect that our work, being done behind security walls and not 
publicly published,  had little influence on the later formal split of 
IP from TCP.  But it does add to notion that ideas often have many parents.

         --karl--





More information about the Internet-history mailing list