Skype and network management
-
Jonathan Rosenberg is our Chief Technology Strategist.
Two weeks ago, I had the privilege of testifying to the FCC in the US about network neutrality. The FCC is exploring the issue of managed services – services that a facilities-based provider offers to consumers and carefully manages, so that they work well. Examples include television service or voice services provided by the provider themselves. By their nature, these managed services give special treatment to some applications, and this raises the question of how it fits into the framework of network neutrality.
Skype is not a facilities based provider, but we were invited to the talk to give our own perspective on network management.
Though Skype doesn’t have a network in the same sense that mobile or fixed-line providers like Verizon or Comcast have a network, Skype software on one computer connects to software on others to form a peer-to-peer overlay, and uses that overlay to enable services for our users. In order to provide good service to our users and to be a good citizen of the Internet, Skype has its own practices for ‘network management’ – control of the traffic we transmit through our overlay.The first area of network management is rate adaptation. When a call is in progress, we transmit audio, and increasingly, video (34% of Skype-to-Skype calls include video). The quality of the experience depends on how much bandwidth we utilize for that call – the more bandwidth, the better the experience. Of course, the network cannot provide unlimited bandwidth. There are slow links along the way, and competing traffic from other applications, all of which limit how much is available to us. To handle this, Skype dynamically measures available bandwidth. Based on the measured bandwidth, we adapt the sending rate of both of our audio and video codecs.
Our audio codec – SILK – can vary its rate from 6 to 40 kbps in a smooth fashion, based on available bandwidth. When Skype measures the available bandwidth, it carefully considers other traffic in the mix, and backs off when there is increasing cross-traffic. Indeed, our algorithms are conservative – more conservative than TCP itself. This means that Skype consumes less traffic through the network than would have been consumed by transmission of a file or email over a TCP connection. We do this to make sure congestion – and thus delay and loss - remain at a minimum. We also do it to make sure we are good citizens of the Internet.
Skype also prefers to transmit voice and video directly between users in a call, rather than relaying the media artificially through an intermediate system. Going direct reduces latency and packet loss, improving the experience of our users. Unfortunately, we cannot always get a direct connection, typically because of the presence of NAT. Sometimes, Skype calls pass through relays – instances of Skype software running on other computers. We aggressively try to avoid doing this, using very advanced techniques based on years of experience. When we do need to use a relay, Skype carefully selects them so that they have sufficient connectivity and bandwidth. More importantly, we introduce hard limits on the amount of bandwidth we’ll consume – we do not want to disrupt the Internet service those users have.
Put together, these properties mean that Skype works better and better as the networks we run on get better and better. As broadband providers increase the available bandwidth available to applications like Skype, we can offer more services and improved experiences to users. Wider availability of good broadband services also means that Skype engineers can spend less time optimizing for poor conditions, and focus more on making things work even better under good conditions. When that happens, we all win.



