P2P:UDP穿透NAT防火墙
来源:互联网 发布:天刀脸型数据怎么捏好 编辑:程序博客网 时间:2024/04/29 19:47
虽然还是没有办法完全猜对,但也是一种办法。我已经用实现Cone NAT,因为考虑到现在大部分的NAT不是Symmetric的,因此,就不去考虑Symmetric的实现了,也许日后有时间可以考虑。
对于TCP,也有办法:Establishing TCP Connections Between Hosts Behind NATs
TCP现在还没用上,估计很快就要用到了。
这里总结一下UDP穿透NAT:
对于Cone NAT,是这样的情况:
Server S1 Server S2
18.181.0.31:1235 138.76.29.7:1235
| |
| |
+----------------------+----------------------+
|
^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 155.99.25.11:62000 v | v 155.99.25.11:62000 v
|
Cone NAT
155.99.25.11
|
^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 10.0.0.1:1234 v | v 10.0.0.1:1234 v
|
Client A
10.0.0.1:1234
下面是Symmetric NAT
Server S1 Server S2
18.181.0.31:1235 138.76.29.7:1235
| |
| |
+----------------------+----------------------+
|
^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 155.99.25.11:62000 v | v 155.99.25.11:62001 v
|
Symmetric NAT
155.99.25.11
|
^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 10.0.0.1:1234 v | v 10.0.0.1:1234 v
|
Client A
10.0.0.1:1234
我实现的是Cone NAT,所有就说说Cone NAT:
Server S
|
|
+----------------------+----------------------+
| |
NAT A(NAip:NAport) NAT B(NBip:NBport)
| |
| |
Client A Client B
假设上图中的NATA和NATB都是Cone NAT。
整个过程如下:
ClientA-->NATA-->ServerS(A在S登记NAip:NAport)
ClientB-->NATB-->ServerS (B在S登记NBip:NBport)
ClientA-->NATA-->ServerS(A告诉S,要发数据给B)
ServerS-->NATB-->ClinetB(S把NAip:NAport发给B,并告诉B,A要发数据给你了)
ClientB-->NATB-->NATA(NAip:NAport)-->Dropped-->ClientA (B发的包别NATA丢掉了,A是收不到了)
ClientB-->NATB-->ServerS(B等不到A的回应,就告诉S,叫A过来连我吧)
ServerS-->NATA-->ClinetA(S把NBip:NBport发给A,并告诉A,B连不到你,你连B吧)
ClientA-->NATA-->NATB(NBip:NBport)-->ClinetB(B收到A的连接请求,要发送应答给A)
ClientB-->NATB-->NATA-->ClientA(A收到B的应答,后面可以发送数据给NBip:NBport了)
ClientA-->NATA-->NATB-->ClientB(现在开始就从这条路发数据了)
……
- P2P:UDP穿透NAT防火墙
- P2P:UDP穿透NAT防火墙
- P2P:UDP穿透NAT防火墙
- udp Nat穿透防火墙
- P2P UDP NAT 原理 穿透
- P2P之UDP穿透NAT
- P2P UDP NAT穿透原理
- P2P UDP NAT 原理 穿透
- UDP穿透NAT实现p2p
- P2P之UDP穿透NAT原理
- P2P之UDP穿透NAT的原理
- P2P,UDP和TCP穿透NAT
- P2P之UDP穿透NAT的原理
- P2P之UDP穿透NAT原理
- P2P之UDP穿透NAT原理
- P2P之UDP穿透NAT原理
- P2P:UDP和TCP穿透NAT
- P2P之UDP穿透NAT原理
- linux0.11学习全记录
- 关于Java开发中使用Oracle数据库的一点注意事项
- P2P 之 UDP穿透NAT的原理与实现(附源代码)
- MYSQL导入导出命令
- 头部属性head全接触
- P2P:UDP穿透NAT防火墙
- 管理 Active Directory 所需的工具或技术
- C++运算符重载探讨
- apache+tomcat+mod_jk整合
- 案例 酒店管理
- VC++加载动态库和静态库
- 嵌入式BootLoader
- appfuse+ant+tomcat配置
- 我的java之路一:Eclipse 平台入门