4

I'm currently writing a bachelors thesis in computer science and engineering, we're creating a racing game in C++ using OpenGL. In the report, I'm comparing use of TCP and UDP and I found a source, that claimed that multiple TCP-connections can induce packet loss in a UDP-connection. I even got a good reference

The problem lies in the fact that it's 13 years old but I haven't been able to find any indication that either protocol has modified to fix this problem. I've also been unable to find any paper or article, that are more current, that do similar investigations

So, my questions are whether there has been any changes to the protocols that might be relevant and/or if I should just forget about using this old reference in the thesis report.

Greg Hewgill
  • 951,095
  • 183
  • 1,149
  • 1,285
  • I would be a little cautious with that. Not saying that it is fundamentally wrong, but I'd be a bit skeptic. You should consider that the Nara Institute paper is from 1997. Routers have since then gone through... how many... 10(?) generations. The internet is nowhere near anything it was in the 1990s. A lot of services (for example VoIP) use UDP over the internet today and work perfectly good. This contradicts the thesis that routers will rigorously drop UDP in favour of TCP. – Damon Mar 31 '11 at 12:11
  • I've used UDP-based services a lot while having considerable TCP traffic over the same line, and rarely if ever experienced some noticeable packet loss. That alone is of course no evidence, but just go ahead and try yourself from home and from university. It's trivial to fill the cable with TCP by downloading 2-3 ISOs. And miraculously, VoIP will still work. – Damon Mar 31 '11 at 12:14
  • 2
    you might find this interesting: [Packet Loss Myths](http://www.29west.com/docs/THPM/packet-loss-myths.html) – Nick Dandoulakis Mar 31 '11 at 12:18
  • Damon: While you make some good points I'm more concerned about connections that have lower bandwidth then my university's or my own. Filling that kind of connection with multiple TCP-connections would probably have a higher influence an VoIP or any other UDP-based application. The problem is that I need some kind of reference confirming this if I can't use the paper. – Jonathan Gustafsson Mar 31 '11 at 12:23
  • @Jonathan Gustafsson: A suggestion: try testing using 2G/3G? That probably emulate low speed internet. However, note that 2G/3G may have different characteristic than dial ups. – Lie Ryan Mar 31 '11 at 12:37
  • To add to Damon's comments, a lot of routers support QOS on specific protocols/ports. For instance, with Tomato routers you can configure them to give BitTorrent low priority so that you can still browse the internet peacefully while sharing your legal ISOs. This of course largely depends on the router. – Jeff Mar 31 '11 at 19:27

1 Answers1

1

Read the significant points in the article:

  1. First, we focused on the case in which only TCP connections use all of the bandwidth of the network.
  2. With the increase in the number of TCP connections, a larger number of packets can simultaneously arrive at the node, thereby making the buffer severely congested and thus making packet loss occur more often.

So the WAN link under test is saturated and the testing is for fairness of the TCP and UDP protocols. The 29 West article linked in the comments also notes:

Myth--There is no loss in networks that are operating properly.

Reality--The normal operation of TCP congestion control may cause loss due to queue overflow. See this report for more information. Loss rates of several percent were common under heavy congestion.

None of this is particularly new or should be surprising to anyone. Consider a home Internet connection, DSL or Cable with minimal speed, e.g. 2mb/s and setup one computer with Bittorrent downloading several large files, now try to run a UDP game such as Valve's Team Fortress 2. It's not going to work well.

With VoIP many networking persons started looking at methods to improve this situation which brings QoS to the table. QoS however demands co-operation both ends of the WAN and so this is of no benefit to the majority of end users. The only real solution is bandwidth throttling. If you have a 2mb link you set the TCP traffic to say 1.5mb and leave the remainder for UDP traffic for gaming.

If you are developing a split protocol game you would define a upper bandwidth limit, say 25KB/s per client for the total traffic and then define separate limits for TCP and UDP traffic within that limit, e.g. 15KB/s for TCP and 10KB/s for UDP. Generally games tend to use HTTP (TCP) for downloading game content outside of the game and then switch to UDP inside the game to remove the issue completely.

Steve-o
  • 12,678
  • 2
  • 41
  • 60
  • Thanks everybody. I reviewed my old computer communication course, rewrote some of the network section of the report and tossed the old reference. – Jonathan Gustafsson Apr 05 '11 at 08:23