CN106302364B - 代理方法、辅助代理方法与设备 - Google Patents

代理方法、辅助代理方法与设备 Download PDF

Info

Publication number
CN106302364B
CN106302364B CN201510318980.4A CN201510318980A CN106302364B CN 106302364 B CN106302364 B CN 106302364B CN 201510318980 A CN201510318980 A CN 201510318980A CN 106302364 B CN106302364 B CN 106302364B
Authority
CN
China
Prior art keywords
data
network device
checksum
original
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
CN201510318980.4A
Other languages
English (en)
Other versions
CN106302364A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510318980.4A priority Critical patent/CN106302364B/zh
Publication of CN106302364A publication Critical patent/CN106302364A/zh
Application granted granted Critical
Publication of CN106302364B publication Critical patent/CN106302364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种代理方法、辅助代理方法与设备,通过将所述原始数据校验和添加到原始数据后面组成原始及校验和数据,基于所述原始及校验和数据计算得到第三校验和数据,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据中直接包含了原始数据校验和,后续第二网络设备接收到报文后,可以迅速从报文中提取原始数据校验和,然后基于原始数据校验和快速判断接收到的报文是否正确,或者基于原始及校验和数据快速生成新的第三校验和数据并添加到报文中,可以节省大量计算原始数据校验和的时间和CPU消耗。

Description

