内网穿透

网络连接时术语
内网穿透,也即NAT穿透,是内部建立的局域网络或办公网络。[1]NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。[1]
UDP内网穿透的实质是利用路由器上的NAT系统。NAT是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。NAT可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。传统的NAT技术是通过将专用的网络地址(如企业内部网Internet)转换为公用地址(如互联网Internet),从而对外隐藏了内部管理的IP地址。通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP地址,从而减少了IP地址注册的费用以及节省了越来越缺乏的地址空间。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。[2]

工作原理

在整个音频共享模块中,UDP内网穿透技术是实现多个不同内网节点之间的UDP音频流互相转发的技术重点。音频对讲过程可分解为音频压缩、发送的输出过程和音频接收、解压、播放的输入过程。而多人音频对讲的过程实际上就是多个节点的系统中,两两节点之间的音频流收发过程。在这里无法直接处理的环节是每个参与音频对讲的节点作为服务器端接收其他节点发送过来的音频流数据的输入过程,因为大部分参与者都没有自己的公网IP,这样的内网节点直接在本地启动一个接收音频流的服务器线程,不在同一内网之内的其他节点无法直接连接到这个服务器。虽然可以通过在每个局域网和公网之间的路由器上添加端口映射将内网服务端口呈现在公网上,但这样做涉及到要修改每个节点对应的路由器配的置以及权限等问题,不是理想可用的实现方法。使用UDP内网穿透技术,可以使一个普通的内网节点在需要时将自己的服务器端口自动地呈现在公网上,并且能够让系统内其他节点正确获取这个音频接收服务器的地址,以便其他节点能够将自己的音频流发送到这个音频接收端口。

工作方式