在防火墙上钻孔穿透防火墙建立UDP连接.docx

上传人:b****4 文档编号:24639436 上传时间:2023-05-29 格式:DOCX 页数:18 大小:117.99KB
下载 相关 举报
在防火墙上钻孔穿透防火墙建立UDP连接.docx_第1页
第1页 / 共18页
在防火墙上钻孔穿透防火墙建立UDP连接.docx_第2页
第2页 / 共18页
在防火墙上钻孔穿透防火墙建立UDP连接.docx_第3页
第3页 / 共18页
在防火墙上钻孔穿透防火墙建立UDP连接.docx_第4页
第4页 / 共18页
在防火墙上钻孔穿透防火墙建立UDP连接.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

在防火墙上钻孔穿透防火墙建立UDP连接.docx

《在防火墙上钻孔穿透防火墙建立UDP连接.docx》由会员分享,可在线阅读,更多相关《在防火墙上钻孔穿透防火墙建立UDP连接.docx(18页珍藏版)》请在冰豆网上搜索。

在防火墙上钻孔穿透防火墙建立UDP连接.docx

在防火墙上钻孔穿透防火墙建立UDP连接

在防火墙上钻孔:

穿透防火墙建立UDP连接

作者:

  时间:

2006-02-07  出处:

黑客基地  人气:

313

在防火墙上钻孔【UDPHolePuching】:

穿透防火墙建立UDP连接

知道现在流行的P2P软件和IM软件是如何让两台分处在不同防火墙后面的电脑直接对话的吗?

SIP当然是一种,还有一种被广泛应用的就是本文介绍的UDPHolePuching技术。

   为了便于讲述,我们假设有这样一个网络拓扑结构:

   IP=A.A.A.A    IP=1.1.1.1

   HostA----------FirewallA---------|

                                    |

                                  ServerIP=S.S.S.S

                                    |

   HostB----------FirewallB---------|

   IP=B.B.B.B    IP=2.2.2.2

   运用这个技术,必须满足下面的条件:

   1)HostA和HostB分别通过FirewallA和FirewallB经过NAT用UDP连接到了Server

   2)FirewallA和FirewallB都满足这样的特性,即来自相同IP相同Port的数据包,不管目的地IP是多少,都会NAT成相同的IP+Port,举个例子吧:

   HostA通过UDPPort1234访问主机S1时,防火墙会把数据包NAT成1.1.1.1:

5668(举例),那么HostA通过UDPPort1234访问主机S2时,防火墙仍然会把数据包NAT成1.1.1.1:

5668。

好在现在的NAT基本上都具备这个特性。

       现在,HostA用UDP端口1111连接到Server的5555端口,HostB用端口2222连接到Server的5555端口,在Server看来,HostA来自1.1.1.1:

9676(FirewallANAT过了嘛),HostB则来自2.2.2.2:

6573。

当HostA想直接连接HostB时,它这样做:

   1)用UDP端口1111发一个数据包给2.2.2.2:

6573,注意一定要用端口1111哦,这个数据包一定会被FirewallANAT成1.1.1.1:

9676->2.2.2.2:

5668(不要问为什么,看看前面对防火墙的要求先);千万别期望HostB会收到这个数据包,因为当包到达FirewallB时,FirewallB被弄糊涂了,它根本不知道1.1.1.1:

9676->2.2.2.2:

6573的数据包应该转给谁,当然这个包就会被丢弃并回一个ICMP包说Port不存在。

但是,我们还是得到了我们想要的一些东西,那就是我们成功地告诉了FirewallA"如果有2.2.2.2:

6573->1.1.1.1:

9676的数据包,请转发到A.A.A.A:

1111",这就是一个洞洞!

!

   2)接下来,和你想象的一样,HostA通过Server中转,告诉HostB,用端口2222发一个数据包到1.1.1.1:

9676,HostB照办了,而且这个包一定会被FirewallBNAT成2.2.2.2:

6573->1.1.1.1:

9676。

这个回复的数据包同样在FirewallB上钻了个孔,凡是1.1.1.1:

9676->2.2.2.2:

6573的包都会被转发到B.B.B.B:

2222,当数据包到达FirewallA时,FirewallA很高兴地把2.2.2.2:

