CN105871501B - 数据传输方法、系统及相关设备 - Google Patents

数据传输方法、系统及相关设备 Download PDF

Info

Publication number
CN105871501B
CN105871501B CN201510026732.2A CN201510026732A CN105871501B CN 105871501 B CN105871501 B CN 105871501B CN 201510026732 A CN201510026732 A CN 201510026732A CN 105871501 B CN105871501 B CN 105871501B
Authority
CN
China
Prior art keywords
tcp
data packet
data
coding
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510026732.2A
Other languages
English (en)
Other versions
CN105871501A (zh
Inventor
王金柱
陆璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201510026732.2A priority Critical patent/CN105871501B/zh
Publication of CN105871501A publication Critical patent/CN105871501A/zh
Application granted granted Critical
Publication of CN105871501B publication Critical patent/CN105871501B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

数据传输方法、系统及相关设备。本发明公开了一种数据发送方法,包括:发送端以块的方式对待发送数据进行编码;所述发送端在编码后的传输控制协议(TCP)数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;所述发送端将加入所述编码TCP报文头的TCP数据发出。本发明同时还公开了一种数据接收方法、发送设备、接收设备及数据传输系统。

Description

数据传输方法、系统及相关设备
技术领域
本发明涉及无线通信领域,尤其涉及一种数据传输方法、系统及相关设备。
背景技术
传统基于传输控制协议(TCP,Transmission Control Protocol)的数据传输过程传输的数据是原始用户数据,传输过程中不会对数据包进行编码。在无线网络中,信道衰落、随机抖动、无线网络切换等情况会导致传输过程中发生丢包。传统基于TCP的数据传输过程中发现丢包后,会对丢失数据包进行重传。然而,由于传统基于TCP的数据传输中,认为丢包是网络拥塞的指示,因此,丢包会触发TCP拥塞控制机制减小数据发送速率。这使得数据传输不能充分利用网络带宽。
针对以上问题,有人提出了解决方案。其中,一种方案是基于网络编码理论的TCP(NC TCP,Network Coding TCP)数据传输方法。另一种方案是在基于NC TCP的基础上的网络编码的TCP(Network Coded TCP,CTCP)数据传输方法。
基于NC TCP的数据传输方案和基于CTCP的数据传输方案,在接收端需要进行两次解码相关的运算。具体地,接收端收到一个编码数据包后,首先需要提取出编码数据包中的编码系数,和本地存储的系数矩阵进行一次运算,得出确认(seen ack),将其返回给发送端。然后判断系数矩阵是否达到解码的条件。若没有达到解码条件,则返回。若达到解码条件,则进行一次解码运算,解码出原始数据包提交给应用层。
从上面的流程可以看出,现有的网络编码TCP机制在接收端需要进行两次解码运算。两次解码一方面会过多消耗接收端的计算资源,给接收端带来负载;另一方面,发送seen ack前的系数矩阵运算会导致seen ack回复有延时,由于TCP协议中发送端在收到seen ack后才能够发送新的数据包。因此seen ack的回复延时会导致发送端减低发送速率。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种数据传输方法、系统及相关设备。
本发明实施例提供了一种数据发送方法,包括:
发送端以块(block)的方式对待发送数据进行编码;
所述发送端在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述发送端将加入所述编码TCP报文头的TCP数据发出。
上述方案中,所述发送端以块的方式对待发送数据进行编码之前,所述方法还包括:
所述发送端向所述接收端发送TCP连接建立消息;所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
接收所述接收端返回的确认消息;所述确认消息携带所述接收端支持网络编码TCP的标识。
上述方案中,所述以块的方式对待发送数据进行编码,包括:
所述发送端将所述待发送数据划分为等长数据包;
对划分后的数据包进行分块,对每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
上述方案中,编码所采用的算法为随机线性网络编码算法。
上述方案中,所述方法还包括:所述发送端对发送的每个数据包均启动重传定时器;
满足重传条件时,对需要重传的编码后的数据包直接进行重传。
上述方案中,所述方法还包括:
所述发送端接收到seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
本发明实施例还提供了一种数据接收方法,包括:
接收端接收数据包;
当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向发送端回复seen ack,对整个块进行确认;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述接收端对已确认块中的数据进行解码。
上述方案中,所述接收数据包之前,所述方法还包括:
接收所述发送端发送的TCP连接建立消息;所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
所述接收端向所述发送端返回确认消息;所述确认消息携带所述接收端支持网络编码TCP的标识。
上述方案中,所述向发送端回复seen ack,对整个块进行确认之前,所述方法还包括:
所述接收端将收到的数据包放入接收队列中;
所述接收端根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
本发明实施例又提供了一种发送设备,包括:编码模块、插入单元以及第一发送单元;其中,
所述编码模块,用于以块的方式对待发送数据进行编码;
所述插入单元,用于在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述第一发送单元,用于将加入所述编码TCP报文头的TCP数据发出。
上述方案中,所述发送设备还包括:第一接收单元;其中,
所述第一发送单元,还用于向所述接收端发送TCP连接建立消息;所述TCP连接建立消息携带所述发送设备支持网络编码TCP的标识;
所述第一接收单元,用于接收所述接收端返回的确认消息;所述确认消息携带所述接收端支持网络编码TCP的标识;并在收到所述确认消息后,触发所述编码模块;
相应地,所述编码模块,用于收到所述第一接收单元的触发后,以块的方式对待发送数据进行编码。
上述方案中,所述编码单元包括:划分模块、编码模块及位置插入模块;其中,
所述划分模块,用于将所述待发送数据划分为等长数据包;并对划分后的数据包进行分块;
所述编码模块,用于每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
所述位置插入模块,用于将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
上述方案中,所述发送设备还包括重传单元,用于对发送的每个数据包均启动重传定时器;并在满足重传条件时,对需要重传的编码后的数据包直接进行重传。
上述方案中,所述发送设备还包括删除单元,用于接收到seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
本发明实施例还提供了一种接收设备,包括:第二接收单元、第二发送单元以及解码单元;其中,
所述第二接收单元,用于接收数据包;
所述第二发送单元,用于当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向发送端回复seen ack,对整个块进行确认;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述解码单元,用于对已确认块中的数据进行解码。
上述方案中,所述第二接收单元,还用于接收发送端发送的TCP连接建立消息;所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
所述第二发送单元,用于向所述发送端返回确认消息;所述确认消息携带所述接收设备支持网络编码TCP的标识。
上述方案中,所述接收设备还包括:统计单元,用于将收到的数据包放入接收队列中;并根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
本发明实施例又提供了一种数据传输系统,包括发送设备及接收设备;其中,
所述发送设备,用于以块的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给所述接收设备;
所述接收设备,用于接收所述发送设备发送的数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向所述发送设备回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码。
上述方案中,所述发送设备,还用于向所述接收设备发送TCP连接建立消息;所述TCP连接建立消息携带所述发送设备支持网络编码TCP的标识;并接收所述接收设备返回的确认消息;
所述接收设备,还用于收到所述TCP连接建立消息后,向所述发送设备返回确认消息;所述确认消息携带所述接收设备支持网络编码TCP的标识。
本发明实施例提供的数据传输方法、系统及相关设备,发送端以块(block)的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给接收端;所述接收端接收数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向所述发送端回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码,由于所述接收端仅需要进行一次解码运算,如此,能有效地减轻接收端的计算资源消耗。同时,由于收到数据包后,不需要解码运算后再向所述接收端回复seen ack,使得seen ack回复更加及时,如此,能有效地提高数据包的发送速率。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例一数据发送方法流程示意图;
图2为本发明实施例一数据接收方法流程示意图;
图3为本发明实施例二数据传输系统结构示意图;
图4为本发明实施例二发送端操作处理流程示意图;
图5为本发明实施例二发送端结构示意图;
图6为本发明实施例二编码TCP报文头组成示意图;
图7为本发明实施例二接收端操作处理流程示意图;
图8为本发明实施例二发送端侧协商通信方式的流程示意图;
图9为本发明实施例二接收端侧协商通信方式的流程示意图;
图10为本发明实施例三发送设备结构示意图;
图11为本发明实施例三接收设备结构示意图;
图12为本发明实施例三数据传输系统结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细地描述。
描述本发明实施例之前,先详细了解一下基于NC TCP的数据传输方案和基于CTCP的数据传输方案。
基于NC TCP的数据传输方案包括:发送端对传输的原始数据包进行随机线性编码,接收端进行解码。编码时引入冗余编码,即使在无线网络传输中发生丢包,接收端也有很大概率可以解码出原始数据包,从而保证数据包的传输速率。
具体地,在该方案中,为了引入网络编码技术,需要对现有的TCP进行一些修改。首先,在发送端,发送方发送原始数据包的随机线性组合,每个随机线性组合的系数都是从一个很大的域中选取的元素,即使一个已发送的线性组合丢失了,下一个成功接收的线性组合仍可使解码顺利完成,这样可以掩盖TCP数据包的丢失。其次,在接收端,引入了seen ack的机制。seen ack机制解释为:当接收端收到一定的信息可以解码某个数据包时,则立即向发送端回复此数据包的seen ack。此时,接收端不需要解码数据包,待收到足够信息后再进行解码。发送端收到seen ack后,则继续发送后续数据包。
但基于NC TCP的数据传输方案中,将所有数据均放在一个编解码矩阵中进行编解码,在某些最坏情况下,接收方必须收到整个文件的最后一个编码数据包后才能进行解码,从而影响用户体验。为了解决这个问题,基于CTCP的数据传输方案采用分块编解码机制,即将整个文件切分成不同的子模块,在每个模块中分别进行编解码。
上述两种方案,在接收端需要进行两次解码相关的运算。具体地,接收端收到一个编码数据包后,首先需要提取出编码数据包中的编码系数,和本地存储的系数矩阵进行一次运算,得出seen ack,将其返回给发送端。然后判断系数矩阵是否达到解码的条件。若没有达到解码条件,则返回。若达到解码条件,则进行一次解码运算,解码出原始数据包提交给应用层。
从上面的流程可以看出,现有的网络编码TCP机制在接收端需要进行两次解码运算。两次解码一方面会过多消耗接收端的计算资源,给接收端带来负载;另一方面,发送seen ack前的系数矩阵运算会导致seen ack回复有延时,由于TCP协议中发送端在收到seen ack后才能够发送新的数据包。因此seen ack的回复延时会导致发送端减低发送速率。
基于此,在本发明的各种实施例中:发送端以块(block)的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给接收端;所述接收端接收数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向所述发送端回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码。
实施例一
本实施例提供一种数据发送方法,如图1所示,该方法包括:
步骤101:发送端以块(block)的方式对待发送数据进行编码;
具体地,所述发送端将所述待发送数据划分为等长数据包;
对划分后的数据包进行分块,对每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
其中,所述编码冗余数据包的作用为:数据发送过程中出现丢包后,接收到可以根据所述编码冗余数据包解码出原始数据包。
所述将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,具体为:
将每个块中生成的编码冗余数据包插入到对应块的原始数据包之后,将插入的编码冗余数据包按照规定的方式进行标号;并更新后续数据包的序号。
相应地,编码后每个块里包含原始数据包和生成的编码冗余数据包,这些数据包形成编码后的TCP数据。
这里,编码所采用的算法可以是随机线性网络编码算法,编码中引入冗余系数R,从而生成对应的编码冗余数据包;其中,R可以根据网络条件设置。
实际应用时,由于本实施例的方案是基于网络编码的TCP,而网络编码TCP需要发送端、接收端对数据进行编码、解码,在网络中传递的是编码后的数据包,因此需要部署网络编码TCP的系统无法与标准TCP的系统互通。基于此,在执行本步骤之前,该方法还可以包括:
所述发送端向所述接收端发送TCP连接建立消息(TCP sync);所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
接收所述接收端返回的确认消息(sync ack);所述确认消息携带所述接收端支持网络编码TCP的标识。
其中,由于TCP报文头的保留(Reserve)字段有6比特(bit),因此,所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1;相应地,所述确认消息携带所述接收端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1。
实际应用时,如果收到的确认消息中,Reserve字段末位bit不是1,则说明所述接收端不支持网络编码TCP,因此所述发送端使用标准TCP与所述接收端进行通信。
从上面的描述中可以看出,本实施例在TCP连接建立时,通过协商的方法,使得部署网络编码TCP的系统可以与标准TCP系统互通。
步骤102:发送端在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
这里,所述编码TCP报文头还包括:块编号指示字段、编码系数指示字段、以及数据包序号指示字段。其中,所述编码系数指示字段表征编码算法生成的系数,原始数据包按照此系数进行先行组合后生成编码数据包。
实际应用时,所述编码数指示字段的值为对应块中原始数据包的个数。
步骤103:将加入所述编码TCP报文头的TCP数据发出。
该方法还可以包括:
所述发送端对发送的每个数据包均启动重传定时器;
满足重传条件时,对需要重传的编码后的数据包直接进行重传。
该方法还可以包括:
所述发送端接收到seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
本实施例还提供一种数据接收方法,如图2所示,该方法包括:
步骤201:接收端接收数据包;
这里,实际应用时,由于本实施例的方案是基于网络编码的TCP,而网络编码TCP需要发送端、接收端对数据进行编码、解码,在网络中传递的是编码后的数据包,因此需要部署网络编码TCP的系统无法与标准TCP的系统互通。基于此,在执行本步骤之前,该方法还可以包括:
接收发送端发送的TCP连接建立消息(TCP sync);所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
所述接收端向所述发送端返回确认消息(sync ack);所述确认消息携带所述接收端支持网络编码TCP的标识。
其中,由于TCP报文头的Reserve字段有6bit,因此,所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1;相应地,所述确认消息携带所述接收端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1。
实际应用时,如果收到的TCP连接建立消息中,Reserve字段末位bit不是1,则说明所述发送端不支持网络编码TCP,因此,所述接收端在回复的确认消息中,将Reserve字段末位bit不置为1;所述接收端使用标准TCP与所述发送端进行通信。
从上面的描述中可以看出,本实施例在TCP连接建立时,通过协商的方法,使得部署网络编码TCP的系统可以与标准TCP系统互通。
步骤202:当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向发送端回复seen ack,对整个块进行确认;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
这里,在执行本步骤之前,该方法还可以包括:
所述接收端将收到的数据包放入接收队列中;
所述接收端根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
实际应用时,当块中收到的数据包的个数小于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,所述接收端向所述发送端回复seen ack,对收到的序号最小的数据包进行确认。
这里,需要说明的是:实际应用时,所述接收端确认当前块之前的数据包均已被确认后才回复seen ack,否则不回复seen ack。
步骤203:所述接收端对已确认块中的数据进行解码。
这里,所述已确认的块是指:已向所述发送端回复seen ack的块,换句话说,进行解码的块中所接收的数据包个数大于等于所述编码TCP报文头中编码数指示字段对应的数据包个数。
本实施例提供的数据传输方法,发送端以块(block)的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给接收端;所述接收端接收数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向所述发送端回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码,由于所述接收端仅需要进行一次解码运算,如此,能有效地减轻接收端的计算资源消耗。同时,由于收到数据包后,不需要解码运算后再向所述接收端回复seen ack,使得seen ack回复更加及时,如此,能有效地提高数据包的发送速率。
实施例二
在实施实例一的基础上,本实施例详细地描述数据传输过程。
如图3所示,本实施例的系统结构与现有的系统结构不相同。具体地,现有的系统中,基于NC TCP的系统是在TCP层和IP层间插入一个独立的编解码层;基于CTCP的系统是基于用户数据报协议(UDP,User Datagram Protocol),单独的一套编解码、传输系统;而本实施例的系统是将网络编码功能与TCP协议栈集成在一起实现的。在图3中,→表示数据的传输方向;表示seen ack的传输方向。
本实施例的编解码机制与基于CTCP的数据传输方法的分块编解码机制类似。
首先,描述发送端的具体操作。如图4所示,发送端的操作主要包括以下步骤:
步骤401:应用通过socket接口向TCP协议栈发送连续的数据;TCP协议栈将连续的数据划分为等长数据包;
这里,本步骤的具体实现是标准TCP的处理流程。
步骤402:对划分后的数据包进行分块;并对每个block中的数据包分别进行编码;
这里,一个block可以包括若干数据包;编码采用随机线性网络编码算法,并在编码过程中引入冗余系数R,以便编码中生成对应个数的冗余数据包,使得数据发送过程中出现丢包后,接收端根据冗余数据包可以解码出原始数据包。其中,R可以根据网络条件确定。
下面举例说明编码过程。
首先,每个block包含的原始数据包数n的计算方法为:使得n与R乘积是整数的最小n的取值。如图5所示,假设R=1.5,则每个block中的原始数据包的个数为2。
由于R=1.5,则每2个包进行编码后会生成3个数据包。此外,为了提高效率,对原始数据包不编码。因此,每个block中的2个原始数据包编码后会新生成1个编码冗余数据包。
其次,将生成的编码冗余数据包插入至TCP的数据发送队列中相应位置,具体地,如图5所示,将每个block中生成的编码冗余数据包插入到此block的原始数据包之后,对编码冗余包按照与原始数据包类似的方法进行标号,并更新后续数据包的序号;此时,每个block中包含3个数据包:2个原始数据包和1个编码冗余数据包。
步骤403:发送端在TCP数据-载荷(payload)中加入编码TCP报文头;
这里,如图6所示,所述编码TCP报文头包含:blocknum、编码系数、seqno以及CodeCount字段。其中,blocknum表征block的编号;编码系数表征编码算法生成的系数,原始数据包按照此系数进行线性组合后生成最终的编码数据包;seqno表征数据包的序号;CodeCount表征此block中收到几个数据包便可成功解码,换句话说,表征能成功解码此block中数据包所需接收的最少数据包的个数。这里,CodeCount的值设置为一个block中原始数据包数,在上述例子中,CodeCount的值是2。
步骤404:将加入所述编码TCP报文头的TCP数据通过IP协议栈发送到网络;
这里。对每个发送的数据包(包括原始包和编码冗余包)均启动重传定时器,并当重传条件满足时,对数据包直接进行重传。
其中,重传条件的判断与标准TCP流程中的重传条件判断相同。此方法与现有机制不同:目前基于NC TCP、CTCP的数据传输方法中,判断数据传输超时后,对编码缓存/block中的数据重新编码后再发送;而重新编码会导致接收端需要判断接收的编码包是否可以更新解码系数矩阵(即编码包的系数向量是否与接收端的系数矩阵线性无关),进而会导致接收端在解码前需要进行一次系数矩阵运算。而本实施例中,每个block中数据包的系数向量是线性无关的,传输超时后重传block中的数据包,因此接收端始终收到线性无关的系数向量,无需对收到的数据包进行检查,直接统计每个block中接收到的数据包个数,当接收的数据包个数大于或等于CodeCount值时进行解码即可。
步骤405:收到接收端的seen ack后,从数据发送队列中删除seen ack对应的数据包序号之前的数据。
其次,描述接收端的具体操作。接收端对收到的编码数据包进行解码,将原始数据包上传到应用层,并向发送端反馈seen ack。如图7所示,接收端的操作主要包括以下步骤:
步骤701:将接收到的数据包放入TCP协议栈的接收队列中;
步骤702:TCP协议栈根据数据包的编码TCP报头信息,统计每个block中收到的数据包的个数,并记录每个block对应的CodeCount值;
步骤703:当block中收到的数据包的个数大于等于CodeCount值时,向发送端回复seen ack,对整个block进行确认;
这里,如果block中收到的数据包的个数小于CodeCount值,则向发送端回复seenack,对收到的序号最小的数据包进行确认;基于图5所示的上述例子,如果接收端收到序号为No.1和No.3的两个数据包(CodeCount=2),则向发送端回复seen ack3,以对整个block1进行确认;发送端收到seen ack3后,会继续发送序号为No.4的数据包(虽然此时序号为No.2的数据包有可能在传输中丢失,但是接收端可以解码出序号为No.2的数据包);如果接收端仅收到序号为No.1的数据包,则向发送端回复seen ack1,表示收到序号为No.1的数据包。
其中,回复seen ack时,要确认当前block之前的数据包均已被确认,否则不回复seen ack。
步骤704:TCP协议栈对收到数据包个数大于或等于CodeCount的block中的数据进行解码,计算出原始数据后通过Socket接口上传到应用层。
这里,从接收端的处理步骤可以看出,仅需要进行一次解码运算。与现有网络编码TCP技术不同,本实施例中,接收端仅需要比较block中收到的数据包的个数与CodeCount的值,即可以向发送端回复seen ack。而现有网络编码TCP技术中,回复seen ack之前,需要进行一次系数矩阵运算。因此采用本实施例的方案,不仅减轻了接收端的计算资源消耗,也使得seen ack回复更及时,从而提高TCP的发送速率。
同时,由于本实施例的方案是基于网络编码的TCP,而网络编码TCP需要发送端、接收端对数据进行编码、解码,在网络中传递的是编码后的数据包,因此需要部署网络编码TCP的系统无法与标准TCP的系统互通。基于此,本实施例在TCP连接建立阶段提出一种协商方法,基于图3所示的系统,使得部署网络编码TCP的系统可以与标准TCP系统互通。具体地,
发送端的处理过程,如图8所示,主要包括以下步骤:
步骤801:向接收端发送TCP连接建立消息(TCP sync)时,将TCP报文头的Reserve字段末位bit置1;
这里,TCP报文头中有6bit的Reserve预留字段,将Reserve字段末位bit置1,代表发送端支持网络编码TCP。
步骤802:收到接收端返回的确认消息(sync ack)后,Reserve字段末位bit是1,则代表接收端支持网络编码TCP,后续发送端与接收端使用网络编码TCP进行通信。
这里,如果收到接收端的sync ack消息中,Reserve字段末位bit不是1,则代表对端不支持网络编码TCP,后续发送端与接收端使用标准TCP进行通信。
对于接收端,处理过程如图9所示,主要包括以下步骤:
步骤901:收到TCP连接建立消息(TCP sync)时,检查TCP报头中Reserve字段末位bit是否置1;
步骤902:确定Reserve字段末位bit是1时,向发送端回复确认消息(sync ack),确认消息(sync ack)的TCP报文的Reserve字段末位bit为1。
这里,收到的TCP连接建立消息(TCP sync)的TCP报文头中的Reserve字段末位bit是1,代表发送端支持网络编码TCP。后续接收端与发送端使用网络编码TCP进行通信。
如果收到的TCP连接建立消息(TCP sync)的TCP报文头中的Reserve字段末位bit不是1,代表发送端不支持网络编码TCP,因此,向对端回复的sync ack中,TCP报头的Reserve字段末位bit不置1,后续接收端与发送端使用标准TCP与对端通信。
从上面的描述中可以看出,本实施例提供的方案,现有的网络编码TCP机制,一方面在接收端需要进行两次解码运算,而两次解码一方面会过多消耗接收端的计算资源,给接收端带来负载;另一方面,发送seen ack前的系数矩阵运算会导致seen ack回复有延时,由于TCP中发送端在收到seen ack后才能够发送新的数据包,因此seen ack的回复延时会导致TCP发送端减低发送速率。而本实施例提供的方案,接收端仅需要进行一次解码运算,如此,不仅减轻了接收端的计算资源消耗,也使得seen ack的回复更及时,从而提高了数据的发送速率。
实施例三
为实现实施例一、二的方法,本实施例提供一种发送设备,如图10所示,该发送设备包括:编码模块101、插入单元102以及第一发送单元103;其中,
所述编码模块101,用于以块(block)的方式对待发送数据进行编码;
所述插入单元102,用于在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述第一发送单元103,用于将加入所述编码TCP报文头的TCP数据发出。
其中,所述编码单元101可以包括:划分模块、编码模块及位置插入模块;其中,
所述划分模块,用于将所述待发送数据划分为等长数据包;并对划分后的数据包进行分块;
所述编码模块,用于每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
所述位置插入模块,用于将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
其中,所述编码冗余数据包的作用为:数据发送过程中出现丢包后,接收到可以根据所述编码冗余数据包解码出原始数据包。
所述将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,具体为:
所述位置插入模块将每个块中生成的编码冗余数据包插入到对应块的原始数据包之后,将插入的编码冗余数据包按照规定的方式进行标号;并更新后续数据包的序号。
相应地,编码后每个块里包含原始数据包和生成的编码冗余数据包,这些数据包形成编码后的TCP数据。
这里,编码所采用的算法可以是随机线性网络编码算法,编码中引入冗余系数R,从而生成对应的编码冗余数据包;其中,R可以根据网络条件设置。
实际应用时,由于本实施例的方案是基于网络编码的TCP,而网络编码TCP需要发送端、接收端对数据进行编码、解码,在网络中传递的是编码后的数据包,因此需要部署网络编码TCP的系统无法与标准TCP的系统互通。基于此,该发送设备还可以包括:第一接收单元;其中,
所述第一发送单元,还用于向所述接收端发送TCP连接建立消息(TCP sync);所述TCP连接建立消息携带所述发送设备支持网络编码TCP的标识;
所述第一接收单元,用于接收所述接收端返回的确认消息(sync ack);所述确认消息携带所述接收端支持网络编码TCP的标识;并在收到所述确认消息(sync ack)后,触发所述编码模块101;
相应地,所述编码模块101,用于收到所述第一接收单元的触发后,以块(block)的方式对待发送数据进行编码。
其中,由于TCP报文头的Reserve字段有6bit,因此,所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1;相应地,所述确认消息携带所述接收端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1。
实际应用时,如果收到的确认消息中,Reserve字段末位bit不是1,则说明所述接收端不支持网络编码TCP,因此所述发送设备使用标准TCP与所述接收端进行通信。
从上面的描述中可以看出,本实施例在TCP连接建立时,通过协商的方法,使得部署网络编码TCP的系统可以与标准TCP系统互通。
这里,所述编码TCP报文头还包括:块编号指示字段、编码系数指示字段、以及数据包序号指示字段。其中,所述编码系数指示字段表征编码算法生成的系数,原始数据包按照此系数进行先行组合后生成编码数据包。
实际应用时,所述编码数指示字段的值为对应块中原始数据包的个数。
该发送设备还可以包括重传单元,用于对发送的每个数据包均启动重传定时器;并在满足重传条件时,对需要重传的编码后的数据包直接进行重传。
该发送设备还可以包括:删除单元,用于接收到seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
实际应用时,所述编码模块101、插入单元102、划分模块、编码模块、位置插入模块以及删除单元可由发送设备中的中央处理器(CPU,Central Processing Unit)、微处理器(MCU,Micro Control Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;所述第一发送单元103可由发送设备中的发射机实现;所述第一接收单元可由发送设备中的接收机实现;所述重传单元可由发送设备中的CPU MCU、DSP或FPGA结合发射机实现。
为实现实施例一、二的方法,本实施例还提供一种接收设备,如图11所示,该接收设备包括:第二接收单元111、第二发送单元112以及解码单元113;其中,
所述第二接收单元111,用于接收数据包;
所述第二发送单元112,用于当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向发送端回复seen ack,对整个块进行确认;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述解码单元113,用于对已确认块中的数据进行解码。
其中,实际应用时,由于本实施例的方案是基于网络编码的TCP,而网络编码TCP需要发送端、接收端对数据进行编码、解码,在网络中传递的是编码后的数据包,因此需要部署网络编码TCP的系统无法与标准TCP的系统互通。基于此,所述第二接收单元111,还用于接收发送端发送的TCP连接建立消息(TCP sync);所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
所述第二发送单元112,用于向所述发送端返回确认消息(sync ack);所述确认消息携带所述接收设备支持网络编码TCP的标识。
其中,由于TCP报文头的Reserve字段有6bit,因此,所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1;相应地,所述确认消息携带所述接收设备支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1。
实际应用时,如果收到的TCP连接建立消息中,Reserve字段末位bit不是1,则说明所述发送端不支持网络编码TCP,因此,所述接收设备在回复的确认消息中,将Reserve字段末位bit不置为1;所述接收设备使用标准TCP与所述发送端进行通信。
从上面的描述中可以看出,本实施例在TCP连接建立时,通过协商的方法,使得部署网络编码TCP的系统可以与标准TCP系统互通。
该接收设备还可以包括:统计单元,用于将收到的数据包放入接收队列中;并根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
实际应用时,当块中收到的数据包的个数小于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,所述第二发送单元112向所述发送端回复seen ack,对收到的序号最小的数据包进行确认。
这里,需要说明的是:实际应用时,所述第二发送单元112确认当前块之前的数据包均已被确认后才回复seen ack,否则不回复seen ack。
所述已确认的块是指:已向所述发送端回复seen ack的块,换句话说,进行解码的块中所接收的数据包个数大于等于所述编码TCP报文头中编码数指示字段对应的数据包个数。
实际应用时,所述第二接收单元111可由接收设备中的接收机实现;所述第二发送单元112可由接收设备中的发射机实现;所述解码单元113以及统计单元可由接收设备中的CPU、MCU、DSP或FPGA实现。
本实施例还提供一种数据传输系统,如图12所示,该系统包括:发送设备121及接收设备122;其中,
所述发送设备121,用于以块(block)的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给所述接收设备122;
所述接收设备122,用于接收所述发送设备121发送的数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向所述发送设备121回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码。
这里,实际应用时,由于本实施例的方案是基于网络编码的TCP,而网络编码TCP需要发送端、接收端对数据进行编码、解码,在网络中传递的是编码后的数据包,因此需要部署网络编码TCP的系统无法与标准TCP的系统互通。基于此,所述发送设备121,还用于向所述接收设备发送TCP连接建立消息(TCP sync);所述TCP连接建立消息携带所述发送设备121支持网络编码TCP的标识;并接收所述接收设备122返回的确认消息(sync ack);
所述接收设备122,还用于收到所述TCP连接建立消息后,向所述发送设备121返回确认消息;所述确认消息携带所述接收设备122支持网络编码TCP的标识。
所述以块(block)的方式对待发送数据进行编码,具体包括:
所述发送设备121将所述待发送数据划分为等长数据包;
对划分后的数据包进行分块,对每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
其中,所述编码冗余数据包的作用为:数据发送过程中出现丢包后,接收到可以根据所述编码冗余数据包解码出原始数据包。
所述将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,具体为:
将每个块中生成的编码冗余数据包插入到对应块的原始数据包之后,将插入的编码冗余数据包按照规定的方式进行标号;并更新后续数据包的序号。
相应地,编码后每个块里包含原始数据包和生成的编码冗余数据包,这些数据包形成编码后的TCP数据。
这里,编码所采用的算法可以是随机线性网络编码算法,编码中引入冗余系数R,从而生成对应的编码冗余数据包;其中,R可以根据网络条件设置。
其中,由于TCP报文头的Reserve字段有6bit,因此,所述TCP连接建立消息携带所述发送设备121支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1;相应地,所述确认消息携带所述接收设备122支持网络编码TCP的标识,具体可以是:TCP报文头的Reserve字段末位bit为1。
实际应用时,如果收到的确认消息中,Reserve字段末位bit不是1,则说明所述接收设备122不支持网络编码TCP,因此所述发送设备121使用标准TCP与所述接收设备122进行通信。
从上面的描述中可以看出,本实施例在TCP连接建立时,通过协商的方法,使得部署网络编码TCP的系统可以与标准TCP系统互通。
所述编码TCP报文头还包括:块编号指示字段、编码系数指示字段、以及数据包序号指示字段。其中,所述编码系数指示字段表征编码算法生成的系数,原始数据包按照此系数进行先行组合后生成编码数据包。
实际应用时,所述编码数指示字段的值为对应块中原始数据包的个数。
所述发送设备121,还用于对发送的每个数据包均启动重传定时器;并在满足重传条件时,对需要重传的编码后的数据包直接进行重传。
所述发送设备121,还用于接收到seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
所述接收设备122,还用于将收到的数据包放入接收队列中;并根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
实际应用时,当块中收到的数据包的个数小于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,所述接收设备向所述发送设备回复seen ack,对收到的序号最小的数据包进行确认。
这里,需要说明的是:实际应用时,所述接收设备122确认当前块之前的数据包均已被确认后才回复seen ack,否则不回复seen ack。
所述已确认的块是指:已向所述发送设备121回复seen ack的块,换句话说,进行解码的块中所接收的数据包个数大于等于所述编码TCP报文头中编码数指示字段对应的数据包个数。
本实施例中,发送设备以块(block)的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给接收设备;接收设备接收数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,接收设备向所述发送设备回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码,由于所述接收端仅需要进行一次解码运算,如此,能有效地减轻接收端的计算资源消耗。同时,由于收到数据包后,不需要解码运算后再向所述接收端回复seen ack,使得seen ack回复更加及时,如此,能有效地提高数据包的发送速率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (20)

1.一种数据发送方法,其特征在于,所述方法包括:
发送端以块的方式对待发送数据进行编码;
所述发送端在编码后的传输控制协议TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述发送端将加入所述编码TCP报文头的TCP数据发出。
2.根据权利要求1所述的方法,其特征在于,所述发送端以块的方式对待发送数据进行编码之前,所述方法还包括:
所述发送端向接收端发送TCP连接建立消息;所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
接收所述接收端返回的确认消息;所述确认消息携带所述接收端支持网络编码TCP的标识。
3.根据权利要求1所述的方法,其特征在于,所述以块的方式对待发送数据进行编码,包括:
所述发送端将所述待发送数据划分为等长数据包;
对划分后的数据包进行分块,对每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
4.根据权利要求3所述的方法,其特征在于,编码所采用的算法为随机线性网络编码算法。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述发送端对发送的每个数据包均启动重传定时器;
满足重传条件时,对需要重传的编码后的数据包直接进行重传。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述发送端接收到确认seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
7.一种数据接收方法,其特征在于,所述方法包括:
接收端接收数据包;
当每个块中收到的数据包个数大于等于编码TCP报文头中的编码数指示字段对应的数据包个数时,向发送端回复seen ack,对整个块进行确认;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述接收端对已确认块中的数据进行解码。
8.根据权利要求7所述的方法,其特征在于,所述接收数据包之前,所述方法还包括:
接收所述发送端发送的TCP连接建立消息;所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
所述接收端向所述发送端返回确认消息;所述确认消息携带所述接收端支持网络编码TCP的标识。
9.根据权利要求7所述的方法,其特征在于,所述向发送端回复seen ack,对整个块进行确认之前,所述方法还包括:
所述接收端将收到的数据包放入接收队列中;
所述接收端根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
10.一种发送设备,其特征在于,所述发送设备包括:编码模块、插入单元以及第一发送单元;其中,
所述编码模块,用于以块的方式对待发送数据进行编码;
所述插入单元,用于在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述第一发送单元,用于将加入所述编码TCP报文头的TCP数据发出。
11.根据权利要求10所述的发送设备,其特征在于,所述发送设备还包括:第一接收单元;其中,
所述第一发送单元,还用于向接收端发送TCP连接建立消息;所述TCP连接建立消息携带所述发送设备支持网络编码TCP的标识;
所述第一接收单元,用于接收所述接收端返回的确认消息;所述确认消息携带所述接收端支持网络编码TCP的标识;并在收到所述确认消息后,触发所述编码模块;
相应地,所述编码模块,用于收到所述第一接收单元的触发后,以块的方式对待发送数据进行编码。
12.根据权利要求10所述的发送设备,其特征在于,所述编码模块包括:划分模块、数据编码模块及位置插入模块;其中,
所述划分模块,用于将所述待发送数据划分为等长数据包;并对划分后的数据包进行分块;
所述数据编码模块,用于每个块中的数据包分别进行编码,并在编码过程中生成对应的编码冗余数据包;
所述位置插入模块,用于将所述编码冗余数据包插入至TCP数据发送队列中的相应位置,形成编码后的TCP数据。
13.根据权利要求12所述的发送设备,其特征在于,编码所采用的算法为随机线性网络编码算法。
14.根据权利要求13所述的发送设备,其特征在于,所述发送设备还包括重传单元,用于对发送的每个数据包均启动重传定时器;并在满足重传条件时,对需要重传的编码后的数据包直接进行重传。
15.根据权利要求12所述的发送设备,其特征在于,所述发送设备还包括删除单元,用于接收到seen ack后,从所述TCP数据发送队列中删除seen ack对应数据包序号之前的数据。
16.一种接收设备,其特征在于,所述接收设备包括:第二接收单元、第二发送单元以及解码单元;其中,
所述第二接收单元,用于接收数据包;
所述第二发送单元,用于当每个块中收到的数据包个数大于等于编码TCP报文头中的编码数指示字段对应的数据包个数时,向发送端回复seen ack,对整个块进行确认;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;
所述解码单元,用于对已确认块中的数据进行解码。
17.根据权利要求16所述的接收设备,其特征在于,所述第二接收单元,还用于接收发送端发送的TCP连接建立消息;所述TCP连接建立消息携带所述发送端支持网络编码TCP的标识;
所述第二发送单元,用于向所述发送端返回确认消息;所述确认消息携带所述接收设备支持网络编码TCP的标识。
18.根据权利要求16所述的接收设备,其特征在于,所述接收设备还包括:统计单元,用于将收到的数据包放入接收队列中;并根据数据包对应的编码TCP报文头信息,统计接收队列中每个块中收到的数据包个数。
19.一种数据传输系统,其特征在于,所述系统包括发送设备及接收设备;其中,
所述发送设备,用于以块的方式对待发送数据进行编码;在编码后的TCP数据中加入编码TCP报文头;所述编码TCP报文头包括编码数指示字段;所述编码数指示字段表征能成功解码对应块中数据包所需接收的最少数据包个数;并将加入所述编码TCP报文头的TCP数据发送给所述接收设备;
所述接收设备,用于接收所述发送设备发送的数据包;当每个块中收到的数据包个数大于等于所述编码TCP报文头中的编码数指示字段对应的数据包个数时,向所述发送设备回复seen ack,对整个块进行确认;并对已确认块中的数据进行解码。
20.根据权利要求19所述的系统,其特征在于,所述发送设备,还用于向所述接收设备发送TCP连接建立消息;所述TCP连接建立消息携带所述发送设备支持网络编码TCP的标识;并接收所述接收设备返回的确认消息;
所述接收设备,还用于收到所述TCP连接建立消息后,向所述发送设备返回确认消息;所述确认消息携带所述接收设备支持网络编码TCP的标识。
CN201510026732.2A 2015-01-20 2015-01-20 数据传输方法、系统及相关设备 Active CN105871501B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510026732.2A CN105871501B (zh) 2015-01-20 2015-01-20 数据传输方法、系统及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510026732.2A CN105871501B (zh) 2015-01-20 2015-01-20 数据传输方法、系统及相关设备

Publications (2)

Publication Number Publication Date
CN105871501A CN105871501A (zh) 2016-08-17
CN105871501B true CN105871501B (zh) 2019-06-25

Family

ID=56622745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510026732.2A Active CN105871501B (zh) 2015-01-20 2015-01-20 数据传输方法、系统及相关设备

Country Status (1)

Country Link
CN (1) CN105871501B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086772B (zh) * 2019-03-19 2021-10-08 视联动力信息技术股份有限公司 一种监控视频的获取方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111820A (zh) * 2009-12-29 2011-06-29 上海摩波彼克半导体有限公司 无线网络实现传输控制协议感知网络编码调度控制的方法
CN102904689A (zh) * 2012-10-15 2013-01-30 哈尔滨工业大学深圳研究生院 基于网络编码的传输控制协议的改进方法
CN103840928A (zh) * 2012-11-23 2014-06-04 美国博通公司 用于长期演进中网络编码的tcp的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9537759B2 (en) * 2012-01-31 2017-01-03 Massachusetts Institute Of Technology Multi-path data transfer using network coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111820A (zh) * 2009-12-29 2011-06-29 上海摩波彼克半导体有限公司 无线网络实现传输控制协议感知网络编码调度控制的方法
CN102904689A (zh) * 2012-10-15 2013-01-30 哈尔滨工业大学深圳研究生院 基于网络编码的传输控制协议的改进方法
CN103840928A (zh) * 2012-11-23 2014-06-04 美国博通公司 用于长期演进中网络编码的tcp的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jay Kumar Sundararajan∗.Network Coding Meets TCP.《IEEE INFOCOM》.2009,
无线网络基于网络编码的TCP性能建模与分析;李娟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120715;全文

Also Published As

Publication number Publication date
CN105871501A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
KR100554062B1 (ko) 패킷 채널을 통한 멀티미디어 통신 방법
KR102051504B1 (ko) 무선 통신 시스템에서 데이터 패킷 송수신 방법 및 장치
JP6476197B2 (ja) 輻輳制御ビットレート・アルゴリズム
US20150117468A1 (en) Apparatus and method for transmitting data
WO2013116456A1 (en) Multi-path data transfer using network coding
CN103580773A (zh) 数据帧的传输方法及装置
EP3342073A1 (en) Random linear network encoded data transmission
EP2782281A1 (en) Data transmission using rateless coding
CN107209713B (zh) 按需文件修复的方法和系统
EP3342075A1 (en) Random linear network encoded data transmission from user equipment
CN103607264A (zh) 基于3g网络的带内数据传输方法
CN112751644A (zh) 数据传输方法、装置及系统、电子设备
JP2012222809A (ja) データフレームの再送信減少方法及びこのための受信ノード
WO2020134258A1 (zh) 一种数据的重传解码方法、装置、系统及通信设备
CN111385055B (zh) 一种数据传输方法和装置
CN105871501B (zh) 数据传输方法、系统及相关设备
JP4722693B2 (ja) 通信システム
CN109005011B (zh) 一种用于水声网络的数据传输方法、系统及可读存储介质
CN114500672A (zh) 数据传输方法及系统
CN108512633A (zh) 一种数据传输方法及装置
KR20140062400A (ko) 네트워크 코딩 기반 멀티캐스트 트래픽을 송수신하는 기지국 및 복수의 멤버 노드들
WO2015109500A1 (zh) 数据传输方法和装置
CN114448588B (zh) 音频传输方法、装置、电子设备及计算机可读存储介质
CN104836674B (zh) 用于确保可靠性的多组播网络系统和方法
WO2015077960A1 (zh) 一种数据报文的传输方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant