Once the peers are located and a connection is made, the streaming of voice packets begins to occur. In order for the voice conversations to sound natural, without echoes and delays, the voice packets must be transferred over the IP network in real-time. All VoIP standards use Real-time Transport Protocol (RTP) for streaming voice packets in real-time.
RTP standard does not define, and therefore does not require the use of any specific UDP port, leaving it up to endpoints to agree on a certain port to commence a voice call. The floating-port implementation makes it difficult to traverse firewalls, often requiring the use of dedicated STUN servers to synchronize the endpoints. A frequent VoIP connectivity problem occurs while attempting to send or receive voice packets via a more or less random port that is blocked by a firewall. A network analyzer allows the RTP streams associated with a specific signaling session to be clearly seen, as well as the IP addresses and the ports being used for the VoIP call, which helps faster and easier deployment of a VoIP system.
RTP does not use TCP protocol for transmitting voice packets. Despite the fact that TCP guarantees the delivery of the packets, its session initiation time and associated delays are unacceptable for transferring multimedia data in real-time. Therefore, UDP is the natural choice here. As there is no recovery for the packets not delivered to the recipient, a certain percentage of voice packets are typically lost. While VoIP does provide means to reconstruct the lost packets without significant loss of voice call quality, packet loss beyond a certain level starts to noticeably degrade the quality of the conversation. The illustration above displays the numbers of lost packets, allowing identifying network problems on the streaming phase.
RTP encapsulates additional information in every voice packet, including payload type identification to identify the type of content being transmitted, sequence numbering that is used to detect and identify the lost packets, and time stamping to allow synchronization and jitter calculations. The additional information is extremely handy when analyzing RTP streams in order to identify the source of quality issues.