0

让我们假设 TCP Reno 版本

我有这种情况:同一主机上的 VoIP (UDP) 流和 TCP 会话。假设在 t=10s,TCP 打开与 TCP 接收器(另一个主机)的会话,它们在3 次握手期间交换最大窗口,然后以慢启动方法启动流。

在 t=25s,VoIP 流开始。由于它是 UDP 流,因此目的是使接收器饱和。没有任何拥塞控制,它应该尽可能多地突发数据包。

由于在同一通道中存在这种并发性,并且我们假设在网络拓扑中没有路由器出现故障等(因此没有异常),我的问题是: 有没有办法实现 VoIP 流的丢包?

我在想,由于 VoIP 对抖动很敏感,而且 TCP 的慢启动方法并不是很慢,因此可以实现丢包,因为路由器队列增加了延迟变化,并且它们被 TCP 早期数据包“淹没”。

还有其他原因吗?

4

1 回答 1

1

先评论几句:

  • VoIP 通常不会使接收器(或网络)“饱和”——它只会根据您使用的特定编解码器的需要发送尽可能多的数据包。换句话说,它不会一直增长,直到它填满网络。
  • 正如您所注意到的,VoIP 系统对抖动很敏感。数据包丢失实际上与此有关,因为 VoIP 系统通常会认为数据包在到达抖动缓冲区窗口之外时会丢失。因此,即使数据包实际上可能不会丢失,只是延迟了,但如果它到达抖动缓冲区窗口之外,就 VoIP 系统而言,它实际上是丢失了。

回答您的具体问题:是的,其他流量可能会创建延迟数据包,这些数据包可能会在 VoIP 接收器中丢失。毫无价值的是,在 UDP 和 TCP 共享带宽的链路中,TCP 比 UDP 表现得更好,因为它会尝试限制自己以避免拥塞。因此,与 TCP 流量相比,UDP 实际上可能获得超过其公平份额的带宽。

于 2015-03-02T21:21:23.680 回答