代理方法、辅助代理方法与设备
技术领域
本申请涉及计算机领域,尤其涉及一种分布式缓存集群的升级方法与设备。
背景技术
在进行TCP或UDP协议代理时,会在代理服务器上进行TCPIP协议栈的转址操作,TCPIP协议栈的转址操作过程中需要进行数据校验和计算,现有的普通TCP或UDP的校验和都是从数据和数据头两个部分计算得到。其中,数据包括原始数据以及原始数据的长度;数据头部分包括源IP字段、目的IP字段、TCP或UDP的协议号字段。如图1所示,校验和计算过程如下:
步骤S1:从数据中的原始数据(Data Bytes)计算出原始数据校验和(subchecksum1);
步骤S2:把数据头(Head Bytes)中源IP字段、目的IP字段、TCP或UDP的协议号字段和数据中的原始数据的长度加入计算,得到最终校验和数据(checksum)。在大于1KB以上的大报文中,原始数据的校验和计算的CPU消耗和时延,能够占到整个报文处理过程80%。所以,校验和的计算延时是TCPIP协议栈处理的主要时延,也是消耗CPU资源主要部分。
TCP和UDP代理是常用的两种代理技术,在互联网的代理服务器上,基本所有的数据业务都是基于TCP或UDP代理完成的。同时代理服务器有汇聚客户的功能,大量客户通过代理服务器连接到主服务器上,实现稳定的数据路由,保证业务接入质量。所以代理服务器对性能的要求很高,以保证数据的高吞吐量和低延时。但是因为代理服务器需要完成TCPIP协议栈的转址操作,而必须对每个数据报文进行数据校验和的计算,以保证数据的正确性。数据校验和的计算主要包括:对接收到的数据进行校验和计算,以对接收到的报文的正确性进行判断;以及对待发送数据进行校验和计算,以添加到报文头中,用于下一跳设备对数据的正确性校验。
可见,在TCPIP代理业务中,在对数据的一收一发的过程中会对数据进行两次校验和的计算。在大于1KB的报文时,这两次校验和计算会导致80%的CPU性能消耗和延时,因此,怎么降低代理服务器在处理TCPIP数据报文的CPU消耗,同时降低延时,是TCPIP代理业务应用的关键所在。
目前业界有提出并在应用的方案是校验和卸载(checksum off load)技术。校验和卸载技术是把校验和的两次计算工作都卸载到专用硬件中完成。通过硬件的高性能,以及与软件的并行处理增加处理吞吐量,并降低延时。但是校验和卸载技术有不少缺点:首先需要专用的高性能的网卡设备,目前成本还是很高,不适合大规模应用;其次在多核高性能服务器中,在打包数据流突发的情况下,往往是网卡设备因为性能和缓存不够导致丢包。因为网卡设备的处理器能力和缓存能力是有限的。如果把校验和计算卸载到网卡设备中,往往会导致更严重的丢包。
发明内容
本申请的一个目的是提供一种代理方法、辅助代理方法与设备,能够在保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。
根据本申请的一个方面,提供了一种第一网络设备端的辅助代理方法,该方法包括:
从数据中的原始数据计算出原始数据校验和;
将所述原始数据校验和添加到原始数据后面组成原始及校验和数据;
基于所述原始及校验和数据计算得到第三校验和数据,将第三校验和数据添加到报文中,并向第二网络设备发送所述报文。
进一步的,上述方法中,基于所述原始及校验和数据计算得到第三校验和数据包括:
根据所述原始及校验和数据、数据头和原始及校验及数据的数据长度计算得到第三校验和数据。
进一步的,上述方法中,所述数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
根据本申请的另一面,还提供一种第二网络设备端的代理方法,该方法包括:
从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据中获取原始及校验和数据;
基于所述原始及校验和数据计算得到新的第三校验和数据,将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文。
进一步的,上述方法中,基于所述原始及校验和数据计算得到新的第三校验和数据包括:
根据所述原始及校验和数据、新的数据头和原始及校验和数据的数据长度计算得到新的第三校验和数据。
进一步的,上述方法中,所述新的数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
进一步的,上述方法中,若第二网络设备进行的是TCP代理,向下一跳网络设备发送所述新的报文之后或同时,还包括:
利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文是否正确,
若不正确,通知所述第一网络设备端或上一跳第二网络设备端重传该报文。
进一步的,上述方法中,包括:
第二网络设备的主处理核从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据中获取原始及校验和数据,基于所述原始及校验和数据计算得到新的第三校验和数据,将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文;
第二网络设备的辅助处理核利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文是否正确;
第二网络设备的主处理核在辅助处理核判断该报文不正确时,通知所述第一网络设备端或上一跳第二网络设备端重传该报文。
进一步的,上述方法中,通知所述第一网络设备端或上一跳第二网络设备端重传该报文,包括:
主处理核从所述辅助处理核接收判断为不正确的结果;
主处理核通知所述第一网络设备端或上一跳第二网络设备端重传该报文。
进一步的,上述方法中,主处理核通知所述第一网络设备端或上一跳第二网络设备端重传该报文,包括:
主处理核向所述第一网络设备端或上一跳第二网络设备端发送第一确认号,所述第一确认号包括:所述待重传报文对应的原始数据的存储地址的字节起始序号。
进一步的,上述方法中,利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文是否正确之后,还包括:
若正确,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据。
进一步的,上述方法中,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据包括:
所述主处理核从所述辅助处理核接收判断为正确的结果;
所述主处理核通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据。
进一步的,上述方法中,所述主处理核通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据包括:
主处理核向所述第一网络设备端或上一跳第二网络设备端发送第二确认号,所述第二确认号包括:传输正确的原始数据的存储地址之后紧邻的下一原始数据的字节起始序号。
根据本申请的另一面还提供一种第一网络设备,所述设备包括:
第一一装置,用于从数据中的原始数据计算出原始数据校验和;
第一二装置,用于将所述原始数据校验和添加到原始数据后面组成原始及校验和数据;
第一三装置,用于基于所述原始及校验和数据计算得到第三校验和数据,将第三校验和数据添加到报文中,并向第二网络设备发送所述报文。
进一步的,上述第一网络设备中,所述第一三装置,用于根据所述原始及校验和数据、数据头和原始及校验及数据的数据长度计算得到第三校验和数据。
进一步的,上述第一网络设备中,所述数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
根据本申请的另一面,还提供一种第二网络设备,所述设备包括:
第二一装置,用于从第一网络设备或上一跳第二网络设备接收报文,从所述报文的第三校验和数据中获取原始及校验和数据;
第二二装置,基于所述原始及校验和数据计算得到新的第三校验和数据,将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文。
进一步的,上述第二网络设备中,所述第二二装置,用于根据所述原始及校验和数据、新的数据头和原始及校验和数据的数据长度计算得到新的第三校验和数据。
进一步的,上述第二网络设备中,所述新的数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
进一步的,上述第二网络设备中,若第二网络设备进行的是TCP代理,所述设备还包括:
第二三装置,用于在向下一跳网络设备发送所述新的报文之后或同时,利用从第一网络设备或上一跳第二网络设备接收的报文中的第三校验和数判断该报文是否正确,
第二四装置,用于当所述第二三装置判断所述报文不正确,通知所述第一网络设备或上一跳第二网络设备重传该报文。
进一步的,上述第二网络设备中,包括:
所述第二一、二二和二四装置位于第二网络设备的主处理核上;
所述第二三装置位于第二网络设备的辅助处理核上。
进一步的,上述第二网络设备中,所述第二四装置,用于从所述第二三装置接收判断为不正确的结果,通知所述第一网络设备或上一跳第二网络设备重传该报文。
进一步的,上述第二网络设备中,所述第二四装置,用于向所述第一网络设备或上一跳第二网络设备发送第一确认号,所述第一确认号包括:所述待重传报文对应的原始数据的存储地址的字节起始序号。
进一步的,上述第二网络设备中,所述第二四装置,还用于在所述第二三装置判断报文正确之后,通知所述第一网络设备或上一跳第二网络设备删除该报文对应的原始数据。
进一步的,上述第二网络设备中,所述第二四装置,还用于从所述第二三装置接收判断为正确的结果,通知所述第一网络设备或上一跳第二网络设备删除该报文对应的原始数据。
进一步的,上述第二网络设备中,所述第二四装置,用于向所述第一网络设备或上一跳第二网络设备发送第二确认号,所述第二确认号包括:传输正确的原始数据的存储地址之后紧邻的下一原始数据的字节起始序号。
与现有技术相比,本申请通过将所述原始数据校验和(subchecksum1)添加到原始数据后面组成原始及校验和数据(subchecksum2),基于所述原始及校验和数据(subchecksum2)计算得到第三校验和数据(subchecksum3),将第三校验和数据添加到报文中,并向第二网络设备发送所述报文,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,或者基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并向第二网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP或UDP报文本身和使用通用方法处理得到的TCP或UDP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。
进一步的,本申请通过从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据(subchecksum3)中获取原始及校验和数据(subchecksum2),基于原始及校验和数据(subchecksum2)计算得到新的第三校验和数据(subchecksum3),将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始及校验和数据(subchecksum2),然后基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并下一跳网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1)。
进一步的,若第二网络设备进行的是TCP代理,本申请通过向下一跳网络设备发送所述新的报文之后或同时,利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数据(subchecksum3)判断该报文是否正确,若不正确,通知所述第一网络设备端或上一跳第二网络设备端重传该报文,由于被携带在数据中的数据部分校验和(subchecksum1)也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),以省去大量的计算工作量,然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,不用重新计算原始数据校验和(subchecksum1),另外,对于TCP代理的场景,因为采用接收端收到报文后即提取发送端携带在数据中的校验和作为数据部分的校验和,与新的数据头计算得到最终校验和即把数据发送出去的方式,减少了协议处理的延时,降低了代理服务器数据处理过程的CPU负载,它打破了通用的先进行协议处理,再转发数据的顺序,而是先进行数据转发,再进行协议处理,以有效减少代理的延时,可以正常对源设备进行数据响应、重传请求,不影响协议交互过程。
进一步的,本申请利用当前服务器多核CPU的并发性能,结合了类似流水线的处理方式,即利用多核优势,使用辅助处理核对接收到的数据进行校验和计算,同时主处理核可以进行新的报文接收处理,可以增大单TCP的吞吐性能。
进一步的,本申请利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文正确之后,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据,由于该原始数据后续不需要再进行重传,可从第一网络设备端或上一跳第二网络设备端删除,以节省第一网络设备端或上一跳第二网络设备端的数据存储空间。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出现有的校验和计算流程图;
图2示出根据本申请一个方面的一种第一网络设备端的辅助代理方法的流程图;
图3示第一网络设备端的辅助代理方法的的原理图;
图4示出根据本申请另一方面的第二网络设备端的代理方法的流程图;
图5示出第二网络设备端的代理方法的UDP代理原理图;
图6示出第二网络设备端的代理方法的TCP代理原理图;
图7示出根据本申请一个优选实施例的第二网络设备端的代理方法的方法流程图;
图8示出根据本申请另一个优选实施例的第二网络设备端的代理方法的方法流程图;
图9示出根据本申请又一个优选实施例的第二网络设备端的代理方法的方法流程图;
图10示出根据本申请再一个优选实施例的第二网络设备端的代理方法的方法流程图;
图11示出根据本申请一个方面的一种第一网络设备的结构图;
图12示出根据本申请一个方面的一种第二网络设备的结构图;
图13示出根据本申请一个优选实施例的第二网络设备的结构图;
图14示出根据本申请另一个优选实施例的第二网络设备的结构图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图2和3所示,本申请提供一种第一网络设备端的辅助代理方法,包括:
步骤S11:从数据中的原始数据(Data Bytes)计算出原始数据校验和(subchecksum1);具体的,这一步骤与现有的通用方法步骤S1一样;
步骤S12:将所述原始数据校验和(subchecksum1)添加到原始数据后面组成原始及校验和数据(subchecksum2);
步骤S13:基于所述原始及校验和数据(subchecksum2)计算得到第三校验和数据(subchecksum3),将第三校验和数据添加到报文中,并向第二网络设备发送所述报文。具体的,可将所述第三校验和数据添加到报文的报文头中,然后向第二网络设备发送包含所述报文头的报文。在此,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,或者基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并向第二网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP或UDP报文本身和使用通用方法处理得到的TCP或UDP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。
如图3所示,本申请的第一网络设备端的辅助代理方法的一优选的实施例中,步骤S13:基于所述原始及校验和数据(subchecksum2)计算得到第三校验和数据包括:
根据所述原始及校验和数据(subchecksum2)、数据头(Head Bytes)和原始及校验及数据的数据长度计算得到第三校验和数据(subchecksum3)。在此,不同于现有的普通TCP或UDP的校验和计算,这里数据长度是原始数据(Data Bytes)及原始数据校验和(subchecksum1)的长度之和。本领域技术人员应能理解上述计算第三校验和数据的描述仅为举例,其他现有的或今后可能出现的上述计算第三校验和数据的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的第一网络设备端的辅助代理方法的一可优选的实施例中,所述数据头(Head Bytes)包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。本领域技术人员应能理解上述数据头的描述仅为举例,其他现有的或今后可能出现的数据头的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图4、5和6所示,本申请还提供一种第二网络设备端的代理方法,包括:
步骤S21:从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据(subchecksum3)中获取原始及校验和数据(subchecksum2);
步骤S22:基于原始及校验和数据(subchecksum2)计算得到新的第三校验和数据(subchecksum3),将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文。在此,所述下一跳网络包括下一跳第二网络设备或其他网络设备。由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始及校验和数据(subchecksum2),然后基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并下一跳网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP或UDP报文本身和使用通用方法处理得到的TCP或UDP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。另外,向下一跳网络设备发送所述新的报文可能对应的是被重传的原始数据,具体参见后续步骤S23和步骤S24。
如图5和6所示,本申请的第二网络设备端的代理方法的一优选的实施例中,步骤S22:基于所述原始及校验和数据(subchecksum2)计算得到新的第三校验和数据(subchecksum3)包括:
根据原始及校验和数据(subchecksum2)、新的数据头(New Head Bytes)和原始及校验和数据的数据长度计算得到新的第三校验和数据(subchecksum3)。具体的,若第二网络设备进行的是UDP代理,如图5所示,若第二网络设备进行的是TCP代理,如图6所示,其中,图5和图6中的第三校验和数据(subchecksum3)的计算方式可以相同,两者的区别在于,在图6的TCP代理中第二网络设备分为主处理核和辐助处理核,第三校验和数据(subchecksum3)的计算由辐助处理核完成,以提高处理效率,具体参见后续实施例,在此不再赘述。本领域技术人员应能理解上述计算第三校验和数据的描述仅为举例,其他现有的或今后可能出现的上述计算第三校验和数据的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的第二网络设备端的代理方法的一可优选的实施例中,所述新的数据头(Head Bytes)包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。本领域技术人员应能理解上述数据头的描述仅为举例,其他现有的或今后可能出现的数据头的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图6和7所示,本申请的第二网络设备端的代理方法的一优选的实施例中,若第二网络设备进行的是TCP代理,步骤S22的向下一跳网络设备发送所述新的报文之后或同时,还包括:
步骤S23,利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数据(subchecksum3)判断该报文是否正确,
步骤S24,若不正确,通知所述第一网络设备端或上一跳第二网络设备端重传该报文。后续步骤可参考步骤S21和步骤S22。在此,由于被携带在数据中的数据部分校验和(subchecksum1)也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),以省去大量的计算工作量,然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP报文本身和使用通用方法处理得到的TCP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。另外,对于TCP代理的场景,本实施例因为采用接收端收到报文后即提取发送端携带在数据中的校验和作为数据部分的校验和,与新的数据头计算得到最终校验和即把数据发送出去的方式,减少了协议处理的延时,降低了代理服务器数据处理过程的CPU负载,它打破了通用的先进行协议处理,再转发数据的顺序,而是先进行数据转发,再进行协议处理,以有效减少代理的延时,可以正常对源设备进行数据响应、重传请求,不影响协议交互过程。
详细的,若第二网络设备进行的是UDP代理,第二网络设备并不会对接收到的数据进行任何的校验操作,即判断从报文是否正确第一网络设备端或上一跳第二网络设备端接收报文的任务不是由当前的第二网络设备端完成,而是由从第二网络设备端接收报文的下一跳网络设备完成,其只进行步骤S21和步骤S22操作,所以步骤S23和步骤S24仅是针对第二网络设备进行的是TCP代理的情况,不针对第二网络设备进行的是UDP代理的情况,因为TCP报文有应答机制,所以其处理过程要比UDP报文复杂,UDP报文是没有应答机制的,由第一网络设备端或当前第二网络设备的上一跳第二网络设备端和当前网络设备的下一跳网络设备来保证被丢失数据或者错误数据的重传,所以处于第一网络设备端或上一跳第二网络设备端和下一跳网络设备之间的中间代理设备即当前第二网络设备对校验和的计算意义不大,因为,如果当前第二网络设备对校验和进行计算,也仅仅可以确保错误的报文不会再发送到网络中,但这是以消耗当前第二网络设备的性能消耗换取的,所以本申请直接省略了中间代理设备对UDP校验和的计算过程,以避免对代理设备的CPU消耗和延时的产生。UDP代理中,对接收到的报文的准确性的校验完全依赖于下一跳网络设备,因为下一跳设备还是会按照通用的计算方法对数据进行校验,下一跳设备的处理流程不需做任何修改,所以校验的准确率并不会降低。
如图6所示,本申请的第二网络设备端的代理方法的一优选的实施例中,
上述步骤S21、步骤S22和步骤S24由第二网络设备端的主处理核进行;
上述步骤S23由第二网络设备端的辅助处理核进行;在此,利用当前服务器多核CPU的并发性能,结合了类似流水线的处理方式,即利用多核优势,使用辅助处理核对接收到的数据进行校验和计算,同时主处理核可以进行新的报文接收处理,可以增大单TCP的吞吐性能。
如图8所示,本申请的第二网络设备端的代理方法的一优选的实施例中,步骤S24中的通知所述第一网络设备端或上一跳第二网络设备端重传该报文,包括:
步骤S241,主处理核从所述辅助处理核接收判断为不正确的结果;在此,辅助处理核校验和计算结果得到后,回送给主处理核;
步骤S242,主处理核根据所述不正确的结果通知所述第一网络设备端或上一跳第二网络设备端重传该报文,从而保证第一网络设备端或上一跳第二网络设备端能够最终得到正确的报文。在此,对于TCP报文,接收端代理服务器的把对一个TCP流的处理过程分散到一个主处理核和多个辅助处理核上。主处理核完成数据转发及除校验和计算之外的协议处理工作,校验和计算过程分散到不同的辅助核完成,一方面,数据转发和协议处理主体过程都在一个主处理核上完成,控制过程比较简单,另一方面,因为把校验和计算过程剥离到辅助处理核,主处理核可以并发处理多个报文,从而对单个TCP的吞吐性能会有明显的提升。
本申请的第二网络设备端的代理方法的一优选的实施例中,步骤S242,主处理核通知所述第一网络设备端或上一跳第二网络设备端重传该报文,包括:
主处理核向所述第一网络设备端或上一跳第二网络设备端发送第一确认号,所述第一确认号包括:所述待重传报文对应的原始数据的存储地址的字节起始序号。后续所述第一网络设备端或上一跳第二网络设备根据字节起始序号获取原始数据,重新按步骤S21和步骤S22处理后,发送到下一跳网络设备。这里,主处理核根据校验结果进行协议栈相关处理,并对发送设备进行响应,如果校验结果是数据错误,则使用旧的数据序号即所述待重传报文对应的原始数据的存储地址的字节起始序号进行响应,远端设备即第一网络设备端或上一跳第二网络设备端在收到旧数据序号响应时,就会重传数据。
如图6和9所示,本申请的第二网络设备端的代理方法的一优选的实施例中,步骤S23,利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文是否正确之后,还包括:
步骤S25,若正确,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据,由于该原始数据后续不需要再进行重传,可从第一网络设备端或上一跳第二网络设备端删除,以节省第一网络设备端或上一跳第二网络设备端的数据存储空间。在此,步骤S25可由第二网络设备的主处理核的完成。
如图10所示,本申请的第二网络设备端的代理方法的一优选的实施例中,步骤S25中的通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据包括:
步骤S251,所述主处理核从所述辅助处理核接收判断为正确的结果;
步骤S252,所述主处理核根据所述正确的结果通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据。
本申请的第二网络设备端的代理方法的一优选的实施例中,步骤S252,主处理核通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据包括:
主处理核向所述第一网络设备端或上一跳第二网络设备端发送第二确认号,所述第二确认号包括:传输正确的原始数据的存储地址之后紧邻的下一原始数据的字节起始序号。在此,主处理核根据校验结果进行协议栈相关处理,并对发送设备进行响应,如果校验结果是数据正确,使用新的数据序号即传输正确的原始数据的存储地址之后紧邻的下一待传输的原始数据的字节起始序号进行响应。后续所述第一网络设备端或上一跳第二网络设备根据下一原始数据的字节起始序号即可判断上一原始数据传输正确,不需要再重传,可以从该第一网络设备端或上一跳第二网络设备端删除,以节省该第一网络设备端或上一跳第二网络设备端的存储空间,后续下一原始数据可重新按步骤S21和步骤S22处理后,发送到下一跳网络设备。
根据本申请的另一面,如图11所示,一种第一网络设备100,其中,所述设备100包括:
第一一装置11,用于从数据中的原始数据(Data Bytes)计算出原始数据校验和(subchecksum1);
第一二装置12,用于将所述原始数据校验和(subchecksum1)添加到原始数据后面组成原始及校验和数据(subchecksum2);
第一三装置13,用于基于所述原始及校验和数据(subchecksum2)计算得到第三校验和数据(subchecksum3),将第三校验和数据添加到报文中,并向第二网络设备发送所述报文。具体的,可将所述第三校验和数据添加到报文的报文头中,然后向第二网络设备发送包含所述报文头的报文。在此,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,或者基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并向第二网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP或UDP报文本身和使用通用方法处理得到的TCP或UDP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。
本申请的第一网络设备一优选的实施例中,所述第一三装置13,用于根据所述原始及校验和数据(subchecksum2)、数据头(Head Bytes)和原始及校验及数据的数据长度计算得到第三校验和数据(subchecksum3)。在此,不同于现有的普通TCP或UDP的校验和计算,这里数据长度是原始数据(Data Bytes)及原始数据校验和(subchecksum1)的长度之和。本领域技术人员应能理解上述计算第三校验和数据的描述仅为举例,其他现有的或今后可能出现的上述计算第三校验和数据的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的第一网络设备一优选的实施例中,所述数据头(Head Bytes)包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。本领域技术人员应能理解上述数据头的描述仅为举例,其他现有的或今后可能出现的数据头的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
根据本申请的另一面,如图12所示,还提供一种第二网络设备200,其中,所述设备包括:
第二一装置21,用于从第一网络设备100或上一跳第二网络设备200接收报文,从所述报文的第三校验和数据(subchecksum3)中获取原始及校验和数据(subchecksum2);
第二二装置22,基于所述原始及校验和数据(subchecksum2)计算得到新的第三校验和数据(subchecksum3),将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文。在此,所述下一跳网络包括下一跳第二网络设备或其他网络设备。由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始及校验和数据(subchecksum2),然后基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并下一跳网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP或UDP报文本身和使用通用方法处理得到的TCP或UDP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。另外,向下一跳网络设备发送所述新的报文可能对应的是被重传的原始数据,具体参见后续第二三装置23和第二四装置24。
本申请的第二网络设备一优选的实施例中,所述第二二装置22,用于根据所述原始及校验和数据、新的数据头和原始及校验和数据的数据长度计算得到新的第三校验和数据。具体的,若第二网络设备进行的是UDP代理,如图5所示,若第二网络设备进行的是TCP代理,如图6所示,其中,图5和图6中的第三校验和数据(subchecksum3)的计算方式可以相同,两者的区别在于,在图6的TCP代理中第二网络设备分为主处理核和辐助处理核,第三校验和数据(subchecksum3)的计算由辐助处理核完成,以提高处理效率,具体参见后续实施例,在此不再赘述。本领域技术人员应能理解上述计算第三校验和数据的描述仅为举例,其他现有的或今后可能出现的上述计算第三校验和数据的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的第二网络设备一优选的实施例中,所述新的数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。本领域技术人员应能理解上述数据头的描述仅为举例,其他现有的或今后可能出现的数据头的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的第二网络设备一优选的实施例中,如图13所示,若第二网络设备进行的是TCP代理,所述设备200还包括:
第二三装置23,用于在向下一跳网络设备发送所述新的报文之后或同时,利用从第一网络设备或上一跳第二网络设备接收的报文中的第三校验和数判断该报文是否正确,
第二四装置24,用于当所述第二三装置判断所述报文不正确,通知所述第一网络设备或上一跳第二网络设备重传该报文。在此,由于被携带在数据中的数据部分校验和(subchecksum1)也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),以省去大量的计算工作量,然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP报文本身和使用通用方法处理得到的TCP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。另外,对于TCP代理的场景,本实施例因为采用接收端收到报文后即提取发送端携带在数据中的校验和作为数据部分的校验和,与新的数据头计算得到最终校验和即把数据发送出去的方式,减少了协议处理的延时,降低了代理服务器数据处理过程的CPU负载,它打破了通用的先进行协议处理,再转发数据的顺序,而是先进行数据转发,再进行协议处理,以有效减少代理的延时,可以正常对源设备进行数据响应、重传请求,不影响协议交互过程。
详细的,若第二网络设备进行的是UDP代理,第二网络设备并不会对接收到的数据进行任何的校验操作,即判断从报文是否正确第一网络设备或上一跳第二网络设备接收报文的任务不是由当前的第二网络设备完成,而是由从第二网络设备接收报文的下一跳网络设备完成,其只由第二一装置21和第二二装置22进行操作,所以第二三装置23和第二四装置24仅是针对第二网络设备进行的是TCP代理的情况,不针对第二网络设备进行的是UDP代理的情况,因为TCP报文有应答机制,所以其处理过程要比UDP报文复杂,UDP报文是没有应答机制的,由第一网络设备或当前第二网络设备的上一跳第二网络设备和当前网络设备的下一跳网络设备来保证被丢失数据或者错误数据的重传,所以处于第一网络设备或上一跳第二网络设备和下一跳网络设备之间的中间代理设备即当前第二网络设备对校验和的计算意义不大,因为,如果当前第二网络设备对校验和进行计算,也仅仅可以确保错误的报文不会再发送到网络中,但这是以消耗当前第二网络设备的性能消耗换取的,所以本申请直接省略了中间代理设备对UDP校验和的计算过程,以避免对代理设备的CPU消耗和延时的产生。UDP代理中,对接收到的报文的准确性的校验完全依赖于下一跳网络设备,因为下一跳设备还是会按照通用的计算方法对数据进行校验,下一跳设备的处理流程不需做任何修改,所以校验的准确率并不会降低。
本申请的第二网络设备一优选的实施例中,如图14所示,
所述第二一、二二和二四装置21、22、24位于第二网络设备200的主处理核上201;
所述第二三装置23位于第二网络设备200的辅助处理核202上。在此,利用当前服务器多核CPU的并发性能,结合了类似流水线的处理方式,即利用多核优势,使用辅助处理核对接收到的数据进行校验和计算,同时主处理核可以进行新的报文接收处理,可以增大单TCP的吞吐性能。
本申请的第二网络设备一优选的实施例中,所述第二四装置24,用于从所述第二三装置23接收判断为不正确的结果,通知所述第一网络设备或上一跳第二网络设备重传该报文,从而保证第一网络设备或上一跳第二网络设备能够最终得到正确的报文。在此,所述二三装置23可位于辅助处理核上,所述二四装置24位于主处理核上。对于TCP报文,接收端代理服务器的把对一个TCP流的处理过程分散到一个主处理核和多个辅助处理核上。主处理核完成数据转发及除校验和计算之外的协议处理工作,校验和计算过程分散到不同的辅助核完成,一方面,数据转发和协议处理主体过程都在一个主处理核上完成,控制过程比较简单,另一方面,因为把校验和计算过程剥离到辅助处理核,主处理核可以并发处理多个报文,从而对单个TCP的吞吐性能会有明显的提升。
本申请的第二网络设备一优选的实施例中,所述第二四装置24,用于向所述第一网络设备或上一跳第二网络设备发送第一确认号,所述第一确认号包括:所述待重传报文对应的原始数据的存储地址的字节起始序号。后续所述第一网络设备或上一跳第二网络设备根据字节起始序号获取原始数据,重新经第二一装置21和第二二装置22处理后,发送到下一跳网络设备。这里,主处理核根据校验结果进行协议栈相关处理,并对发送设备进行响应,如果校验结果是数据错误,则使用旧的数据序号即所述待重传报文对应的原始数据的存储地址的字节起始序号进行响应,远端设备即第一网络设备或上一跳第二网络设备在收到旧数据序号响应时,就会重传数据。
本申请的第二网络设备一优选的实施例中,所述第二四装置24,还用于在所述第二三装置23判断报文正确之后,通知所述第一网络设备或上一跳第二网络设备删除该报文对应的原始数据。由于该原始数据后续不需要再进行重传,可从第一网络设备或上一跳第二网络设备删除,以节省第一网络设备或上一跳第二网络设备的数据存储空间。
本申请的第二网络设备一优选的实施例中,所述第二四装置24,用于从所述第二三装置23接收判断为正确的结果,通知所述第一网络设备或上一跳第二网络设备删除该报文对应的原始数据。
本申请的第二网络设备一优选的实施例中,所述第二四装置24,用于向所述第一网络设备或上一跳第二网络设备发送第二确认号,所述第二确认号包括:传输正确的原始数据的存储地址之后紧邻的下一原始数据的字节起始序号。
综上所述,本申请通过将所述原始数据校验和(subchecksum1)添加到原始数据后面组成原始及校验和数据(subchecksum2),基于所述原始及校验和数据(subchecksum2)计算得到第三校验和数据(subchecksum3),将第三校验和数据添加到报文中,并向第二网络设备发送所述报文,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,或者基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并向第二网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1),处理得到的TCP或UDP报文本身和使用通用方法处理得到的TCP或UDP报文在协议层面上没有任何的差异,即使报文在中间的其它设备上被处理(如防火墙处理),报文的协议合法性完全可以保证,可以节省大量计算原始数据校验和(subchecksum1)的时间和CPU消耗,从而,在不改变TCPIP协议栈本身,且保证数据正确性的条件下,减少甚至消除校验和计算过程在第二网络设备如代理服务器上造成的时延和CPU消耗。
进一步的,本申请通过从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据(subchecksum3)中获取原始及校验和数据(subchecksum2),基于原始及校验和数据(subchecksum2)计算得到新的第三校验和数据(subchecksum3),将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文,由于被携带在数据中的数据部分校验和也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),省去了大量的计算工作量,后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始及校验和数据(subchecksum2),然后基于原始及校验和数据(subchecksum2)快速生成新的第三校验和数据并添加到报文中,并下一跳网络设备发送所述报文,不用重新计算原始数据校验和(subchecksum1)。
进一步的,若第二网络设备进行的是TCP代理,本申请通过向下一跳网络设备发送所述新的报文之后或同时,利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数据(subchecksum3)判断该报文是否正确,若不正确,通知所述第一网络设备端或上一跳第二网络设备端重传该报文,由于被携带在数据中的数据部分校验和(subchecksum1)也作为数据的一部分,参与到数据校验计算中,得到最终的校验和,第三校验和数据(subchecksum3)中直接包含了原始数据校验和(subchecksum1),后续第二网络设备(接收端)接收到报文后,可以迅速从报文中提取原始数据校验和(subchecksum1),以省去大量的计算工作量,然后基于原始数据校验和(subchecksum1)快速判断接收到的报文是否正确,不用重新计算原始数据校验和(subchecksum1),另外,对于TCP代理的场景,因为采用接收端收到报文后即提取发送端携带在数据中的校验和作为数据部分的校验和,与新的数据头计算得到最终校验和即把数据发送出去的方式,减少了协议处理的延时,降低了代理服务器数据处理过程的CPU负载,它打破了通用的先进行协议处理,再转发数据的顺序,而是先进行数据转发,再进行协议处理,以有效减少代理的延时,可以正常对源设备进行数据响应、重传请求,不影响协议交互过程。
进一步的,本申请利用当前服务器多核CPU的并发性能,结合了类似流水线的处理方式,即利用多核优势,使用辅助处理核对接收到的数据进行校验和计算,同时主处理核可以进行新的报文接收处理,可以增大单TCP的吞吐性能。
进一步的,本申请利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文正确之后,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据,由于该原始数据后续不需要再进行重传,可从第一网络设备端或上一跳第二网络设备端删除,以节省第一网络设备端或上一跳第二网络设备端的数据存储空间。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (22)

