分布式中转服务器网络辅助的多路径数据传输系统与方法

文档序号:8398161阅读:634来源:国知局
分布式中转服务器网络辅助的多路径数据传输系统与方法
【技术领域】
[0001]本发明涉及计算机网络通信领域,特别涉及一种分布式中转服务器网络辅助的多路径数据传输系统与方法。
【背景技术】
[0002]当前Internet所依赖的数据传输协议存在这些缺陷:不能实时反映链路状态的改变,在遭遇链路故障时,需要的故障恢复时间较长;两个节点之间的数据传输路径通常不是最优的;当存在多条传输路径时,通常只能利用其中的一条进行传输,不能最大化利用网络能力。
[0003]从底层开始重新设计Internet会导致现存的绝大部分软件需要重新设计,几乎是不现实的,同时,覆盖网络(Overlay Network)提供了改善问题的另外一个途径。覆盖网络是在其他网络之上部署虚拟网络系统,其中节点通过逻辑链路建立连接,一条逻辑链路对应于一条或多条底层网络链路。分布式系统如云计算(Cloud Computing)、P2P网络、内容分发网络(Content Delivery Network)、应用层组播(Applicat1n Layer Multicast)等都是覆盖网络,因为它们部署于Internet之上。而Internet本身也可以认为是一个覆盖网络,因为它部署于电话网络之上。我们通常所说的覆盖网络一般都是指Internet之上的应用层网络。覆盖网络具有很强的灵活性,应用可以根据环境和需求定义自己的拓扑结构和路由协议,构建特定于应用的服务,从而大大扩展了 Internet的服务。
[0004]许多学者提出了通过覆盖网络来提高应用程序数据包传输效率的方法,这些方法在网络的一些位置上部署流量中转节点,通过精心设计的覆盖路由(Overlay Routing)方案来决定数据包通过这些中转节点的转发路径,从而达到规避故障路径,提高传输效率的目的。
[0005]许多文献从理论上验证了这种思想的可行性,它们收集了大量的Internet真实数据,从RTT、丢包率、带宽等传输性能参数出发,对比了 Internet默认路径和经过中间节点转发数据包的替代路径,得出以下结论:30%?80%的情况下,存在至少一条替代路径能够显著提高传输性能;在大多数情况下,只需要至多一跳中间节点就能够恢复60%?100%的Internet链路故障,平均恢复时间是18s,而Internet所需要的恢复时间一般长达几分钟。
[0006]虽然从理论上验证了这种思想的可行性,但是这种思想从来没有真正的付诸实践过。大部分方法都要求每一个中转节点获知覆盖网中所有其它可用中转节点的信息,在建立中转路径时进行计算,选出最合适的节点建立中转传输路径。大规模应用时,要满足这一要求所需要的计算量是不可接受的。多数方法在计算合适的中转节点时,要求获取Internet底层的自治系统(Autonomous System)信息、路由表、网络拓扑等信息,这就违反了 Internet网络分层的原则。还有一些方法需要对TCP(Transmiss1n Control Protocol)协议和网络设备进行修改,导致了方法不具有普适性,很难在Internet上得到推广。

【发明内容】

