微软团队应用程序正在计算收到的数据包丢失情况



我刚刚发现微软团队应用程序中有一个新功能call health,它可以显示通话中的往返时间、到达间抖动、接收到的数据包丢失等统计信息。

我很想知道这个接收到的数据包丢失在这里具体意味着什么。这个值是否对应于单个扬声器的数据包丢失?在电话会议中,可能有多个发件人,那么他们是如何计算这个值的呢?

我的理解是,假设接收器从单个发送器/多个发送器接收一系列数据包,它可以检查与特定发送器/扬声器相对应的流中缺少哪些序列号,并可以计算数据包丢失值(但在多个发送器的情况下,仍需要有聚合函数(,但这也取决于团队应用程序是使用udp还是tcpudp的可能性很高,但不确定。如果它使用udp,那么数据包可能会乱序,用上面的想法计算损失听起来不合理。

请对此发表您的见解。

它的音频流的团队实现在任何地方都没有文档记录,因此它是特定于Microsoft实现的。

我们可以将标准的VOIP SIP端点实现作为它们如何工作的最有可能的参考。

音频通常作为UDP上的RTP数据包流接收。RTP数据包有一个序列号,因此很容易计算出接收到的RTP数据的数据包丢失。RTP分组通常被馈送到抖动缓冲器实现中。因此,您可以轻松计算收到的RTP数据包度量(抖动、数据包丢失等(。

如果SIP呼叫设置协商了RTCP信道的设置。这允许您将生成的抖动度量发送到另一侧,并从呼叫的另一侧接收抖动度量。

这就是sip客户端端点可以显示您正在讨论的度量的方式。

由于您谈论的是电话会议,因此不会直接与其他参与者交谈。您所拥有的是您自己和会议服务器之间的通话。会议中的所有其他参与者都有自己对会议服务器的一对一呼叫。然后,会议服务器可以";混合";音频,并将混合后的音频发送给每个参与者(或者单独发送每个流,让客户端混合音频,具体取决于实现(。

所以,当你谈论数据包丢失时,你谈论的是你和另一端之间的数据包丢失。对于电话会议,这是会议服务器。

相关内容

最新更新