CN104104608B - 接收报文的方法及装置 - Google Patents

接收报文的方法及装置 Download PDF

Info

Publication number
CN104104608B
CN104104608B CN201310130316.8A CN201310130316A CN104104608B CN 104104608 B CN104104608 B CN 104104608B CN 201310130316 A CN201310130316 A CN 201310130316A CN 104104608 B CN104104608 B CN 104104608B
Authority
CN
China
Prior art keywords
tcp
message
confirmation
receiver
data message
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
CN201310130316.8A
Other languages
English (en)
Other versions
CN104104608A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310130316.8A priority Critical patent/CN104104608B/zh
Publication of CN104104608A publication Critical patent/CN104104608A/zh
Application granted granted Critical
Publication of CN104104608B publication Critical patent/CN104104608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种接收报文的方法及装置,属于网络通信领域。所述方法包括:接收传输控制协议TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的;检测第二数据报文是否乱序到达所述TCP接收器;若检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。本发明在通过检测到第二数据报文乱序到达所述TCP接收器,避免避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作,解决了因乱序引发的数据报文重传的问题,达到了大大提高网络的有效容量的目的。

Description

接收报文的方法及装置
技术领域
本发明涉及网络通信领域,特别涉及接收报文的方法及装置。
背景技术
在网络传输过程中,不同主机之间经常需要可靠的连接以实现数据报文的可靠传输。TCP(Transmission Control Protocol,传输控制协议)是实现数据报文的可靠传输的一种机制。
TCP报文可以是数据报文或者确认报文(ACK)。所述数据报文为TCP发送器(Transmission Control Protocol sender,TCP sender)向TCP接收器(TransmissionControl Protocol receiver,TCP receiver)发送的包含有数据段(segment)的报文。所述确认报文是指TCP接收器接收到数据报文后,根据所述接收到的数据报文向所述TCP发送器发送的报文。
现有技术提供的通过TCP网络传输数据的方法可以包括:
TCP发送器向TCP接收器发送包含数据段的数据报文。所述TCP接收器接收到所述数据报文后,根据所述数据报文向所述TCP发送器发送确认报文。所述TCP发送器根据所述TCP接收器发送的所述确认报文向所述TCP接收器重传所述TCP发送器已经发送的数据报文。上述传输数据的方法可能导致TCP网络发生拥塞。
发明内容
本发明实施例提供了接收报文的方法、装置及系统,有助于降低TCP网络发生拥塞的概率。
第一方面,提供了一种接收报文的方法,所述方法包括:
接收TCP接收器发送的重复确认报文(duplicate ACK),所述重复确认报文是由第一数据报文触发的;
检测第二数据报文是否乱序到达所述TCP接收器,TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序;
若检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。
在第一方面的第一种可能的实施方式中,所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文;
检测所述确认报文中的确认号码(Acknowledgement Number)是否不同于所述重复确认报文中的确认号码;
若检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码,则确认所述第二数据报文乱序到达所述TCP接收器。
结合第一方面或者第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文;
检测所述确认报文中的回显应答(Timestamp Echo Reply,TSecr)字段是否小于所述重复确认报文中的回显应答字段;
若检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段,则确认所述第二数据报文乱序到达所述TCP接收器。
结合第一方面、第一方面的第一种可能的实施方式或者第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文;
检测所述确认报文是否包含所述重复确认报文中的选择性确认选项(SACKoption)中的第一块(1st Block);
若检测结果为所述确认报文不包含所述重复确认报文中的所述第一块,则确认所述第二数据报文乱序到达所述TCP接收器。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式或者第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述接收所述TCP接收器发送的确认报文包括:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间(RETRANSMISSIONTIMEOUT)。
第二方面,提供了一种接收报文的装置,所述装置包括:
接收单元,用于接收传输控制协议TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的;
检测单元,用于检测第二数据报文是否乱序到达所述TCP接收器,TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序;
执行单元,用于在所述检测单元的检测结果为所述第二数据报文乱序到达所述TCP接收器时,避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP接收器转发所述重复确认报文的操作。
在第二方面的第一种可能的实施方式中,所述检测单元,包括:
接收子单元,用于接收所述TCP接收器发送的确认报文;
检测子单元,用于检测所述接收子单元接收的确认报文中的确认号码是否不同于所述接收单元接收的重复确认报文中的确认号码;
确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码时,确认所述第二数据报文乱序到达所述TCP接收器。
结合第二方面或者第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述检测单元,包括:
接收子单元,用于接收所述TCP接收器发送的确认报文;
检测子单元,用于检测所述接收子单元接收的确认报文中的回显应答字段是否小于所述接收单元接收的重复确认报文中的回显应答字段;
确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段时,确认所述第二数据报文乱序到达所述TCP接收器。
结合第二方面、第二方面的第一种可能的实施方式或者第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述检测单元,包括:
接收子单元,用于接收所述TCP接收器发送的确认报文;
检测子单元,用于检测所述接收子单元接收的确认报文是否包含所述接收单元接收的重复确认报文中的选择性确认选项中的第一块;
确认子单元,用于在所述检测子单元的检测结果为所述确认报文不包含所述重复确认报文中的所述第一块时,确认所述第二数据报文乱序到达所述TCP接收器。
结合第二方面、第二方面的第一种可能的实施方式、第二方面的第二种可能的实施方式或者第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述接收子单元,用于:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间。
第三方面,提供了一种接收报文的系统,所述系统包括TCP发送器和TCP接收器,其中TCP发送器包括第二方面或者第二方面的任意一种可能的实现方式中的接收报文的装置。
第四方面,提供了一种接收报文的系统,所述系统包括TCP发送器、中间节点和TCP接收器,所述中间节点包括第二方面或者第二方面的任意一种可能的实现方式中的接收报文的装置。
第五方面,提供了一种接收报文的设备,所述设备,包括:
接收器,用于接收传输控制协议TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的;
处理器,用于检测第二数据报文是否乱序到达所述TCP接收器,TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序;
所述处理器,还用于在检测结果为所述第二数据报文乱序到达所述TCP接收器时,避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP接收器转发所述重复确认报文的操作。
在第五方面的第一种可能的实施方式中,
所述接收器,还用于接收所述TCP接收器发送的确认报文;
所述处理器,还用于检测所述确认报文中的确认号码是否不同于所述重复确认报文中的确认号码;
所述处理器,还用于在检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码时,确认所述第二数据报文乱序到达所述TCP接收器。
结合第五方面或者第五方面的第一种可能的实施方式,在第二种可能的实施方式中,
所述接收器,还用于接收所述TCP接收器发送的确认报文;
所述处理器,还用于检测所述确认报文中的回显应答字段是否小于所述重复确认报文中的回显应答字段;
所述处理器,还用于在检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段时,确认所述第二数据报文乱序到达所述TCP接收器。
结合第五方面、第五方面的第一种可能的实施方式或者第五方面的第二种可能的实施方式,在第三种可能的实施方式中,
所述接收器,还用于接收所述TCP接收器发送的确认报文;
所述处理器,还用于检测所述确认报文是否包含所述重复确认报文中的选择性确认选项中的第一块;
所述处理器,还用于在检测结果为所述确认报文不包含所述重复确认报文中的所述第一块时,确认所述第二数据报文乱序到达所述TCP接收器。
结合第五方面、第五方面的第一种可能的实施方式、第五方面的第二种可能的实施方式或者第五方面的第三种可能的实施方式,在第四种可能的实施方式中,所述接收机还用于:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间。
第六方面,提供了一种接收报文的系统,所述系统包括TCP发送器和TCP接收器,所述TCP发送器包括第五方面或者第五方面的任意一种可能的实现方式中的接收报文的设备。
第七方面,提供了一种接收报文的系统,所述系统包括TCP发送器、中间节点和TCP接收器,所述中间节点包括第五方面或者第五方面的任意一种可能的实现方式中的接收报文的设备。
上述技术方案中,接收所述重复确认报文后,检测所述第二数据报文是否乱序到达所述TCP接收器。如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。也就是说,如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则对所述重复确认报文进行抑制(suppress)。在避免执行对所述重复确认报文进行响应的操作的场景中,所述TCP发送器不会对所述重复确认报文进行响应,所述TCP发送器不会重传所述第二数据报文;在避免执行向所述TCP发送器转发所述重复确认报文的操作的场景中,中间节点不会向所述TCP发送器转发所述重复确认报文,所述TCP发送器不会收到所述重复确认报文,因此,所述TCP发送器就不会重传所述第二数据报文。因此,上述技术方案有助于减少TCP发送器重传乱序到达TCP接收器的数据报文的可能性。上述技术方案有助于降低TCP网络发生拥塞的概率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的组网架构的结构示意图;
图2是本发明实施例提供的接收报文的方法的流程示意图;
图3A是本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图;
图3B是本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图;
图4A是本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图;
图4B是本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图;
图5是本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图;
图6是本发明实施例提供的接收报文的装置的结构示意图;
图7是本发明实施例提供的接收报文的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
发明人发现TCP网络可能存在如下现象:在数据报文尚未到达TCP接收器时,TCP发送器根据接收到的确认报文确定所述数据报文发生了丢弃。进而所述TCP发送器重传所述数据报文。因此,所述数据报文和所述重传的数据报文都会在TCP网络中传输。上述现象可能导致所述TCP网络发生拥塞。发明人发现上述现象的原因是所述数据报文在所述TCP网络中传输时发生延迟。但是事实上所述数据报文并没有发生丢弃。
为了更清楚的描述本发明,在描述本发明的各个实施例之前,对TCP涉及的部分技术方案进行列举:
TCP报文通常包含确认号码(Acknowledgement Number)、选择性确认选项(SACKoption)和时间戳选项(Timestamp option)。
确认号码为TCP接收器期望接收到的数据段中第一个字节的序列号。
选择性确认选项包含至少一个块(Block)。每个块均包含不连续数据段的左边界值和右边界值。所述不连续数据段的第一个字节的序列号与TCP接收器接收到所述不连续数据段之前接收到的每个数据段中的最后一个字节的序列号不相邻。所述左边界值表示所述不连续数据段中第一个字节的序列号。所述右边界值表示所述不连续数据段中最后一个字节的序列号。
时间戳选项包含时间戳(Timestamp Value,TSval)字段和回显应答(TSecr)字段。所述时间戳字段表示数据报文或确认报文的发送时间。
图1为本发明实施例提供的组网架构的结构示意图。参见图1,所述组网架构包括TCP发送器110a以及110b、骨干网120、BRAS(broadband remote access server,宽带远程接入服务器)130和TCP接收器140a、140b以及140c。所述骨干网120可以包括多个数据转发设备。所述多个数据转发设备包括路由器120a、路由器120b、路由器120c和路由器120d。
图1中的每个TCP发送器可以与每个TCP接收器通信。下面仅描述TCP发送器110a与TCP接收器140a的通信。
所述TCP发送器110a通过所述骨干网120将数据报文发送给所述BRAS130。
所述BRAS130将所述数据报文转发给所述TCP接收器140a。
所述TCP接收器140a接收到所述数据报文后,根据所述数据报文生成确认报文并将所述确认报文发送给所述BRAS130。
所述BRAS130将所述确认报文通过所述骨干网120发送给所述TCP发送器110a。
上面仅描述了所述TCP发送器110a和所述TCP接收器140a的通信。其他TCP发送器和其他TCP接收器也可以通过类似方式进行通信。
图1中的TCP发送器可以为视频服务器、音频服务器或者文件服务器。图1中,TCP发送器到TCP接收器的TCP链路可以包括中间节点。所述中间节点可以是路由器、交换机、BRAS、防火墙或者负载均衡器。
图2为本发明实施例提供的接收报文的方法的流程示意图。所述方法的执行主体可以为TCP发送器或从TCP发送器到TCP接收器的TCP路径的中间节点。如图2所示,所述方法包括:
201、接收TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的。
举例来说,所述中间节点或所述TCP发送器接收所述TCP接收器发送的第一确认报文。如果所述第一确认报文中的确认号码与第二确认报文中的确认号码相同,则确定所述第一确认报文为所述重复确认报文。所述第二确认报文为所述中间节点或所述TCP发送器在接收所述第一确认报文前接收的确认报文。
举例来说,所述重复确认报文是所述TCP接收器根据所述第一数据报文生成的确认报文。
202、检测第二数据报文是否乱序到达所述TCP接收器,TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序。
举例来说,所述检测第二数据报文是否乱序到达所述TCP接收器可以包括:
根据所述重复确认报文检测所述第二数据报文是否乱序到达所述TCP接收器。
203、若检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。
举例来说,当201和202的执行主体为所述TCP发送器时,若所述TCP发送器通过202得到的检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作。
举例来说,当201和202的执行主体为所述中间节点时,若所述中间节点通过202得到的检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行向所述TCP发送器转发所述重复确认报文的操作。
上述技术方案中,接收所述重复确认报文后,检测所述第二数据报文是否乱序到达所述TCP接收器。如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。也就是说,如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则对所述重复确认报文进行抑制。在避免执行对所述重复确认报文进行响应的操作的场景中,所述TCP发送器不会对所述重复确认报文进行响应,所述TCP发送器不会重传所述第二数据报文;在避免执行向所述TCP发送器转发所述重复确认报文的操作的场景中,中间节点不会向所述TCP发送器转发所述重复确认报文。所述TCP发送器不会收到所述重复确认报文。因此,所述TCP发送器就不会重传所述第二数据报文。因此,上述技术方案有助于减少TCP发送器重传乱序到达TCP接收器的数据报文的可能性。上述技术方案有助于降低TCP网络发生拥塞的概率。
可选地,图2所示的方法中,
所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文。
检测所述确认报文中的确认号码是否不同于所述重复确认报文中的确认号码。
若检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码,则确认所述第二数据报文乱序到达所述TCP接收器。
图3A为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。如图3A所示,TCP发送器向TCP接收器发送数据报文的顺序分别是D1、D2和D3。D1、D2和D3包含的数据段中的第一个字节的序列号和最后一个字节的序列号分别是:D1(0,2799)、D2(2800,3799)和D3(3800,4799)。如果D1、D2和D3在传输过程中没有发生乱序,则所述TCP接收器的接收顺序分别是D1、D2和D3。所述TCP接收器分别根据D1、D2和D3生成确认报文ACK1、ACK2和ACK3。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2和ACK3。其中,ACK1、ACK2和ACK3中包含的确认号码分别是ACK1(2800)、ACK2(3800)和ACK3(4800)。
图3B为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。图3B所示的TCP发送器可以用于执行图2所示的方法。图3B包含的两个网元分别是TCP发送器和TCP接收器。可选地,可以将图3B中的TCP发送器替换为TCP发送器到TCP接收器的TCP路径的中间节点。如图3B所示,TCP发送器向TCP接收器发送数据报文的顺序分别是D1、D2和D3。D1、D2和D3包含的数据段中的第一个字节的序列号和最后一个字节的序列号分别是:D1(0,2799)、D2(2800,3799)和D3(3800,4799)。如果D2在传输过程中发生乱序,D3先于D2到达所述TCP接收器,则所述TCP接收器的接收数据报文的顺序分别是D1、D3和D2。所述TCP接收器分别根据D1、D3和D2生成确认报文ACK1、ACK2和ACK3。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2和ACK3。其中,ACK1、ACK2和ACK3中包含的确认号码分别是ACK1(2800)、ACK2(2800)和ACK3(4800)。ACK1中包含的确认号码和ACK2中包含的确认号码相同。因此,ACK2是重复确认报文。由于ACK2中的确认号码不同于ACK3中的确认号码,可以确定D2乱序到达所述TCP接收器。因此,TCP发送器可以确定D2乱序到达所述TCP接收器。可选地,如果图3B中的TCP发送器被替换为所述中间节点,所述中间节点可以确定D2乱序到达所述TCP接收器。
可选地,图2所示的方法中,
所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文。
检测所述确认报文中的回显应答字段是否小于所述重复确认报文中的回显应答字段。
若检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段,则确认所述第二数据报文乱序到达所述TCP接收器。
图4A为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。如图4A所示,所述TCP发送器向所述TCP接收器发送数据报文的顺序分别是D1、D2……Dn。所述TCP接收器接收数据报文的顺序为D1、D2……Dn。D1、D2……Dn分别触发所述TCP接收器发送确认报文ACK(D1)、ACK(D2)……ACK(Dn)。D1、D2……Dn以及ACK(D1)、ACK(D2)……ACK(Dn)中都包含了TSecr以及TSval。关于数据报文以及确认报文中包含的TSecr以及TSval,具体请参考图4A。
图4B为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。图4B所示的TCP发送器可以用于执行图2所示的方法。图4B包含的两个网元分别是TCP发送器和TCP接收器。可选地,可以将图4B中的TCP发送器替换为TCP发送器到TCP接收器的TCP路径的中间节点。如图4B所示,TCP发送器向TCP接收器发送数据报文的顺序分别是P1、P2、P3和P4。P1、P2、P3和P4中包含的TSval分别是:1、5、8和10。如果P2在传输过程中发生乱序,P2最后到达所述TCP接收器,则所述TCP接收器的接收数据报文的顺序分别是P1、P3、P4和P2。所述TCP接收器分别根据P1、P3、P4和P2生成确认报文ACK1、ACK2、ACK3和ACK4。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2、ACK3和ACK4。其中,ACK1、ACK2、ACK3和ACK4中包含的TSecr分别是1、8、10和5。ACK3中包含的确认号码和ACK1中包含的确认号码相同。因此,ACK3是重复确认报文。由于ACK4中的TSecr小于ACK3中的TSecr,可以确定P2乱序到达所述TCP接收器。因此,TCP发送器可以确定P2乱序到达所述TCP接收器。可选地,如果图4B中的TCP发送器被替换为所述中间节点,所述中间节点可以确定P2乱序到达所述TCP接收器。
可选地,图2所示的方法中,所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文。
检测所述确认报文是否包含所述重复确认报文中的选择性确认选项中的第一块。
若检测结果为所述确认报文不包含所述重复确认报文中的所述第一块,则确认所述第二数据报文乱序到达所述TCP接收器。
图5为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。图5所示的TCP发送器可以用于执行图2所示的方法。图5包含的两个网元分别是TCP发送器和TCP接收器。可选地,可以将图5中的TCP发送器替换为TCP发送器到TCP接收器的TCP路径的中间节点。如图5所示,TCP发送器向TCP接收器发送数据报文的顺序分别是P1、P2、P3、P4和P5。P1、P2、P3、P4和P5中包含的数据段分别是(0,2799)、(2800,3799)、(3800,4799)、(4800,5799)和(5800,6799)。P1中包含的数据段中的第一个字节的序列号是0。P1中包含的数据段中的最后一个字节的序列号是2799。P2中包含的数据段中的第一个字节的序列号是2800。P2中包含的数据段中的最后一个字节的序列号是3799。P3中包含的数据段中的第一个字节的序列号是3800。P3中包含的数据段中的最后一个字节的序列号是4799。P4中包含的数据段中的第一个字节的序列号是4800。P4中包含的数据段中的最后一个字节的序列号是5799。P5中包含的数据段中的第一个字节的序列号是5800。P5中包含的数据段中的最后一个字节的序列号是6799。P2和P4在传输过程中发生乱序,所述TCP接收器的接收数据报文的顺序分别是P1、P3、P5、P2和P4。所述TCP接收器分别根据P1、P3、P5、P2和P4生成确认报文ACK1、ACK2、ACK3、ACK4和ACK5。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2、ACK3、ACK4和ACK5。其中,ACK1、ACK2、ACK3、ACK4和ACK5中包含的确认号码分别是2800、2800、2800、4800和6800。ACK1中没有包含SACK option。ACK2中的SACK option包含第一块(3800,4799)。ACK3中的SACK option包含第一块(3800,4799)以及第二块(5800,6799)、ACK4中的SACK option包含第一块(5800,6799)。ACK5中没有包含SACK option。ACK2中的确认号码等于ACK1中的确认号码。ACK2是重复确认报文。ACK1中没有包含第一块。不能确定P3发生乱序。ACK3中确认号码等于ACK1中的确认号码。ACK3是重复确认报文。ACK2中的第一块是(3800,4799)。ACK3中的第一块是(3800,4799),第二块是(5800,6799)。也就是说ACK3中包含了ACK2中的第一块。不能确定P5发生乱序。ACK4中包含第一块是(5800,6799)。ACK4中没有包含ACK3中的第一块(3800,4799)。可以确定P2发生乱序。因此,TCP发送器可以确定P2乱序到达所述TCP接收器。可选地,如果图5中的TCP发送器被替换为所述中间节点,所述中间节点可以确定P2乱序到达所述TCP接收器。
可选地,图2所示的方法中,
所述接收所述TCP接收器发送的确认报文,包括:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间。
举例来说,所述TCP发送器向所述TCP接收器发送数据报文后,等待所述TCP接收器根据所述数据报文发送的响应。如果所述数据报文在传输过程中发生丢弃,或所述TCP接收器发送的响应在传输过程中发生丢弃,则所述TCP发送器无法接收到所述TCP接收器根据所述数据报文发送的响应。理论上,如果所述TCP发送器无法接收到所述TCP接收器根据所述数据报文发送的响应,所述TCP发送器可以一直处于等待状态。为了避免上述情况的发生,所述TCP发送器可以包括一个重传定时器,所述重传定时器对应时间间隔。所述重传定时器在所述TCP发送器发送所述数据报文时开始计时,如果所述TCP发送器在所述时间间隔内接收到所述TCP接收器根据所述数据报文生成的响应,则所述TCP发送器发送其他数据报文。如果所述TCP发送器在所述时间间隔内未接收到所述TCP接收器根据所述数据报文生成的响应,则重传所述数据报文。
可选地,图2所示的方法中,
如果在所述第一时间间隔内没有收到所述确认报文,则所述TCP发送器发送所述第二数据报文。
可选地,图2所示的方法中,
如果在所述第一时间间隔内没有收到所述确认报文,则所述TCP发送器到所述TCP接收器的TCP链路的中间节点向所述TCP发送器转发所述重复确认报文。
举例来说,图2所示的方法可以应用于图1所示的组网架构。具体来说,图2所示的方法的执行主体可以是图1所示的组网架构中的TCP发送器110a或者110b。图2中的TCP发送器可以是图1所示的组网架构中的TCP发送器110a或者110b。图2中的TCP接收器可以是图1所示的组网架构中的TCP接收器140a、140b或者140c。
图6为本发明实施例提供的接收报文的装置的结构示意图。所述装置可以是TCP发送器或从TCP发送器到TCP接收器的TCP路径的中间节点。如图6所示,所述装置包括:
接收单元601,用于接收TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的。
举例来说,所述中间节点或所述TCP发送器接收所述TCP接收器发送的第一确认报文。如果所述第一确认报文中的确认号码与第二确认报文中的确认号码相同,则确定所述第一确认报文为所述重复确认报文。所述第二确认报文为所述中间节点或所述TCP发送器在接收所述第一确认报文前接收的确认报文。
举例来说,所述重复确认报文是所述TCP接收器根据所述第一数据报文生成的确认报文。
检测单元602,用于检测第二数据报文是否乱序到达所述TCP接收器,TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序。
举例来说,所述检测单元602用于根据所述接收单元601接收到的重复确认报文检测所述第二数据报文是否乱序到达所述TCP接收器。
执行单元603,用于在所述检测单元602的检测结果为所述第二数据报文乱序到达所述TCP接收器时,避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。
举例来说,所述装置为所述TCP发送器时,若所述TCP发送器通过检测单元602得到的检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作。
举例来说,所述装置为所述TCP发送器时,若所述中间节点通过检测单元602得到的检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行向所述TCP发送器转发所述重复确认报文的操作。
上述技术方案中,接收所述重复确认报文后,检测所述第二数据报文是否乱序到达所述TCP接收器。如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。也就是说,如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则对所述重复确认报文进行抑制。在避免执行对所述重复确认报文进行响应的操作的场景中,所述TCP发送器不会对所述重复确认报文进行响应,所述TCP发送器不会重传所述第二数据报文;在避免执行向所述TCP发送器转发所述重复确认报文的操作的场景中,中间节点不会向所述TCP发送器转发所述重复确认报文。所述TCP发送器不会收到所述重复确认报文。因此,所述TCP发送器就不会重传所述第二数据报文。因此,上述技术方案有助于减少TCP发送器重传乱序到达TCP接收器的数据报文的可能性。上述技术方案有助于降低TCP网络发生拥塞的概率。
可选地,图6所示的装置中,所述检测单元602包括:
接收子单元,用于接收所述TCP接收器发送的确认报文。
检测子单元,用于检测所述接收子单元接收的确认报文中的确认号码是否不同于所述接收单元接收的重复确认报文中的确认号码。
确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码时,确认所述第二数据报文乱序到达所述TCP接收器。
图3A为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。如图3A所示,TCP发送器向TCP接收器发送数据报文的顺序分别是D1、D2和D3。D1、D2和D3包含的数据段中的第一个字节的序列号和最后一个字节的序列号分别是:D1(0,2799)、D2(2800,3799)和D3(3800,4799)。如果D1、D2和D3在传输过程中没有发生乱序,则所述TCP接收器的接收顺序分别是D1、D2和D3。所述TCP接收器分别根据D1、D2和D3生成确认报文ACK1、ACK2和ACK3。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2和ACK3。其中,ACK1、ACK2和ACK3中包含的确认号码分别是ACK1(2800)、ACK2(3800)和ACK3(4800)。
图3B为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。图6所示的装置可以是图3B所示的TCP发送器。图3B包含的两个网元分别是TCP发送器和TCP接收器。可选地,可以将图3B中的TCP发送器替换为TCP发送器到TCP接收器的TCP路径的中间节点。如图3B所示,TCP发送器向TCP接收器发送数据报文的顺序分别是D1、D2和D3。D1、D2和D3包含的数据段中的第一个字节的序列号和最后一个字节的序列号分别是:D1(0,2799)、D2(2800,3799)和D3(3800,4799)。如果D2在传输过程中发生乱序,D3先于D2到达所述TCP接收器,则所述TCP接收器的接收数据报文的顺序分别是D1、D3和D2。所述TCP接收器分别根据D1、D3和D2生成确认报文ACK1、ACK2和ACK3。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2和ACK3。其中,ACK1、ACK2和ACK3中包含的确认号码分别是ACK1(2800)、ACK2(2800)和ACK3(4800)。ACK1中包含的确认号码和ACK2中包含的确认号码相同。因此,ACK2是重复确认报文。由于ACK2中的确认号码不同于ACK3中的确认号码,可以确定D2乱序到达所述TCP接收器。因此,TCP发送器可以确定D2乱序到达所述TCP接收器。可选地,如果图3B中的TCP发送器被替换为所述中间节点,所述中间节点可以确定D2乱序到达所述TCP接收器。
可选地,图6所示的装置中,所述检测单元602包括:
接收子单元,用于接收所述TCP接收器发送的确认报文。
检测子单元,用于检测所述接收子单元接收的确认报文中的回显应答字段是否小于所述接收单元接收的重复确认报文中的回显应答字段。
确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段时,确认所述第二数据报文乱序到达所述TCP接收器。
图4A为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。如图4A所示,所述TCP发送器向所述TCP接收器发送数据报文的顺序分别是D1、D2……Dn。所述TCP接收器接收数据报文的顺序为D1、D2……Dn。D1、D2……Dn分别触发所述TCP接收器发送确认报文ACK(D1)、ACK(D2)……ACK(Dn)。D1、D2……Dn以及ACK(D1)、ACK(D2)……ACK(Dn)中都包含了TSecr以及TSval。关于数据报文以及确认报文中包含的TSecr以及TSval,具体请参考图4A。
图4B为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。图6所示的装置可以是图4B所示的TCP发送器。图4B包含的两个网元分别是TCP发送器和TCP接收器。可选地,可以将图4B中的TCP发送器替换为TCP发送器到TCP接收器的TCP路径的中间节点。如图4B所示,TCP发送器向TCP接收器发送数据报文的顺序分别是P1、P2、P3和P4。P1、P2、P3和P4中包含的TSval分别是:1、5、8和10。如果P2在传输过程中发生乱序,P2最后到达所述TCP接收器,则所述TCP接收器的接收数据报文的顺序分别是P1、P3、P4和P2。所述TCP接收器分别根据P1、P3、P4和P2生成确认报文ACK1、ACK2、ACK3和ACK4。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2、ACK3和ACK4。其中,ACK1、ACK2、ACK3和ACK4中包含的TSecr分别是1、8、10和5。ACK3中包含的确认号码和ACK1中包含的确认号码相同。因此,ACK3是重复确认报文。由于ACK4中的TSecr小于ACK3中的TSecr,可以确定P2乱序到达所述TCP接收器。因此,TCP发送器可以确定P2乱序到达所述TCP接收器。可选地,如果图4B中的TCP发送器被替换为所述中间节点,所述中间节点可以确定P2乱序到达所述TCP接收器。
可选地,图6所示的装置中,所述检测单元602包括:
接收子单元,用于接收所述TCP接收器发送的确认报文。
检测子单元,用于检测所述接收子单元接收的确认报文是否包含所述接收单元接收的重复确认报文中的选择性确认选项中的第一块。
确认子单元,用于在所述检测子单元的检测结果为所述确认报文不包含所述重复确认报文中的所述第一块时,确认所述第二数据报文乱序到达所述TCP接收器。
图5为本发明实施例提供的TCP发送器与TCP接收器进行通信的流程示意图。图6所示的装置可以是图5所示的TCP发送器。图5包含的两个网元分别是TCP发送器和TCP接收器。可选地,可以将图5中的TCP发送器替换为TCP发送器到TCP接收器的TCP路径的中间节点。如图5所示,TCP发送器向TCP接收器发送数据报文的顺序分别是P1、P2、P3、P4和P5。P1、P2、P3、P4和P5中包含的数据段分别是(0,2799)、(2800,3799)、(3800,4799)、(4800,5799)和(5800,6799)。P1中包含的数据段中的第一个字节的序列号是0。P1中包含的数据段中的最后一个字节的序列号是2799。P2中包含的数据段中的第一个字节的序列号是2800。P2中包含的数据段中的最后一个字节的序列号是3799。P3中包含的数据段中的第一个字节的序列号是3800。P3中包含的数据段中的最后一个字节的序列号是4799。P4中包含的数据段中的第一个字节的序列号是4800。P4中包含的数据段中的最后一个字节的序列号是5799。P5中包含的数据段中的第一个字节的序列号是5800。P5中包含的数据段中的最后一个字节的序列号是6799。P2和P4在传输过程中发生乱序,所述TCP接收器的接收数据报文的顺序分别是P1、P3、P5、P2和P4。所述TCP接收器分别根据P1、P3、P5、P2和P4生成确认报文ACK1、ACK2、ACK3、ACK4和ACK5。所述TCP接收器分别向所述TCP发送器发送ACK1、ACK2、ACK3、ACK4和ACK5。其中,ACK1、ACK2、ACK3、ACK4和ACK5中包含的确认号码分别是2800、2800、2800、4800和6800。ACK1中没有包含SACK option。ACK2中的SACKoption包含第一块(3800,4799)。ACK3中的SACK option包含第一块(3800,4799)以及第二块(5800,6799)、ACK4中的SACK option包含第一块(5800,6799)。ACK5中没有包含SACK option。ACK2中的确认号码等于ACK1中的确认号码。ACK2是重复确认报文。ACK1中没有包含第一块。不能确定P3发生乱序。ACK3中确认号码等于ACK1中的确认号码。ACK3是重复确认报文。ACK2中的第一块是(3800,4799)。ACK3中的第一块是(3800,4799),第二块是(5800,6799)。也就是说ACK3中包含了ACK2中的第一块。不能确定P5发生乱序。ACK4中包含第一块是(5800,6799)。ACK4中没有包含ACK3中的第一块(3800,4799)。可以确定P2发生乱序。因此,TCP发送器可以确定P2乱序到达所述TCP接收器。可选地,如果图5中的TCP发送器被替换为所述中间节点,所述中间节点可以确定P2乱序到达所述TCP接收器。
可选地,图6所示的装置中,所述接收子单元用于:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间。
举例来说,所述TCP发送器向所述TCP接收器发送的数据报文后,等待所述TCP接收器根据所述数据报文发送的响应。如果所述数据报文在传输过程中发生丢弃,或所述TCP接收器发送的响应在传输过程中发生丢弃,则所述TCP发送器无法接收到所述TCP接收器根据所述数据报文发送的响应。理论上,如果所述TCP发送器无法接收到所述TCP接收器根据所述数据报文发送的响应,所述TCP发送器可以一直处于等待状态。为了避免上述情况的发生,所述TCP发送器可以包括一个重传定时器,所述重传定时器对应时间间隔。所述重传定时器在所述TCP发送器发送所述数据报文时开始计时,如果所述TCP发送器在所述时间间隔内接收到所述TCP接收器根据所述数据报文生成的响应,则所述TCP发送器发送其他数据报文。如果所述TCP发送器在所述时间间隔内未接收到所述TCP接收器根据所述数据报文生成的响应,则重传所述数据报文。
可选地,图6所示的装置中,所述执行单元603还用于:
如果在所述第一时间间隔内没有收到所述确认报文,则发送所述第二数据报文。
可选地,图6所示的装置中,所述执行单元603还用于:
如果在所述第一时间间隔内没有收到所述确认报文,则向所述TCP发送器转发所述重复确认报文。
举例来说,图6所示的装置可以应用于图1所示的组网架构。具体来说,图6所示的装置可以是图1所示的组网架构中的TCP发送器110a或者110b。
图7为本发明实施例提供的接收报文的装置的结构示意图。所述装置可以是TCP发送器或从TCP发送器到TCP接收器的TCP路径的中间节点。所述装置可以用于执行图2所示的方法。如图7所示,所述装置包括:接收器701、处理器702以及存储器703。接收器701与处理器702耦合。处理器702与存储器703耦合。
接收器701用于接收TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的。
举例来说,所述中间节点或所述TCP发送器接收所述TCP接收器发送的第一确认报文。如果所述第一确认报文中的确认号码与第二确认报文中的确认号码相同,则确定所述第一确认报文为所述重复确认报文。所述第二确认报文为所述中间节点或所述TCP发送器在接收所述第一确认报文前接收的确认报文。
举例来说,所述重复确认报文是所述TCP接收器根据所述第一数据报文生成的确认报文。
存储器703中存储计算机软件。处理器702可以通过访问所述计算机软件执行如下操作:
检测第二数据报文是否乱序到达所述TCP接收器,TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序。
若检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。
举例来说,所述检测第二数据报文是否乱序到达所述TCP接收器可以包括根据所述重复确认报文检测所述第二数据报文是否乱序到达所述TCP接收器。
举例来说,所述装置为所述TCP发送器时,若所述TCP发送器通过检测单元602得到的检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作。
举例来说,所述装置为所述TCP发送器时,若所述中间节点通过检测单元602得到的检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行向所述TCP发送器转发所述重复确认报文的操作。
上述技术方案中,接收所述重复确认报文后,检测所述第二数据报文是否乱序到达所述TCP接收器。如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则避免执行对所述重复确认报文进行响应的操作或者避免执行向所述TCP发送器转发所述重复确认报文的操作。也就是说,如果检测结果为所述第二数据报文乱序到达所述TCP接收器,则对所述重复确认报文进行抑制。在避免执行对所述重复确认报文进行响应的操作的场景中,所述TCP发送器不会对所述重复确认报文进行响应,所述TCP发送器不会重传所述第二数据报文;在避免执行向所述TCP发送器转发所述重复确认报文的操作的场景中,中间节点不会向所述TCP发送器转发所述重复确认报文。所述TCP发送器不会收到所述重复确认报文。因此,所述TCP发送器就不会重传所述第二数据报文。因此,上述技术方案有助于减少TCP发送器重传乱序到达TCP接收器的数据报文的可能性。上述技术方案有助于降低TCP网络发生拥塞的概率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (4)