6573->1.1.1.1:

9676的数据包转发给A.A.A.A:

1111。

   3)大功告成了,HostA和HostB开始愉快的交谈起来。

   很简单吧?

不过实施起来还要注意几点,否则你都不知道为什么总连不上:

   1)步骤1中那个Port不存在的ICMP是个杀手,至少对Linux上用iptables做的NAT来讲是这样,因为FirewallA收到这个ICMP会关闭刚钻上的洞洞,想办法不让FirewallB发这个ICMP或者让FirewallA丢掉这个ICMP吧;

   2)时间问题,步骤1在FirewallA上开的洞洞是有时间限制的,通常为30-60秒吧,如果超时了都没收到2.2.2.2:

6573->1.1.1.1:

9676的包,洞洞会自动关闭,同样步骤2以后,HostA也应该及时在发个数据包给B,以保证FirewallB上的洞洞不会因为超时而关闭。

值得提一下的是多数NAT防火墙会在看见进出双向的数据包后延长关闭洞洞的时间,Linux默认设置时会延长到3分钟。

   3)HostA不能连到HostB,并不表示HostB一定连不到HostA,反一下方向试试也许会有意外惊喜。

   好了,就写这些吧,祝大家钻孔愉快

P2P技术对网络与业务的影响分析

作者:

徐亦基、刘云  时间:

2006-02-24  出处:

中国多媒体视讯  人气:

173

P2P(PeerToPeer)以字意理解就是“伙伴对伙伴”,是目前日益广泛使用的网络应用技术,或者说是一种日益流行的应用层组网技术。

由于它在强化交流、文件传播、分布计算等方面所表现出的巨大优势,是目前公认具有广泛应用前途的未来“杀手级”应用。

众所周知,传统的网络应用模式基本是“服务器-客户端”方式一统天下。

服务的提供者(发布者)通过网络服务器向大众提供(发布)资源,用户通过客户端(硬件或软件)按照规定的协议向服务器索取所需的内容。

在这一方式下,一切服务都是以服务器为核心,以它的正常运转为前提。

P2P技术从根本上颠覆了这一传统模式。

新的模式模糊了服务提供者与使用者的界限,甚至不再有传统意义上的服务器,服务提供者的作用大为减弱。

每一个参与的使用者同时也成为了提供者。

在一个P2P的应用网络中,发布者的作用有些类似于启动的“按钮”和极端情况下的应急备份,先加入的使用者很快就会成为服务的提供者,为后来的使用者提供服务。

BT就是一种成功的P2P应用,它能够以超乎想象的速度传播文件,对于文件的发布者和使用者都是便利的工具。

但是,也许设计者过于专注技术的完美,以至于几乎没有为其作为“业务”的发展留下任何空间。

为了更好的说明P2P技术对未来网络与应用的影响,下面我们以另一种也是具有代表性的P2P应用——Skype进行说明。

二、Skype分析

Skype是一种P2P方式的VoIP和IM应用软件,用户可以使用它在数分钟之内与世界上各个角落拨打免费电话。

虽然在此之前,类似的软件已经有很多,但是没有一种能够象Skype这样灵活、便捷、可靠而且质量出色。

后面我们将仅就其具有典型性的几个方面进行说明。

(1)集中式认证和分散式使用者目录

用户身份认证是Skype网络中惟一集中操作的地方,在应用享有高度灵活性的同时,也为未来向业务的转化做了必要的准备。

但是,与众不同的是,用于记录使用者状态(在线)和IP地址的使用者目录却没有集中设置,而是充分信任“伙伴”们的工作,通过大家的协作完成用户搜索等功能。

这就减少了在此方面的资源投入,而能够使运营者更加专注于核心的功能。

(2)防火墙和NAT穿越

防火墙在保护网络的同时,也为网络应用人为设置了障碍,NAT也是如此。

这两项技术并不是与TCP/IP同时诞生的,从某种意义上说它们是为了使TCP/IP在基础网络方面更加实用而做的“补丁”。

其产生的副作用就是对网络应用而言,网络不再像原本那么“通畅”。

