CN104092707B - 基于分块校验与确认的卫星网络tcp协议性能增强方法 - Google Patents
基于分块校验与确认的卫星网络tcp协议性能增强方法 Download PDFInfo
- Publication number
- CN104092707B CN104092707B CN201410373029.4A CN201410373029A CN104092707B CN 104092707 B CN104092707 B CN 104092707B CN 201410373029 A CN201410373029 A CN 201410373029A CN 104092707 B CN104092707 B CN 104092707B
- Authority
- CN
- China
- Prior art keywords
- piecemeal
- option
- verification
- byte
- packet
- 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
Links
Landscapes
- Radio Relay Systems (AREA)
Abstract
本发明公开了一种基于分块校验与确认的卫星网络TCP协议性能增强方法,涉及卫星通信领域中TCP协议性能增强技术。它在兼容标准TCP协议流量控制、差错控制、拥塞控制等基本机制的基础上,基于“合并传输、分块重传”的思路,利用TCP协议的扩展选项,通过引入数据分块校验与分块确认的新机制,在不明显增加TCP协议开销的前提下,提高了TCP协议在高误码环境中的传输性能。本发明公开的方法具有兼容标准TCP协议、抗误码能力强、校验信息开销低的优点,特别适合利用TCP协议进行数据传输的卫星通信系统使用。
Description
技术领域
本发明公开一种基于分块校验与确认的卫星网络TCP协议性能增强方法,涉及卫星通信领域中的TCP协议性能增强技术,特别适合利用TCP协议进行数据传输的卫星通信系统使用。
背景技术
随着基于TCP/IP协议族的地面互联网的蓬勃发展,作为地面网络延伸和备份的卫星通信网络正朝着全IP化的方向快速演进,TCP协议也继在地面网络获得巨大成功之后,正逐渐成为卫星通信网络承载数据业务的主要协议。
但是,卫星信道是一种较为特殊的无线信道,具有传播时延长、信道误码高等固有缺陷,针对地面有线网络较为优越的传输环境而设计的TCP协议应用于卫星通信网络时,恶劣的信道环境使其吞吐率、带宽利用率等性能都大打折扣。
地面网络的传输往返时延一般为几个到几十个毫秒,卫星信道的传播延时则大得多,特别是在对地静止轨道卫星通信系统中,两地面站点对点往返传输时延在500毫秒左右。一方面,超长的时延使得TCP协议的慢启动过程较为漫长,慢启动状态花费的时间越长,文件的传输时间就越长,慢启动阶段在整个文件传输中的时间比例越高,信道的有效带宽利用率就越低;另一方面,超长的时延还会对标准TCP协议的最大吞吐量形成严重制约,TCP连接的最大吞吐量可由下式计算得出:
最大吞吐量=最大发送窗口/往返时延
标准TCP协议的最大发送窗口为64K字节,依据上式计算,在往返时延约为500毫秒的静止轨道卫星通信系统中,标准TCP协议的最大吞吐量不会超过1Mbps,也就是说,即便可用的卫星信道带宽远远大于1Mbps,使用标准TCP协议进行数据传输的速率也不会超过1Mbps,这显然不能满足当今高速数据传输的需求,并会对宝贵的卫星信道带宽资源造成严重浪费。
卫星信道的高误码特性也会对TCP传输造成严重影响。在通常的静止轨道卫星通信环境下,卫星信道主要呈现高斯加性白噪声特性,误码以随机误码为主,误码率一般在10-4-10-6的范围内。当天气条件恶化时,信道的误码率还会更大。
标准TCP协议假设所有的错包和丢包都是由链路拥塞导致的,因此,当检测到错包或丢包后,会大幅降低发送速率,以减轻链路拥塞,使链路尽快恢复正常状态。标准TCP协议的这种处理方式在地面链路中是合理的,因为地面链路是以光纤、同轴电缆为主的高质量有线链路,误码率极低,造成错包和丢包的主要原因是链路拥塞。
但标准TCP协议的上述假设在卫星通信网络中是不成立的。由于卫星链路的高误码特性,卫星通信网络中的错包和丢包主要都是由信道误码导致的,当检测到错包或丢包并重传相应数据包后,链路并没有发生拥塞,可用带宽也并没有降低,发送端如果降低发送速率,会直接导致信道带宽利用率的降低,造成对宝贵卫星信道带宽资源的浪费。
为了克服卫星信道对TCP协议的不利影响,必须采用TCP协议性能增强技术。从实现途径上看,TCP协议性能增强技术主要分为两种:其一,直接对用户计算机终端中的TCP协议栈进行优化修改,以克服卫星信道的缺点;其二,设计专门的TCP性能增强代理,采用协议变换的方式将标准TCP协议在卫星链路上转换为经过优化的TCP协议,从而实现对用户透明的TCP协议性能增强。由于采用TCP性能增强代理无需用户对计算机终端做出任何修改,保持了对用户的透明性,因而绝大多数卫星通信系统都采用第二种方式实现TCP协议性能增强。
无论采用哪种实现方式,要实现TCP协议性能增强,都需要在兼容标准TCP协议的前提下,针对卫星信道特点,设计用于空间段的优化的TCP协议传输流程,以提高TCP协议在卫星信道环境下的传输性能。
发明内容
本发明的目的在于针对高误码对TCP协议的不利影响,在兼容标准TCP协议的前提下,基于“合并传输、分块重传”的思路,对TCP协议流程进行改进,提供一种基于分块校验与确认的卫星网络TCP协议性能增强方法,以提高TCP协议在卫星通信高误码环境中的传输性能。
本发明的目的是这样实现的,基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于包括以下步骤:
(1)依据标准TCP协议的规定,数据的发送端与接收端之间通过三次握手建立TCP连接;
(2)发送端按照设定的分块长度计算出待发TCP数据包的分块数,并对分块依次序编号;发送端基于待发TCP数据包及计算出的分块数,生成带分块校验选项的TCP数据包,并向接收端发送该TCP数据包;
(3)接收端收到TCP数据包后,首先依据标准TCP协议的规定,提取TCP数据包包头中的2字节标准校验和,并对整个TCP数据包进行校验;
如果接收端对整个TCP数据包的校验通过,则接收端正常接收该TCP数据包,并依据标准TCP协议,生成ACK确认包回送给发送端,之后,转入步骤(7);
如果接收端对整个数据包的校验未通过,则接收端检测该TCP数据包包头选项区中是否包含分块校验选项;如果检测到分块校验选项,则执行步骤(4);如果未检测到分块校验选项,则依据标准TCP协议的规定,丢弃该TCP数据包,并向发送端回送重复ACK确认包,之后,转入步骤(7);
(4)接收端从数据包分块校验选项中提取TCP数据包包头校验和字节,并对TCP数据包包头进行校验;
如果接收端对TCP数据包包头校验通过,则执行步骤(5);
如果接收端对TCP数据包包头校验未通过,则认为数据包彻底损坏,就丢弃该数据包,并向发送端回送重复ACK确认包,之后,转入步骤(7);
(5)接收端从数据包分块校验选项中提取选项长度,用选项长度减去3得到数据包分块数;进而从分块校验选项中提取各个分块的校验和,并对各个分块分别进行校验;
对于校验未通过的分块,记录其在本数据包内的编号;并对校验通过的分块进行接收,对校验未通过的分块进行丢弃;
(6)接收端基于步骤(5)中计算的数据包分块数和记录的未通过校验的分块编号,填写分块确认选项的选项编号、选项长度、待确认数据包的总分块数和错误分块标记,并将分块确认选项添加到重复ACK确认包包头的选项区;而后,将该带有分块确认选项的重复ACK确认包回送给发送端;
(7)发送端收到ACK确认包后,检测ACK确认包包头选项中是否带有分块确认选项;
如果带有分块确认选项,则发送端从分块确认选项中提取接收端未成功接收的数据分块的编号,并以ACK确认包中的ACK确认号为起点,结合设定的分块长度,找到这些分块的起始字节和结束字节,进而将这些分块分别单独组包重传;
如果没有分块确认选项,则发送端依据标准TCP协议对ACK确认包的处理规定,判断该ACK确认包是否是重复的;如果不是重复的,则正常传输后续数据包;如果是重复的,则判断重复次数是否达到3次,如果重复没有达到3次,则继续传输后续数据包,如果重复达到3次,则发送端重传重复ACK确认包指示需要重传的数据包。
其中,步骤(2)中所述的分块校验选项具体格式为:第1个字节为选项编号66;第2个字节为选项长度,取值范围为5至7,对应的数据包分块数为2至4;第3个字节为TCP数据包包头的CRC-8校验和;第4至7个字节为第1至4个分块的CRC-8校验和。
其中,步骤(2)中所述的生成带分块校验选项的TCP数据包的方法,包括步骤:
(101)发送端根据分块数,分别计算各个分块的CRC-8校验和,而后填写分块校验选项的选项编号、选项长度以及各分块校验和字段,分块校验选项的TCP数据包包头校验和字节填为0;
(102)发送端将上述TCP包头校验和字节填为0的分块校验选项添加到TCP包头选项区,并将TCP包头的2字节标准校验和填为0;而后,发送端对包括选项区在内的整个TCP包头计算CRC-8校验和,并将该校验和填入分块校验选项的TCP包头校验和字节;
(103)发送端依据标准TCP协议的规定,计算整个TCP数据包的2字节标准校验和,并将之填入TCP包头中的规定位置。
其中,步骤(5)中对校验通过的分块进行接收时,判断其是否是乱序分块:如果是乱序分块,则将该分块放入接收缓冲区进行缓存;如果不是乱序分块,则正常接收该分块,并向上层应用程序交付。
其中,步骤(6)中所述的分块确认选项具体格式为:第1个字节为选项编号67;第2个字节为选项长度,取值为3;第3个字节的高3比特为被确认数据包的分块数;第3个字节的低4比特为被确认数据包错误分块标记,低4比特从低位到高位,分别对应第1至4分块,如果分块正确,则对应的比特为0,如果分块错误,则对应的比特为1。
其中,步骤(7)中发送端重传未成功接收的分块后,不减小发送窗口;发送端重传重复ACK确认包指示需要重传的数据包后,依据标准TCP协议的规定减小发送窗口。
本发明具有以下优点:
1.本发明通过引入分块校验与分块确认的新机制,提高了TCP协议在卫星通信高误码环境中的传输性能。
2.本发明不改变标准TCP协议流量控制、差错控制、拥塞控制等基本机制,完全兼容标准TCP协议。
3.本发明在提高TCP协议抗误码性能的同时,引入的校验信息开销较低。
附图说明
图1是本发明的应用环境示意图。
图2是本发明的分块校验选项格式图。
图3是本发明的分块确认选项格式图。
图4是本发明的发送端数据包发送处理流程图。
图5是本发明的接收端数据包接收处理流程图。
图6是本发明的发送端对ACK确认包的处理流程图。
图7是本发明的优选实施例通信流程图。
具体实施方式
以下结合附图1、2、3、4、5、6、7对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1示出了本发明的应用环境:卫星通信站基于TCP性能增强代理,采用将地面段的标准TCP协议在空间段转换为基于本发明所述分块校验与确认机制的优化TCP协议的方式,实现对用户透明的TCP协议性能增强。
图2是本发明的分块校验选项格式图。其中,第1个字节为选项编号66;第2个字节为选项长度,取值范围为5至7;第3个字节为TCP数据包包头的CRC-8校验和;第4至7个字节为第1至4个分块的CRC-8校验和。依据数据包分块数的不同,分块校验选项长度可能为5至7个字节,对应的分块数为2至4块。
图3是本发明的分块确认选项格式图。其中,第1个字节为选项编号67;第2个字节为选项长度,取值为3;第3个字节的高3比特为被确认数据包的分块数;第3个字节的低4比特为被确认数据包错误分块标记,低4比特从低位到高位,分别对应第1至4分块;如果分块正确,则对应的比特为0,如果分块错误,则对应的比特为1,例如,如果被确认数据包的第2个分块错误,则分块确认选项第3字节低4比特应为0010。
图4是本发明的发送端数据包发送处理流程图。该流程图描述了发送端计算分块数、生成分块校验选项、发送数据包的大致流程。
图5是本发明的接收端数据包接收处理流程图。该流程图描述了接收端对数据包各种错误情况的处理流程。
图6是本发明的发送端对ACK确认包的处理流程图。该流程图描述了发送端发送数据后,收到接收端回送的ACK确认包时的各种处理流程。
图7是本发明的优选实施例通信流程图。该图描述了本发明的一个优选实施例,通过对该实施例的分析,可以说明本发明具有提高TCP抗误码能力、兼容标准TCP协议、校验信息开销低的优点。
下面,结合图7所示优选实施例中设置的几种典型情况,对本发明进行详细说明。在本优选实施例中,假定发送端发送的每个包的数据长度都为1200字节,并设定分块长度为400字节。基于分块校验与确认的卫星网络TCP协议性能增强方法,说明如下:
情况1:正常传输。
1.1数据的发送端与接收端之间通过三次握手建立TCP连接;
1.2发送端连续发送2个数据长度为1200字节的数据包,2个数据包中的字节序号分别为0~1199和1200~2399,按照设定的分块长度400,每个待发TCP数据包的分块数为3,每包内分块的编号依次为1、2、3;
发送端基于待发TCP数据包及计算出的分块数3,生成带分块校验选项的TCP数据包,并向接收端发送这2个包;
1.3假设这2个数据包在传输过程中均无损坏,都正确到达接收端;
1.4接收端接收到这2个数据包后,首先按照标准TCP协议的规定,提取TCP包头中的2字节标准校验和对整个数据包进行校验,由于2个数据包在传输过程中没有发生任何损坏,所以校验成功,接收端回送确认号分别为1200和2400的不包含分块确认选项的ACK确认包。
情况2:数据包严重损坏。
2.1接上,发送端继续发送1个数据长度为1200字节的数据包,该数据包中的字节序号为2400~3599,按照设定的分块长度400,该待发TCP数据包的分块数为3,包内分块的编号依次为1、2、3;
发送端基于待发TCP数据包及计算出的分块数3,生成带分块校验选项的TCP数据包,并向接收端发送该包;
2.2假设该数据包在传输过程中受误码影响发生严重损坏;
2.3接收端接收到该数据包后,首先按照标准TCP协议的规定,提取TCP包头中的2字节标准校验和对整个数据包进行校验,由于该数据包在传输过程中发生了错误,对整个数据包进行的标准校验未通过;
而后,接收端检测到该TCP数据包包头选项区中包含分块校验选项,就从分块校验选项中提取TCP包头校验和字节,并对TCP包头进行校验;
在本优选实施例中,接收端对该数据包的TCP包头校验未通过,这不但说明数据包损坏较为严重,而且由于分块校验选项本身的正确性已无法保证,分块校验也就无需进行了,所以丢弃该数据包,并向发送端回送确认号仍为2400的重复ACK确认包;
2.4发送端收到确认号仍为2400的重复ACK确认包后,检测到该ACK确认包不带有分块确认选项,并且虽然是重复ACK确认包,但重复次数还没有达到3次,因此依据标准TCP协议的规定,继续传输字节序号为3600~4799的后续数据包;
2.5字节序号为3600~4799的数据包在传输过程中无损坏,正确到达接收端;
2.6接收端收到字节序号为3600~4799的数据包后,首先按照标准TCP协议的规定,提取TCP包头中的2字节标准校验和对整个数据包进行校验;由于该数据包在传输过程中无损坏,所以校验通过;因为此时接收端还未正确收到字节序号为2400~3599的数据包,所以接收端将该字节序号为3600~4799的数据包放入接收缓冲区缓存,并依据标准TCP协议,生成确认号仍为2400的重复ACK确认包回送给发送端;
2.7发送端收到确认号仍为2400的重复ACK确认包后,检测到该ACK确认包不带有分块确认选项,并且是重复ACK确认包,重复次数已经达到3次,因此,发送端重传字节序号为2400~3599的数据包;并且,由于重复ACK次数已经达到3次,依据标准TCP协议的规定,发送端减小发送窗口,以降低发送速率;
2.8该重传的字节序号为2400~3599的数据包在传输过程中无损坏,正确到达接收端;
2.9接收端收到字节序号为2400~3599的数据包后,首先按照标准TCP协议的规定,提取TCP包头中的2字节标准校验和对整个数据包进行校验;由于该数据包在传输过程中无损坏,所以校验通过;而后,接收端依据该重传数据包的字节序号(2400~3599),将之放入接收缓冲区的对应位置,此时,字节2400~4799已全部正确接收,于是接收端将缓冲区中的字节2400~4799向上交付给应用程序,并依据标准TCP协议,生成确认号为4800的ACK确认包回送给发送端。
情况3:数据包中的一个分块发生损坏。
3.1接上,发送端继续发送1个数据长度为1200字节的数据包,该数据包中的字节序号为4800~5999,按照设定的分块长度400,该待发TCP数据包的分块数为3,包内分块的编号依次为1、2、3;
发送端基于待发TCP数据包及计算出的分块数3,生成带分块校验选项的TCP数据包,并向接收端发送该包;
3.2假设该数据包在传输过程中受误码影响发生损坏;
3.3接收端接收到该数据包后,首先按照标准TCP协议的规定,提取TCP包头中的2字节标准校验和对整个数据包进行校验,由于该数据包在传输过程中发生了损坏,整个数据包的校验未通过;
而后,接收端检测到该TCP数据包头选项中包含分块校验选项,就从分块校验选项中提取TCP包头校验和字节,并对TCP包头进行校验;
在本优选实施例中,接收端对该字节序号为4800~5999数据包的TCP包头校验通过,这说明分块校验选项本身的正确性可以保证,可以进行分块校验;
3.4接收端从该数据包的分块校验选项中提取选项长度6,用选项长度6减去3得到数据包分块数为3;进而从分块校验选项中提取3个分块的校验和,并对3个分块分别进行校验;在本优选实施例中,该数据包的分块1、3校验通过,分块2校验未通过;
由于分块1校验通过且不是乱序分块,所以接收端正常接收该分块,并向上层应用程序交付;由于分块3校验通过且是乱序分块,所以接收端将分块3放入接收缓冲区进行缓存;由于分块2校验未通过,所以接收端记录分块2在本数据包内的编号2,然后丢弃分块2;
3.5接收端按照上述校验结果,填写分块确认选项的内容,其中,待确认数据包总分块数填为3,并标记分块2为错误分块,之后将该分块确认选项添加到确认号为4800的ACK确认包头选项区;而后,接收端将该带有分块确认选项的ACK确认包回送给发送端;
3.6发送端收到上述确认号为4800的带分块确认选项的ACK确认包后,从分块确认选项中提取接收端未成功接收的数据分块编号2,并将以4800字节为起始的数据包的第2分块(字节序号5200~5599)单独组包重传,由于分块2的长度一定小于等于400字节,所以该重传包不用再进行分块,包头选项中也不包含分块校验选项;重传该分块后,发送端不减小发送窗口,从而保持发送速率不降低;
3.7该重传的字节序号为5200~5599的分块在传输过程中无损坏,正确到达接收端;
3.8接收端收到字节序号为5200~5599的重传分块后,按照标准TCP协议的规定,提取TCP包头中的2字节标准校验和对之进行校验;由于该重传分块在传输过程中无损坏,所以校验通过;而后,接收端依据该重传分块的字节序号(5200~5599),将之放入接收缓冲区的对应位置,此时,字节5200~5999已全部正确接收,于是接收端将缓冲区中的字节5200~5999向上交付给应用程序,并依据标准TCP协议,生成确认号为6000的ACK确认包回送给发送端。
通过该优选实施例可以看出,本发明基于TCP扩展选项实现,完全兼容标准TCP协议。并且,与标准TCP协议相比,本发明只在较大的数据包中引入了长度为5~7字节的分块校验选项,只在发生传输错误时在确认包中引入了长度仅有3字节的分块确认选项,增加的额外开销较少。
本发明对TCP协议在高误码环境中传输性能的提高,主要体现在以下两方面:
第一,本发明基于“合并传输、分块重传”的思路,通过分块计算校验和以及分块进行确认的方法,使得在数据传输出错时,只需重传出错的分块,而不必重传整个数据包。这样,每个重传包的长度会大为减小,整个传输过程中重传的数据总量也会大为减少。
在相同误码率的环境下,重传包长度越小,重传的成功率就越高。例如,在误码率为10-4的高误码环境下,平均每传输1250个字节就会出现1比特错误,此时如果重传长度为1250字节的数据包,那么,此种长度数据包的每次传输都会出错,重传成功概率为0;但如果重传的是长度为400字节的分块,那么,重传成功概率则会超过2/3。因此,重传包长度的大幅减小可以提升高误码条件下的传输性能。
另外,整个传输过程中重传数据总量的减少会减轻重传数据对信道的占用,从而为正常的数据传输留出更多的带宽资源,提高信道的利用效率。
第二,本发明中,发送端在重传由分块确认选项通告的校验错误分块后,不减小发送窗口;在重传重复ACK确认包指示需要重传的数据包后,依据标准TCP协议的规定减小发送窗口。实质上,这是利用分块确认选项通知发送端传输错误是由误码而非拥塞造成的。通过这种较为简单的方式,可以在一定程度上将误码和拥塞区分开来,并在判定传输错误是由误码造成的情况下,保持发送速率不降低,从而提高了高误码条件下TCP传输的信道带宽利用率。
这种方法虽然并不能百分之百地保证区分误码与拥塞的正确性,但在概率的意义上,该方法是合理的。因为,对于可分块的TCP数据包来说,数据部分占整个包长的比例是很大的,而包头部分占整个包长的比例则较小。这样,在均匀误码的条件下,如果由于误码发生了比特错误,那么,错误发生在数据部分的概率很高,错误发生在包头部分的概率很低,也就是说,包头部分不大可能因误码而被破坏。因此,在概率意义上,可以大致认为,只有数据部分损坏而包头部分完好的包错误一般都是由误码引起的。在本发明中,接收端正好只有在包头校验成功而数据部分出错的情况下,才会向发送端回送带分块确认选项的ACK确认包,因此,发送端接收到带分块确认选项的ACK确认包后,可以认为传输错误是由误码而非拥塞造成的,进而保持发送速率不降低,以提高信道利用率。
综上可见,本发明公开的方法具有兼容标准TCP协议、抗误码能力强、校验信息开销低的优点。
Claims (6)
1.基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于包括以下步骤:
(1)依据标准TCP协议的规定,数据的发送端与接收端之间通过三次握手建立TCP连接;
(2)发送端按照设定的分块长度计算出待发TCP数据包的分块数,并对分块依次序编号;发送端基于待发TCP数据包及计算出的分块数,生成带分块校验选项的TCP数据包,并向接收端发送该TCP数据包;
(3)接收端收到TCP数据包后,首先依据标准TCP协议的规定,提取TCP数据包包头中的2字节标准校验和,并对整个TCP数据包进行校验;
如果接收端对整个TCP数据包的校验通过,则接收端正常接收该TCP数据包,并依据标准TCP协议,生成ACK确认包回送给发送端,之后,转入步骤(7);
如果接收端对整个数据包的校验未通过,则接收端检测该TCP数据包包头选项区中是否包含分块校验选项;如果检测到分块校验选项,则执行步骤(4);如果未检测到分块校验选项,则依据标准TCP协议的规定,丢弃该TCP数据包,并向发送端回送与确认字节的确认号重复的ACK确认包,之后,转入步骤(7);
(4)接收端从数据包分块校验选项中提取TCP数据包包头校验和字节,并对TCP数据包包头进行校验;
如果接收端对TCP数据包包头校验通过,则执行步骤(5);
如果接收端对TCP数据包包头校验未通过,则认为数据包彻底损坏,就丢弃该数据包,并向发送端回送与确认字节的确认号重复的ACK确认包,之后,转入步骤(7);
(5)接收端从数据包分块校验选项中提取选项长度,用选项长度减去3得到数据包分块数;进而从分块校验选项中提取各个分块的校验和,并对各个分块分别进行校验;
对于校验未通过的分块,记录其在本数据包内的编号;并对校验通过的分块进行接收,对校验未通过的分块进行丢弃;
(6)接收端基于步骤(5)中计算的数据包分块数和记录的未通过校验的分块编号,填写分块确认选项的选项编号、选项长度、待确认数据包的总分块数和错误分块标记,并将分块确认选项添加到与确认字节的确认号重复的ACK确认包包头的选项区;而后,将该带有分块确认选项的与确认字节的确认号重复的ACK确认包回送给发送端;
(7)发送端收到ACK确认包后,检测ACK确认包包头选项中是否带有分块确认选项;
如果带有分块确认选项,则发送端从分块确认选项中提取接收端未成功接收的数据分块的编号,并以ACK确认包中的ACK确认号为起点,结合设定的分块长度,找到这些分块的起始字节和结束字节,进而将这些分块分别单独组包重传;
如果没有分块确认选项,则发送端依据标准TCP协议对ACK确认包的处理规定,判断该ACK确认包是否是重复的;如果不是重复的,则正常传输后续数据包,而后转入步骤(3);如果是重复的,则判断重复次数是否达到3次,如果重复没有达到3次,则继续传输后续数据包,而后转入步骤(3);如果重复达到3次,则发送端重传与确认字节的确认号重复的ACK确认包指示的需要重传的数据包,而后转入步骤(3)。
2.根据权利要求1所述的基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于:步骤(2)中所述的分块校验选项具体格式为:第1个字节为选项编号66;第2个字节为选项长度,取值范围为5至7,对应的数据包分块数为2至4;第3个字节为TCP数据包包头的CRC-8校验和;第4至7个字节为第1至4个分块的CRC-8校验和。
3.根据权利要求1所述的基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于:步骤(2)中所述的生成带分块校验选项的TCP数据包的方法,包括步骤:
(101)发送端根据分块数,分别计算各个分块的CRC-8校验和,而后填写分块校验选项的选项编号、选项长度以及各分块校验和字段,分块校验选项的TCP数据包包头校验和字节填为0;
(102)发送端将上述TCP数据包包头校验和字节填为0的分块校验选项添加到TCP包头选项区,并将TCP包头的2字节标准校验和填为0;而后,发送端对包括选项区在内的整个TCP包头计算CRC-8校验和,并将该校验和填入分块校验选项的TCP数据包包头校验和字节;
(103)发送端依据标准TCP协议的规定,计算整个TCP数据包的2字节标准校验和,并将之填入TCP包头中的规定位置。
4.根据权利要求1所述的基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于:步骤(5)中对校验通过的分块进行接收时,判断其是否是乱序分块:如果是乱序分块,则将该分块放入接收缓冲区进行缓存;如果不是乱序分块,则正常接收该分块,并向上层应用程序交付。
5.根据权利要求1所述的基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于:步骤(6)中所述的分块确认选项具体格式为:第1个字节为选项编号67;第2个字节为选项长度,取值为3;第3个字节的高3比特为被确认数据包的分块数;第3个字节的低4比特为被确认数据包错误分块标记,低4比特从低位到高位,分别对应第1至4分块,如果分块正确,则对应的比特为0,如果分块错误,则对应的比特为1。
6.根据权利要求1所述的基于分块校验与确认的卫星网络TCP协议性能增强方法,其特征在于:步骤(7)中发送端重传未成功接收的分块后,不减小发送窗口;发送端重传与确认字节的确认号重复的ACK确认包指示的需要重传的数据包后,依据标准TCP协议的规定减小发送窗口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410373029.4A CN104092707B (zh) | 2014-07-31 | 2014-07-31 | 基于分块校验与确认的卫星网络tcp协议性能增强方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410373029.4A CN104092707B (zh) | 2014-07-31 | 2014-07-31 | 基于分块校验与确认的卫星网络tcp协议性能增强方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092707A CN104092707A (zh) | 2014-10-08 |
CN104092707B true CN104092707B (zh) | 2017-09-12 |
Family
ID=51640387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410373029.4A Active CN104092707B (zh) | 2014-07-31 | 2014-07-31 | 基于分块校验与确认的卫星网络tcp协议性能增强方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092707B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017133014A1 (zh) * | 2016-02-06 | 2017-08-10 | 中国科学院计算技术研究所 | Tcp传输流中基于接收端的网络性能检测方法及系统 |
CN106941461A (zh) * | 2017-02-23 | 2017-07-11 | 江苏徐工信息技术股份有限公司 | 一种利用消息队列优化服务器处理请求的方法 |
CN109547172A (zh) * | 2018-12-14 | 2019-03-29 | 东莞见达信息技术有限公司 | 数据传输方法、系统及数据发送设备、数据接收设备 |
CN110430015A (zh) * | 2019-07-20 | 2019-11-08 | 中国船舶重工集团公司第七二四研究所 | 一种基于rs编码校验信息的组包错误数据块重发方法 |
CN114938239A (zh) * | 2022-06-30 | 2022-08-23 | 南京眼湖信息科技有限公司 | 一种天通卫星话音数据传输终端装置及数据传输方法 |
CN115208516A (zh) * | 2022-07-11 | 2022-10-18 | 上海恩阶电子科技有限公司 | 一种基于crc校验码的数据存储及校验方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1476181A (zh) * | 2003-07-14 | 2004-02-18 | 中国科学院计算技术研究所 | 一种分布式的卫星网络tcp性能加速协议格式和方法 |
CN101494652A (zh) * | 2009-02-27 | 2009-07-29 | 中国电子科技集团公司第五十四研究所 | 一种卫星通信系统中增强tcp协议性能的方法 |
CN101854738A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 一种用于卫星网络的传输控制协议方法 |
CN102523604A (zh) * | 2011-12-14 | 2012-06-27 | 大连大学 | 一种应用于卫星网络的跨层实现优化卫星信道资源的方法 |
CN102664867A (zh) * | 2012-03-15 | 2012-09-12 | 南京邮电大学 | 一种卫星通信系统中的传输协议的增强方法 |
CN103825832A (zh) * | 2014-03-03 | 2014-05-28 | 中国人民解放军理工大学 | 丢包感知的区分型拥塞控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1543644B1 (en) * | 2002-09-24 | 2006-01-25 | Telefonaktiebolaget LM Ericsson (publ) | Method and devices for error tolerant data transmission, wherein retransmission of erroneous data is performed up to the point where the remaining number of errors is acceptable |
-
2014
- 2014-07-31 CN CN201410373029.4A patent/CN104092707B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1476181A (zh) * | 2003-07-14 | 2004-02-18 | 中国科学院计算技术研究所 | 一种分布式的卫星网络tcp性能加速协议格式和方法 |
CN101494652A (zh) * | 2009-02-27 | 2009-07-29 | 中国电子科技集团公司第五十四研究所 | 一种卫星通信系统中增强tcp协议性能的方法 |
CN101854738A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 一种用于卫星网络的传输控制协议方法 |
CN102523604A (zh) * | 2011-12-14 | 2012-06-27 | 大连大学 | 一种应用于卫星网络的跨层实现优化卫星信道资源的方法 |
CN102664867A (zh) * | 2012-03-15 | 2012-09-12 | 南京邮电大学 | 一种卫星通信系统中的传输协议的增强方法 |
CN103825832A (zh) * | 2014-03-03 | 2014-05-28 | 中国人民解放军理工大学 | 丢包感知的区分型拥塞控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104092707A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104092707B (zh) | 基于分块校验与确认的卫星网络tcp协议性能增强方法 | |
US5974028A (en) | System and method for improving transport protocol performance in communication networks having lossy links | |
US8842528B2 (en) | System and method for improving transport protocol performance in communication networks having lossy links | |
US8402343B2 (en) | Reliable packet cut-through | |
JP3677297B2 (ja) | 階層arq方式のための連結された誤り検出コード化及びパケット番号付け | |
KR100274445B1 (ko) | 패킷응답을사용하는통신유니트및방법 | |
US20090201813A1 (en) | Method and arrangement for tcp flow control | |
CN101931516B (zh) | 一种无线链路控制层确认模式下快速重传的方法及装置 | |
CN1177498C (zh) | 重发送无线本地环路的差错分组数据的装置和方法 | |
CN101588225B (zh) | 一种基于分组交换网络的快速重传方法 | |
CN102449944A (zh) | 多跳中继通信系统中对下行数据传输控制的方法和装置 | |
MXPA01013366A (es) | Sistema y metodo para implantar solicitud de repeticion automatica hibrida utilizando combinacion de comprobacion de paridad. | |
US20100110984A1 (en) | Retransmission request transmission method, transmitting- side apparatus and receiving-side apparatus | |
CN108933642B (zh) | 一种基于码块分组的下行重传方法、基站及终端 | |
US20120266038A1 (en) | Data transmission method and network side device | |
EP1626518B1 (en) | Method for reporting reception result of packets in mobile communication system | |
CN106470497A (zh) | 一种数据传输方法、无线链路控制发送及接收实体 | |
CN104184568B (zh) | 通信系统的数据传输方法及系统 | |
GB2310117A (en) | One-to-multiple site radio packet communication | |
CN112738229A (zh) | 一种实现数据自动续传的通信方法 | |
JP2000349742A (ja) | 通信端末装置、基地局装置及び無線通信方法 | |
US20100144364A1 (en) | Retransmission control method and transmitting-side apparatus | |
CN108183767A (zh) | 一种适用于空间dtn网络的可靠传输方法 | |
US9510242B2 (en) | Reducing superfluous traffic in a network | |
KR101376583B1 (ko) | 이동통신 시스템에서 패킷 데이터 수신 응답 신호 구성방법 및 장치 |
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 |