牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

网上大多数原理总结,UDP打洞原理

网络上的大多数UDP原理研究分析后,自己总结了下面的结果.

1、client A 登录 通过http服务器 webservices 验证成功获取自身信息与好友

列表信息等。

2、Http服务器登记client A的NAT后的IP地址与端口

3、Client B登录 通过http服务器 webservices 验证成功获取自身信息与好友列

表信息等。

4、Http服务器登记client B的NAT后的IP地址与端口

5、Client A想发送消息给Client B,向HTtp服务器获取Client B的在线IP地址

6、Client A获得Client B的IP地址后并发送UDP信息到Client B

7、Client A与Client B请求失败,信息丢失,此时Client A报告Http服务器要求

服务器帮忙对Client B进行通知

8、Http服务器接到此命令后,将Client A的IP地址发给Client B,要求他连接

9、Client B收到HTTP服务器的信息后发送请求到 Client A

10、由于此时Client A NAT已经存在Clinet B的session,所以此时 Client A与

Client B建立链接成功。

11、Client A发送消息到 Client B成功,不经HTTP服务器中转

总结:换句话说就是HTTP服务器启动了“和事老”的功能。为不信任的两个人发

出命令从而使他们达到了一种互相承认而此建立链接关系 

其中最主要的是Server 的一个方法就是发送消息到被打洞的客户端

客户端发送消息需要判断该消息是否发送成功,不成功则要求请求打洞.若成功则不需要要求打洞!

客户端在接收到服务器的打洞指令后,则作出UDP发送响应


from:http://blog.csdn.net/wenzhoufeng/archive/2007/03/27/1542733.aspx

posted on 2007-08-21 01:37 杨粼波 阅读(6577) 评论(8)  编辑 收藏 引用

评论

# re: 网上大多数原理总结,UDP打洞原理 2007-08-21 14:23 万连文

唉,明白了。谢谢,浅显的道理被名词遮掩住了。  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理[未登录] 2008-08-26 13:05 1

恩,看起来简单多了  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理 2008-10-27 18:08 伐木鼎鼎

这个是错误的, 就算有server通知client A 与 B 其对方的NAT公网IP, 双方是不能直接交互的, NAT的session会把对方的包丢弃,因为是非法的。

楼主应该google一下: cone NAT  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理[未登录] 2008-10-27 19:42 cppexplore

@伐木鼎鼎
呵呵,没那么严重,可以做丢包重传机制,这样第一次a发给b的包可能会被拒收,第一个b发给a的也可能被拒收,但后面的包就正常了。  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理 2008-12-01 10:25 cpp

这个 http服务器 很强大啊  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理 2009-11-22 22:46 feitian

服务器是http的应不行,http只能得到双方的ip,而不能得到端口号,

4、Http服务器登记client B的NAT后的IP地址与端口
不能实现
只有在服务器上安装一个软件,这个软件接收UDP状态的,才能当媒介,但这么做,需要自己有个可装软件的公网电脑,成本就高了.  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理 2010-06-11 20:42 kefan

这样是不能成功的。

6、Client A获得Client B的IP地址后并发送UDP信息到Client B

这时的Client A发送UDP信息到Client B的端口号已经改变,并且为未知端口。并不是Client A连接到中转服务的端口。  回复  更多评论   

# re: 网上大多数原理总结,UDP打洞原理[未登录] 2010-09-04 11:19

可以的,端口可以复用嘛  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理