虽然各种应用都已经发展出一套“完善”的解决方案,比如同样用于VoIP的H.323,但是解决方案的成本又注定它不适于一项需要向大众普及的应用。

Skype的解决方式既吸取了成功的经验——利用网络中具有穿越防火墙(NAT)能力的主机作为代理,又合理的利用了现有防火墙(NAT)技术的“漏洞”——开放知名应用端口(HTTP)。

即使是毫无经验与知识的用户,也能够在不了解自己可能所处的复杂网络环境的条件下轻松使用,并且几乎感觉不到质量的差异。

(3)应用层组网和智能路由

应用层网络的概念在Skype中的作用显得尤为突出。

将参与通信的用户分为超级节点(SN)和普通客户端(SC),通过对用户(主机)的组织,构造起层次清晰、结构合理的应用层网络。

同时将必要的功能有计划的分解到网络中的各个部分,既充分利用的网络中的资源,也减轻了业务运营者的负担。

这种应用层网络从结构、逻辑和功能等各个方面都独立于承载网络,并且能够根据用户的数量与状态的变化自行进行调整。

智能路由更是其中重要的闪光点,Skype出色的语音质量很大程度得益于智能路由技术。

超级节点同时参与了流量分配、路由选择等多项关键工作,从而使延时、抖动等传统VoIP技术中的难点在此变得不再那么重要。

当然,Skype中具有的先进技术特征还不止于此,比如加密技术、跨平台特性、简捷的界面等。

从设计思想上分析,传统的VOIP技术,如H.323还带有更多的PSTN网络的特点,或者说是将PSTN的思路与观点,“移植”到互联网上,使一种成熟的业务能够适应一个新的承载平台。

Skype则是完全针对互联网的环境与特点“量身定做”,从设计之初就明确了适用环境、可资利用的资源和要达到的目标。

因此,如果以旧的观念来认识Skype,也许将变得难以理解。

三、对网络的影响

在传统应用模式下的网络,应用服务的聚集点(IDC)同样是流量的汇聚点;大量用户仅仅被定位于服务的使用者,因而ADSL等非对称的接入技术大行其道;甚至网络之间的流量特点也带有明显的非对称性——拥有大量信息源的网络,出流量显著高于入流量。

同时,这种应用模式和产生的流量特性长期以来指导着网络的设计与升级。

P2P技术将为我们带来一个业务“全分布”式的网络,而且这不再是以往所谈论的服务点有限的分布,而是一种可能无法估计的任意分布。

因为运营者希望有更多的用户使用自己的服务,同时也无法预估哪里的用户会使用自己的服务。

互联网对地域概念的模糊,将把全世界的用户带到你的面前。

流量将呈现出更大的任意性,用户之间直接的数据交换将更加频繁,也不会是谁的IDC更多,谁就一定会有更多的输出流量。

面对这一新的形势,网络准备好了吗?

P2P技术在应用层的组网,也为网络应用的运营者带来更大的灵活性。

无需依靠、关心业务的基础承载网络,就可以对用户进行管理、对业务进行规划、对业务进行控制,有更大的空间拓展业务的商业模式、实施业务策略、进行业务管理。

与之相伴的是网络运营商对网络应用的掌控能力进一步下降,整个互联网将呈现出更强的灵活性与开放性。

因为诸如Skype这种为互联网设计的业务的广泛应用,必将使互联网的一些固有特性得到进一步强化。

四、对应用、业务的影响

还是以Skype为例,虽然VoIP并不是什么新鲜事务,但是长期以来它对传统固话业务的分流仍然远远不及移动电话的冲击。

这种现象很值得思考,人们是否忽略了技术(应用)与业务的差距,忽略了在这段距离之间所隐藏的一些要素。

提起“IP电话”,用户更多的想到的是五花八门的“IP电话卡”,而不是一种真正的网络电话。

虽然这里面存在着政策与普及的因素,但是市场的需求永远是具有决定性的力量。

如果我们从业务角度重新审视以往的“网络电话”,就会发现它们与Skype之间的差距不是一星半点。

设想一下,如果不存在政策等的限制要素,Skype作为一种真正的业务开始运营,首先收到冲击的就是传统的固定电话业务,更值得担忧的是,还有可能在一夜之间“克隆”出若干个Skype,在另一个层次上展开竞争。

