路由器路由器限制网速

路由器限制网速  时间:2021-05-21  阅读:()
ISSN1000-9825,CODENRUXUEWE-mail:jos@iscas.
ac.
cnJournalofSoftware,Vol.
18,Supplement,December2007,pp.
8894http://www.
jos.
org.
cn2007byJournalofSoftware.
Allrightsreserved.
Tel/Fax:+86-10-62562563对等网络中的路由器增强型NAT方法张建伟1,3+,皮人杰2,战晓苏4,郭云飞11(国家数字交换系统工程技术研究中心,河南郑州450002)2(北京邮电大学计算机科学与技术学院,北京100876)3(郑州轻工业学院计算机与通信工程学院,河南郑州450002)4(北京邮电大学电子工程学院,北京100876)ARouterEnhancedNATMethodforPeer-to-PeerNetworkZHANGJian-Wei1,3+,PIRen-Jie2,ZHANXiao-Su4,GUOYun-Fei11(NationalDigitalSwitchSystemEngineeringandTechnologicalResearchCenter,Zhengzhou450002,China)2(DepartmentofComputerScicence,BeijingUniversityofPostsandTelecommunications,Beijing100876,China)3(DepartmentofComputerandCommunication,ZhengzhouUniversityofLightIndustry,Zhengzhou450002,China)4(DepartmentofElectronicEngineering,BeijingUniversityofPostsandTelecommunications,Beijing100876,China)+Correspondingauthor:Phn:+86-371-63556633,Fax:+86-371-63556293,E-mail:ing@zzuli.
edu.
cnZhangJW,PiRJ,ZhanXS,GuoYF.
ArouterenhancedNATmethodforpeer-to-peernetwork.
JournalofSoftware,2007,18(Suppl.
):8894.
http://www.
jos.
org.
cn/1000-9825/18/s88.
htmAbstract:ThedeploymentofsymmetricNATmakesthecommunicationbetweenhostsinapeer-to-peerapplicationverydifficult,whichneedsmanyrelaynodetoprovideNATtraversalservice.
Traditionalrelaynodesareallserverhostslieintheedgeofnetwork.
Toreducetheduplicatetrafficandexcessrouterloadcausedbyserverrelaying,aUDPswitchbasedrouterenhancedNATmethodisproposedinthispaper,whichcanresolvethebottleneckofnetworkbandwidthbyenhancerouterfunctionindependently.
Keywords:peer-to-peernetwork;routerenhence;networkaddresstranslation;transportlayerswitch摘要:对称NAT的部署使得对等应用主机间的通信变得困难,需要大量的中转节点提供NAT穿越服务.
传统的中转节点是位于网络边缘的服务器节点,为了减少服务器中转引入的重复流量和路由器交换负载,提出了一种基于UDP交换模型的路由器增强NAT方法,可以通过增强单个路由器的功能来缓解网络带宽资源压力.
关键词:对等网络;路由器增强;网络地址转换;传输层交换当前P2P的网络流量已经超过了Web浏览类业务和其他各类传统C/S类业务流量的总和,各类P2P网络应用成为Internet的主导型应用.
P2P应用的一个显著特征是节点间的流量不再经由服务器而是直接在这个成员主机之间交互,这必然要求网络能够提供节点间的直接通信能力.
但是,当前的Internet采用的是基于32bit地址空间的IPv4网络层技术,可用的全球公网IP地址趋于枯竭,大量的新增Internet网络用户只能采用NAT[1]方SupportedbytheNationalBasicResearchProgramofChinaunderGrantNo.
2007CB307102(国家重点基础研究发展计划(973));theScience-TechnologySupportingProjectoftheNational'EleventhFive-Year-Plan'ofChinaunderGrantNo.
2006BAH02A03(国家'十一'五科技支撑计划项目);theNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.
2006AA01Z206(国家高技术研究发展计划(863))Received2007-04-15;Accepted2007-11-25张建伟等:对等网络中的路由器增强型NAT方法89式接入Internet,这种情况在我国尤为普遍.
NAT技术虽然可以解决部分的节点接入问题,但是主要是针对传统的C/S应用模式,即网络应用是以位于公网的服务器为核心进行开展的.
而P2P应用引出的主机之间的通信必然受到NAT设备存在的影响,有鉴于此,需要针对此类问题提出相应的解决方案.
本文第1节概述现有的NAT穿越技术.
第2节详细描述一种基于路由器增强的NAT穿越方法.
第3节对应用实施该方法的各个方面加以介绍.
第4节总结全文,并提出下一步研究内容.
1NAT技术概述总结起来,目前解决NAT穿越的方法主要分为3类:NAT受控方式、中转方式和非中转方式.
P2R3NAT1NAT2R1STUNserverR2P1P2R3NAT1NAT2R1TURNserverR2P1(a)(b)Fig.
1STUNandTURNtrafficmodel图1STUN和TURN流量示意图1.
1NAT受控方式这是最直接的解决方案,即增强NAT设备的功能,使其支持P2P类应用.
例如,RSIP[2],UPnP[3]和ALG(applicationlevelgateway).
ALG本身受限于具体的网络应用类型,无法解决不断出现的新型P2P网络应用的问题,所以此类方法只能做到对主机软件的透明性,除此之外无其他优势.
虽然UPnP作为一种通用的NAT设备动态应对方法已经被很多软件所采用,但是由于NAT设备已经存在了很长时间,很难对已经大量部署的原有非UPnP设备进行升级和改造,而且UPnP也无法解决多重NAT的问题.
另外,更为重要的是,由于考虑网络安全的因素,很多即使本身支持P2P应用的NAT设备都人为地被网络管理员关闭了此项功能.
RSIP与UPnP非常类似.
1.
2非中转方式此类方式以STUN[4]为代表,如图1(a)所示,即通过探测出设备的公网地址后,在后续的操作中通过通告其公网地址使得其他主机可以主动进行数据发送,从而建立NAT映射关系.
但是这类方法只能应对各类锥型NAT(coneNAT),对于目前网络中大量使用的对称NAT(symmetricNAT),当通信双方主机都位于对称NAT内网时,非中转方式无法完成NAT映射关系的建立.
1.
3中转方式由于非中转方式不能解决对称型NAT的问题,所以出现了像SOCKS代理、TURN[5]中继这样的流量中转处理方法.
如图1(b)所示,TURN服务器在通信双方主机直接提供双向的流量中继,所以可以解决多重NAT和对称NAT问题,但其采用了TCP可见的协议直接中继处理,对于大规模存在的NAT内网主机其扩展性较差.
这里所说的中转方式是基于专门服务器方式的,而文中介绍的RUS(routerenhencedUDPswitch)方法则将中转节点的位置放在通信双方主机的单播传输路径上.
ICE[6]是一个建立在STUN和TURN之上的解决方案框架,用于让节点能够根据当前的情况自由选择NAT穿越方式,尽可能地降低网络负载,但不可避免地受到STUN和TURN的限制.
90JournalofSoftware软件学报Vol.
18,Supplement,December20072算法描述目前IPv4网络中的NAT设备只支持TCP、UDP、ICMP这3种基本协议的地址/端口转换,而相对于ICMP需要在rawsocket一级进行网络编程而言,TCP和UDP提供了更加友好的socket编程接口,但是TCP是一种有状态的传输协议(分为client和server两种工作模式).
一般的NAT设备缺省的动态NAT映射只处理TCP的client模式,即只允许内网主机发起连接,该连接的NAT映射具有TCP的状态字段,不能用于外网主机通过这个映射向内网主机发起新的连接,所以采用TCP方式很难解决双向连接的问题.
由于UDP本身是无状态的,任何网络节点对UDP关系的维护都要比TCP容易得多,而且由内网主机触发的NAT映射可以被外网主机用来随意传送数据,所以选择采用UDP方式作为交换的传输层协议.
2.
1需要解决的问题在有NAT设备的网络环境中,只有在通信双方都处于对称型NAT后面的情况下,才会导致非中转型方案(STUN)的失败,此时才必须引入中转型方法,而RUS是一种基于路由器的中转型方法,与其他中转型方法相比,RUS的优势是所消耗的带宽更少,对单个路由器的增强可以避免传统中转型方法对一组路由器造成的带宽影响.
2.
2算法思想RUS的基本思路是让处于内网主机之间的单播路径上的路由器承担数据的中转功能,而不再需要由路径之外的服务器节点承担中转,这样就避免了本来应该由路由器转发的流量旁路到了非路径节点上.
以图2中的P1和P2间的流量为例,如果采用由P3作为中转节点,流经R3的流量变成了P1和P2直接交互时的2倍(P1与P3之间、P3与P2之间),当网络中具有大量的P2P类应用,而且节点大多数处于NAT内网的时候,这种路由器负载增大的情况将覆盖整个网络,这样必然导致网络性能受到影响.
如果此时R3本身能够提供NAT中转的功能,则节点的交换负载不会成倍增加,当然,RUS的引入必然会增加一些额外的处理消耗,但是这种处理是纯计算型的,可以被节点通过并行处理进行分担的,并不像流量增加那样直接对路由器链路造成负载增加.
P2R3NAT1NAT2R1P3R2P1R4Fig.
2P2Papplicationnodesdistributionsample图2P2P应用中节点分布图示例2.
3节点探测RUS中的交换路由器(即增强型路由器)的信息来源是由通信主机主动探测得出的.
RUS采用了发送具有特定UDP目的端口信息的探测包来触发沿路各个路由器启动RUS功能.
每个通信主机独立地向通信对方之前通告的公网IP地址发送PING消息(UDP包),该UDP包的目的端口值为RUS定义的保留值(在本文中假设为56789),沿途的每个路由器都会受到该UDP包,包括可能存在的RUS路由器,对于非RUS路由器而言,这是一个普通的UDP单播数据包,所以不会做任何额外处理,继续其单播路由进程.
当路径上的某个RUS路由器收到该UDP包时,由于其目的端口为56789,所以对该PING消息响应一个PONG消息(也是UDP包),其源地址为PING消息中的目的地址,源端口为56789,这样,PONG消息就能通过发送主机一侧的NAT检查回到主机.
PONG消息张建伟等:对等网络中的路由器增强型NAT方法91中含有PING消息中所没有的信息:RID,RID即该RUS路由器的访问IP地址,用于告知主机可以通过哪个IP地址进行RUS的后继操作,因为UDP字段中的信息并没有涉及路由器.
考虑每个路由器的性能门限,即使是支持RUS功能的路由器也可以根据当前的运行负荷决定是否要对PING消息进行响应,如果不作响应,则对PING消息的处理与普通路由器一样,继续其单播路由进程,即传递给下一跳路由器.
对于得到PONG消息的主机,如果希望进行RUS下一步操作,则需要向所得到的RID地址的56789端口发送OPEN消息,该消息中不携带任何参数,由于RUS主要用于解决对称NAT问题,所以无须提供任何主机方面的地址或端口信息,收到OPEN消息的RUS路由器如果允许此次映射关系的建立,则响应ACK消息,ACK消息中携带有为此次会话分配的UDP端口(一对端口:一个用于探测主机发送数据,另外一个用于对方主机发送数据),还包括此次映射的会话标识SID,此SID可为可变长度的任意字节串,用于防止非会话主机的流量干扰.
由于没有其他方法可以让RUS路由器获知自己是否处于通信双方的单播路径上,所以探测主机必须保持定时地发送OPEN消息,不过在收到ACK消息后的OPEN消息中携带有合法的RID、UDP端口、SID,拥有RID的路由器在检查了UDP端口和SID有效的情况下不需要发送ACK,这种定时发送的OPEN消息是用于让路由器确认所处的单播路径情况没有改变.
如果路由器在一定时间内没有收到合法的OPEN消息,则认为此次会话失效,转换关系被删除.
主动探测的主机在完成了映射关系之后需要通过非RUS途径将此次映射的RID和SID告知通信对方的主机,这样对方才能通过向RID位置发送UDP分组激活自己一侧的NAT映射关系,数据才能通过NAT传递给被告知一方的主机.
非RUS途径告知必须得到确认,否则主动探测一方可能在对方NAT映射建立之前发送数据,导致数据丢失.
转换关系的终止可以是由探测主机停止发送OPEN消息触发,也可以通过探测主机主动地发送SHUT消息来关闭,SHUT消息携带有与定时发送的OPEN消息一样的信息,收到SHUT消息后路由器无须响应,直接关闭该转换关系即可.
2.
4消息类型RUS采用UDP作为数据的传输方式,与普通的NAT设备不同,RUS不仅依赖地址和端口来维护转换的映射关系,而是增加了一个用于判定数据是否合法的会话标识字段(SID),这是因为RUS交换路由器处于网络的核心位置,较处于网络边缘的NAT设备更容易受到非法流量的攻击,因而很容易干扰转换映射关系.
所以,通过增加一个位于UDP数据字段内的SID,可以避免随机的流量导致的干扰,而且每个会话的SID长度和内容都可以是不同的,SID的长度以字节为单位,在RUS探测时由交换路由器在ICMP响应报文中指定.
UDPheadSIDdata031IPheadFig.
3RUScarriermessageformat图3RUS中用于承载用户数据的消息格式2.
5转发算法当转换关系建立之后,通信双方主机就可以通过RUS的UDP数据承载进行数据转发,与节点探测阶段不同,数据转发过程中的UDP数据是直接建立在主机和路由器之间的,即UDP包的IP地址为RUS路由器的RID,而不是节点探测阶段的对方通告IP地址.
只是因为转发使用了路由器的UDP端口来区分会话,从而减少了UDP负荷.
92JournalofSoftware软件学报Vol.
18,Supplement,December2007intRusForward(Msg){if(Msg.
SIDisValid){if(Msg.
DstPort==Tab[Msg.
SID].
SelfPort){Tab[Msg.
SID].
SrcAddr:=Msg.
SrcAddr;Tab[Msg.
SID].
SrcPort:=Msg.
SrcPort;Msg.
SrcAddr:=RID;Msg.
SrcPort:=Tab[Msg.
SID].
PeerPort;Msg.
DstAddr:=Tab[Msg.
SID].
DstAddr;Msg.
DstPort:=Tab[Msg.
SID].
DstPort;}elseif(Msg.
DstPort==Tab[Msg.
SID].
PeerPort){Tab[Msg.
SID].
DstAddr:=Msg.
SrcAddr;Tab[Msg.
SID].
DstPort:=Msg.
SrcPort;Msg.
SrcAddr:=RID;Msg.
SrcPort:=Tab[Msg.
SID].
SelfPort;Msg.
DstAddr:=Tab[Msg.
SID].
SrcAddr;Msg.
DstPort:=Tab[Msg.
SID].
SrcPort;}elsereturn0;}elsereturn0;return1;}以上是转发算法的伪码描述,返回1表示转发成功,返回0表示失败,其中Msg为接收到的UDP数据包,首先判断所携带的SID是否有效,若有效,再判断UDP目的端口是否与该SID对应的转换关系表(Tab)中的SelfPort或PeerPort相等,SelfPort和PeerPort为路由器为此次会话分配的UDP交换端口对,其中SelfPort接收探测主机发送的数据,PeerPort接收对方主机发送的数据.
处理中首先保存Msg的源地址和端口,因为很可能发送一方的NAT地址已经发生了变化,然后将Msg的源地址/端口和目的地址/端口都进行转换,使其能够穿过对方的NAT检查.
3应用实施在具体的实施中,RUS需要处理各种不同的网络和节点状况.
3.
1并行处理RUS从某种程度上看就是一种(源+目的)地址转换,与普通的服务器方式的中转节点不同,其处理完全是在交换路由器内部完成的,对于资源的占用也只限于路由器内部,并不会影响外部链路带宽资源的竞争.
所以,关键路径上单个路由器的功能增强可以解决传统服务器模式中原来需要增强整体网络节点容量的问题.
为了不影响既有的路由业务流量,RUS功能部件可以采用在路由器内部进行旁路处理的方式,即将入接口中的RUS流量旁路到额外的处理模块中,完成了地址转换后再进入正常的路由交换系统中.
3.
2MTU问题由于RUS是一种建立在UDP之上的隧道传输机制,所以在该虚拟链路上的最大传输单元MTU要比普通的二层链路小至少(40+n)个字节,其中40个字节为IP头和UDP头字段负荷,n为RUS的会话标识字段(SID)的长度.
结合现有的MTU探测机制,RUS也应该尽量避免IP分组在传输中进行分片.
3.
3非对称路由实际的Internet中存在着非对称路由的情况,RUS本身是基于主机主动探测的,所以每个主机探测得到的交换路由器只是该主机作为源节点时的单向中转节点,很可能该路由器并不在相反流量的单播路径上.
如果通信双方主机都能探测出各自的交换路由器,则两个方向的流量各自进行交换.
如果只有一方的探测得到了结果,此张建伟等:对等网络中的路由器增强型NAT方法93时流量只能在一个方向进行最优化传输.
基于这种情况,RUS可以在两种模式下工作,一种是路径内模式,即该模式中的流量本身就是经过单播路由,另外一种是路径外模式,此时,原来充当NAT映射保持功能的定时KEEPALIVE消息就变为了承载消息,只不过此时的一侧流量是由非单播路由传输的.
3.
4加入ICE框架RUS作为一种介于非中转和中转之间的NAT穿越方法,可以加入到ICE的框架中.
对于支持STUN的非中转情况,RUS需要额外的路由器支持和客户端软件修改,但是与需要增加网络整体负载的中转型解决方案(例如TURN)相比,RUS具有明显的性能优势,所以可以作为ICE框架中的穿越选择方法.
而且RUS路由器是作为被动呈现方式提供服务的,所以并不会影响现有的NAT解决方法的实施.
3.
5应用示例RUS作为一种独立与具体应用之外的NAT穿越方法,可以应用于各种P2P网络应用场景.
SIP[7]作为一种典型的P2P应用协议,目前主要用于多媒体会话(特别是音视频会话)的建立,其实SIP本身可以作为任意P2P应用的会话发起信令.
本文以SIP为例说明RUS在会话中的使用.
PINGOPENDATAPONGACKDATASHUTSIP/INFOSIP/INFOP1P2R1R2SIPserverSIP/REGISTERSIP/INVITESHUTFig.
4RUSusagesampleinSIPapplication图4RUS在SIP会话中的应用示例图4显示了RUS在SIP应用中的使用.
P1和P2为SIP通信双方节点,它们都位于对称NAT后面(图中省略了双方的NAT设备).
P2作为被叫一方向SIP服务器(SIPserver)注册了自己的信令地址,支持NAT环境的SIP服务器可以从接收到的UDP包的源地址获取P2的通告地址,当主叫一方P1节点发起呼叫时,首先从SIP服务器处获取了P2的通告地址(通过SIP/INVITE消息).
由于P1和P2都位于对称NAT后面(这一点需要从RUS之外的途径获取,例如STUN),所以P1一方发起RUS探测,途中的R2路由器支持RUS操作,P1在通过ACK消息得到合法的SID之后将该信息通过SIP/INFO消息告知P2节点,该RUS交换会话可以被用于P1和P2间的媒体通道,也可以有其他用途.
INFOsip:100@20.
1.
2.
3SIP/2.
0Via:SIP/2.
0/UDP10.
3.
4.
5From:To:Call-ID:321253CSeq:5INFOContent-Length:20Content-Type:application/x-udp-switchSID=9277xyzNgWeport=7008以上是一个对SIP/INFO消息的扩展让其支持RUS的SID和PeerPort的通知,这样对方主机能够使用这些信息向RUS路由器发送NAT映射激活报文,让探测主机的流量能够经由该NAT映射到达对方主机.
94JournalofSoftware软件学报Vol.
18,Supplement,December20074总结NAT穿越作为目前IPv4网络中P2P类应用必须解决的问题,已经显得越来越重要.
传统的NAT解决方法大多采用服务器方式进行流量中转,但是这样必然导致网络整体负载的加大,因为中转服务器与路由器之间的流量重复使得沿途的所有路由器都必须对同一流量进行重复处理.
RUS作为一种基于路由器增强的解决方案,建立在通信双方主机间的原有单播路径传输之上,避免了重复处理对整个网络资源的消耗,使得局部的功能增强可以解决整体的瓶颈问题.
文中还提出了在网络中部署和应用RUS的一些关注事项.
下一步的工作主要集中在实现一个可集成的RUS路由器处理模块用于商业路由器的增强,并完善面向主机用户的编程接口库,同时,在实际网络环境中验证该方法的有效性.
References:[1]EgevangK,FrancisP.
TheIPnetworkaddresstranslator.
RFC1631,1994.
[2]BorellaM,GrabelskyD,LoJ,TaniguchiK.
RealmspecificIP:Protocolspecificatoin.
RFC3103,2001.
[3]Internetgatewaydevice(IGD)standardizeddevicecontrolprotocolV1.
0.
UPnPForum.
2001.
http://www.
upnp.
org[4]RosenbergJ,WeinbergerJ,HuitemaC,MahyR.
STUN—Simpletraversalofuserdatagramprotocol(UDP)throughnetworkaddresstranslators(NATs).
RFC3489,2003.
[5]RosenbergJ,MahyR,HuitemaC.
TraversalusingrelayNAT(TURN).
IETFIndividualDraft,2005.
[6]RosenbergJ.
Interactiveconnectivityestablishment(ICE):Aprotocolfornetworkaddresstranslator(NAT)traversalforoffer/answerprotocols.
IETFDraft,2007.
[7]RosenbergJ,SchulzrinneH,CamarilloG,JohnstonA,PetersonJ,SparksR,HandleyM,SchoolerE.
SIP:Sessioninitiationprotocol.
RFC3261,2002.
张建伟(1971-),男,河南方城人,博士生,副教授,主要研究领域为下一代网络关键技术,网络安全.
战晓苏(1964-),男,博士,教授,博士生导师,主要研究领域为网络融合,网络安全管理,网格计算,协同计算.
皮人杰(1977-),男,博士,讲师,主要研究领域为分布式网络计算,嵌入式软件环境.
郭云飞(1964-),男,教授,博士生导师,主要研究领域为下一代网络关键技术.

