带拥塞控制的可靠组播传输方法

文档序号:9648965阅读:331来源:国知局
带拥塞控制的可靠组播传输方法
【专利说明】带拥塞控制的可靠组播传输方法 -、技术领域
[0001] TCP/IP网络数据传输领域。本发明主要解决通过组播方式进行网络文件数据传输 时的丢包问题。 二、【背景技术】
[0002] 由于组播协议是根据接受者的需要由路由器对数据流进行复制转发,所W服务端 的服务总带宽不受客户接入端带宽的限制。但是与可靠单播协议相比没有纠错机制,发生 丢包错包后难W弥补,同时由于传统的组播协议没有拥塞控制机制,对于TCP业务不友好, 导致占用了大量的网络带宽资源。本发明主要是为了创造一种对TCP友好的、可靠的组播 传输方法。 H、
【发明内容】

[0003] 发送端通过TCP^P网络同时向多个接收端分发文件。
[0004] 1.发送端发送数据时IP数据包的结构说明
[0005] 发送端发送数据时IP数据包的结构为:
[0006]IP头部,UDP头部,type,fileld,groupld,blockld,contentsize,文件数据段。
[0007] 因为该方法是在组播的基础上改进而来,所WIP头部和UDP头部与TCP/IP协议 族中的一致,送边不再介绍。UDP数据端的大小固定为lOOOByte。
[0008] 下面主要介绍下UDP数据段中几个额外的字段:
[0009] type;数据包类型,8bit,如果为0则为文件属性包,为1则为文件数据包(非兀余 包),为2则为文件数据包(兀余包)。
[0010] fileld;文件id, 64bit,标识传送的文件。从0开始每发送完一个文件该值增加1, 到达2~64-1后,回到0。
[0011] groupld;数据包组id, 64bit,标识当前数据包在哪个group中,每个group中包 含一个或者多个数据W及一个兀余包。从0开始每发送完一个group的数据包后该值增加 1,到达2~64-1后,回到0。
[0012] blockld;数据包在组内的id,8bit,标识该数据包在当前group中的编号。在同 一group中,从0开始,每发送完一个数据包后,该值增加1。在一个group中,blockld不 会重复。
[0013]contentsize;包中数据大小,1化it,标识当前包中数据大小。
[0014] 文件数据段;最大1024Byte。
[0015] 2.接收端发送数据时数据段格式说明
[0016] 接收端发送数据时数据段格式为:
[0017] type,length,fileld,groupld,blockld [001引各字段的说明如下:
[0019]type;数据包类型,8bit,固定为0,表示请求重发。
[0020] length;数据内容长度,I化it。说明了接下来发送的数据的长度。
[0021] fileld;文件id,64bit,标识要被重传的文件。
[0022] groupld;数据包组id,64bit,标识要被重传的数据组。
[0023]blockld;数据包在组内的id,8bit,标识要被重传的数据包在group中的编号。
[0024] 接收端WTCP的方式发送送些数据段。
[00巧]3.数据包组结构说明:
[0026] 数据包的组结构为:
[0027]数据包1,数据包2,数据包3,兀余包
[0028]W4个为一组,其中有3个数据包,1个兀余包。其中兀余包的数据段是对数据包 的数据段进行异或操作后得到的。
[0029] 如果到达文件的末尾,则还是需要发送一个完整的数据包分组,多余的数据包的 数据段使用0填充。
[0030] 4.发送等级说明
[0031] 发送端有8个发送等级,每个发送等级主要包含窗口的大小(每次连续发送的数 据包个数)。详细如下:
[0032]
[0033] -个窗口大小包含一个或者多个数据包。
[0034] 5.文件属性通知说明
[0035] 该通知只包含在一个数据报中,type为0,则文件数据段的内容如下:
[0036]XXXX,yyyy
[0037] 其中XXXX是被传输的文件的大小,单位字节。yyyy是文件名。
[0038] 发送端在一开始连续发送5个文件属性通知数据报,等五砂钟后,再次连续发送5 个文件属性通知数据报,等五砂钟后,再次连续发送5个文件属性通知数据报。
[0039] 6.发送端发送文件流程说明(流程图参见说明书附图1)
[0040] I)发送端监听接收端的TCP连接。
[0041] 2)在发送文件数据前,组播告知接收端接下来发送的文件的属性信息。
[0042] 3) -开始,发送端使用最小的发送等级(等级1),发送完一个窗口大小的数据包 (即发送4个包,3个是数据包,1个是兀余包),等待32ms(-个RTT),
[0043] a)如果没有收到接收端的重发请求,则增加一个发送级别(如果当前等级为1,则 变成等级2 ;如果为最高级8,则不变),然后继续发送下一个窗口大小的数据包(如果新等 级为2,则发送8个数据包,发送顺序如下;数据包*3,兀余包*1,数据包*3,兀余包*1)。
[0044] b)如果收到了接收端的重发请求,发送端根据fileld,groupld和blockld计算出 缺失的数据段的位置,然后读取数据后通过TCP再次发送给接收端。
[0045] i.如果发送重发请求的接收端数量没有超过总接收端数的十分之一(本次例子 中为10个),则维持当前的发送等级发送接下来五个窗口大小的数据包,如果在发送的5个 窗口的数据包中,重发请求都没有超过总接收端的十分之一,则将发送等级加1 ;如果在发 送五个窗口过程中,收到了重发请求并且发送重发请求的接收端数量超过总接收端数的十 分之一,此时设置下一次的发送等级设置为当前发送等级的二分一(如果当前等级为4,则 新的等级为2 ;如果当前等级为5,则新的等级为2 ;如果当前为最低级1,则不变)。
[0046] ii.如果发送重发请求的接收端数量超过总接收端数的十分之一,则将设置下一 次的发送等级设置为当前发送等级的二分一。
[0047] W上步骤不断循环,直到完成文件的发送。
[0048] 7.接收端接收文件流程
[0049] 1)接收端需要通过TCP连接到发送端。
[0050] 2)接收端接收文件的属性信息,解析成功后,等待接收文件数据信息。
[0051] 3)接收文件数据包,如果一个数据包组中有一个包没有接收到,则通过兀余包 将丢失的包还原出来;如果一个数据包组中有两个或者两个W上的包没有接收到,则通过 TCP向发送端发送重发请求,并等待发送端的重发内容。 四、【具体实施方式】
[005引 1.配置ravip网络,并且网路上任意两个点都能互通。
[0053] 2.所有的路由器启用组播协议。
[0054] 3.在网络的一端启动发送服务器,在网路的其他位置启动接收客户端。
[00巧]4.服务器发送文件,客户端能正确接收到文件。
【主权项】
1. 本发明主要解决通过组播方式进行网络文件数据传输时的丢包问题,创新性的引入 了冗余包的设计方法,对于一般的丢包现象通过冗余包计算来恢复丢失的数据包,因此要 求保护在组播数据传输中使用冗余包的这种设计方法。2. 本发明创新性的将FEC算法应用于组播数据传输中的冗余包生成,因此要求保护在 组播数据传输中使用FEC算法生产冗余包的这种设计。3. 本发明对于组播数据传输过程中冗余包和普通数据包都丢失的情况,创新性的采用 了基于可靠连接的TCP方式来做补包处理,因此要求保护在组播数据传输过程中,丢失冗 余包和普通数据包时,通过TCP方式来重发丢失的数据包,以达到补包的算法。4. 本发明在组播数据传输过程中丢包非常严重的情况下,可以根据接收端的反馈,自 动调节发送端的发送数据窗口(发送数据缓冲区)大小来改善丢包问题,因此要求保护这 种在组播数据传输过程中通过接收端的反馈,自动动态调节发送端发送数据窗口(发送数 据缓冲区)大小的处理方式。
【专利摘要】本发明应用于网络数据传输领域,主要解决通过组播方式进行网络文件数据传输时的丢包问题。由于组播协议是根据接受者的需要由路由器对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。但是传统的主播与可靠单播协议相比没有纠错机制,容易出现丢包现象,同时由于传统的组播协议没有拥塞控制机制,对于TCP业务不友好,导致占用了大量的网络带宽资源。本发明主要是为了创造一种对TCP友好的、可靠的组播传输方法。通过在组播数据包中增加冗余包机制和重传机制,用于丢失数据的恢复,同时加入了拥塞控制功能,根据接收端的丢包反馈情况,自动调节发送端发送数据窗口的大小,减轻网络负荷,改善丢包问题。
【IPC分类】H04L29/06, H04L12/823
【公开号】CN105407058
【申请号】CN201410464825
【发明人】顾永青, 陈宏庆
【申请人】江苏国贸酝领智能科技股份有限公司
【公开日】2016年3月16日
【申请日】2014年9月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1