首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

问几个udp的nat穿透有关问题

2012-09-09 
问几个udp的nat穿透问题1.接收到一个udp信息,发送端的端口号为发送端的udp监听端口号,是不是就是说udp发送

问几个udp的nat穿透问题
1.接收到一个udp信息,发送端的端口号为发送端的udp监听端口号,是不是就是说udp发送时通过它监听的那个端口发送的?
2.两端都在一个局域网内,但是使用端口映射的外网地址和端口发送消息,是不是他们还是使用的内网中的端口来传输消息的?
3.在内网中如何获取外网中的动态映射的地址和端口?
4.一个服务器接收到一个udp信息,如何判断对方是不是和自己在同一个局域网内?
5.一个服务器和两个客户端,其中一个客户端和服务器在同一个局域网里面,另一个客户端在别的局域网,怎么通过服务器来协调这两个客户端进行udp穿透通信?

[解决办法]
1、说明发送方和接收方是同一个端口号,这样不能在同一台电脑上同时运行发送程序和接收程序。
[解决办法]
1、说明发送方和接收方是同一个端口号,这样不能在同一台电脑上同时运行发送程序和接收程序。
[解决办法]
1、说明发送方和接收方是同一个端口号,这样不能在同一台电脑上同时运行发送程序和接收程序。
2、内网端口和路由器传送消息的端口是不一样的。
3、只能获取对方路由器的IP和端口。
4、通过外网我IP判断,如果外网IP是相同的则是同一局域网。
5、只要两个客户端首先给服务器发送消息,然后建立连接,服务器通知客户端进行打洞,之后两个客户端就可以通信了。
参考:http://blog.csdn.net/andy511823558/article/details/7755377
[解决办法]
1.有可能是,但是看具体情况。
a.根据你获取的源端口号方式有区别. 如果是ip包头的端口号,那么可能是被nat过后的,不一定是发送端源端口号,大部分gw会优先一致分配。
b.如果自己的udp传送协议中带端口号,才是发送端的实际端口。 ip原理一致。

2.最好不要这么做,gw可能在这种映射机制上不支持或屏蔽掉。应该首先判断是否同内网,是的话直接用内网ip。(发送端实际ip)

3.需与外网通讯确定。 可以自定义协议
4.同上
5.一样


3,4,5的具体流程

a.每个client有2个ip/port 一个为本机获取的,另外一个是发送包给外网服务器时,外网服务器获得的源ip/port。

b.当一个client 的2对ip/port 相同时,client直接接入internet
不同的话client是通过了nat映射的。
c.2个client的外网ip一致,说明处于同一nat后面。此时可以尝试用local ip直接连接(可能是会失败,当2个net通过同一gw接入internet,同时gw不许2个私网互相访问时,此时用公网ip/port尝试连接,再失败就只能服务器转发)

d.nat映射的port一般会保持一定时间,只要通过心跳包不停发送外网数据,就可以维持gw上的nat映射。



[解决办法]
对于UDP打洞的服务端,不管在那个局域网,所有的客户端都能访问他,所以在局域网里面获取各个客户端的映射IP和端口号可以通过和服务端通信得到,对于服务端协助打洞的问题,主要还是通过向服务器发送请求,由服务器传达打洞相关协议,反复几次这样的过程,能打通的就可以通讯,从而实现了UDP的P2P通信。

两端都在一个局域网内,但是使用端口映射的外网地址和端口发送消息,是不是他们还是使用的内网中的端口来传输消息的?
看你用那种方式让他们连接,这些都有可能

热点排行