View Single Post
Old March 15th, 2023   #5
ericthegeek
Task Group Member
 
Join Date: Aug 2008
Posts: 390
Default

Quote:
Originally Posted by Florida-Rob View Post
I still think its a mistake forcing TCP
At one point during the standard's development, everything was based on UDP for exactly the reasons you gave. The "send and forget" model of UDP is very attractive for small microcontrollers.

As development progressed there were several cases where both ends of the communication link needed to have a consistent view of the protocol state. UDP is an unreliable transport, so maintaining consistency meant building a re-send/re-try/reliability layer on top of UDP.

We actually tried to design this. But building a reliability layer that can handle lost and re-ordered packets over a network with latency and multiple packets in-flight simultaneously meant we were effectively re-implementing the full complexity of TCP in the application layer.

At that point it made more sense to use the standard Layer 3 protocol that already existed rather than develop something new at the application Layer. TCP has existed for decades, and is well understood, and well debugged.

I was perhaps the biggest advocate for the "All UDP" model. I've spent much of my life working with small MCUs, and counting every byte of SRAM and EPROM. But in the end it became clear that using TCP was the best solution, and that it would result in better interoperability.

Last edited by ericthegeek; March 15th, 2023 at 11:51 AM. Reason: spelling correction
ericthegeek is offline   Reply With Quote