Out of order packets
out-of-order delivery is the delivery of data packets
in a different order from which they were sent. Out-of-order delivery
can be caused by packets following multiple paths through a network, or
via parallel processing paths within network equipment that are not
designed to ensure that packet ordering is preserved. One of the
functions of TCP
is to prevent the out-of-order delivery of data, either by reassembling
packets into order or forcing retries of out-of-order packets.
IP protocol by nature does not guarantee packet delivery in
the order in which they were sent, this is a common behavior since we can’t
control the entire path of a packet when traversing different carrier’s
networks/Paths.
In principle, applications that use a transport protocol
such as TCP or SCTP don't have to worry about packet reordering, because the
transport protocol is responsible for reassembling the byte stream into the original ordering. However,
reordering can have a severe performance impact on some implementations of TCP.
Real-time media applications such as audio/video
conferencing tools often experience problems when run over networks that
reorder packets. This is somewhat remarkable in that all of these applications
have jitter buffers to eliminate the effects of delay variation on the
real-time media streams.
Notes: Packet reordering can lead to retransmissions, delays, and even
connection timeouts.