1.一种接收报文的方法,其特征在于,所述方法的执行主体是传输控制协议TCP发送器或者从TCP发送器到TCP接收器的TCP路径的中间节点,所述方法包括:
接收TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的;
检测第二数据报文是否乱序到达所述TCP接收器,所述TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序;
若检测结果为所述第二数据报文乱序到达所述TCP接收器,则所述TCP发送器避免执行重传所述第二数据报文的操作或者所述中间节点避免执行向所述TCP发送器转发所述重复确认报文的操作;
其中,所述检测第二数据报文是否乱序到达所述TCP接收器,包括:
接收所述TCP接收器发送的确认报文;
检测所述确认报文中的确认号码是否不同于所述重复确认报文中的确认号码;若检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码,则确认所述第二数据报文乱序到达所述TCP接收器;或者,
检测所述确认报文中的回显应答字段是否小于所述重复确认报文中的回显应答字段;若检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段,则确认所述第二数据报文乱序到达所述TCP接收器;或者,
检测所述确认报文是否包含所述重复确认报文中的选择性确认选项中的第一块;若检测结果为所述确认报文不包含所述重复确认报文中的所述第一块,则确认所述第二数据报文乱序到达所述TCP接收器。
2.根据权利要求1所述的方法,其特征在于,所述接收所述TCP接收器发送的确认报文,包括:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间。
3.一种接收报文的装置,其特征在于,所述装置为传输控制协议TCP发送器或者从TCP发送器到TCP接收器的TCP路径的中间节点,所述装置包括:
接收单元,用于接收TCP接收器发送的重复确认报文,所述重复确认报文是由第一数据报文触发的;
检测单元,用于检测第二数据报文是否乱序到达所述TCP接收器,所述TCP发送器发送所述第一数据报文的顺序晚于所述TCP发送器发送所述第二数据报文的顺序,所述TCP接收器接收所述第一数据报文的顺序早于所述TCP接收器接收所述第二数据报文的顺序;
执行单元,用于当所述装置为所述TCP发送器时,在所述检测单元的检测结果为所述第二数据报文乱序到达所述TCP接收器时,避免执行重传所述第二数据报文的操作;
或者,
执行单元,用于当所述装置为所述中间节点时,在所述检测单元的检测结果为所述第二数据报文乱序到达所述TCP接收器时,避免执行向所述TCP发送器转发所述重复确认报文的操作;
其中,所述检测单元,包括:接收子单元、检测子单元和确认子单元;
所述接收子单元,用于接收所述TCP接收器发送的确认报文;
所述检测子单元,用于检测所述接收子单元接收的确认报文中的确认号码是否不同于所述接收单元接收的重复确认报文中的确认号码;所述确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的确认号码不同于所述重复确认报文中的确认号码时,确认所述第二数据报文乱序到达所述TCP接收器;或者,
所述检测子单元,用于检测所述接收子单元接收的确认报文中的回显应答字段是否小于所述接收单元接收的重复确认报文中的回显应答字段;所述确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段时,确认所述第二数据报文乱序到达所述TCP接收器;或者,
所述检测子单元,用于检测所述接收子单元接收的确认报文中的回显应答字段是否小于所述接收单元接收的重复确认报文中的回显应答字段;所述确认子单元,用于在所述检测子单元的检测结果为所述确认报文中的回显应答字段小于所述重复确认报文中的回显应答字段时,确认所述第二数据报文乱序到达所述TCP接收器。
4.根据权利要求3所述的装置,其特征在于,所述接收子单元,用于:
从接收所述重复确认报文的时间开始,在第一时间间隔内接收所述确认报文,所述第一时间间隔小于所述TCP发送器的重传定时器的等待时间。
CN201310130316.8A 2013-04-15 2013-04-15 接收报文的方法及装置 Active CN104104608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310130316.8A CN104104608B (zh) 2013-04-15 2013-04-15 接收报文的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310130316.8A CN104104608B (zh) 2013-04-15 2013-04-15 接收报文的方法及装置

