UDP打洞原理

1. 目的

  • 使两个使用了NAT的私有网络的Internet主机之间建立双向UDP连接。一般应用在p2p上

2. 具体流程

  1. 主机A登录QQ服务器,验证成功后获取好友列表信息
  2. QQ服务器登记主机A的NAT后的公网IP与端口
  3. 主机B登录QQ服务器,验证成功后获取好友列表信息
  4. QQ服务器登记主机B的NAT后的公网IP与端口
  5. 主机A想不经过QQ服务器直接发送消息给主机B,于是向QQ服务器请求获取主机B的公网IP与端口
  6. 主机A获得了主机B的公网IP和端口,然后发送udp消息给主机B
  7. 主机B的NAT因为收到陌生的IP发来的数据,默认会丢弃。所以主机A请求失败,此时主机A向QQ服务器发送信息,让QQ服务器帮忙对主机B进行通知。
  8. QQ服务器收到此请求后,将主机A转换后的公网IP地址发送给主机B,要求主机B连接
  9. 主机B收到QQ服务器的消息后直接向主机A发送请求
  10. 此时由于主机A的NAT已经存在主机B的session,所以此时主机A与主机B建立连接成功。

此后,主机A与主机B之间发送消息不再需要经过QQ服务器进行中转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值