相对于传统的固定电话业务,Skype在建设和运营方面都有着无法比拟的成本优势。

竞争的结果可想而知。

P2P技术已经不仅仅应用于BT、Skype,已经出现了P2P方式的软件更新、电子杂志分发、视频点播(VOD),甚至预热阶段的IP-TV都在看好P2P。

P2P技术对运营条件的低需求,大大降低了业务启动的成本门槛。

也许,在一段时间内,会有人创造性的不断将这一新的技术用于各种既有应用,从而为这些应用带来全新的面孔和使用体验,也可能会带来全新的业务拓展模式。

虽然我们现在的网络和市场条件还不能完全接纳P2P这一新兴事务,甚至会对它的到来有些恐惧,但是这个“杀手”的出现也不会一夕而就。

毕竟,还没有哪个P2P类型的业务能够靠从用户手中的收益而成就自身。

虽然P2P在技术上已经取得了意想不到的成功,但它作为业务的完善还远未成熟。

“量子流媒体技术”,P2P的下一代?

作者:

王科力、吴铭  时间:

2006-02-28  出处:

流媒体世界  人气:

193

  技术的发展从来都是超越人们的想象。

正在国内电信运营商纷纷被BT、电驴等P2P传输技术逼得无计可施,正准备祭起“流量计费”大旗时,远在太平洋彼岸的美国却出现了“量子流媒体技术(QuantumStreaming)”,而这一技术的出现,似乎使得P2P与ISP之间得到了有机结合的机会。

  原来,在互联网技术最为发达的美国,BT下载、P2P流媒体等应用早已司空见惯,从而给ISP带来的流量阻塞问题也是日盛一日。

因此,美国ISP们纷纷酝酿按照服务类型对服务提供商,比如Google,Yahoo等收费,作为对于ISP们该项垄断措施的反应,美国国会开始制定”网络中立”法律,规定不准对网络数据类型“歧视“,这里的歧视指的是对于一些数据比如视频征收高费用,对于网页等数据则收低费用。

  按照内容不同实行歧视性收费是解决流量拥塞的一种方法,但这势必遭到提供大量数据的内容供应商的不满。

国会“网络中立”法案通过与否似乎变成了P2P与ISP们的搏弈。

然而“量子流媒体技术“的出现,却为双方找了另一条双赢的道路。

  量子流媒体技术是由一家惠普前数字媒体战略计划总监MichelBillard创办的小公司-Itiva公司()发明,这项技术的目的总结起来就是用类似HTTPCache的思路来解决视频文件导致的ISP网络拥塞问题。

  内容发行商首先将巨大的视频文件分解成很多小于普通网页的小文件(量子),然后发布出去,当某个ISP的用户观看该文件时,视频没有被全部下载,而是一点一点的到达ISP的接入路由器或者DSLAM,ISP在接入层放置Itiva的量子缓存服务器后,所有这些流过的文件片段都被部分缓存了下来,但其他用户想看时,就可以直接从本地ISP的缓存服务器下载,而不用再次启动从内容供应商的发布服务器到本地ISP的传输过程,从而提高响应速度,减少Backbone或城际网的拥塞。

目前该技术还处于非常不成熟的阶段,没有正式推出。

  从理论上说,该技术是ISP的P2P,能够为用户提供一种同样快速看到视频内容,同时为ISP解决网络拥塞的方案,从而代替目前的用户级P2P。

但也存在几个问题,这项技术解决的是Backbone或城际网的拥塞,但在接入层或最后一公里上同样作用不大,而且这项技术给了ISP或内容发行商更大的控制权,用户是否会真的抛弃P2P而选择他也是个问题。

而且从技术上说,量子流媒体很像UTStartcom的基于MEPG2TS流的IPTVCDN方案,这两者有什么关系尚不得而知(Itiva公司网站上说明该技术已经获得专利)。

  P2P让广大网民廉价的进入了网络视频时代,但毕竟破坏了很多产业规则,导致ISP和内容发行商的利益受损,受到各方阻碍,很难持续发展。

有鉴于此,笔者认为在不久的将来,类似量子流媒体这样既能降低网民收看影视内容费用,又能维护ISP利益的技术会不断出现。