1.一种第一网络设备端的辅助代理方法,其中,该方法包括:
从数据中的原始数据计算出原始数据校验和;
将所述原始数据校验和添加到原始数据后面组成原始及校验和数据;
基于所述原始及校验和数据计算得到第三校验和数据,将第三校验和数据添加到报文中,并向第二网络设备发送所述报文,其中,所述基于所述原始及校验和数据计算得到第三校验和数据包括:根据所述原始及校验和数据、数据头和原始及校验和数据的数据长度计算得到第三校验和数据。
2.如权利要求1所述的方法,其中,所述数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
3.一种第二网络设备端的代理方法,其中,该方法包括:
从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据中获取原始及校验和数据;
基于所述原始及校验和数据计算得到新的第三校验和数据,将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文;其中,所述基于所述原始及校验和数据计算得到新的第三校验和数据包括:根据所述原始及校验和数据、新的数据头和原始及校验和数据的数据长度计算得到第三校验和数据。
4.如权利要求3所述的方法,其中,所述新的数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
5.如权利要求3所述的方法,其中,若第二网络设备进行的是TCP代理,向下一跳网络设备发送所述新的报文之后或同时,还包括:
利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数据判断该报文是否正确,
若不正确,通知所述第一网络设备端或上一跳第二网络设备端重传该报文。
6.如权利要求5所述的方法,其中,包括:
第二网络设备的主处理核从第一网络设备端或上一跳第二网络设备端接收报文,从所述报文的第三校验和数据中获取原始及校验和数据,基于所述原始及校验和数据计算得到新的第三校验和数据,将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文;
第二网络设备的辅助处理核利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文是否正确;
第二网络设备的主处理核在辅助处理核判断该报文不正确时,通知所述第一网络设备端或上一跳第二网络设备端重传该报文。
7.如权利要求6所述的方法,其中,通知所述第一网络设备端或上一跳第二网络设备端重传该报文,包括:
主处理核从所述辅助处理核接收判断为不正确的结果;
主处理核通知所述第一网络设备端或上一跳第二网络设备端重传该报文。
8.如权利要求7所述的方法,其中,主处理核通知所述第一网络设备端或上一跳第二网络设备端重传该报文,包括:
主处理核向所述第一网络设备端或上一跳第二网络设备端发送第一确认号,所述第一确认号包括:待重传报文对应的原始数据的存储地址的字节起始序号。
9.如权利要求6至8中任一项所述的方法,其中,利用从第一网络设备端或上一跳第二网络设备端接收的报文中的第三校验和数判断该报文是否正确之后,还包括:
若正确,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据。
10.如权利要求9所述的方法,其中,通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据包括:
所述主处理核从所述辅助处理核接收判断为正确的结果;
所述主处理核通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据。
11.如权利要求10所述的方法,其中,所述主处理核通知所述第一网络设备端或上一跳第二网络设备端删除该报文对应的原始数据包括:
主处理核向所述第一网络设备端或上一跳第二网络设备端发送第二确认号,所述第二确认号包括:传输正确的原始数据的存储地址之后紧邻的下一原始数据的字节起始序号。
12.一种第一网络设备,其中,所述设备包括:
第一一装置,用于从数据中的原始数据计算出原始数据校验和;
第一二装置,用于将所述原始数据校验和添加到原始数据后面组成原始及校验和数据;
第一三装置,用于基于所述原始及校验和数据计算得到第三校验和数据,将第三校验和数据添加到报文中,并向第二网络设备发送所述报文,其中,所述第一三装置,用于根据所述原始及校验和数据、数据头和原始及校验和数据的数据长度计算得到第三校验和数据。
13.如权利要求12所述的设备,其中,所述数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
14.一种第二网络设备,其中,所述设备包括:
第二一装置,用于从第一网络设备或上一跳第二网络设备接收报文,从所述报文的第三校验和数据中获取原始及校验和数据;
第二二装置,基于所述原始及校验和数据计算得到新的第三校验和数据,将新的第三校验和数据添加到新的报文中,并向下一跳网络设备发送所述新的报文;其中,所述第二二装置,用于根据所述原始及校验和数据、新的数据头和原始及校验和数据的数据长度计算得到新的第三校验和数据。
15.如权利要求14所述的设备,其中,所述新的数据头包括:源IP字段、目的IP字段、TCP或UDP的协议号字段。
16.如权利要求14所述的设备,其中,若第二网络设备进行的是TCP代理,所述设备还包括:
第二三装置,用于在向下一跳网络设备发送所述新的报文之后或同时,利用从第一网络设备或上一跳第二网络设备接收的报文中的第三校验和数判断该报文是否正确,
第二四装置,用于当所述第二三装置判断所述报文不正确,通知所述第一网络设备或上一跳第二网络设备重传该报文。
17.如权利要求16所述的设备,其中,包括:
所述第二一、二二和二四装置位于第二网络设备的主处理核上;
所述第二三装置位于第二网络设备的辅助处理核上。
18.如权利要求16所述的设备,其中,所述第二四装置,用于从所述第二三装置接收判断为不正确的结果,通知所述第一网络设备或上一跳第二网络设备重传该报文。
19.如权利要求18所述的设备,其中,所述第二四装置,用于向所述第一网络设备或上一跳第二网络设备发送第一确认号,所述第一确认号包括:待重传报文对应的原始数据的存储地址的字节起始序号。
20.如权利要求16所述的设备,其中,所述第二四装置,还用于在所述第二三装置判断报文正确之后,通知所述第一网络设备或上一跳第二网络设备删除该报文对应的原始数据。
21.如权利要求20所述的设备,其中,所述第二四装置,还用于从所述第二三装置接收判断为正确的结果,通知所述第一网络设备或上一跳第二网络设备删除该报文对应的原始数据。
22.如权利要求21所述的设备,其中,所述第二四装置,用于向所述第一网络设备或上一跳第二网络设备发送第二确认号,所述第二确认号包括:传输正确的原始数据的存储地址之后紧邻的下一原始数据的字节起始序号。
CN201510318980.4A 2015-06-11 2015-06-11 代理方法、辅助代理方法与设备 Active CN106302364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510318980.4A CN106302364B (zh) 2015-06-11 2015-06-11 代理方法、辅助代理方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510318980.4A CN106302364B (zh) 2015-06-11 2015-06-11 代理方法、辅助代理方法与设备

