For the record, I began this about October 21, 2022. As of December 15, 2022, it is working and has passed all the tests I have thrown at it. So it has been nearly 2 months of work. I have worked on it for a signficant amount of time almost every day during that 2 month interval.
As an interesting datapoint, I also have a TCP implementation taken from Xinu. The Xinu code is 5400 lines. The BSD code is 15,191 lines. I will elaborate on this more elsewhere.
I began with a file on my computer named 4.4BSD-Lite.tar.gz containing the 4.4 BSD network sources. Also I have on my bookshelf "TCP/IP Illustrated, Volume 2 -- The Implementation". The book is a commentary (in 1100 or so pages) on the very 4.4 BSD source I have.
This is so-called "Net/3". Apparently "Net/1" was what was described in the 4.3 BSD book by Leffler et. al (1989) -- the "Tahoe" release. What is called "Net/2" was the 4.3 BSD release in 1991 known as "Reno". What is described in the book (Net/3) was released 3/1994. There is also 4.4BSD-Lite2 subsequent to this (9/1995), which was the last BSD release from Berkeley.
I have always intended (for about 20 years now) to make a project out of studying this book in conjunction with the sources, which are in effect the original reference implementation for the TCP/IP protocols. Perhaps the time has finally come.
Some might ask whether, in this day and age, a person might be better off studying a more "up to date" implementation. This would be a fair question. My answer is that I have the book and I have the files. Also it is something I always told myself that I would do. And I cannot help but think there will be plenty of useful and interesting things to examing and learn from.
My intention would be to not just study, but to incorporate the sources into my Kyu project. Perhaps due to licensing, it would be wise to keep this segregated as a sort of optional module and retain the original license.
Kyu / [email protected]