Packet loss refers to the failure of packets to reach their destination on a network. Packet loss is most often a consequence of network congestion and usually caused by network equipment dropping, ignoring, misdelivering, or discarding packets.
Symptoms of packet loss are mostly application specific - some use cases are more resilient to packet loss than others. Two applications particularly affected by packet loss are networked games and networked communications sessions.
In internet gaming, packet loss can cause 'jumpy' or 'jerky' movements on network dependent events. This potentially causes weird behavior with timeouts and any type of counter, causing games to be unplayable in ways similar to high latency.
In telecommunications, high amounts of packet loss can be particularly annoying - and even cause complete communications breakdowns. Dropped packets can cause the 'robot' effect on stuttering voices (on calls or in video). In video, packet loss also causes frozen frames and stuttering behavior.
Some occasional packet loss is inevitable in packet-switched networks. Especially as the number of packets moving across a network increases, nodes can encounter more data than they are able to handle. At that point, traffic will be rejected or dropped as it times out. Wireless (WiFi) networks are especially prone to packet loss.
Different Twilio products use TCP/IP or UDP for traffic (and some are configurable). We'll briefly discuss how packet loss is handled with TCP/IP and UDP traffic.
In Transmission Control Protocol/Internet Protocol (TCP/IP), all dropped packets are automatically retransmitted - either after a notification (TCP Fast Retransmission) or after a timeout (TCP Retransmission). The retransmission scheme is documented in RFC 3366. Further, TCP congestion control is laid out in RFC 2581 and retransmission timing is in RFC 2988.
Determining when to stop submitting packets is implementation specific, but after a certain number of unacknowledged or dropped packets a host is considered down.
With User Datagram Protocol (UDP) traffic, there is no automatic transmission of lost packages. UDP is used in real time streaming applications which can deal with some amount of packet loss (or out of order reception). If an application requires UDP retransmission it must implement it on its own - or switch to TCP/IP.
Twilio's Programmable Voice has a suite of tools which can monitor network and call quality. We call this package Voice Insights.
Insights can alert on (and log) high amounts of packet loss, along with other common causes of poor communications quality such as latency or jitter. It also computes metascores such as dropped calls and mean opinion scores. Read more about more about Voice Insights here.
If you'd like help your Twilio setup to fix excessive dropped packets or other issues, please get in touch with support. Our experts can help you optimize your Voice or Video setup.