UDP协议
来源:互联网 发布:windows nextcloud 编辑:程序博客网 时间:2024/05/22 06:37
UDP跟TCP协议一样是一种传输层协议,但是他与TCP不同的是,它不需要跟服务端建立连接,支持广播的发送消息。我们都知道TCP协议也成握手协议,分别有三次“握手”的过程,而UDP呢?最好理解它的就是UDP打洞,也就是UDP NAT(地址转换),下面我们就来介绍一下Nat的分类。
NAT分类
根据Stun协议(RFC3489),NAT大致分为下面四类
1) Full Cone
这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的。
例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88
A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)
任何发送到 NAT(202.100.100.100:8000)的数据都可以到达A(192.168.8.100:5000)
2) Restricted Cone
这种NAT内部的机器A连接过外网的机器C后,NAT打开一个端口.然后C可以用任何端口和A通信.其他的外网机器不行.
例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88
A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)
任何从C发送到 NAT(202.100.100.100:8000)的数据都可以到达A(192.168.8.100:5000)
3) Port Restricted Cone
这种NAT内部的机器A连接过外网的机器C后,NAT打开一个端口.然后C可以用原来的端口和A通信.其他的外网机器不行.
例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88
A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)
C(202.88.88.88:2000)发送到 NAT(202.100.100.100:8000)的数据都可以到达A(192.168.8.100:5000)
以上三种NAT通称Cone NAT.我们只能用这种NAT进行UDP打洞.
4) Symmetic
对于这种NAT.连接不同的外部目标.原来NAT打开的端口会变化.而Cone NAT不会.虽然可以用端口猜测.但是成功的概率很小.因此放弃这种NAT的UDP打洞
现在我们就模拟一个UDP打洞的原理,绘制了一张图,这样看起来就会更清晰。
其实UDP的应用很广泛,比如我们在cmd里面的ping命令,其实也就是通过UDP协议,发送的一个UDP包,以及现在比较火的p2p技术等,这些都是基于UDP协议的。
- UDP协议
- UDP协议
- UDP协议
- UDP协议
- UDP 协议
- UDP协议
- UDP协议
- udp 协议
- UDP协议
- UDP协议
- UDP 协议
- UDP协议
- UDP协议
- udp协议
- UDP协议
- UDP协议
- UDP协议
- UDP协议
- 查询数据排名情况SQL
- 线程同步
- Esql/c 学习ing(6)_动态SQL
- XSLT 1.0推荐标准摘译(第二部分)
- 一叶一叶的离愁,悄悄的,飘落在校道上,平静而从容。。。
- UDP协议
- 如何创建Socket服务(源码)
- 连接Accee数据库不稳定解决方案
- XSLT 1.0推荐标准摘译(第三部分)
- 林肯轿车、东方新娘、大海、贝壳、沙滩、游艇。。。。
- XSLT 1.0推荐标准摘译(第四部分)
- 一个简单的Spring AOP
- System.getProperty()的参数大全
- Android SDK 1.0 Chn.