Nat穿透原理
2018-08-31 09:46:15 0 举报
Nat穿透原理描述
作者其他创作
大纲/内容
当A想与B直接通信时:1、A、B使用UDP协议通过各自路由器NAT之后分别使用端口60001、60002连接到服务器C(登录),因此C知道A和B的IP及端口如下: A: 100.200.123.1:60001 B: 200.100.1.123:600022、A告诉C想要和B通信,请求告知B的IP地址及端口号。3、C告诉B有人想跟你通信,它的IP和端口号是100.200.123.1:600014、B告诉C没有问题,我同意跟他通信。同时,由于知道了A的IP和端口,向A发送一条试探性UDP报文,这条报文会顺利到达RouteA,但是会被RouteA抛弃。因为RouteA上没有对应的NAT记录,RouteA并不知道要转发给谁。但是RouteB会进行Nat记录,因此RouteB将来如果收到来自RouteA的报文时会正确发转给B。5、C回答A对方已经同意跟你通信,它的IP和端口号是200.100.1.123:600026、A正式向B进行通信,A一旦发起请求,由于RouteB上已经存在NAT记录,因此请求会顺利到达B,同时,RouteA上也有了NAT记录,因此B回发的报文可以被RouteA正确转发给自己。通信建立完成。此通信使用TCP或UDP协议均可,但必须使用原先协议好的端口。该过程的关键在于,UDP和TCP可以同时绑定同一个端口。与服务器的通信以及试探报文均使用UDP连接。而打通后的正常通信可以使用UDP或者TCP均可。基于以上原理,Nat穿透还有其他各种各样的变种方案,但基本原理相同。
C10.20.30.40
200.100.1.123
RouteA
B 192.168.1.1
192.168.0.254
100.200.123.1
192.168.1.254
A 192.168.0.1
ISP
RouteB
0 条评论
下一页