Publications (2)

Publication Number Publication Date
CN106302364A CN106302364A (zh) 2017-01-04
CN106302364B true CN106302364B (zh) 2020-03-24

Family

ID=57660213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510318980.4A Active CN106302364B (zh) 2015-06-11 2015-06-11 代理方法、辅助代理方法与设备

Country Status (1)

Country Link
CN (1) CN106302364B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270520B (zh) * 2018-01-31 2020-08-28 杜民 报文传输方法、装置、存储介质及计算机设备
CN110445583B (zh) * 2019-08-12 2022-05-17 珠海市伟高变频科技有限公司 数据传输的校验方法、校验系统及计算机可读存储介质
CN113824668B (zh) * 2020-06-08 2023-04-25 威海北洋电气集团股份有限公司 网络协议包封装方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4344576B2 (ja) * 2003-09-26 2009-10-14 株式会社ルネサステクノロジ パケット通信装置
CN101860904B (zh) * 2009-04-07 2012-11-07 上海摩波彼克半导体有限公司 基于数据包ip头压缩技术实现校验和计算的方法
CN102523205A (zh) * 2011-12-05 2012-06-27 中兴通讯股份有限公司 内容校验和的确定方法及装置
CN103001827B (zh) * 2012-11-30 2015-09-23 无锡众志和达数据计算股份有限公司 基于万兆网卡的以太网包检验和fpga硬件校验方法
US9490939B2 (en) * 2013-10-07 2016-11-08 Electronics And Telecommunications Research Instit Apparatus and method for calculating transmission control protocol checksum
US8806011B1 (en) * 2014-01-06 2014-08-12 Cloudflare, Inc. Transparent bridging of transmission control protocol (TCP) connections

