[发明专利]一种提高webrtc p2p打洞成功效率的方法在审
| 申请号: | 202211187361.2 | 申请日: | 2022-09-28 |
| 公开(公告)号: | CN115514572A | 公开(公告)日: | 2022-12-23 |
| 发明(设计)人: | 吴海霖 | 申请(专利权)人: | 泉州砾鹰石科技有限公司 |
| 主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L61/256;H04L61/2592;H04L67/104 |
| 代理公司: | 山东恒果知识产权代理有限公司 37347 | 代理人: | 李至冰 |
| 地址: | 362000 福建省泉州市*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 提高 webrtc p2p 打洞 成功 效率 方法 | ||
1.一种提高webrtc p2p打洞成功效率的方法,其特征在于:包括以下步骤:
(S1)探测NAT类型:两端使用stun协议探测自己的NAT类型,并放在offer和answer的candidate里面告知对方;
(S2)判断NAT类型:收到对方的NAT类型和自己的NAT类型对比,如果一端是对称型NAT另一端是端口限制型NAT则进入接下来的打洞过程;
(S3)生成访问记录:不同类型生成的访问记录不一样;
(S4)UDP穿透:中间服务器保存信息、并能发出建立UDP隧道的命令,网关均要求为ConeNAT类型,Symmetric NAT不适合,完全圆锥型网关可以无需建立udp隧道;
(S5)控制发布速率:打洞过程需要控制发布速率, 端口限制型NAT访问对方不同端口时很容易被认为UDP端口扫描攻击,对称性NAT探测端口限制型NAT的报文很容易被误认为UDP 洪泛攻击,需要控制发包速率。
2.根据权利要求1所述的一种提高webrtc p2p打洞成功效率的方法,其特征在于,所述步骤(S2)中判断NAT类型的方法包括以下步骤;
(1)判断主机是否在NAT后:主机A首先发送任意一个UDP数据包给服务器S(Endpoint1),S收到包之后,用Endpoint1将接收到数据包头的IP地址和端口打成一个UDP反馈包发送给用户A,A在收到反馈包之后,比较自身的Endpoint和反馈包中的Endpoint,如果一样则说明A不位于任何NAT之后,否则,就是位于NAT之后;
(2)检测NAT是否是完全锥型:主机A向服务器S(Endpoint1)发送UDP数据包后,服务器用Endpoint2将接收到数据包头的IP地址和端口打成一个UDP反馈包发送给用户A,另外,A在发送UDP数据包后,立即开始端口侦听,设定一个等待时间上限,防止无限堵塞(因为接收是一个While循环),这样进行若干次,如果A每次都没有收到数据包,说明A所处的NAT类型不是完全锥型的,相反,在这整个过程中只要收到一次服务的包,就说明A所处的NAT类型是完全限制型的;
(3)检测NAT是否是对称型:主机A向服务器S(Endpoint1)发送UDP数据包,服务器S(Endpoint1)在收到数据包后,用Endpoint1将接收到数据包头的IP地址和端口打成一个UDP反馈包发送给用户A,另外,A在发送数据包后,开始侦听端口并接收数据,设定一个等待时间上限,防止无限堵塞(因为接收是一个While循环),与此同时,主机A用同一个套接字向服务器S (Endpoint2)发送UDP数据,Endpoint2发送与上面类似的UDP回馈包,在A的整个数据接收过程中,如果收到的服务器反馈数据包中标识自身的IP地址和端口存在不相同的情况,就说明NAT是对称型的,否则是非对称型NAT。
3.根据权利要求1所述的一种提高webrtc p2p打洞成功效率的方法,其特征在于,所述步骤(S3)中生成访问记录的方法包括以下步骤:
(1)对称型NAT需要创建多个udp socket,每个socket朝端口限制型NAT的外网地址发送stun ping探测报文,此时端口限制型NAT的路由器会记录对端的公网IP有多个端口有访问记录;
(2)端口限制型NAT也会使用同一个udp socket朝对端外网IP的不同端口发送stunping探测报文,如果刚好探测的某个端口也有发过包给端口限制型NAT,则此时就能被对方的NAT通过,至此就能打通,因为此时两端的路由器都有记录双方的访问记录。
4.根据权利要求1所述的一种提高webrtc p2p打洞成功效率的方法,其特征在于,所述步骤(S4)UDP穿透的方法包括以下步骤:
(1)双方先都通过UDP与服务器通讯后,NAT网关默认会做一个外网IP和端口号 与 内网IP与端口号的映射,这个无需设置的,服务器也不需要知道客户的真正内网IP用户A的NAT穿透;
(2)用户A先通过服务器知道用户B的外网地址与端口;
(3)用户A向用户B的外网地址与端口发送消息;
(4)在这一次发送中,用户B的网关会拒收这条消息,因为它的映射中并没有这条规则;
(5)但是用户A的网关就会增加了一条允许规则,允许接收从B发送过来的消息
用户B的NAT穿透:
(6)服务器要求用户B发送一个消息到用户A的外网IP与端口号;
(7)用户B发送一条消息,这时用户A就可以接收到B的消息,而且网关B也增加了允许规则用户A-B的双向UDP通信;
(8)之后,由于网关A与网关B都增加了允许规则,所以A与B都可以向对方的外网IP和端口号发送消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于泉州砾鹰石科技有限公司,未经泉州砾鹰石科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211187361.2/1.html,转载请声明来源钻瓜专利网。





