文章插图
怎么解决呢?
第一种方式是使用STUN服务器 。
文章插图
STUN服务器是IP地址已知的服务器,客户端要通信之前,先去STUN服务器上面查询一下自己的外网IP和端口,然后再使用这个外网IP和端口进行通信 。
但有时UDP包会被防火墙或者其他的应用程序所阻挡 。这个时候就可以使用中继器技术Traversal Using Relays around NAT (TURN)。
文章插图
双方都将数据发送到中继器server,由中继器server来负责转发数据 。注意,这里已经不是P2P了 。
最后,我们有一个集大成者的协议叫做ICE(Interactive Connectivity Establishment ):
文章插图
它实际上就是直连,STUN和TURN的综合体,能直连的时候就直连,不能直连就用STUN,不能用STUN就用TURN 。
在使用STUN和ICE的过程中,我们会有一台网络主机用来建立端口映射和保持其他UDP端口状态,但是UDP的状态通常在几十秒到几分钟的短时间后过期,为了保证NAT中UDP的状态和生命周期,于是有了UDP hole punching的技术 。通过定时传输keep-alive数据包,对NAT中的UDP状态进行更新 。
UDT的缺点因为UDT是基于UDP协议的,但是UDP协议因为其简洁的特性,所以并不具备安全性的特征 。所以基于其上的UDT协议因为缺乏安全特性,所以在商业环境中应用会受到一定的限制 。
不过UDT的新版本已经在开发中,大家可以期待一下 。
总结UDT被广泛用于高性能计算,比如光纤网络上的高速数据传输 。我们后续会在netty中告诉大家怎么使用UDT协议 。
链接:
https://juejin.cn/post/7038409409537507341
推荐阅读
- 什么叫TLD、gTLD、nTLD、ccTLD、iTLD 以及几者之间的关系
- 头围正常双顶径偏小
- 如何在Rescue模式下配置网络和SSH登录
- 使用 NetQ 排除网络故障
- 为了防御网络监听最常用的方法是什么?
- 乌鸦|有这6种习惯不改的人,在职场混,很难有出头之日
- 千代珍妍量子面膜功效,自然之名洋甘菊面膜好吗
- 视频发布之后没有播放量,这3个二次推荐的方法,你用了吗
- 白帽子黑客与中间人攻击之ARP攻击防御实战
- 软件测试之如何避免漏测