UDP打洞流程

[复制链接]
4849|6
 楼主| Mindor 发表于 2010-8-27 10:26 | 显示全部楼层 |阅读模式
最近有朋友问我UDP打洞的过程和原理,正好前段时间玩过,我把流程写出来分享一下供还不了解的菜鸟一起交流哈!我也是新手;P
(前提是有些基本概念和原理要先熟悉一下,比如NAT工作原理等)

UDP打洞流程:

1、客户端A登录服务器,服务器将客户端A的私网和公网终结点记录下来。
2、客户端B登陆服务器,服务器将客户端A的私网和公网终结点记录下来。
3、服务器将A的公网终结点发给客户端B。
4、客户端B向客户端A发一个数据包(此数据包作用:在客户端B的NAT上建立一个session,该session为B分配一个端口,即打了一个往A方向的洞口,以后如果有数据包从公网到达此端口,NAT将会把此数据包直接转发给客户端B)。但此时客户端A收不到此数据包,因为A端的NAT拦截了这个未曾谋面的数据包。
5、客户端B向服务器报告:已经向A方向打洞,此时服务器将B的公网终结点发给A,并命令客户端A往B方向发一个数据包(作用同第4步)。
6、客户端A发送一个数据包到客户端B的公网终结点上。此时,客户端B已经接收到A发送过来的这个数据包,至此打洞成功,以后A和B可以直接互相发送信息了!
123654789 发表于 2010-8-27 10:28 | 显示全部楼层
QQ就是使用UDP协议
huoyunjie 发表于 2010-8-27 10:45 | 显示全部楼层
有道理
 楼主| Mindor 发表于 2010-8-27 11:11 | 显示全部楼层
2# 123654789
我只知道qq视频和语音是UDP协议。。。
不过我QQ登录的时候,我抓包看到的是TCP协议。。。还不是很清楚。。。
原野之狼 发表于 2010-8-27 12:50 | 显示全部楼层
UDP打洞 没这么一说吧
找个P2P工具的源码看看就知道是咋样实现内网穿透的了
另QQ不只是使用UDP协议 还有TCP协议 比如登录过程
 楼主| Mindor 发表于 2010-8-27 14:20 | 显示全部楼层
5# 原野之狼
有哦~一般说UDP打洞就是NAT穿透哈:lol
linqing171 发表于 2010-8-27 21:34 | 显示全部楼层
用PNP把。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好活着就是做很多有意义的事,做有意义的事就是好好活着。

36

主题

413

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部