Publications (2)

Publication Number Publication Date
CN104104608A CN104104608A (zh) 2014-10-15
CN104104608B true CN104104608B (zh) 2019-06-11

Family

ID=51672417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310130316.8A Active CN104104608B (zh) 2013-04-15 2013-04-15 接收报文的方法及装置

Country Status (1)

Country Link
CN (1) CN104104608B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105592135B (zh) * 2015-09-25 2019-05-24 新华三技术有限公司 数据冗余消除dre字典确认方法和设备
CN106385409B (zh) * 2016-09-08 2019-07-09 杭州迪普科技股份有限公司 一种tcp报文的处理方法及装置
CN109302270A (zh) * 2017-07-24 2019-02-01 大唐移动通信设备有限公司 一种处理报文的方法及装置
CN109510690B (zh) 2017-09-14 2020-07-28 华为技术有限公司 传输报文的方法、网络组件和计算机可读存储介质
CN107623562B (zh) * 2017-09-30 2021-05-07 新华三技术有限公司 数据传输方法、装置及电子设备
CN111064674B (zh) * 2019-11-05 2021-02-26 珠海格力电器股份有限公司 数据的传输方法及装置、系统
CN113141236A (zh) * 2021-05-06 2021-07-20 北京京东振世信息技术有限公司 一种报文处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645785A (zh) * 1999-01-08 2005-07-27 艾利森电话股份有限公司 检测方法和设备
CN1700629A (zh) * 2004-05-21 2005-11-23 三星电子株式会社 移动自组织网中发送数据的方法及利用该方法的网络设备
CN101217346A (zh) * 2007-01-05 2008-07-09 大唐移动通信设备有限公司 一种am模式状态反馈方法及系统
CN102098150A (zh) * 2009-12-10 2011-06-15 中兴通讯股份有限公司 接收确认处理方法和基站

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496038B2 (en) * 2005-12-12 2009-02-24 International Business Machines Corporation Method for faster detection and retransmission of lost TCP segments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645785A (zh) * 1999-01-08 2005-07-27 艾利森电话股份有限公司 检测方法和设备
CN1700629A (zh) * 2004-05-21 2005-11-23 三星电子株式会社 移动自组织网中发送数据的方法及利用该方法的网络设备
CN101217346A (zh) * 2007-01-05 2008-07-09 大唐移动通信设备有限公司 一种am模式状态反馈方法及系统
CN102098150A (zh) * 2009-12-10 2011-06-15 中兴通讯股份有限公司 接收确认处理方法和基站

