Jitter and delay can influence various types of applications. In applications that run over TCP, high delay reduces the effective throughput that can be sent and high jitter can cause packet losses and retransmissions. In multimedia applications that run over RTP, which runs over UDP, high jitter and delay can cause severe disturbances in the voice and video quality.
In this recipe, we will get into the details: the influence of behavior on TCP, and how it can influence the application behavior. RTP over UDP behavior was discussed in Chapter 12, SIP, Multimedia, and IP Telephony.
When you ping a remote site and get high delays, and in the Wireshark you see many retransmissions, it can be because of high network or applications delay. Connect the Wireshark to the network and configure port mirror to the link that you test.
The purpose of this recipe is to check whether the TCP retransmissions and duplicate ACKs are due to delay and jitter or other problems.
When experiencing many TCP retransmissions, perform the following tests:
If retransmissions are distributed between various applications and devices, it can be because of unstable line that causes network delays.
tcp.analysis.retransmissions
(numbered 1 in the following diagram). A list of all retransmissions in the packet list will appear.tcp.stream eq <the stream number>
to get to the stream number right-click on a packet and select Follow TCP stream.frame.time_delta
to see the time difference between frames in the TCP stream. This parameter actually shows inter-frame delta in layer 2, but since it is shown only for the stream, it will show us inter-frame deltas in a specific TCP stream.You get a graph that shows a very stable connection, with delays that are lower than 20 ms, except for the two increases in delay in time 250s (250 seconds since the beginning of the capture), that causes retransmissions.
tcp.analysis.ack_rtt
filter on the same connection, we see the delays between TCP packets and ACKs.In the following diagram, you see a graph which is an example for delays not due to line delay issues:
tcp.analysis.ack_rtt
to see the time to acknowledge every TCP sequenceWhat we've got is the time that it took to acknowledge every TCP packet.
tcp.analysis.retransmissions
to see the time to acknowledge every TCP packet.TCP uses the retransmission mechanism to ensure data delivery in the absence of any feedback from the remote data receiver. The duration of this timer is referred to as Retransmission Time Out (RTO). This mechanism was first standardized in RFC1122 that specified that the RTO should be calculated as outlined in the Jacobson V. and M. Karels, Congestion Avoidance and Control, article from 1988. An update to this RFC came out in RFC 2988 in November 2000, and later in RFC 6298 Computing TCP's Retransmission Timer, June 2011.
For delay variations, you can also navigate to Statistics | TCP Stream Graph | Round Trip Time Graph.
When experiencing high delays, it also influences the throughput you can get from the network. This is what is called as the bandwidth delay product as shown in the following figure:
From here we can see that the higher the delay is, the lower the throughput becomes. In networks with high delays, for example, old cellular networks, satellite lines, and long distance international lines, we have several methods to improve the application's throughput. Among these methods are applications that use multiple connections per application, usage of the TCP increases the window size (comes as default in Window Vista and the higher versions, along with various Linux versions).
3.144.204.102