3

So in networking class they taught us the OSI model, TCP, CDMA, congestion, frames, etc.

What I would like to know if standards that have been around for 20-30 years like TCP, are burnt into today's hardware, or can someone come up with say TCPX, write the code, deploy it to two machines on the network and use that protocol for communication? Since this doesn't affect how to find someone on the network, I assume it's not an issue on generic hardware.

But say a custom IP protocol was developed. Would incompatible network hardware drop those packets since it can't understand where it needs to be sent?

What I'm trying to figure out is how low (or high? never understood the model orientation) can someone go on the stack with custom implementations before the network between them can no longer transmit data.

1 Answer 1

8

That's exactly the problem – intermediary routers may not understand new protocols and only forward IP packets if they look like UDP or TCP that they understand.

There are actually many extensions to the TCP protocol to make it more performant, but takeup by routers has been slow.

If a new protocol is created, it will need to sit on top of an existing protocol. Because many of TCP's convenience features are undesirable for a new protocol (in particular, the particular congestion control mechanisms, head-of-line blocking, and the three-way handshake), this means that new protocols will typically extend UDP. However, UDP has its own share of problems with regards to NAT traversal, because it is a connectionless protocol.

As an example of a new protocol that sits on top of UDP, consider the QUIC protocol. It is intended as a more performant TCP, and is used widely in the Google ecosystem. For more details consider reading QUIC as a solution to protocol ossification on LWN.

New protocols on top of IP can only be used reliably if you control the network in which they are used. However, you can still use tunnelling to use these protocols over the public internet (i.e., through a VPN).

5
  • So an UDP extension can work on current network hardware without patching? Also, I assume if things are going through VPN, there are no performance benefits as everything has to convert to regular network communication anyway.
    – romeozor
    Feb 18, 2018 at 19:58
  • @romeozor Not really an UDP extension, but a new protocol that sits on top of UDP. UDP has some restrictions in practice, especially around packet fragmentation and NAT traversal. E.g. QUIC will fallback to a TCP connection if UDP cannot be used. VPNs often tunnel over UDP. But it's also possible to create a tunnel over IPsec which works at the IP level (internet layer, not transport layer like UDP or TCP). This is widely supported, but needs to be configured at the network interface level. An application can't directly use IPsec like it can use UDP.
    – amon
    Feb 18, 2018 at 20:15
  • I read the whitepaper of a crypto project that seems to "envision" a lot of things. It mentions a QVIC (I'm giving the benefit of the doubt that it's a fork, not plagiarism) protocol they want to implement. I assume delivering is not very likely.
    – romeozor
    Feb 18, 2018 at 20:50
  • 1
    @romeozor Thank you, that was fun! That whitepaper is an inconsistent and contradictory string of buzzwords and doesn't explain anything. They state that QVIC is built on top of TCP yet 5x faster and doesn't suffer from TCP drawbacks (impossible!) then it's built on UDP, yet handles larger packets without fragmentation (impossible!) then it's an independent protocol (no way they could have tested that on the public internet). See also this delightful Reddit thread they linked to!
    – amon
    Feb 18, 2018 at 21:52
  • thanks for the invaluable input. I was never really good at math to have an accurate gut feeling about the proposed "neural consesnus". But conventional networking hits closer to home and the proposition didn't seem plausible.
    – romeozor
    Feb 18, 2018 at 22:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.