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

文档序号:8398161阅读:来源:国知局
; Field 2> Addit1nal Informat1n 无定义;
[0032]0x10,CTL_CL0SE_C0NNECT10N_ACK2:连接关闭 ACK 的 ACK,用于发送端回复 CTL_CLOSE_CONNECT1N_ACK ;Field UField 2、Addit1nal Informat1n 无定义;
[0033]0x11, CTL_KEEP_ALIVE:通道保活报文,Field K Field 2、Addit1nalInformat1n 无定义;
[0034]0x3ff, CTL_ERR0R,错误信息报文,Field I 定义错误代号,Field 2、Addit1nalInformat1n由相关错误填写;
[0035]0x11?Oxff:协议保留报文类型编号,用于未来扩展;
[0036]0x100?0x2ff:上层应用自定义报文。
[0037]本发明还提供了在所述的分布式中转服务器网络辅助的多路径数据传输系统上实现的数据传输方法,用于在不通过中转服务器,发送端与接收端之间直接进行数据传输的数据传输通道上传输数据包,包括:
[0038]步骤301)、数据发送方构造数据包,所构造数据包中的Address字段为接收地址,Port字段为接收端端口,此外,该数据包中还带有用于指示第一类通道的相关标记,如通道编号为一特殊值;
[0039]步骤302)、数据接收方收到数据包后,通过数据包IP协议部分的源地址和源端口判断是否属于本连接,若属于,则进一步判断数据包各项字段的有效性,提取并缓存数据报文的有效数据,最后发送ACK或NAK报文应答。
[0040]本发明又提供了在所述的分布式中转服务器网络辅助的多路径数据传输系统上实现的数据传输方法,用于在发送端与接收端之间通过中转服务器建立的数据传输通道上传输数据包,包括:
[0041]步骤401)、数据发送方构造数据包,所构造数据包中的Address字段为接收地址,Port字段为接收端端口 ;
[0042]步骤402)、数据包到达通道使用的中转服务器,中转服务器提取数据包Address和Port字段获得数据接收方的地址和端口号,并将两个字段改写成发送端地址和端口号,接下来,数据包被发送给接收端;
[0043]步骤403)、数据接收方收到数据包,根据Address字段和Port字段判断数据包是否处于本连接,以及通道编号是否合法;若属于本连接且通道编号合法,则进一步判断数据包各项字段的有效性,提取并缓存数据报文的有效数据,最后发送ACK或NAK报文应答。
[0044]本发明的优点在于:
[0045]本发明的多路径数据传输方法使用独立的管理系统管理分布式的中转服务器,为客户端提供候选的中转服务器,从而减轻客户端的计算负担,该方法同时设计了能够提供可靠数据传输的基于UDP的多路径数据传输协议。
【附图说明】
[0046]图1是本发明的多路径数据传输系统的结构示意图;
[0047]图2是数据报文的数据结构示意图;
[0048]图3是控制报文的数据结构示意图。
【具体实施方式】
[0049]现结合附图对本发明作进一步的描述。
[0050]本申请人通过研究对网络传输有以下认识:由于评价一条覆盖路径的指标并不是唯一的,因此,即使穷尽所有的可能选择也不一定能选出“最优”的中转传输路径,事实上,大部分时候只需要寻找“满意”的路径即可,因此,完全可以在计算中转路径时,只计算部分中转节点,然后在传输过程中通过测得的性能参数再进行调整;相比TCP协议,UDP (UserDatagram Protocol)协议只提供最简单的不可靠信息传送服务,不保证数据包的传输顺序,也不保证数据包能够一定到达接收端,虽然这种特征导致该协议不如TCP运用广泛,但是基于UDP协议进行扩展,为其添加必要的特性,却可以避免直接修改操作系统的网络协议栈和网络设备,使本发明具有普适性。
[0051]参考图1,本发明的多路径数据传输系统包括索引服务器、中转服务器和客户端;所述索引服务器、中转服务器与客户端之间通过网络连接。该系统中的各个模块分别在管理和数据两个层面上进行交流与通信,在管理层面上主要实现中转服务器覆盖网络相关的信息查询、信息管理服务,模块在该层面中的通信可使用安全、可靠、易于理解、易于扩展的传输协议,如HTTP、HTML、XML、SOAP、JSON等协议;在数据层面上主要实现客户端之间进行的数据传输,为每一条客户端之间的连接建立多条传输通道,提供可靠数据传输服务,模块在该层面中的通信使用基于UDP协议扩展的多路径数据传输协议。
[0052]下面分别对系统中的各个模块的功能进行说明。
[0053]所述索引服务器用于承担中转服务器覆盖网的管理职责,其位于管理层面。主要职能包括:维护系统中的中转服务器的信息,每一个活跃的中转服务器都必须定期向其汇报服务器的状态;根据客户端的请求,为其计算并选择一些中转服务器,供客户端作为建立传输通道时候选的中转传输节点。
[0054]所述中转服务器在管理层面上接受所述索引服务器的管理,在数据层面上负责为传输通道中转数据。主要职能包括:在管理层面上,监测本服务器可用的网络资源数量、负载、当前已建立的中转连接数、服务器的位置等信息,定期向索引服务器汇报;在数据层面上,监听来自客户端的数据包,并负责转发。一般地,为了保证传输通道的性能,所述中转服务器应该具有较高的网络吞吐量和较多的空闲网络资源,并位于Internet的关键路径上。所述中转服务器的数目一般有多个。
[0055]所述客户端是用户实现数据传输的接口,其位于数据层面。客户端可以进一步分为接收端和发送端,其划分原则是:一条连接中,主动发起通道的客户端是发送端,被动接收通道的客户端是接收端。发送端(定期或者在需要时)向所述索引服务器请求候选中转服务器的列表,当与数据接收端建立连接时,根据预设的策略从列表中选出一部分中转服务器,向它们发起传输通道建立请求。在传输过程中,发送端可以根据传输通道的状态,动态地增加、删除、替换掉传输通道。
[0056]以上是对系统中各个模块的功能描述。在本申请中,客户端之间通过连接以及连接中的通道传输数据,下面对连接以及通道做进一步的描述。
[0057]本申请中所涉及的每一个连接都包含至少I个数据传输通道,每I个数据传输通道使用最多I跳中转服务器作为中转传输节点,有且仅有一个唯一的通道,不使用中转传输节点。假设存在一个中转服务器网络,包含3个中转服务器A,B,C。某一时刻,客户端M想向客户端N传输数据,于是选择中转服务器A,B建立传输通道,数据传输通道可以描述为M — A — N和M — B — N,此外,由于M、N直接传输的性能也很好,M — N也是连接的一个数据传输通道。
[0058]在网络中,客户端之间所建立的每一条连接的数据传输是全双工的,但在本申请中为了避免管理的复杂程度,所有通道的建立、拆除操作均由发送端发起,而发送端由每一个连接中第一个通道的发起过程决定,第一个通道的发起方为连接发送端,第一个通道的接收方为连接接收端,此后,在连接的生存周期内,发送端和接收端的身份不会发生改变。
[0059]在本申请中,每一条连接由“发送端IP地址、发送端端口号、接收端IP地址、接收端端口号”这一四元组唯一标识,连接中的每一个通道由“发送端IP地址、发送端端口号、接收端IP地址、接收端端口号、通道编号”这一五元组唯一标识。由于通道由连接发送端建立,因此,通道编号也由发送端分配。之前提到,通道可分为两种类型,第一类是发送端与接收端之间直接相连的通道,第二类是经由中转服务器的通道,第一类通道较为特殊,为了与其它通道做区分,可对此类通道采用特殊的通道编号方式,如将此类通道的编号固定为O。
[0060]每一条连接的每一条通道都是单独维护、面向连接的,连接本身也是面向连接的。连接在最后一个通道断开时自动断开,或者由发送端或接收端主动断开。通道和连接的状态只在发送端和接收端维护,中转服务器不维护任何状态信息,只是根据数据包的相关信息进行转发。
[0061]本发明在数据传输时所采用的协议是在UDP协议的基础上扩展实现的,依据该协议,在网络中传输的数据包包括:数据报文和控制报文;其中的数据报文用于传输实际数据,控制报文用于传输控制消息。下面对数据报文和控制报文分别予以说明。
[0062]一、数据报文
[0063]数据报文是面向字节流的。每个数据报文包含两个序列号,一个是通道字节流序列号,一个是连接字节流序列号。通道字节流序列号是每个通道独立维护的,连接字节流序号是由整个连接维护的。接收端根据这两个序列号进行数据排序,并判断数据的缺失情况。
[0064]数据报文包括数据报文头部和所要传输的数据。在图2中给出了本发明中所涉及的数据报文的数据格式,如图所示,数据报文头部包括以下字段(由于传输是全双工的,因此以下所指数据发送方和数据接收方都有可能是发送端或接收端)??第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 SequenceNumber,是通道字节流序列号;第96?127bit为Sequence Number,是连接字节流序列号;第128?159bit为Time Stamp,是时间戳;最后是对端的地址Address,取决于IPVer指不的IP协议版本号,可能为32bit (IPv4)或者128bit (IPv6)。
[0065]下面对数据报文中各个字段的具体含义进行说明。
[0066]Obit标志位:标志位值为O时表示这个报文为数据报文;
[0067]R标志位:指示接收方是否检查通道标号有效性。该标志位主要应对这样一种情况,某一通道断开,但是该通道尚有未传输完的数据包,此时,连接需要将这些数据包在其它通道上进行传输。由于每个通道会检查通道编号是否正确,因此,需要一个特殊的标志位来关闭该检查;
[0068]IPVer:指示对端IP地址的版本号,4代表IPv4,6代表IPv6,其它字段无效;
[0069]Shift:窗口偏移,指定Window字段的左移量,O?14 ;
[0070]Window:窗口大小,用于通知对方可用的接收窗口大小,从而控制发送速度。与Shift字段共同使用,可以保证使得窗口大小最大值达到65535*2~14bit ;
[0071]Port
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1