Also Published As

Publication number Publication date
CN104104608A (zh) 2014-10-15

Similar Documents

Publication Publication Date Title
CN104104608B (zh) 接收报文的方法及装置
CN106559739B (zh) 适于蓝牙低功耗无线通信系统的轻量级数据传输方法
US9037935B2 (en) Apparatus and method for retransmitting message in message transmission system
KR102046792B1 (ko) 송신 노드로부터 목적지 노드로의 데이터 전송 방법
CN106612284B (zh) 一种流数据的传输方法和装置
CN107104902B (zh) 一种rdma数据传输的方法、相关装置与系统
CN109981385B (zh) 一种实现丢包检测的方法、装置和系统
CN103973414B (zh) 一种数据传输方法及装置
CN108322836A (zh) 一种数据传输的方法及装置
CN108234087A (zh) 数据传输方法及发送端
WO2019052264A1 (zh) 传输报文的方法、网络组件和计算机可读存储介质
GB2592314A (en) Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets
EP2774322A1 (en) Apparatus and method for transmitting a message to multiple receivers
CN109560900A (zh) 数据发送方法和装置
CN104283716A (zh) 数据传输方法、设备及系统
CN108234089B (zh) 用于低时延通信的方法和系统
JP7328177B2 (ja) データ伝送方法及び通信システム
CN104580171B (zh) Tcp协议的传输方法、装置和系统
CN108667563A (zh) 一种前向纠错包个数获取方法及装置
CN106341348B (zh) 一种面向tcp业务的流量控制方法及接入网网元
US11502986B2 (en) Reducing transmission delay of transmitting data in Wi-Fi
CN108988994A (zh) 报文的重传方法及装置
CN116963175A (zh) 数据传输方法、装置及系统
WO2015194134A1 (ja) 通信状態推定装置、通信状態推定方法及び通信状態推定プログラムを記憶する記録媒体
EP3613164B1 (en) Device and method for monitoring a tcp connection

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