TCP/IP: The Day the Internet Actually Started
If you're reading this on a terminal today, you might not realize that we just witnessed a "Flag Day." On January 1st, the ARPANET officially retired the old NCP (Network Control Program) and switched entirely to TCP/IP. For those of us who have been wrestling with NCP's limitations-like its inability to handle end-to-end reliability across different types of networks-this is a massive relief.
The Problem with NCP
NCP was designed for a single, homogeneous network. It assumed the network itself was reliable. But as we start connecting different kinds of networks together (radio, satellite, ethernet), that assumption falls apart. We needed a way for the hosts to manage the connection, not the network.
Vint Cerf and Bob Kahn’s design for TCP/IP is elegant because it splits the responsibilities. IP (Internet Protocol) handles the routing of individual packets, while TCP (Transmission Control Protocol) handles the reliability, reordering, and flow control.
A Technical Snippet
In the old NCP days, we had to manage connections very closely. With TCP, the socket abstraction is becoming our primary way of thinking. Here’s a rough idea of how we’re starting to see network code structured:
/* A conceptual look at the new socket interface */
struct sockaddr_in server;
int sock = socket(AF_INET, SOCK_STREAM, 0);
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr("10.0.0.1");
server.sin_port = htons(80);
connect(sock, (struct sockaddr *)&server, sizeof(server));
The Outlook
By standardizing on TCP/IP, we’ve moved from a "network of computers" to a "network of networks." This is the "Inter-net." I suspect that in the next decade, we'll see this protocol suite move beyond research labs and into businesses and even homes. The scalability is there; now we just need the infrastructure to catch up. It’s a brave new world for us sysadmins and developers.
Aunimeda provides DevOps engineering and infrastructure services - CI/CD pipelines, containerization, cloud deployments, and monitoring setups.
Contact us to discuss your infrastructure needs. See also: DevOps Services, Custom Software Development