Good article on UDP vs TCP

I am currently working on a project that involves satellite based radios and digital data exchange. During a test of the project the system started having all sorts of problems that the main contractor and customer could not figure out. I was asked to take trouble shoot the problem over the phone. I asked the main contractor, who built all the networking system that is transparent to our project, and asked what protocol they were using for transport. They stated UDP. So I immediately asked what Quality of Service had been implemented. They asked what I meant which got me worried. So I asked how they were handling packet delivery (priority, order, etc), how they were dealing with data loss, data delays, data corruption, acknowledgements, etc. They told me they were not doing any of that but it was not needed because they had been testing the system for two years and never had an issue. Asking how they had tested the system I found out they had only tested the system over WiFi and 4G with small numbers of units and using an application that was not sensitive to data loss. Long story short we were able to confirm that the problem was lack of QoS being implemented into UDP by monitoring the data traffic at the wire where you could see packets getting dropped, lost, having huge round trip delays, etc. This resulted in me having to try to explain to the engineer that while it makes sense to use UDP for stacoms instead of TCP/IP you still have to implement various mechanisms that you find in TCP/IP on UDP in many cases. This was surprisingly hard discussion which led me to look for a nice explanation which I found with this article called UDP vs. TCP by Glenn Fiedler. This article is part of a series of articles he wrote around networking for games and while its game centric many of the items he discusses will arise whenever you need to use UDP. Whether you use UDP to try to speed up data transfer or because you’re working with extremely bandwidth limited applications that same set of patterns appear. As such I highly recommend check out these articles which are written at a level that a layman or an experience developer will understand easily.

Advertisements

About ordo tacitus

ordo tacitus
This entry was posted in development, programming. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s