我需要一个专家意见,如果我的问题本身是一个混乱的问题,对不起.
我正在阅读有关VOIP应用程序(客户端/服务器)的结构.并且大多数建议将UDP用于语音流.我还检查了一些语音聊天应用程序,如paltalk和inspeak,他们的网站提到他们使用udp语音流,由于以下原因似乎不正确.
我检查了paltalk和inspeak使用的流量/端口.他们打开UDP和TCP端口并使用数据包嗅探器,我可以看到没有太多的UDP通信,但主要是正在进行的TCP通信.
另据我所知,在UDP协议服务器无法向NAT后面的客户端(DSL路由器)发送数据.并且"UDP Braodcast"不是基于"互联网"的语音聊天应用程序的选项.这就是YAHOO在他们的文档中提到的,如果无法进行udp通信,yahoo messenger会切换到tcp.
所以我的问题是......
我在上述陈述中是否理解错误?
如果UDP不可用,那么这些聊天应用程序使用TCP Stream进行语音管理?
由于我经历过TCP语音流造成延迟,没有语音中断但语音延迟,那么语音聊天服务器/客户端通信的最佳结构应该是什么?
到目前为止,我认为,如果客户端将数据作为udp数据包发送到服务器和服务器通过TCP流将数据包分发给客户端,这是一个合适的解决方案吗?我的意思是这是商业语音聊天应用程序的作用吗?
谢谢你的回答将帮助我和很多其他程序员.
JF