一种网络数据的发送与接收方法、系统及设备的制作方法

文档序号:7648807阅读:226来源:国知局
专利名称:一种网络数据的发送与接收方法、系统及设备的制作方法
技术领域
本发明属于通信领域,尤其涉及一种网络数据的发送与接收方法、系统及 设备。
背景技术
随着网络技术的发展,网络数据的传输量越来越大。在某些情况下,例如在网络电视的实时播放时,需要在数据的传输过程中,网络时延比较低。在这 种情况下,往往采用一些网络时延低的数据传输协议来传输网络数据,例如,用户数据报协议(User Datagram Protocol, UDP )。虽然使用UDP协议传输数 据时网络开销小,网络时延低,但数据传输的可靠性得不到保证。目前,在使 用UDP传输协议来传输网络数据时,网络数据发送端一般将要发送的数据包直 接传输给网络数据接收端。在网络数据的传输过程中,特别是当网络信号不好 时,使用这种网络数据的传输方法就容易出现严重的丢包现象。

发明内容
本发明实施例的目的在于提供一种网络数据的发送方法,旨在解决在使用 UDP协议传输网络数据时,容易丢失数据包的问题。
本发明实施例是这样实现的, 一种网络数据发送方法,所述发送方法包括 以下步骤
将大于设定字节的原始数据包拆分成多个小数据包;
标识所述小数据包;
发送标识后的小数据包;
当接收到重发请求时,根据所述重发请求中携带的小数据包的标识重新发
送对应的小数据包。
本发明实施例的另一目的在于提供一种网络数据接收方法,所述接收方法包括以下步骤
接收小数据包,检查是否存在丢失的小数据包;
当存在丟失的小数据包时,向网络数据发送端发送重发请求、所述重发请 求携带有所述丢失的小数据包的标识;
将接收到的小数据包组合成原始数据包。
本发明实施例的另一目的在于提供一种网络数据发送系统,所述发送系统 包括
拆分单元,用于将大于设定字节的原始数据包拆分成多个小数据包; 标识单元,用于标识所述小数据包; 发送单元,用于发送标识后的小数据包;以及
重发请求接收单元,用于接收到重发请求时,根据所述重发请求中携带的 小数据包的标识触发所述发送模块重新发送对应的小数据包。
本发明实施例的另一目的在于提供一种网络数据接收系统,所述接收系统 包括
接收检查单元,用于接收小数据包,检查是否存在丟失的小数据包;
重发请求发送单元,用于当存在丟失的小数据包时,向网络数据发送端发送重发请求,所述重发请求携带有所述丢失的小数据包的标识;以及
组合单元,将接收到的小数据包组合成原始数据包。
本发明实施例的另一目的在于提供一种网络数据发送设备,所述网络数据发送设备包括网络数据发送系统,所述发送系统包括
拆分单元,用于将大于设定字节的原始数据包拆分成多个小数据包;
标识单元,用于标识所述小数据包;
发送单元,用于发送标识后的小数据包;以及
重发请求接收单元,用于接收到重发请求时,根据所述重发请求中携带的小数据包的标识触发所述发送模块重新发送对应的小数据包。
本发明实施例的另 一 目的在于提供一种网络数据接收设备,所述网络数据 接收设备包括网络数据接收系统,所述接收系统包括
接收检查单元,用于接收小数据包,检查是否存在丟失的小数据包;
重发请求发送单元,用于当存在丟失的小数据包时,向网络数据发送端发 送重发请求,所述重发请求携带有所述丢失的小数据包的标识;以及
组合单元,将接收到的小数据包组合成原始数据包。
在本发明的实施例中,通过将原始数据包拆分成若干个小数据包来减少传 输过程中的数据包丟失,当网络数据接收端检查到丟失了小数据包时,发送重 传请求,由网络数据发送端重新发送丟失的小数据包,从而减少了在传输网络 数据时,数据包的丢失。


