UDP打洞原理

转载 2016年08月30日 21:03:43

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

许多P2P软件比如SKYPE,QQ,电驴之类需要不同内网的两台机子进行通信,而路由器的NAT机制决定了内网访问外网容易,而外网访问内网困难,那如何才能做到这一点呢?有办法------打洞!


具体实现方法需要一台服务器,现在假设两台内网PC,A和B想用端口40000通信,网关分别为NATA,NATB.服务器为S,配置如下:

A:              192.168.0.34               40000

NATA:       58.240.157.121           60020

B:              192.168.0.227             40000

NATB:       58.240.157.222           50030

S:              58.240.157.240           40000


打洞过程:

1.A访问S,打一个洞,洞的指向为A<->S

2.B访问S,打一个洞,洞的指向为B<->S

3.S访问A,告诉它:B想访问你

4.A访问B,洞的指向为A<->B,这个包B的路由器NATB收到后不会转发给B,而是丢弃,因为它认为这是来历不明的包:(

5.B访问A,洞的指向为B<->A,此时A与B可以进行双向通信,打洞成功


打洞的目的是为了告诉NAT,我要访问的IP是我"朋友",你不能阻拦它发过来的信息,比如第4步A通过发送这个包,告诉了NATA:B是我朋友;第5步B发送包给A,告诉了NATB:A是我朋友.最后NATA认识了B,而NATB认识了A,A与B终于实现了双向通信.

相关文章推荐

C语言实现UDP打洞

首先,如果你不是很清楚UDP打洞原理,建议先看下这篇博文,写的很好。   http://blog.csdn.net/wenhuiqiao/article/details/5929186   废话不...

关于TCP打洞技术(P2P)

建立穿越NAT设备的p2p的TCP连接只比UDP复杂一点点,TCP协议的"打洞"从协议层来看是与UDP的"打洞"过程非常相似的。尽管如此,基于TCP协议的打洞至今为止还没有被很好的理解,这也造成了对其...
  • Sidyhe
  • Sidyhe
  • 2011年02月13日 03:09
  • 15788

P2P打洞原理

tcp打洞 首先我们明确现在我们有的设备: 1、客户端A,网关NAT-A 2、客户端B,网关NAT-B 3、服务器S 这些设备明确之后,就可以介绍TCP打洞的过程: 1、首先服务器...

Udp打洞和TCP打洞之我见

TCP打洞和UDP打洞的区别 2013-04-11 12:06 211人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载。 为什么网上讲到的P2P...

用TCP穿透NAT(TCP打洞)的实现

1. TCP穿透原理:     我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入互联网。互联网上有一台服务器S。      现在AB是无法直接和对方...

TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞

TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞(附源代码)◆◆◆ 作者 ◆◆◆谢红伟 · chrys · chrys@163.com · http://www.howa.com.cn◆◆◆ ...

UDP打洞原理,Delphi演示

  • 2013年06月24日 14:01
  • 33KB
  • 下载

udp打洞原理详解

  • 2012年10月09日 16:16
  • 167KB
  • 下载

UDP用打洞技术穿透NAT的原理与实现

首先先介绍一些基本概念:            NAT(Network Address             Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,...

P2P通信 原理-UDP打洞方式

在传统的集中式网络中,都是一台服务器(集群)对外提供服务,所有客户端都依赖中央服务器进行与服务端的通信或者其他客户端的通信。如图   这样的通信方式,一个数据包从一个客户端发送到另一个客户端...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UDP打洞原理
举报原因:
原因补充:

(最多只允许输入30个字)