Talk:Transmission Control Protocol

From Computer History Wiki
Jump to: navigation, search

Pre-v4 code?

Is there any TCP code preserved from before v4? Larsbrinkhoff (talk) 12:06, 23 January 2025 (CET)

Not that I know of. There were only a very few implementations of earlier versions, and they were never widely distributed, being mostly held privately by the early experimenters (as local, personal forks of the 'base' OS), so unless they hoarded one, they are gone forever.
The timeline (blow) is useful to consider. As best I can quickly recreate it (I don't know of a work that contains this - do you? - I have yet to search widely in standard references, although I looked, and Abbate doesn't have it) this is the version history:
  • 2 IEN-5 Mar-77 - the last version before the split into TCP and IP started
  • 2.5 - not really a different protocol; IIRC the existing header formats were retained, and various fields 'assigned' to TCP or IP (i.e. routers only looked at these)
  • 3 - IEN-21 Jan-78 - a hard split, and with variable length addresses
  • 4 - IEN-44 et al Jun-78 - go back to shortish, fixed length addresses
In addition to these, the IEN trail contains a number of other things that were just 'proposals', that were never implemented by everyone/anyone (IEN-18, "TCP Revisions"; IEN-26, "A Proposed New Internet Header Format"; IEN-27, "A Proposal for TCP Version 3.1 Header Format"; IEN-41, "Internetwork Protocol Specification - Version 4" [not the final]).
So if you look at the list of TCP and IP bake offs, only the very first (December, 1978) might have used something other than V4 - and the OS/360 and Multics ones are almost definitely gone. You can try asking Haverty if he still has a copy of the MACRO-11 TCP for UNIX (early versions of that were provably V2.5), or Mathis, to see if he still has a copy of the V2.5 version of his (I have the V4 version), but I suspect it's unlikely.
Anyway, I will add the table above to the article, and see if I can find any more references to the early history (it is not even in Abbate). I suspect the best place to look for records of the early history are the meeting notes. Jnc (talk) 18:48, 23 January 2025 (CET)
Thanks for the timeline. I was considering doing one myself, based on the meeting and bake off notes. Agreed, this could go into the main TCP article. I would like to add the people and computers involved.
It says here's an as of yet unscanned hard copy of the Haverty code. I'll look into that. https://chiselapp.com/user/pnr/repository/TUHS_wiki/wiki?name=haverty
Larsbrinkhoff (talk) 06:58, 24 January 2025 (CET)
Interesting page; that says, though, that it "survived as a printout in its March 1979 form" (emphasis added) - that's well after the switch to TCP V4. Still, it would be interesting to see it.
I remember going (with Liza Martin, IIRC) to see Jack at BBN about their code (I don't recall if we saw the MACRO-11 one, or the C one, or both, although we heard from him about both), for use on our -11/40 at MIT. I vaguely recall we got a copy of one (I do not clearly recall which, but I think it was maybe the C one), but I didn't find it poking around on the MIT machine somewhat recently - but I did find some of the Rand port stuff. We never used any of it; we wound up using an approach pioneered by Dave Clark where the buffering was integrated with the application (that got rid of avoiding the overhead of copying). That had the benefit of minimizing the amount of code in the kernel - limited in space on the PDP-11. (That code all exists.)
There's already a table of the early implementations at TCP and IP bake offs, listing the computers involved (and the OS's); that would the best place to name the writers. (Networking and Communications gives the details of the early Multics implementation.) Jnc (talk) 12:35, 24 January 2025 (CET)