Hacker News new | ask | show | jobs
by cranekam 2235 days ago
Okay, so let's imagine I want to send you an email using SMTP, which runs over TCP, and we have to cross this cable. TCP has a lot of state: first we need to agree on terms like window size and sequence numbers, and then you and I need to keep track of which bytes were received by each other, resend lost bytes, slow down if the other end is overwhelmed, and so on. How do you imagine the special undersea cable protocol handles this so that each of us is still presented with a consistent view of our TCP state? Are you saying that each end has a magic box which can understand all of the TCP state management and seamlessly map it onto whatever undersea cable protocol it uses, then reverse that at the other end so the recipient knows this TCP state? That would be crazy. TCP is just carried over whatever goes on at the lower layers.

"Replacing" IP is a bit more likely: large backbones typically run MPLS, which encapsulates IP and provides for a simpler label-based switching process that can be more efficient than IP. But IP isn't replaced: it's merely wrapped in something more efficient in this case. It's like a company sending mail from one office to another over its internal post instead of routing every individual letter through the public mail system.

The point of having different layers of the network stack is so that each layer has its own responsibilities that are largely separated from the other layers. As long as IP A wants to send IP B something over TCP those cables will be carrying IP and TCP over whatever protocol they run underneath.