incogne$2.5/月t芬兰VPS,AMD Ryzen、1Gbps带宽

IncogNet LLC是个由3个人运作的美国公司,主要特色是隐私保护,号称绝对保护用户的隐私安全。业务涵盖虚拟主机、VPS等,支持多种数字加密货币、PayPal付款。注册账号也很简单,输入一个姓名、一个邮箱、国家随便选,填写一个邮箱就搞定了,基本上不管资料的真假。当前促销的vps位于芬兰机房,全部都是AMD Ryzen系列的CPU,性能不会差的!5折优惠码:CRYPTOMONTH,支持:BTC,...

Sharktech10Gbps带宽,不限制流量,自带5个IPv4,100G防御

Sharktech荷兰10G带宽的独立服务器月付319美元起,10Gbps共享带宽,不限制流量,自带5个IPv4,免费60Gbps的 DDoS防御,可加到100G防御。CPU内存HDD价格购买地址E3-1270v216G2T$319/月链接E3-1270v516G2T$329/月链接2*E5-2670v232G2T$389/月链接2*E5-2678v364G2T$409/月链接这里我们需要注意,默...

GigsGigsCloud($26/年)KVM-1GB/15G SSD/2TB/洛杉矶机房

GigsGigsCloud新上了洛杉矶机房国际版线路VPS,基于KVM架构,采用SSD硬盘,年付最低26美元起。这是一家成立于2015年的马来西亚主机商,提供VPS主机和独立服务器租用,数据中心包括美国洛杉矶、中国香港、新加坡、马来西亚和日本等。商家VPS主机基于KVM架构,所选均为国内直连或者优化线路,比如洛杉矶机房有CN2 GIA、AS9929或者高防线路等。下面列出这款年付VPS主机配置信息...

路由器限制网速为你推荐
力学迅雷朝阳分局犯罪嫌疑人标准化信息采集系统经济开发区127participants37支持ipad支持ipad支持ipad支持ipad模块iphoneC1:山东品牌商品馆
猫咪av永久最新域名 3322动态域名注册 中文域名查询 香港vps 希网动态域名 namecheap cdn服务器 免费ftp空间 wordpress技巧 中国智能物流骨干网 免费申请个人网站 服务器硬件防火墙 彩虹云 www789 全能空间 中国联通宽带测试 万网服务器 ncp 架设代理服务器 godaddy中文 更多