据闻,在国内也早有电信运营商在研究基于P2P技术的CDN方案。

“魔鬼已经从盒子里出来了”,人们担心的并不是魔鬼的力量,而是它那不可控制的混乱。

对等网络中主流分布式哈希算法比较分析

作者:

陈岭  时间:

2006-03-07  出处:

电子工程专辑  人气:

170

本文首先从P2P的定义出发,介绍了结构化P2P与非结构化P2P的区别以及结构化P2P的核心技术DHT。

而后,本文深入介绍了几种主流的DHT算法与协议并对每种协议进行了讨论。

文章的最后展望了DHT在未来的发展趋势。

对等网络(Peer-to-Peer,简称P2P)是目前非常热门的应用,自1999年以来,P2P的研究一直是国外知名学府(如美国麻省理工学院,加州大学伯克利分校和莱斯大学等)以及知名企业的研发机构(如微软,诺基亚的研究院)关注的重点。

它甚至被美国《财富》杂志称为改变因特网发展的四大新技术之一,被认为是代表无线宽带互联网未来的关键技术。

作为一项新兴的技术,目前学术界对P2P在技术层面上的定义尚未统一。

KeithW.Ross(PolytechnicUniversity)和DanRubenstein(ColumbiaUniversity)在[9]中提到了对P2P系统的3个基本定义:

相比中央服务器而言有明显的自治性(Autonomy)。

利用网络边缘的资源,如存储/计算能力和信息资源。

网络边缘的资源处在动态的变化中(新的资源加入,已有的资源消失)。

自治性的要求使得P2P系统不再需要特定的中央管理机制,所有节点之间拥有对等的关系。

这一方面为系统带来了自组织、容错性好、可扩展性强等优点;另一方面也提出了新的问题:

如何在没有集中管理机制的情况下实现系统的自组织和自管理?

定义2,3中分布性和动态性的特点使得上述问题的实现具有更大的难度。

在分布式系统中,过多过快的信息交互可能消耗大量的网络资源;而为了实时反映系统的变化,又要求节点及时获得更新信息,这就需要在节点之间进行通信。

为了解决这一对矛盾,已经有许多P2P的框架和协议被提出来并得到了很好的应用。

结构化与非结构化P2P

依照节点信息存储与搜索方式的不同,诸多P2P协议可以分为2大类:

结构化(Structured)的与非结构化(Unstructured)的系统。

非结构化P2P系统

在非结构化的系统中,每个节点存储自身的信息或信息的索引(如指针和IP地址)。

当用户需要在P2P系统中获取信息时,他们预先并不知道这些信息(如某个文件)会在那个节点上存储。

因此,在非结构化P2P系统中,信息搜索的算法难免带有一定的盲目性,例如最简单的泛洪式查找(类似于广播)和扩展环查找(从最近的n个节点开始,层层转发直到找到目标或超出了跳数的上限为止)。

一些典型的应用采用了一些优化的办法。

如在Gnutella中,采用了等级制的组成结构:

节点被分成超级节点(SuperNode)和普通节点。

普通节点必须依附于超级节点,每个超级节点作为一个独立的域管理者,负责处理域内的查询操作。

在查找的过程中,查询首先在域内进行,失败后才会扩展到超级节点之间。

非结构化系统的优点在于实现结构简单:

无须中央服务器,节点之间完全平等,网络的层次是单一的,而且节点之间无需维护拓扑信息。

结构化P2P系统

在结构化P2P系统中,每个节点只存储特定的信息或特定信息的索引。

当用户需要在P2P系统中获取信息时,他们必须知道这些信息(或索引)可能存在于那些节点中。

由于用户预先知道应该搜索哪些节点,避免了非结构化P2P系统中使用的泛洪式查找,因此提高了信息搜索的效率。

但是,结构化P2P也引入了新的问题:

首先,既然信息是分布存储的,那么如何将信息分布存储在重叠网中的节点上?

其次,由于节点动态的加入和离开重叠网,如何将拓扑的变更信息通知其它节点?

DHT的引入基本解决了上述问题,因此自从DHT协议出现以后,结构化P2P的应用得到了快速的发展。