图1是本发明实施例提供的网络数据发送方法的实施流程图2是本发明实施例提供的网络数据接收方法的实施流程图3是本发明实施例提供的将一个数据窗口中的小数据包进行组包的实施 流程图4是本发明实施例提供的网络数据发送系统的结构示意图; 图5是本发明实施例提供的网络数据接收系统的结构示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
在本发明的实施例中,通过将原始数据包拆分成若干个小数据包来减少传 输过程中的数据包丟失,当网络数据接收端检查到丟失了小数据包时,发送重传请求,由网络数据发送端重新发送丟失的小数据包,从而减少了在传输网络 数据时,数据包的丟失。
图1示出了本发明实施例提供的网络数据发送方法的实施流程,详述如下 在步骤SIOI中,将设定字节的原始数据包拆分成多个小数据包。 网络数据发送端需要发送的数据包的大小不一致,有的十多KBit,有的少 于lKBit,而在传输网络数据时,相对于较小的数据包来说,较大的数据包在 传输的过程中更容易丟失。因此,对于较大的数据包,可以将其拆分成若干个 小数据包,以便于减少传输过程中数据包的丢失,而对于较小的数据包则不必 拆分。拆分完毕后,可将拆分完毕后的小数据包及未拆分的小数据包存入緩存 队列中。
在拆分每一个数据包的同时,生成数据包拆分控制信息。该控制信息包括 拆分数目信息,即拆分的小数据包的数目信息,即该被拆分包一共拆分成的小 数据包的数目;小数据包的编号,即各小数据包在被拆分包中的序号,及其它 信息。将该数据包拆分控制信息加入每个小数据包中,作为小数据包的包头的 一部分。拆分完毕后,将小数据包放入緩冲区的緩存队列中。
作为本发明的实施例,拆分数据包的方法可以为将大小超过mKBit的数 据包拆分成若干个mKBit的小数据包及一个不大于mKBit的小数据包,其中, m值可根据需要进行设定。而大小不超过mKBit的数据包不进行拆分。例如, 大小为lKBit的数据包在网络上传输时,相对不容易丟失,所以可以将大于 lKBit数据包拆分成若干个lKBit的小数据包及一个不大于lKBit的小数据包。
在步骤S102中,标识小数据包。
作为本发明的实施例,配置P个具有编号的数据窗口,每个数据窗口具有 一定的容纳空间,该容纳空间有N个位置,每个位置可容纳1个小数据包,并 且N个位置均有编号,其中,P, N可根据需要进行设定,但P, N应为大于l 的整数。尚未开始发送网络数据时,P个数据窗口都是空的,从緩存队列中取 出小数据包,并将小数据包装载到P个数据窗口中。
在利用数据窗口装载小数据包时,利用小数据包所在数据窗口的编号及该 小数据包在该数据窗口中的位置编号,来标识该小数据包,并且可将该小数据 包的标识保存在小数据包的包头。
在步骤S103中,判断网络是否可写。若网络可写,执行步骤S104,若网 络不可写,执行步骤S105。
在步骤S104中,发送标识后的小数据包。
网络数据发送端发送新的小数据包时,每次都以一个数据窗口中的所有的 小数据包为一个发送单位,进行发送,即当一个数据窗口中的所有的小数据包 都已经发送完毕后,才发送下一个数据窗口中的小数据包。
在步骤S105中,判断网络是否可读。若网络可读时,则执行步骤S106, 若网络不可写,结束发送过程。
在步骤S106中,判断是否接收到重发请求。当接收到重发请求时,执行步 骤S107,若未接收到重发请求,结束发送过程。
在网络传输的过程中,可能丢失一些小数据包,网络数据接收端可向网络 数据发送端发送重发请求,该重发请求携带有小数据包的标识,以通知网络数 据发送端重新发送丢失的小数据包。
在步骤S107中,查找需要重发的小数据包。根据重发请求中的小数据包 的标识,即该小数据包所在数据窗口的编号及该小数据包在该数据窗口中的位 置编号,找到需要重发的小数据包。
这样,就完成了原始数据包的发送,用这种方式不断地发送原始数据包, 直至将所有的原始数据包都发送完毕。
在一定的时间内,未收到关于某一数据窗口的重传请求,即可认为该数据 窗口的数据已经发送成功,.则可以利用该数据窗口重新装载数据,以更新该数 据窗口的数据,从而可利用该数据窗口发送其它的小数据包。
图2示出了本发明实施例提供的网络数据接收方法的实施流程,详述如下
在步骤S201中,接收小数据包。
网络数据接收端具有Q个数据窗口 ,每个数据窗口都与网络数据发送端的 数据窗口相同。网络数据发送端发送新的小数据包时,每次都以一个数据窗口中的所有的小凝:据包为一个发送单位,进行发送,而网络数据接收端在接收小数据包时,也相应地将接收到的小数据包存放到数据窗口中,并且每个小数据 包在网络数据接收端的数据窗口中的存放位置,与该小数据包在网络数据发送 端的数据窗口中存放的位置相同。在开始接收小数据包的时候,.记录下接收小 数据包的开始时间。
在步骤S202中,判断是否丟失了小数据包。
对完成接收过程的数据窗口进行检查,检查是否存在丟失的小数据包。若 不存在丟失的小数据包,则直接执行步骤S204。
由于正常接收完一个数据窗口的小数据包的时间会在一定的范围内,根据 这个范围可设定一个接收数据时间段t,从接收小数据包的开始时间计时,当接 收时间达到t时,就认定完成该数据窗口的小数据包接收。
在步骤S203中,发送携带有小数据包的标识的重发请求。当存在丟失的小 数据包时,发送携带有小数据包的标识的重发请求。
首先生成丟失的小lt据包的标识,即丢失的小凄t据包所在的网络数据发送 端的数据窗口的编号,及丟失的小数据包在该数据窗口中的位置。再将该标识 加载到重发请求中,并发送该重发请求。
其中,通过提取接收到的该数据窗口的某个小数据包,可以得到存储在该 小数据包包头的标识,获取该小数据包标识中的数据窗口的编号,该编号即为 丢失的小数据包所在的数据窗口的编号。由于网络数据接收端与网络数据发送 端的数据窗口是同样的,网络数据接收端的数据窗口中空缺的位置即为丟失的 小数据包在网络数据发送端的数据窗口中的位置。
在步骤S204中,将接收到的小数据包组合成原始数据包。使其成为独立的 数据包。利用控制信息,即拆分数目,小数据包编号等信息,将数据窗口中的 小数据包组合,使其还原成未拆分之前的数据包。
这样,不断地接收小数据包,不断地组合被拆分的数据包,直至接收完所 有的小数据包。当网络数据接收端在一定的时间内未接收到小数据包,则判定 小数据包接收完毕。
图3示出了本发明实施例提供的将一个数据窗口中的小数据包进行组包的
实施流程,详述如下
在步骤S301中,从数据窗口中取小数据包,并将小数据包插入緩存队列。 每次取出一个小数据包,并按该小数据包在该数据窗口中的编号,将小数据包 插入緩存队列,从而使緩存队列中的小数据包有序排列。作为本发明的实施例, 插入d 、数据包时,可以采用插入效率较高的二分插入法。
在步骤S302中,判断该数据窗口的所有的小数据包是否处理完毕。若所有 的小数据包处理完毕,则结束该数据窗口的组包处理过程。通过检测緩存队列 中是否还有小数据包就可判断所有的小数据包是否处理完毕。
在步骤S303中,取出緩存队列的第一个小数据包。
在步骤S304中,判断该小数据包是否应该当前处理。在处理小数据包的过 程中,利用指示器来指示当前应该处理的小数据包。当该小数据包不是指示器 指示的小数据包时,则执行步骤S305,否则执行步骤S306。
其中,指示器记录了小智:据包在该凝:据窗口中的位置编号,并通过小数据 包的位置编号指示小数据包。
在步骤S305中,判断是否等待超时。当第一个小数据包不是指示器指示的 小数据包时,说明緩冲队列中暂时没有指示器指示的小数据包,则判断等待是 否超时,即判断当前时间与该数据窗口的其它小数据包插入队列时间的差值是 否超过可容忍的时间段,其中,可容忍的时间段可设定。当两者差值超过可容 忍的时间段,则认定该小数据包丟失,执行步骤S309,若未超出可容忍的时间 段,则返回步骤S302,等待指示器指示的小数据包放入緩冲队列。
在步骤S306中,判断该小数据包是否是拆分包。当第一个小数据包即为指 示器指示的小数据包时,第一个小数据包即为当前要处理的小数据包。根据该小数据包的控制信息,判断该小数据包是一个独立数据包,还是拆分包。若该小数据包是独立包,直接从緩存队列中取出该小数据包并执行步骤S308。
在步骤S307中,将该小数据包进行组包。若该小数据包是拆分包,从緩存 队列中取出该拆分包,并根据该小数据包的控制信息,再从緩存队列中取出剩 余的拆分包,将这几个拆分数据包组合,成为一个独立数据包,从而得到原始 的被拆分数据包。在剩余的拆分包中,若丢失任意一个拆分包,该拆分包与剩 余的拆分包无法组合成为独立的数据包,因此,丟弃该小数据包及剩余的拆分 包。
在步骤S308中,输出原始数据包。
在步骤S309中,^修改指示器。指示器用于指示当前应该处理的小数据包的 编号,该编号即为小凝:据包在数据窗口中的位置编号。若输出的是独立的小数 据包,指示器的值增加1,即可以开始处理下一个编号的数据包,若输出的是 被拆分包,则根据该被拆分包拆分的小数据包的控制信息,使指示器的值相应 增力口。
当然,其它数据窗口中的小数据包的组包方法与该数据窗口中的小数据包 的组包方法相同。
图4示出了本发明实施例提供的网络数据发送系统的结构,该网络数据发 送系统可以是内置于网络数据发送设备内的软件单元、硬件单元或者软硬件结 合的单元。
该网络数据发送系统包括拆分单元41 、标识单元42、发送单元43及重发 请求接收单元44。其中拆分单元41又包括数据包拆分才莫块411、生成模块412 及添加模块413。标识单元42又包括配置模块421 ,小数据包装载模块422及 小数据包标识模块423。
拆分模块41将大于设定字节的原始数据包拆分成多个小数据包,标识模块 42则对小数据包进行标识,发送模块43发送标识后的小数据包。重发请求接 收单元44接收到重发请求时,根据该重发请求中携带的小数据包的标识触发发送单元43重新发送对应的小数据包。
其中,拆分单元41将大于设定字节的原始数据包拆分成多个小数据包的过 程包括:数据包拆分模块411将大小超过m KBit的数据包拆分成若干个m KBit 的小数据包及一个不大于mKBit的小数据包,生成模块412生成数据包拆分控 制信息,该数据包拆分控制信息中包含有拆分的小数据包的数目信息及每个小 数据包的编号,以及添加模块413将该拆分的小数据包的数目信息,以及小数 据包的编号添加到所述小数据包的编号对应的小数据包中。而标识单元42对小 数据包进行标识的过程具体为配置模块421配置装载小数据包的数据窗口, 小数据包装载模块422将该小数据包装载到该数据窗口 ,以及小数据包标识模 块423利用所述数据窗口的编号及各小数据包在所述数据窗口中的位置标识小 数据包。
图5示出了本发明实施例提供的网络数据接收系统的结构,该网络数据接 收系统可以是内置于网络数据接收设备内的软件单元、硬件单元或者软硬件结 合的单元。
该网络数据接收系统包括接收检查单元51,重发请求发送单元52,以及组 合单元53。而组合单元又包括小数据包拆分包判断模块531,拆分包组合模块 532,及数据包输出模块533。
接收检查单元51负责接收小数据包并检查是否存在丢失的小数据包,当存 在丟失的小数据包时,重发请求发送单元52向网络数据发送端发送重发请求, 该重发请求携带有该丟失的小数据包的标识。组合单元53将接收到的小数据包 组合成原始数据包。
其中,组合单元53将小数据包组合成原始数据包的过程具体为拆分包判 断模块531判断接收到的小数据包是否为拆分包,当小数据包为拆分包时,由 拆分包组合模块532获取剩余的小数据包,并将该小数据包与该剩余的小数据 包组合,成为原始数据包,并由数据包输出模块533输出原始数据包。
综上所述,通过将原始婆t据包拆分成若干个小数据包来减少传输过程中的数据包丟失,当网络数据接收端检查到丢失了小数据包时,发送重传请求,由 网络数据发送端重新发送丢失的小数据包,从而减少了在传输网络数据时,数 据包的丟失。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的寸呆护范围之内。
权利要求
1、一种网络数据发送方法,其特征在于,所述发送方法包括以下步骤将大于设定字节的原始数据包拆分成多个小数据包;标识所述小数据包;发送标识后的小数据包;当接收到重发请求时,根据所述重发请求中携带的小数据包的标识重新发送对应的小数据包。
2、 如权利要求1所述的网络数据发送方法,其特征在于,所述将大于设定 字节的原始数据包拆分成多个小数据包的步骤进一 步包括以下步骤将大小超过m KBit的原始数据包拆分成若干个m KBit的小数据包及一个 不大于m KBit的小数据包;生成数据包拆分控制信息,所述数据包拆分控制信息中包含有拆分的小数 据包的数目信息及每个小数据包的编号;将所述拆分的小数据包的数目信息,以及小数据包的编号添加到所述小数 据包的编号对应的小凝:据包中。
3、 如权利要求1所述的网络数据发送方法,其特征在于,所述标识所述小 数据包的步骤具体为配置装载小数据包的数据窗口; 将所述小数据包装载到所述数据窗口 ;利用所述数据窗口的编号及各小数据包在所述数据窗口中的位置标识小数 据包。
4、 一种网络数据接收方法,其特征在于,所述接收方法包括以下步骤 接收小数据包,检查是否存在丢失的小数据包;当存在丟失的小凄t据包时,向网络数据发送端发送重发请求,所述重发请 求携带有所述丢失的小数据包的标识;将接收到的小数据包组合成原始数据包。
5、 如权利要求4所述的网络数据接收方法,其特征在于,所述将接收到的 小数据包组合成原始数据包的步骤具体为判断接收到的小数据包是否为拆分包;当小数据包为拆分包时,获取剩余的小数据包,并将所述小数据包与所述 剩余的小数据包组合,成为原始数据包; 输出原始数据包。
6、 一种网络数据发送系统,其特征在于,所述发送系统包括 拆分单元,用于将大于设定字节的原始数据包拆分成多个小数据包; 标识单元,用于标识所述小数据包;发送单元,用于发送标识后的小数据包;以及重发请求接收单元,用于接收到重发请求时,根据所述重发请求中携带的小数据包的标识触发所述发送模块重新发送对应的小数据包。
7、 如权利要求6所述的网络数据发送系统,其特征在于,所述拆分单元包括:数据包拆分模块,用于将大小超过m KBit的数据包拆分成若干个m KBit 的小数据包及一个不大于m KBit的小数据包;生成模块,用于生成数据包拆分控制信息,所述数据包拆分控制信息中包 含有拆分的小数据包的数目信息及每个小数据包的编号;以及添加模块,用于将所述拆分的小数据包的数目信息,以及小数据包的编号 添加到所述小数据包的编号对应的小数据包中。
8、 如权利要求6所述的网络数据发送系统,其特征在于,所述标识单元包括配置模块,用于配置装载小数据包的数据窗口; 小数据包装载模块,用于将所述小数据包装载到所述数据窗口;以及 小数据包标识模块,用于利用所述数据窗口的编号及各小数据包在所述数 据窗口中的位置标识小数据包。
9、 一种网络数据接收系统,其特征在于,所述接收系统包括 接收检查单元,用于接收小数据包,检查是否存在丟失的小数据包; 重发请求发送单元,用于当存在丢失的小数据包时,向网络数据发送端发送重发请求,所述重发请求携带有所述丢失的小数据包的标识;以及 组合单元,将接收到的小数据包组合成原始数据包。
10、 如权利要求9所述的网络数据接收系统,其特征在于,所述组合单元包括拆分包判断模块,用于判断接收到的小数据包是否为拆分包; 拆分包组合模块,用于当小数据包为拆分包时,获取剩余的小数据包,并将所述小数据包与所述剩余的小数据包组合,成为原始数据包;以及 数据包输出模块,用于输出原始数据包。
11、 一种网络数据发送设备,其特征在于,所述网络数据发送设备包括网络数据发送系统,所述发送系统包括拆分单元,用于将大于设定字节的原始数据包拆分成多个小数据包; 标识单元,用于标识所述小数据包; 发送单元,用于发送标识后的小数据包;以及重发请求接收单元,用于接收到重发请求时,根据所述重发请求中携带的小数据包的标识触发所述发送模块重新发送对应的小数据包。
12、 一种网络数据接收设备,其特征在于,所述网络数据接收设备包括网络数据接收系统,所述接收系统包括接收检查单元,用于接收小数据包,检查是否存在丟失的小数据包; 重发请求发送单元,用于当存在丢失的小数据包时,向网络数据发送端发送重发请求,所述重发请求携带有所述丢失的小数据包的标识;以及 组合单元,将接收到的小数据包組合成原始数据包。
全文摘要
本发明适用于网络数据传输领域,提供了一种网络数据的发送与接收方法、系统及设备,所述发送方法包括以下步骤将大于设定字节的原始数据包拆分成多个小数据包;标识所述小数据包;发送标识后的小数据包;当接收到重发请求时,根据所述重发请求中携带的小数据包的标识重新发送对应的小数据包。在本发明的实施例中,通过将原始数据包拆分成若干个小数据包来减少传输过程中的数据包丢失,当网络数据接收端检查到丢失了小数据包时,发送重传请求,由网络数据发送端重新发送丢失的小数据包,从而减少了在传输网络数据时,数据包的丢失。
文档编号H04L1/00GK101202604SQ20071007574
公开日2008年6月18日 申请日期2007年8月14日 优先权日2007年8月14日
发明者叶志刚 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1