为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

P2P穿透防火墙源码分析

2017-11-10 3页 doc 13KB 13阅读

用户头像

is_842972

暂无简介

举报
P2P穿透防火墙源码分析P2P穿透防火墙源码分析 P2P之UDP穿透NAT源码分析 说明: 有关这方面的介绍很多,请参考P2P 之 UDP穿透NAT的原理与实现的讲解。主要技术就是NAT,网络地址转换。 要强调的一点是,当内网客户端要连接公网服务器时,会在NAT上建一个Session,并且分配一个端口(十分重要),并且记录相应的公网IP地址和端口。这个时候,从该公网服务器发送的数据到该端口的数据,将会被转发到该内网客户端,其它IP发送到该端口的数据,将被抛弃。 如果客户端的套接字同时向两个不同的公网服务器连接。NAT的处理是不同的,Symm...
P2P穿透防火墙源码分析
P2P穿透防火墙源码分析 P2P之UDP穿透NAT源码分析 说明: 有关这方面的介绍很多,请参考P2P 之 UDP穿透NAT的原理与实现的讲解。主要技术就是NAT,网络地址转换。 要强调的一点是,当内网客户端要连接公网服务器时,会在NAT上建一个Session,并且分配一个端口(十分重要),并且记录相应的公网IP地址和端口。这个时候,从该公网服务器发送的数据到该端口的数据,将会被转发到该内网客户端,其它IP发送到该端口的数据,将被抛弃。 如果客户端的套接字同时向两个不同的公网服务器连接。NAT的处理是不同的,Symmetric NAT是会再建一个Session并且分配一个新端口号,而Cone NAT会再建一个Session,但仍然使用原来的端口号。 穿透原理: 返回到前面讲的内容。我们要收到外网的数据,必须要发送一个数据包,会在NAT上建一个Session,并且分配一个端口(十分重要),并且记录相应的公网IP地址和端口。就可以收到该公网发送过来的信息。 所以问题就变为:内网客户端A发送一个数据包连到NATB 的公网地址。然后就可以接收到NATB公网地址发送过来的数据(其实是由内网用户外发,它只是转发)。但是现在问题来了: A客户端通过公网服务器得到了NATB的外网IP及端口,于是就发数据过去,满怀信心的等待连接,没想到数据到了NATB这里,NATB说:“我内网的用户又没有连接你,那有不请自己来,我不认识你。”于是就把数据抛弃了。B客户端也同样这样。A和B都想把公网NAT信息告诉对方,只要有一方收到消息就可以通信,问题是双方没有连接,怎么能通知该消息呢,所以这个问题就需要由公网服务器来处理。 当A想和B通信的时候, 需要向公网服务器发送消息,由公网服务器把消息发送给B,B再向A发送连接请求(打洞)。然后B就可以接受A的消息了。B想和A通信的时候,也是同样的道理。 这样A即能和公网服务器通信,又可以和B客户端通信了。 注意:因为NAT设备会收回一些不活动的Session,因此,双方必须经常互发心跳数据包,让Session一直存活着。 服务器端源码简单分析: 服务器启动后,启动消息线程。接受数据,然后,根据消息头(登录,下线,打洞,得到用户列表,发送文件等)。 登录: 就创建一个用户结构,并把用户的姓名,IP,端口号加入到用户列表中(这里用 户的IP,实际是NAT的公网IP)。 下线流程: 直接从用户列表中删除该用户信息。 用户列表: 定时发送用户列表给用户,或者用户主动请求用户列表。 打洞: A客户端请求连接B客户端的,把B客户端的IP,端口号(NAT外网地址)发送 给B,B收到之后发送一个数据到A的NAT外网地址。 客户端源码简单分析: 登录流程: 把用户信息,发送给公网服务器。 退出流程: 发送相应消息,给公网服务器。 用户列表: 发送相应消息,从公网服务器得到用户列表信息。 连接其它客户: *流程:直接向某个用户的外网IP发送消息,如果此前没有联系过 * 那么此消息将无法发送,发送端等待超时。 * 超时后,发送端将发送一个请求信息到服务端, * 要求服务端发送给客户C一个请求,请求C给本机发送打洞消息 * 以上流程将重复MAXRETRY次 一个线程接受数据: 接受消息:其它用户发来的消息 接受公网服务器发来的打洞消息。 接受用户列表消息。 接收公网服务器发来的心跳数据。
/
本文档为【P2P穿透防火墙源码分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索