Also Published As

Publication number Publication date
CN106302364A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
US9130991B2 (en) Processing data packets in performance enhancing proxy (PEP) environment
US10798199B2 (en) Network traffic accelerator
US10891253B2 (en) Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
US20170054640A1 (en) Device and method for establishing connection in load-balancing system
US20120136945A1 (en) Terminal and intermediate node in content oriented networking environment and communication method of terminal and intermediate node
WO2018121742A1 (zh) 一种流数据的传输方法和装置
CN106302364B (zh) 代理方法、辅助代理方法与设备
CN107995233B (zh) 建立连接的方法及相应的设备
WO2022105730A1 (zh) 一种保障sctp协议多归属报文同源同宿的方法和装置
US20070291782A1 (en) Acknowledgement filtering
WO2023221452A1 (zh) 报文处理系统、方法、设备和存储介质
US9240952B2 (en) System and method for communication between networked applications
CN111181698B (zh) 数据处理方法、装置、设备及介质
CN113553184A (zh) 一种实现负载均衡的方法、装置、电子设备和可读存储介质
EP3065323B1 (en) Transmission method and device based on management data input/output multi-source agreements
CN111585834A (zh) 一种网络信息的存储方法和装置
CN111836233A (zh) 数据传输方法、通信设备和存储介质
WO2019119269A1 (zh) 一种网络故障探测方法及控制中心设备
CN111865811B (zh) 一种数据处理方法、装置、设备及介质
US10979356B2 (en) Communication method and communication system
US20200336432A1 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
US10372667B2 (en) Communication apparatus and control method thereof
CN111478864A (zh) 数据包的处理方法、装置、电子设备及存储介质
CN109495330B (zh) 一种实现udp拦截测试的方法及装置
CN113364790B (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