Networking »

Packet Loss

Packet loss in the network is a Good Thing

Actually packet loss is necessary for the network to function properly. But there is different kinds of packet loss, and some kinds you do not want.

Good Packet loss

When a communication device (e.g. router) realizes it get more traffic than the network (e.g. wan line) can handle, it very deliberate drops one or more packets from the buffer. This is good. It is important that it do not buffer too much data, because then the delivery times will increase. Buffer memory is cheep, but if more traffic is put into the buffers than is removed from it (transmitted), there is no upper limit in the delay that can occur, and a packet too late is a wasted packet. You don't want one hour ping times during your online game. ;-)

By dropping the packet, the sender detects the drop via the transmission protocol (e.g. TCP) and lower its transmission speed. This way the sender can adjust its speed to the available capacity.

This case is the only "legal" reason to drop a packet, and every detected drop is assumed to be caused by this reason.

Bad Packet loss

Unfortunately packets can be dropped by other reasons as well. All these reasons are bad, because they are confused (interpreted) as a "good" packet drop, causing the sender to lower its transmission speed - in vain. There is no way for the sender to see the difference of different packets drops.

Bad media

A packet can be lost because of a transmission error. The receiver detects a bit error in the packet (checksum error) and discards it. This is very rare, and in reality only occurs during wireless transmission like WLAN or mobile communication.

NIC buffer space exhausted

This often occur running cheep NICs with very limited buffer space and/or fast NICs (e.g. gigabit) in slow computers with slow buses (e.g. PCI).

MAC Link Level inconsistencies

Often due to incorrect configured ethernets, one end can be sending in full duplex, but the other in half. This can be caused by auto negotiation errors (e.g. enabled in one end but not the other). This will result in framing errors, late collisions and other unnecessary packet losses.

There are two reasons why you want to avoid "bad" packet loss;

  • They will cause the sender to lower its transmission speed for the wrong reason
  • They are unnecessary

/By Mikael Q Kuisma


Ping site

Page last modified 2013-10-14 20:20Z