[0007]本发明的目的在于克服现有技术中的路由方法计算量大或不具有普适性的缺陷,从而提供一种分布式中转服务器网络辅助的多路径数据传输系统与方法。
[0008]为了实现上述目的,本发明提供了一种分布式中转服务器网络辅助的多路径数据传输系统,包括:索引服务器、中转服务器和客户端;所述索引服务器、中转服务器与客户端之间通过网络连接;所述的中转服务器有多个,分别位于网络的关键路径上,形成一中转服务器覆盖网;其中,
[0009]系统中的各个模块在管理和数据两个层面上进行交流与通信,在管理层面上实现与中转服务器覆盖网相关的信息查询、信息管理服务,模块在该层面中的通信使用安全、可靠、易于理解、易于扩展的传输协议,包括HTTP、HTML、XML、SOAP、JSON中的任意一个;在数据层面上实现客户端之间进行的数据传输,为每一条客户端之间的连接建立数据传输通道并提供数据传输服务,模块在数据层面中的通信使用基于UDP协议扩展的多路径数据传输协议;
[0010]所述索引服务器位于管理层面上,用于承担中转服务器覆盖网的管理职责;
[0011]所述中转服务器在管理层面上接受所述索引服务器的管理,在数据层面上负责为传输通道中转数据;
[0012]所述客户端位于数据层面,是用户实现数据传输的接口。
[0013]上述技术方案中,所述索引服务器用于:维护所述中转服务器的信息,每一个活跃的中转服务器都必须定期向其汇报服务器的状态;根据客户端的请求,为其计算并选择一些中转服务器,供客户端作为建立传输通道时候选的中转传输节点。
[0014]上述技术方案中,所述中转服务器用于:在管理层面上,监测包括本服务器可用的网络资源数量、负载、当前已建立的中转连接数、服务器的位置在内的多种信息,并定期向索引服务器汇报;在数据层面上,监听来自客户端的数据包,并负责转发。
[0015]上述技术方案中,所述客户端包括接收端和发送端,其中,在一条连接中,王动发起通道的客户端是发送端,被动接收通道的客户端是接收端;
[0016]所述发送端向所述索引服务器请求候选中转服务器的列表,当与数据接收端建立连接时,根据预设的策略从该列表中选出一部分中转服务器,向它们发起传输通道建立请求;在数据传输的过程中,发送端能够根据传输通道的状态,动态地增加、删除、替换掉传输通道。
[0017]上述技术方案中,一条连接的标识方式为:“发送端IP地址、发送端端口号、接收端IP地址、接收端端口号”;连接中的数据传输通道的标识方式为:“发送端IP地址、发送端端口号、接收端IP地址、接收端端口号、通道编号”。
[0018]上述技术方案中,每一条客户端之间的连接包含至少一个数据传输通道,每一个数据传输通道使用最多一跳中转服务器作为中转传输节点,且该连接中有且仅有一个不使用中转传输节点的数据传输通道。
[0019]上述技术方案中,所述基于UDP协议扩展的多路径数据传输协议中包括数据报文和控制报文;所述数据报文用于传输实际数据,所述控制报文用于传输控制消息;其中,
[0020]所述数据报文包括数据报文头部和所要传输的数据;数据报文头部包括以下字段:第O个bit用于指示报文是否为数据报文;第I个bit为R标志位;第2?7bit保留未用;第8?Ilbit为IPVer字段;第12?15bit为Shift字段;第16?31bit为Window字段?’第32?47bit为Port字段?’第48?63bit为Channel ID,是通道编号?’第64?95bit 为 Channel Sequence Number,是通道字节流序列号;第 96 ?127bit 为 SequenceNumber,是连接字节流序列号;第128?159bit为Time Stamp,是时间戳;最后是对端的地址Address,取决于IPVer指示的IP协议版本号,为32bit或者128bit ;
[0021]所述控制报文包括控制报文头部和附加信息;控制报文头部包括:第O个bit为标识符,值为I时表示这个报文为控制报文;第I?7bit为Control Type字段,指示控制报文类型;第8?Ilbit为IPVer字段,标识报文头内的IP地址是IPv4还是IPv6 ;第12?15bit为Shift字段,指定Window字段的左移量,取值O?14 ;第16?31bit为Window字段,用于通知数据传输另一方可用的接收窗口大小;第32?47bit为Port字段,是对端的端口;第48?63bit为Channel ID,是通道编号?’第64?95bit为Fieldl字段,由控制报文解释;第96?127bit为Field 2字段,由控制报文解释;第128?159bit为Time Stamp,是时间戳;最后是对端的地址Address,取决于IPVer指示的IP协议版本号,为32bit或者128bit ;附加信息字段由控制报文类型决定其包含的实际信息;
[0022]根据Control Type的数值,控制报文可分为:
[0023]0x1, CTL_C0NNECT:通道握手报文,由发送端在通道建立时发送;Field I是通道发送端初始字节流编号,Field 2是连接发送端初始字节流编号,Addit1nal Informat1n包含最大分节大小信息;
[0024]0x2,CTL_C0NNECT_ACK:连接回复报文,由接收端在收到CTL_C0NNECT时回复使用;Field I是通道发送端初始字节流编号,Field 2是连接发送端初始字节流编号,Addit1nal Informat1n除了包含MSS信息外,还包括相应CTL_C0NNECT报文的两个初始字节流编号;
[0025]0x3,CTL_ACK:ACK报文,用于确认已接收到的数据;Field I是通道累积字节流序列号,Field 2是连接累积字节流序列号,Addit1nal Informat1n无数据;
[0026]0x4,CTL_NAK:NAK报文,用于确认丢失的数据,供数据发送方重传;Fieldl是通道累积字节流序列号,Field 2是连接累积字节流序列号,Addit1nal Informat1n包含一组序列号范围,每两个序列号表示一个丢失范围“范围起始序列号,范围终止序列号+1”,序列号都是连接字节流序列号或通道字节流序列号;
[0027]0x5,CTL_CL0SE_CHANNEL:通道关闭报文,用于发送端关闭通道;Field K Field2、Addit1nal Informat1n 无定义;
[0028]0x6,CTL_CL0SE_CHANNEL_ACK:通道关闭 ACK,用于接收端回复 CTL_CL0SE_CHANNEL ;Field 1> Field 2> Addit1nal Informat1n 无定义;
[0029]0x7, CTL_CL0SE_CHANNEL_ACK2:通道关闭 ACK 的 ACK,用于发送端回复CTL_CL0SE_CHANNEL_ACK ;Field 1> Field 2> Addit1nal Informat1n 无定义;
[0030]0x8,CTL_CL0SE_C0NNECT10N:连接关闭报文,用于直接关闭连接,可以由发送端或接收端发起;Field l、Field 2> Addit1nal Informat1n 无定义;
[0031]0x9,CTL_CL0SE_C0NNECT10N_ACK:连接关闭 ACK,用于回复 CTL_CL0SE_CONNECT1N ;Field 1>
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1