【发布时间】:2012-05-24 02:57:38
【问题描述】:
我已经阅读了很多关于这个主题的内容,包括很多关于 SO 的内容。所以虽然不完全是一个编程问题,但希望可以在这里问。我是一名程序员,正在构建一个包含语音聊天的应用程序,如果有帮助的话。
我正在尝试了解 UDP 转发如何通过 NAT 工作,特别是对于 Skype 和 Google Talk 语音聊天 (VOIP) 等系统。
我认为路由器正确路由 UDP 流量的唯一方法是,如果回复来自它发送数据包的相同 IP/端口组合。或者换句话说,客户端无法从服务器获取UDP数据包,除非它首先发送一个,否则路由器不知道该向哪个客户端发送数据包。
因此,如果我理解正确的话,Skype 和 Google Talk 等服务会进行一些初始设置以帮助对等方定位彼此,但之后通信变为对等通信。如果路由器不期望来自客户端 IP 的任何流量,那么来自客户端的第一个数据包如何直接到达另一个客户端?
【问题讨论】:
标签: udp xmpp skype google-talk