UDP是不可靠数据传输协议
TCP是可靠数据传输协议
UDP协议传输数据时不需要经过“握手” 因此不会有额外的时间开销
而TCP协议与之相反
NAT是网络地址转换协议,是为了解决IPV4的网络地址缺乏而产生的一种技术,也就是局域网的机器可以通过NAT设备连接到Internet,
局域网内的机器可以不用拥有由国际互联网组织分配的合法IP地址,而只需NAT设备拥有一个有效IP地址即可。
所以要实现两个不同NAT内网用户的点对点通信,除非采用服务器中转,或者是NAT穿透。而采用服务器中转的话对于服务器的性能和带宽要求很高,而NAT穿透的话只需要在通信的开始通过服务器做一次中间的协商即可。因此一般采用NAT穿透的方式,只有在某些个别的无法做NAT穿透的内网下才采用服务器中转的通信方式,这样大大节省服务器的带宽和性能需求。
至于UDP作为不可靠的传输协议,当然可以在应用层通过自己的程序来控制其数据的可靠性传输,主要还是要利用它的非面向连接的特性。
TCP连接建立的不对称性,所以TCP穿透NAT是比较困难的。目前好像也有方法可以成功打通NAT。