CN109302270A - 一种处理报文的方法及装置 - Google Patents
一种处理报文的方法及装置 Download PDFInfo
- Publication number
- CN109302270A CN109302270A CN201710607303.3A CN201710607303A CN109302270A CN 109302270 A CN109302270 A CN 109302270A CN 201710607303 A CN201710607303 A CN 201710607303A CN 109302270 A CN109302270 A CN 109302270A
- Authority
- CN
- China
- Prior art keywords
- message
- dupack
- processor
- order
- received
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1896—ARQ related signaling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种处理报文的方法及装置,用以解决由于报文传输过程中发生报文乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的问题。所述方法包括:报文处理设备确定报文接收端接收到的报文中存在乱序报文,报文处理设备接收所述报文接收端针对所述乱序报文向所述报文处理设备反馈的DUPACK报文,并丢弃接收到的所述DUPACK报文。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种处理报文的方法及装置。
背景技术
在网络通信过程中,通常需要可靠的连接以实现数据报文的可靠传输,其中,传输控制协议(Transmission Control Protocol,TCP)是一种可实现数据报文可靠传输的协议。
基于TCP协议的网络通信中,TCP发送端与TCP接收端通过TCP报文进行通信,其中,TCP报文包括TCP数据报文和TCP确认报文。TCP数据报文为包含有数据段(segment)的报文,在TCP数据报文头中包括用于标识TCP数据报文顺序的传输序列号(TransmissionSequence Number,TSN),若TCP数据报文在传输过程中发生报文乱序(报文顺序错位或报文丢失),则会导致TCP接收端接收到的TCP数据报文的TSN不连续。TCP确认报文是指TCP接收端接收到TCP数据报文后,根据接收到的TCP数据报文向TCP发送端发送的报文。
在基于TCP协议的网络通信过程中,TCP发送端向TCP接收端发送TCP数据报文,TCP接收端接收到TCP数据报文后,根据接收到的TCP数据报文向TCP发送端发送TCP确认报文。当TCP接收端接收到的TCP数据报文发生报文乱序(报文顺序错位或报文丢失)时,向TCP发送端发送重复确认(DUPACK)报文,其中,TCP接收端发送的DUPACK报文的个数由发生乱序的TCP数据报文的乱序个数决定,其中,发生乱序的TCP数据报文的乱序个数为:TCP数据报文的TSN大于发生乱序的TCP数据报文的TSN、且在发生乱序的TCP数据报文之前已到达的TCP数据报文的数目。当TCP发送端连续收到N个(N通常为3)针对同一TCP数据报文反馈的DUPACK报文时,则认为该TCP数据报文丢失,此时,立即启动快速重传及拥塞控制机制,TCP发送端将发送窗长减半,减小发送速率。
实际网络通信过程中,当TCP发送端连续收到N个(N通常为3)针对同一TCP数据报文反馈的DUPACK报文时,该TCP数据报文很有可能只是在传输过程中发生报文顺序错位,并未丢失,而现有技术中TCP发送端在连续收到N个(N通常为3)针对同一TCP数据报文反馈的DUPACK报文时,默认该TCP数据报文已丢失,进而启动快速重传及拥塞控制机制,导致TCP数据报文传输速率无谓下降,进而影响用户体验。
发明内容
本申请的目的是提供一种处理报文的方法及装置,以解决由于报文传输过程中发生报文乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的问题。
本申请的目的是通过以下技术方案实现的:
第一方面,提供一种处理报文的方法,该方法中,报文处理设备确定报文接收端接收到的报文中存在乱序报文,报文处理设备接收所述报文接收端针对所述乱序报文向所述报文处理设备反馈的DUPACK报文,并丢弃接收到的所述DUPACK报文。
本申请实施例中,报文处理设备确定报文接收端接收到的报文中存在乱序报文后,丢弃所述报文接收端针对所述乱序报文向所述报文处理设备反馈的DUPACK报文。通过将接收到的所述DUPACK报文丢弃,避免了报文处理设备反馈所述DUPACK报文时启动快速重传及拥塞控制机制,进而解决了由于报文传输过程中发生报文乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的问题。
较佳的,所述报文处理设备丢弃接收到的所述DUPACK报文,包括:
所述报文处理设备统计接收到的DUPACK报文的个数;所述报文处理设备若确定统计的所述DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的所述DUPACK报文的个数相同的所述DUPACK报文;所述报文处理设备若确定统计的所述DUPACK报文的个数大于所述预先设置的第一阈值,则丢弃与所述预先设置的第一阈值个数相同的所述DUPACK报文。通过统计接收到的所述DUPACK报文的个数,报文处理设备可根据统计的DUPACK报文的个数丢弃相同个数的所述DUPACK报文,并在确定统计的所述DUPACK报文的个数大于预先设置的第一阈值时,丢弃与所述预先设置的第一阈值个数相同的所述DUPACK报文,避免了报文处理设备在反馈所述DUPACK报文时启动快速重传及拥塞控制机制,进而解决了由于报文传输过程中发生报文乱序而启动快速重传及拥塞控制机制,进而引起的报文传输效率下降问题,同时,避免了报文处理设备因丢弃过多的所述DUPACK报文而导致恶劣的后果。
较佳的,报文处理设备丢弃接收到的DUPACK报文之后,停止丢弃接收到的所述DUPACK报文,并重新统计接收到的所述DUPACK报文的个数;在重新统计的所述DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制。丢弃与所述DUPACK报文个数相同的DUPACK报文或者丢弃与第一阈值个数相同的DUPACK报文之后,报文处理设备不再丢弃接收到的DUPACK报文,而是重新统计接收到的所述DUPACK报文的个数,并在重新统计的所述DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制,避免在所述乱序报文丢失的情况下快速重传及拥塞控制机制失效。
较佳的,所述报文处理设备统计接收到的DUPACK报文的个数,包括:
若所述乱序报文个数为至少两个,则所述报文处理设备仅针对当前接收到的DUPACK报文中携带的被确认TSN对应的乱序报文,统计DUPACK报文个数;其中,所述报文处理设备每次统计一个乱序报文的DUPACK报文个数,在统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文的DUPACK报文个数清零。
较佳的,所述报文处理设备若确定报文接收端向新的报文处理设备反馈DUPACK报文,则所述报文处理设备向所述新的报文处理设备发送已统计的DUPACK报文的个数。通过将已统计的DUPACK报文的个数,发送至新的报文处理设备,使得报文接收端可根据所述报文处理设备发送的已统计的DUPACK报文的个数,选择丢弃所述DUPACK报文。
第二方面,提供一种处理报文的装置,应用于报文处理设备,所述装置包括收发单元和处理单元,其中:
收发单元,用于接收报文接收端针对乱序报文反馈的重复确认DUPACK报文。
处理单元,用于在所述收发单元接收所述DUPACK报文之前,确定所述报文接收端接收到的报文中存在乱序报文,并在所述收发单元接收到所述报文接收端针对所述乱序报文反馈的DUPACK报文之后,丢弃接收到的所述DUPACK报文。
较佳的,所述处理单元采用如下方式丢弃接收到的所述DUPACK报文:
统计接收到的DUPACK报文的个数;若确定统计的所述DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的所述DUPACK报文的个数相同的所述DUPACK报文;若确定统计的所述DUPACK报文的个数大于所述预先设置的第一阈值,则丢弃与所述预先设置的第一阈值个数相同的所述DUPACK报文。
较佳的,所述处理单元还用于:
在丢弃接收到的DUPACK报文之后,停止丢弃接收到的所述DUPACK报文,并重新统计接收到的所述DUPACK报文的个数;在重新统计的所述DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制。
较佳的,所述处理单元采用如下方式统计接收到的DUPACK报文的个数:
若所述乱序报文个数为至少两个,则仅针对当前接收到的DUPACK报文中携带的被确认TSN对应的乱序报文,统计DUPACK报文个数。
其中,每次统计一个乱序报文的DUPACK报文个数,在统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文的DUPACK报文个数清零。
较佳的,所述收发单元还用于:
若所述处理单元确定报文接收端向新的处理报文的装置反馈DUPACK报文,则向所述新的处理报文的装置发送已统计的DUPACK报文的个数。
本申请实施例中,报文处理设备确定报文接收端接收到的报文中存在乱序报文后,丢弃所述报文接收端针对所述乱序报文向所述报文处理设备反馈的DUPACK报文。通过将接收到的所述DUPACK报文丢弃,避免了报文处理设备反馈所述DUPACK报文时启动快速重传及拥塞控制机制,进而解决了由于报文传输过程中发生报文乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的问题。
附图说明
图1为本申请实施例提供的一种由报文顺序错位触发的快速重传示意图;
图2为本申请实施例提供的一种无线网络架构示意图;
图3为本申请实施例提供的一种处理报文的方法流程图;
图4所示为本申请实施例提供的一种丢弃报文的方法流程图;
图5为本申请实施例提供的一种报文传输的乱序模型示意图;
图6为本申请实施例提供的另一种处理报文的方法流程图;
图7为本发明实施例提供的一种处理报文的装置示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚的描述本申请,在描述本申请的实施例之前,对TCP协议、TCP数据报文的结构、TCP数据报文的传输过程、本申请要解决的技术问题以及现有可解决本申请技术问题的方案进行详细说明。
TCP协议为针对有线网络设计的、可实现端到端可靠传输的协议。随着网络技术的发展,现已将针对有线网络设计的TCP协议应用到无线网络的数据传输中,但是由于无线网络固有的特性,为有线网络而设计的TCP协议无法很好的应用于无线网络。
TCP数据报文同时拥有TCP报文头和网际协议(Internet Protocol,IP)报文头(IP报文头可以是IP第四版(Internet Protocol Version 4,IPV4)报文头),为了保证TCP数据报文的按序递交,在TCP数据报文头内,对每个TCP数据报文设置TSN,TSN连续递增,在IP报文头内包括IPID字段,TCP/IP协议栈输出的所有TCP数据报文的IPID编号连续递增。若将TCP/IP协议栈看作一条管道,则TCP数据报文中TCP报文头的TSN代表了交付到该管道的顺序,而IPID则代表该TCP数据报文由该管道输出的顺序。正常传输的情况下,TCP数据报文进入该“管道”的顺序与离开“管道”的顺序相同,但是,实际应用中,由于恶劣的网络状况、传输时延等,TCP数据报文经过漫漫传输路,到达TCP接收端时,从“管道”输出的顺序有可能会被打乱,这个过程称之为乱序,本申请中将发生乱序的TCP数据报文称之为乱序报文。
TCP数据报文的传输过程中,若丢失TCP数据报文,则TCP发送端可通过超时重传机制对丢失的TCP数据报文进行重传,但是超时重传耗时较久,故为了避免TCP数据报文丢失后导致超时重传,引入快速重传机制。快速重传机制中,在TCP接收端接收乱序报文之前,该乱序报文的上一个TCP数据报文会触发针对该乱序报文反馈一个确认(ACK)报文,并在ACK报文中携带缺失的TCP数据报文的TSN,以对该缺失的TCP数据报文进行确认,且每接收到一个乱序报文后的TCP数据报文,则再次响应一次ACK,如此会导致重复确认同一个TSN的ACK,称之为DUPACK。当连续收到N个(N常设置为3)确认同一TSN的DUPACK时,则认为该乱序报文丢失,启动快速重传及链路拥塞机制,TCP发送端将发送窗长减半,如此会导致TCP数据报文传输速率下降。而若该乱序报文未丢失,仅发生了报文顺序错位,如图1所示,假设用(TSN,IPID)对标识一个TCP数据报文,则图1中乱序报文可表示为(3,3),当TCP接收端收到TCP数据报文(2,2)时,触发一次针对TCP数据报文(3,3)的ACK确认,当TCP接收端接收到TCP数据报文(4,4),而TCP数据报文(3,3)仍未到时,触发一次针对TCP数据报文(3,3)的DUPACK确认,当TCP数据报文(5,5)和TCP数据报文(6,6)到达TCP接收端时,而TCP数据报文(3,3)仍未到时,连续触发两次针对TCP数据报文(3,3)的DUPACK确认,当TCP发送端连续收到三次针对TCP数据报文(3,3)的DUPACK确认时,立即对TCP数据报文(3,3)进行重传,其中,TCP数据报文(3,21)即为对TCP数据报文(3,3)进行重传的重传报文,由图1可知,TCP数据报文(3,3)实际并未未丢,仅仅是发生了报文顺序错位。而由于TCP数据报文传输乱序会导致启动快速重传及拥塞控制机制,进而引起数据报文传输效率下降,影响用户体验。
行业中为了解决上述问题,采用TCP代理技术,通过TCP代理服务器缓存所有未按序到达的数据报文,并进行重排序,之后按序发送至TCP接收端。由于需要缓存所有未按序到达的数据报文,故TCP代理服务器需要消耗巨大的CPU及内存开销,且由于TCP代理服务器通常为异厂家设备,存在设备不兼容的问题,进而导致设备之间协调困难,定位分析周期长,不具有可行性。进一步的,采用TCP代理技术,需要TCP代理服务器具备反馈DUPACK的功能,以及为TCP接收端提供TCP数据报文按序发送功能,需要巨大的额外开销,且由于无线网络通信中,TCP接收端多为可移动的终端设备,故,需要TCP代理服务器具备支持TCP接收端的移动性功能,实现起来极为复杂。
本申请为了解决由于报文传输过程中发生乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的技术问题,提供一种处理报文的方法,该方法可应用于报文处理设备,对于无线通信场景下,报文处理设备可以是基站。
本申请提供的处理报文的方法可应用于图2所示的无线网络架构,参阅图2所示,图2中无线网络架构包括:终端、基站、回传网、核心网以及因特网。其中,对于上行TCP数据报文传输过程,终端为TCP发送端,核心网或因特网为TCP接收端;对于下行TCP数据报文传输过程,核心网或因特网为TCP发送端,终端为TCP接收端,不论是上行还是下行TCP数据报文传输过程,基站均作为一个报文处理的中间节点(即报文处理设备),用于转发从TCP发送端或TCP接收端接收到的报文。由于实际应用中,TCP数据报文下载业务对高速率的要求远大于上传,因此,本申请针对下行TCP数据报文传输过程为例,进行说明。
需要说明的是,图2仅为本申请提供的处理报文的方法可应用的其中一种网络架构,本申请提供的处理报文的方法可应用于具有TCP发送端、TCP接收端以及报文处理设备的其它任何网络架构。
图3所示为本申请实施例提供的一种处理报文的方法流程图,参阅图3所示,包括:
S101:报文处理设备确定报文接收端接收到的报文中存在乱序报文。
本申请实施例中,报文发送端在向报文接收端发送报文时,是按一定的顺序发送,若报文接收端接收到的报文顺序与报文发送端发送的报文顺序不一致,则说明报文在传输过程中发生乱序。其中,将报文接收端接收到的报文中与报文发送端发送报文时顺序不一致的报文称之为乱序报文。例如,图1中的报文(3,3)即为乱序报文。
本申请实施例中,以下行TCP数据报文传输过程为例说明。在下行TCP数据报文传输过程中,TCP发送端通过中间节点报文处理设备,向TCP接收端发送TCP数据报文,TCP接收端在接收到TCP发送端发送的TCP数据报文之后,向报文处理设备发送TCP确认报文。其中,TCP确认报文可以是ACK报文或DUPACK报文,ACK报文以及DUPACK报文中均携带TSN,TCP发送端以及报文处理设备可根据ACK报文或DUPACK报文中携带的TSN,确定ACK报文或DUPACK报文是针对该TSN对应的TCP数据报文反馈的确认报文。
本申请实施例中,为了减小报文处理设备的处理压力,报文处理设备接收到报文接收端发送的确认报文之后,判断接收到的确认报文是否为持续增长的确认报文,若接收到的确认报文不是持续增长的确认报文,则可确定接收到的确认报文为异常报文,报文处理设备可选择不处理异常的确认报文,进而减小报文处理设备的处理压力。
S102:报文处理设备接收报文接收端针对乱序报文向报文处理设备反馈的DUPACK报文。
本申请实施例中,报文接收端若接收到乱序报文,则会针对接收到的乱序报文向报文处理设备反馈DUPACK报文。
S103:报文处理设备丢弃接收到的DUPACK报文。
本申请实施例中,通过将报文处理设备接收到的,针对乱序报文反馈的DUPACK报文丢弃,避免了报文处理设备反馈所述DUPACK报文时启动快速重传及拥塞控制机制,进而解决了由于报文传输过程中发生报文乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的问题。
本申请实施例中,报文处理设备能够在一定预期的时间内确定乱序报文是否丢失,若确定乱序报文未丢失,则丢弃报文接收端针对该乱序报文反馈的所有DUPACK报文。但是,存在一些情况,例如,乱序报文未丢失,但是乱序情况非常严重;或者,乱序报文已丢失,针对上述情况,报文处理设备若一直丢弃针对乱序报文反馈的DUPACK,可能引入恶劣的后果。本申请实施例提供一种报文处理设备丢弃接收到的所述DUPACK报文的具体实现方法,用以解决上述问题,当然本申请实施例并不限定报文处理设备仅通过下述方法丢弃接收到的所述DUPACK报文。
图4所示为本申请实施例提供的一种丢弃报文的方法流程图,参阅图4所示,包括:
S201:报文处理设备统计接收到的DUPACK报文的个数。
本申请实施例中,报文处理设备可通过设置计数器,对接收到的DUPACK报文进行计数,每接收到一个DUPACK报文,则将计数器的值累加1,当然也可通过其它的计数方式对接收到的DUPACK报文计数,本申请不做限定。
本申请实施例中,若乱序报文个数为至少两个,则报文处理设备仅针对当前接收到的DUPACK报文中携带的被确认TSN对应的乱序报文,统计DUPACK报文个数。
其中,报文处理设备每次统计一个乱序报文的DUPACK报文个数,在统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文的DUPACK报文个数清零。
例如,若假设乱序报文个数为三,且分别为第一乱序报文(TSN为3)、第二乱序报文(TSN为5)以及第三乱序报文(TSN为7),则报文处理设备仅针对当前接收到的DUPACK报文中携带的TSN为3的乱序报文,统计该乱序报文的DUPACK报文个数。报文处理设备每次统计一个乱序报文的DUPACK报文个数,假设第一乱序报文已到达报文处理设备,则报文处理设备统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文(即第一乱序报文)的DUPACK报文个数清零。
S202:报文处理设备若确定统计的DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的DUPACK报文的个数相同的DUPACK报文。
本申请实施例中,为避免由于乱序报文已丢失或者乱序报文发生严重乱序(即报文接收端针对该乱序报文反馈极大数目的DUPACK报文),而导致报文处理设备一直丢弃针对该已丢失或发生严重乱序的乱序报文的DUPACK报文,进而引入更恶劣的后果,故,本申请实施例中根据实际应用场景预先设置第一阈值,报文处理设备若确定统计的DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的DUPACK报文的个数相同的DUPACK报文,报文处理设备若确定统计的DUPACK报文的个数大于预先设置的第一阈值,则丢弃与预先设置的第一阈值个数相同的DUPACK报文。
本申请实施例中,第一阈值可根据实际应用场景灵活设置,例如,可设置为20,本申请实施例对所述第一阈值不做限定。
S203:报文处理设备若确定统计的DUPACK报文的个数大于预先设置的第一阈值,则丢弃与预先设置的第一阈值个数相同的DUPACK报文。
本申请实施例中,通过丢弃接收到的DUPACK报文,避免了报文处理设备在反馈所述DUPACK报文时启动的快速重传及拥塞控制机制,进而解决了由于报文传输过程中发生报文乱序启动快速重传及拥塞控制机制,而引起的报文传输效率下降问题,同时,避免了报文处理设备因丢弃过多的DUPACK报文而导致恶劣的后果。
本申请实施例中,下面以一个实例对报文处理设备统计接收到的DUPACK报文的个数进行说明。
图5所示为本申请实施例提供的一种报文传输的乱序模型示意图,参阅图5所示,图5中,TSN为TCP数据报文的报文头中标识数据报文传输顺序的序号,IPID为TCP数据报文的报文头中标识数据报文经过TCP协议栈输出的序号。其中,TCP数据报文正常传输的情况下,TCP数据报文的TSN编号连续递增,图5中假设TSN编号以步长1递增,经过TCP协议栈输出的IPID也连续递增,但是实际应用中,IPID通常不是按一定的步长递增,为方便说明,图5中假设IPID编号也以步长1递增。假设图5中,TCP数据报文已从TCP发送端到达中间节点报文处理设备,通过报文处理设备转发的TCP数据报文以(TSN,IPID)对来标识,则可知图5中报文处理设备转发TCP数据报文的顺序为(1,1)、(2,2)、(3,3)、(4,4)、(5,5)、(6,6)、(7,7)、(8,8),而TCP接收端接收TCP数据报文的顺序为(1,1)、(3,3)、(5,5)、(7,7)、(2,2)、(6,6)、(8,8)、(4,4),在TCP数据报文(1,1)与(3,3)、(3,3)与(5,5)以及(5,5)与(7,7)之间均缺失一个TCP数据报文,即报文接收端发生乱序的乱序报文个数为三,分别为报文(2,2)、(4,4)、(6,6)。报文处理设备每次仅针对一个乱序报文的DUPACK报文个数进行统计,如图5所示,报文处理设备第一次仅统计乱序报文(2,2)的DUPACK报文个数,当乱序报文(2,2)到达报文接收端时,报文处理设备统计针对乱序报文(4,4)反馈的DUPACK报文,以此类推,当乱序报文(4,4)到达报文接收端时,报文处理设备统计针对乱序报文(6,6)反馈的DUPACK报文。本申请实施例中,当报文处理设备分析到TCP数据报文(7,7)时,可确定三个乱序报文,分别为(2,2)、(4,4)、(6,6),由于报文处理设备当前仅关注TSN最小的乱序报文,因此,此时仅对乱序报文(2,2)统计DUPACK报文个数,由于本该在乱序报文(2,2)之后到达报文接收端的TCP数据报文(3,3)、(5,5)、(7,7),在乱序报文(2,2)之前到达报文接收端,故此时报文处理设备针对乱序报文(2,2)统计的DUPACK报文个数为3,而乱序报文(4,4)和(6,6)的TSN大于乱序报文(2,2)的TSN,故,此时针对乱序报文(4,4)和(6,6)统计的DUPACK报文个数为0;当乱序报文(2,2)到达报文接收端后,由于乱序报文(6,6)优先级低于乱序报文(4,4),报文处理设备统计针对乱序报文(4,4)反馈的DUPACK报文;当乱序报文(6,6)到达报文接收端时,针对乱序报文(4,4)统计的DUPACK报文个数加1;此时针对乱序报文(6,6)统计的DUPACK报文个数为0;当TCP数据报文(8,8)到达时,针对乱序报文(4,4)统计DUPACK报文个数;当乱序报文(4,4)到达时,统计乱序报文(4,4)的DUPACK报文个数为2。
本申请实施例中,乱序报文可能是在传输过程中发生报文顺序错位,也可能是传输过程中丢失,为避免在乱序报文丢失的情况下快速重传及拥塞控制机制失效,本申请中,报文处理设备丢弃与DUPACK报文个数相同的DUPACK报文或者丢弃与第一阈值个数相同的DUPACK报文之后,报文处理设备停止丢弃接收到的DUPACK报文,并重新统计接收到的DUPACK报文的个数,在重新统计的DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制。
本申请实施例中,若不设置上述第二阈值,报文处理设备停止丢弃接收到的DUPACK报文之后,若再连续接收到三个DUPACK报文,则根据现有的TCP协议启动快速重传及拥塞控制机制。通常,若报文处理设备在丢弃与第一阈值相同个数的DUPACK报文之后,还可接收到针对该乱序报文反馈的DUPACK报文,则该乱序报文很可能是在传输过程中丢失,故,此时,希望尽快启动快速重传及拥塞控制机制,因此,本申请中,可将第二阈值设置为1至2任一数值,即在报文处理设备重新统计一个或两个DUPACK报文则立即启动快速重传及拥塞控制机制。
本申请实施例以下以一个完整的处理流程对报文处理设备处理接收到的DUPACK报文为例进行说明。
图6为本申请实施例提供的另一种处理报文的方法流程图,参阅图6所示,图6中,报文处理设备接收到报文接收端发送的TCP确认报文之后,判断接收到的TCP确认报文是否存在异常,若接收到的TCP确认报文存在异常,则报文处理设备不再处理该异常报文,若接收到的TCP确认报文不存在异常,则报文处理设备进一步判断该TCP确认报文是否为DUPACK报文,若该TCP确认报文不是DUPACK报文,则可确定该TCP确认报文为新到达的ACK报文,此时,可确定上一个发生乱序的TCP数据报文已到达报文处理设备,故复位DUPACK报文计数,清已确认到达报文接收端的乱序报文记录。若该TCP确认报文为DUPACK报文,则进一步判断该DUPACK报文是否为报文处理设备接收到的针对同一乱序报文反馈的第一个DUPACK报文,若确定是针对同一乱序报文反馈的第一个DUPACK报文,则报文处理设备开始统计接收到的DUPACK报文个数,若报文处理设备判断该DUPACK报文不是针对同一TCP数据报文反馈的第一个DUPACK报文,则报文处理设备若确定统计的DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的DUPACK报文的个数相同的DUPACK报文,报文处理设备若确定统计的DUPACK报文的个数大于预先设置的第一阈值,则丢弃与预先设置的第一阈值个数相同的DUPACK报文。
本申请实施例中,报文处理设备若确定报文接收端向新的报文处理设备反馈DUPACK报文,则报文处理设备向新的报文处理设备发送已统计的DUPACK报文的个数。通过将已统计的DUPACK报文的个数,发送至新的报文处理设备,使得报文接收端可根据所述报文处理设备发送的已统计的DUPACK报文的个数,选择丢弃所述DUPACK报文。
本申请实施例中,报文处理设备根据实际情况向新的报文处理设备发送已统计的DUPACK报文的个数。例如,当所述报文处理设备和新的报文处理设备之间存在切换链路,且切换链路乱序率高于0.1%时,发送已统计的DUPACK报文的个数到新的报文处理设备。或者,所述报文处理设备和新的报文处理设备之间存在切换链路,且切换链路乱序率低于0.1%时,不发送已统计的DUPACK报文的个数到新的报文处理设备,待业务切换到新的报文处理设备后,在新的报文处理设备重新统计DUPACK报文的个数。或者,当所述报文处理设备和新的报文处理设备之间不存在切换链路时,不发送已统计的DUPACK报文的个数到新的报文处理设备,待业务切换到新的报文处理设备后,在新的报文处理设备重新统计DUPACK报文的个数。
采用本申请实施例提供的处理报文的方法,解决由于数据报文传输乱序而导致的数据报文传输效率下降问题,相比现有采用TCP代理技术解决由于数据报文传输乱序而导致的数据报文传输效率下降问题,采用本申请提供的处理报文的方法,不需要缓存乱序报文,极大的节省了缓存资源和处理资源。且,由于不需要缓存乱序报文,报文接收端切换到另一报文处理设备时,不需要倒换缓存的乱序报文,可方便快捷的支持报文接收端的移动,花费较少的处理开销和内存开销,解决了由报文传输乱序而导致的报文传输效率下降问题。
基于与上述提供的处理报文的方法相同的发明构思,本申请实施例中还提供一种处理报文的装置,应用于报文处理设备,下面将详细描述该装置的组成及用途。
图7为本申请实施例提供的一种处理报文的装置示意图,可应用于报文处理设备,参阅图7所示,该装置包括收发单元101和处理单元102,其中:
收发单元101,用于接收报文接收端针对乱序报文反馈的重复确认DUPACK报文。
处理单元102,用于在所述收发单元101接收所述DUPACK报文之前,确定所述报文接收端接收到的报文中存在乱序报文,并在所述收发单元101接收到所述报文接收端针对所述乱序报文反馈的DUPACK报文之后,丢弃接收到的所述DUPACK报文。
较佳的,所述处理单元102采用如下方式丢弃接收到的所述DUPACK报文:
统计接收到的DUPACK报文的个数;若确定统计的所述DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的所述DUPACK报文的个数相同的所述DUPACK报文;若确定统计的所述DUPACK报文的个数大于所述预先设置的第一阈值,则丢弃与所述预先设置的第一阈值个数相同的所述DUPACK报文。
较佳的,所述处理单元102还用于:
在丢弃接收到的DUPACK报文之后,停止丢弃接收到的所述DUPACK报文,并重新统计接收到的所述DUPACK报文的个数;在重新统计的所述DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制。
较佳的,所述处理单元102采用如下方式统计接收到的DUPACK报文的个数:
若所述乱序报文个数为至少两个,则仅针对当前接收到的DUPACK报文中携带的被确认TSN对应的乱序报文,统计DUPACK报文个数。
其中,每次统计一个乱序报文的DUPACK报文个数,在统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文的DUPACK报文个数清零。
较佳的,所述收发单元101还用于:
若所述处理单元102确定报文接收端向新的处理报文的装置反馈DUPACK报文,则向所述新的处理报文的装置发送已统计的DUPACK报文的个数。
本申请实施例中,报文处理设备确定报文接收端接收到的报文中存在乱序报文后,丢弃所述报文接收端针对所述乱序报文向所述报文处理设备反馈的DUPACK报文。通过将接收到的所述DUPACK报文丢弃,避免了报文处理设备反馈所述DUPACK报文时启动快速重传及拥塞控制机制,进而解决了由于报文传输过程中发生报文乱序而导致启动快速重传及拥塞控制机制,进而引起报文传输效率下降的问题。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种处理报文的方法,其特征在于,包括:
报文处理设备确定报文接收端接收到的报文中存在乱序报文;
所述报文处理设备接收所述报文接收端针对所述乱序报文向所述报文处理设备反馈的重复确认DUPACK报文;
所述报文处理设备丢弃接收到的所述DUPACK报文。
2.如权利要求1所述的方法,其特征在于,所述报文处理设备丢弃接收到的所述DUPACK报文,包括:
所述报文处理设备统计接收到的DUPACK报文的个数;
所述报文处理设备若确定统计的所述DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的所述DUPACK报文的个数相同的所述DUPACK报文;
所述报文处理设备若确定统计的所述DUPACK报文的个数大于所述预先设置的第一阈值,则丢弃与所述预先设置的第一阈值个数相同的所述DUPACK报文。
3.如权利要求1或2所述的方法,其特征在于,所述丢弃接收到的DUPACK报文之后,所述方法还包括:
所述报文处理设备停止丢弃接收到的所述DUPACK报文,并重新统计接收到的所述DUPACK报文的个数;
在重新统计的所述DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制。
4.如权利要求2所述的方法,其特征在于,所述报文处理设备统计接收到的DUPACK报文的个数,包括:
若所述乱序报文个数为至少两个,则所述报文处理设备仅针对当前接收到的DUPACK报文中携带的被确认传输序列号TSN对应的乱序报文,统计DUPACK报文个数;
其中,所述报文处理设备每次统计一个乱序报文的DUPACK报文个数,在统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文的DUPACK报文个数清零。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
所述报文处理设备若确定报文接收端向新的报文处理设备反馈DUPACK报文,则所述报文处理设备向所述新的报文处理设备发送已统计的DUPACK报文的个数。
6.一种处理报文的装置,其特征在于,包括:
收发单元,用于接收报文接收端针对乱序报文反馈的重复确认DUPACK报文;
处理单元,用于在所述收发单元接收所述DUPACK报文之前,确定所述报文接收端接收到的报文中存在乱序报文,并在所述收发单元接收到所述报文接收端针对所述乱序报文反馈的DUPACK报文之后,丢弃接收到的所述DUPACK报文。
7.如权利要求6所述的装置,其特征在于,所述处理单元采用如下方式丢弃接收到的所述DUPACK报文:
统计接收到的DUPACK报文的个数;
若确定统计的所述DUPACK报文的个数小于等于预先设置的第一阈值,则丢弃与统计的所述DUPACK报文的个数相同的所述DUPACK报文;
若确定统计的所述DUPACK报文的个数大于所述预先设置的第一阈值,则丢弃与所述预先设置的第一阈值个数相同的所述DUPACK报文。
8.如权利要求6或7所述的装置,其特征在于,所述处理单元还用于:
在丢弃接收到的DUPACK报文之后,停止丢弃接收到的所述DUPACK报文,并重新统计接收到的所述DUPACK报文的个数;
在重新统计的所述DUPACK报文的个数达到预先设置的第二阈值时,启动快速重传及拥塞控制机制。
9.如权利要求7所述的装置,其特征在于,所述处理单元采用如下方式统计接收到的DUPACK报文的个数:
若所述乱序报文个数为至少两个,则仅针对当前接收到的DUPACK报文中携带的被确认传输序列号TSN对应的乱序报文,统计DUPACK报文个数;
其中,每次统计一个乱序报文的DUPACK报文个数,在统计下一个乱序报文的DUPACK报文个数时,将已统计的上一个乱序报文的DUPACK报文个数清零。
10.如权利要求9所述的装置,其特征在于,所述收发单元还用于:
若所述处理单元确定报文接收端向新的处理报文的装置反馈DUPACK报文,则向所述新的处理报文的装置发送已统计的DUPACK报文的个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607303.3A CN109302270A (zh) | 2017-07-24 | 2017-07-24 | 一种处理报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607303.3A CN109302270A (zh) | 2017-07-24 | 2017-07-24 | 一种处理报文的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109302270A true CN109302270A (zh) | 2019-02-01 |
Family
ID=65167148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710607303.3A Pending CN109302270A (zh) | 2017-07-24 | 2017-07-24 | 一种处理报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109302270A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113141236A (zh) * | 2021-05-06 | 2021-07-20 | 北京京东振世信息技术有限公司 | 一种报文处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700629A (zh) * | 2004-05-21 | 2005-11-23 | 三星电子株式会社 | 移动自组织网中发送数据的方法及利用该方法的网络设备 |
CN102098150A (zh) * | 2009-12-10 | 2011-06-15 | 中兴通讯股份有限公司 | 接收确认处理方法和基站 |
CN102611612A (zh) * | 2010-12-21 | 2012-07-25 | 微软公司 | 数据中心环境中的多路径通信 |
CN104104608A (zh) * | 2013-04-15 | 2014-10-15 | 华为技术有限公司 | 接收报文的方法及装置 |
-
2017
- 2017-07-24 CN CN201710607303.3A patent/CN109302270A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700629A (zh) * | 2004-05-21 | 2005-11-23 | 三星电子株式会社 | 移动自组织网中发送数据的方法及利用该方法的网络设备 |
CN102098150A (zh) * | 2009-12-10 | 2011-06-15 | 中兴通讯股份有限公司 | 接收确认处理方法和基站 |
CN102611612A (zh) * | 2010-12-21 | 2012-07-25 | 微软公司 | 数据中心环境中的多路径通信 |
CN104104608A (zh) * | 2013-04-15 | 2014-10-15 | 华为技术有限公司 | 接收报文的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113141236A (zh) * | 2021-05-06 | 2021-07-20 | 北京京东振世信息技术有限公司 | 一种报文处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI483589B (zh) | 資料傳輸及重新傳輸之方法 | |
US7693058B2 (en) | Method for enhancing transmission quality of streaming media | |
JP4654926B2 (ja) | 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム | |
CN104093170B (zh) | 基于tcp的数据传输方法和tcp代理装置 | |
US11219091B2 (en) | Data receiving status reporting method and apparatus | |
EP2110985A2 (en) | Method and apparatus for improving transmission time interval bundling | |
CN102148662B (zh) | 一种数据发送速率的调整方法及装置 | |
CN104038845B (zh) | 报文传输方法及装置 | |
CN102006283A (zh) | 数据传输的方法和装置 | |
WO2013053304A1 (zh) | 一种实现tcp传输的方法及装置 | |
JPWO2008023656A1 (ja) | 通信装置 | |
CN104486051A (zh) | 一种数据重传方法及装置 | |
WO2016201904A1 (zh) | 一种基于tcp的数据传输方法及装置 | |
GB2592314A (en) | Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets | |
CN111092907B (zh) | 基于udp协议的数据流快速传输方法、系统及介质 | |
CN109302270A (zh) | 一种处理报文的方法及装置 | |
CN107493260A (zh) | 用于数据传输的自适应段尺寸的装置、系统和方法 | |
CN104580171B (zh) | Tcp协议的传输方法、装置和系统 | |
EP3403436B1 (en) | Method and network node for handling signals transmitted from wireless devices | |
JP2006504290A (ja) | Nackプロトコルの方法および装置 | |
JP2000022744A (ja) | パケット通信システム、パケット通信装置及びパケット通信方法 | |
CN107959554B (zh) | 一种数据的重传方法及装置 | |
CN116963175A (zh) | 数据传输方法、装置及系统 | |
CN115499108B (zh) | 一种基于udp协议的闭环网络通信方法及系统 | |
KR100864481B1 (ko) | 무선 인터넷 쓰루풋 향상을 위한 고스트 서버 시스템 및그의 운용 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190201 |