目前已经有很多较为成熟的DHT协议被提出并且得到了应用。

其中比较有代表性的有:

缓冲阵列路由协议(CARP);一致性哈希;Chord;内容寻址网络;Pastry。

DHT简介

DHT使用分布式哈希算法来解决结构化的分布式存储问题。

分布式哈希算法的核心思想是通过将存储对象的特征(关键字)经过哈希运算,得到键值(HashKey),对象的分布存储依据键值来进行。

具体来讲,大致有以下步骤:

对存储对象的关键字进行哈希运算,得到键值。

这样就将所有的对象映射到了一个具体的数值范围中。

重叠网中的每个节点负责数值范围中的特定段落。

例如,节点A负责存储键值从8000到8999的对象;而节点B负责7000~7999的对象。

这样就将对象集合分布地存储在所有的节点中。

节点可以直接存储对象本身,如文件中的一个片段;也可以存储对象的索引,如该对象所在节点的IP地址。

结构化的分布式存储问题解决后,剩下的问题就是用户如何才能找到存储着目标信息的节点。

在有着大量节点(如100万个)的P2P系统中,任何节点都不可能拥有全部的节点?

键值?

内容的对应关系;因此用户获得了键值之后,如何找到该键值对应的节点就被称为DHT的路由问题。

DHT协议必须定义优化的查找(路由)算法来完成这一搜寻的工作。

不同的DHT协议之间区别很大程度上就在于定义了不同的路由算法。

对等网络中主流分布式哈希算法比较分析

(2)

作者:

陈岭  时间:

2006-03-07  出处:

电子工程专辑  人气:

171

DHT的应用非常简洁----API简单到只有一项输入和一项输出:

应用层将数据对象(文件、数据块或索引)通过哈希算法获得键值,将该键值提交给DHT后,返回结果就是键值所在节点的IP地址。

图1(来自[9])显示了这种应用结构:

图1DHT的应用结构

在这样的支持下,可以开发多种P2P的应用程序,如网络存储与文件共享、即时消息、音频/视频等。

图2(来自[9])显示了这种应用结构:

图2DHT应用的层次

主流DHT协议

缓冲阵列路由协议(CARP,CacheArrayRoutingProtocol)

协议简介

CARP是由微软公司的VinodValloppillil和宾西法尼亚大学的KeithW.Ross在1997年提出的。

该协议可以将URL空间映射到一个仅有松散关联关系的Webcache服务器(在协议中称为“代理”,Proxy)阵列中。

支持该协议的HTTP客户端可以根据要访问的URL智能选择目标代理。

该协议解决了在代理阵列内分布存储内容的问题,避免了内容的重复存储,提高了客户端访问时WebCache命中的概率。

哈希算法

哈希使用的关键字有2个,一个是代理的标识符(每个代理均有唯一的标识),另一个是URL本身。

存储内容时,每个代理负责缓冲哈希键值最大的URL。

这样,当缓冲代理阵列发生少量变化时(新的代理加入或旧的代理退出),原有的URL还有可能仍然被映射到原来的代理上,仍可以按照原有的方式访问。

路由算法

客户端(HTTP浏览器)首先加载一个代理配置文件,该文件中存储了代理的标识符和IP地址等用于哈希的关键参数。

浏览器在访问网页时,可以根据URL和代理标识获得代理的位置信息(IP地址),从而可以直接访问缓冲代理中的页面。

讨论

CARP的哈希过程比较简单,路由查找更是简单到至多只有一跳(O

(1))。

但是CARP在P2P的应用环境中有一些致命的缺陷:

每个节点必须知道其它所有节点的信息。

在大规模的重叠网环境中,由于可能存在大量的(数百万)节点,加之节点都是动态加入和退出网络,因此这一条件几乎不可能满足。

在缓冲阵列发生较大变化时(这在P2P网络中非常常见),原有的URL和代理之间的对应关系可能发生改变,从而使得原有的配置文件失效。

一致性哈希(ConsistentHash)

协议简介

一致性哈希算法在1997年由麻省理工学院提出(参见0),设计目标是为了解决因特网中的热点(Hotpot)问题,初衷和CARP十分类似。

一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1