CN110830381A - 拥塞控制方法及相关设备 - Google Patents

拥塞控制方法及相关设备 Download PDF

Info

Publication number
CN110830381A
CN110830381A CN201810909011.XA CN201810909011A CN110830381A CN 110830381 A CN110830381 A CN 110830381A CN 201810909011 A CN201810909011 A CN 201810909011A CN 110830381 A CN110830381 A CN 110830381A
Authority
CN
China
Prior art keywords
congestion control
cpu
target
toe
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.)
Granted
Application number
CN201810909011.XA
Other languages
English (en)
Other versions
CN110830381B (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 CN201810909011.XA priority Critical patent/CN110830381B/zh
Priority to PCT/CN2019/097031 priority patent/WO2020029778A1/zh
Priority to EP19846327.5A priority patent/EP3826244B1/en
Publication of CN110830381A publication Critical patent/CN110830381A/zh
Priority to US17/172,084 priority patent/US11546261B2/en
Application granted granted Critical
Publication of CN110830381B publication Critical patent/CN110830381B/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种拥塞控制方法及相关设备。传输控制协议卸载引擎TOE向中央处理器CPU发送拥塞控制通知,该拥塞控制通知指示该CPU获取目标参数,该目标参数用于该CPU生成拥塞控制计算结果;该TOE获取该CPU返回的该拥塞控制计算结果,其中,该拥塞控制计算结果包括拥塞控制窗口值;该TOE根据该拥塞控制窗口值发送报文。本申请由TOE和CPU共同实现拥塞控制。当出现新型拥塞控制算法时,可以不改变TOE的结构而应用该新的拥塞算法,因此,本申请能够缩短拥塞控制算法的升级周期,提高灵活性。

Description

拥塞控制方法及相关设备
技术领域
本申请涉及计算机通信领域,尤其涉及一种拥塞控制方法及相关设备。
背景技术
目前互联网采用的是报文交换网络,为了防止网络拥塞,目前提出了一系列基于传输控制协议(Transmission Control Protocol,TCP)的拥塞控制算法。不同的算法有自己的优化特性、适应环境和优缺点。目前尚未发现一个拥塞控制算法可以覆盖所有场景,同时新型的拥塞控制算法也在不断出现。
为了提高拥塞控制的效率,传输控制协议卸载引擎(TCP offload engine,TOE)将拥塞控制算法固化到硬件上。即在发送报文的过程中,根据硬件TOE中固化的拥塞控制算法控制报文发送的速率。
但由于硬件开发周期长,当出现新的拥塞控制算法时,需要较长时间才能生产出支持新型拥塞控制算法的硬件TOE,因此,现有的拥塞控制方案升级周期长,灵活性差。
发明内容
本申请提供了一种拥塞控制方法及相关设备,用于当出现新型拥塞控制算法时,可以迅速的实现拥塞控制算法的升级,以缩短拥塞控制算法的升级周期,提高灵活性。
第一方面,本申请实施例提供了一种拥塞控制方法。
当传输控制协议卸载引擎TOE接收到确认ACK报文后,可以向中央处理器CPU发送拥塞控制通知,该拥塞控制通知指示该CPU获取目标参数,该目标参数用于该CPU生成拥塞控制计算结果。
该TOE获取该CPU返回的该拥塞控制计算结果,其中,该拥塞控制计算结果包括拥塞控制窗口值,该拥塞控制计算结果还可以包括报文发送速率。
由于该拥塞控制计算结果包括拥塞控制窗口值,该TOE可以根据该拥塞控制窗口值确定发送报文的负荷长度,若该拥塞控制计算结果还包括报文发送速率,则该TOE还可以根据该报文发送速率调整发送两个相邻报文之间的时间间隔,该TOE根据该负荷长度和时间间隔发送报文。
本申请中,TOE向CPU发送拥塞控制通知,,并接收CPU根据该拥塞控制通知生成的拥塞控制计算结果,其中,拥塞控制计算结果包括拥塞控制窗口值。该TOE根据该拥塞控制窗口值调整待发送报文的实际长度。本方案中由CPU计算生成拥塞控制窗口值,也即拥塞控制算法运行于软件上,由于软件更新速度快,当出现新型拥塞控制算法时,可迅速实现拥塞控制算法的升级,提高了拥塞控制算法更新的灵活性;而且,在得到拥塞控制窗口值后,由硬件TOE调整待发送报文的实际长度,由于硬件的处理速度快,提高了整个拥塞控制过程的效率。
可选地,当该TOE接收到确认ACK报文后,可以确定该ACK报文归属的目标TCP连接,由于目标参数为对目标TCP连接进行拥塞控制算法计算时所必须的参数,该TOE获取与该目标TCP连接对应的目标传输控制块TCB,也即获取到了与该目标参数对应的该目标TCB,该目标TCB包含该报文接收和发送过程中所产生的参数,其中,该目标TCB包含第一标志位,该第一标志位用于指示是否需要该CPU参与拥塞控制。
若该第一标志位指示需要该CPU参与拥塞控制,则该TOE向该CPU发送该拥塞控制通知。
本实施方式中,硬件TOE上已经固化了部分拥塞控制算法,软件CPU上也配置有另一部分拥塞控制算法,本申请中可以根据硬件TOE和软件CPU上实际配置的拥塞控制算法的情况来决定是否需要CPU参与拥塞控制,从而避免了已经固化到硬件TOE上的部分拥塞控制算法的浪费,又可以实现采用最优的拥塞控制算法进行拥塞计算。
可选地,该拥塞控制通知用于供该CPU获取与该目标参数对应的目标TCB,并从该目标TCB中提取该目标参数。
本实施方式中,由于拥塞控制算法处于不断更新升级中,CPU进行拥塞控制计算所需要的目标参数可能不断发生变化,本申请中TOE不需要考虑目标参数的变更,仅需将与目标参数对应的整个目标TCB传递给CPU,由CPU从目标TCB中获取所需的目标参数,简化了硬件TOE的执行逻辑。
可选地,该TOE向中央处理器CPU发送拥塞控制通知,包括:
由于该TOE维护有包含目标参数的目标TCB,该TOE可以在确定该目标TCB所在的存储空间之后,向该CPU发送第一POE消息,该第一POE消息用于指示该CPU进行拥塞控制计算,该第一POE消息包含该目标TCB的存储空间的第一首地址,该第一首地址用于供该CPU读取该目标TCB,以获得该目标TCB中包含的该目标参数。
本实施方式中,向该CPU发送的第一POE消息中仅需要携带有目标TCB的存储空间的第一首地址,由CPU根据该第一首地址直接读取目标TCB,从而避免了TOE读取目标TCB后再拷贝到第一POE消息的过程,减少了TOE的工作量。
可选地,该TOE向中央处理器CPU发送拥塞控制通知,包括:
由于该TOE维护有包含目标参数的目标TCB,该TOE可以读取该目标TCB,并向该CPU发送第二POE消息,该第二POE消息用于指示该CPU进行拥塞控制计算,该第二POE消息中携带有该目标TCB,该目标TCB包括该目标参数,以使该CPU从该第二POE消息携带的该目标TCB中获取该目标参数。
本实施方式中,第二POE消息中直接携带有目标TCB,由硬件TOE到目标TCB的存储空间中读取到目标TCB后,直接告知CPU,由于硬件处理速度快,可以提高拥塞控制过程的处理效率。
可选地,该拥塞控制通知用于供该CPU仅获取该目标参数。
本实施方式中,TOE发送的拥塞控制通知用于供CPU仅获取目标参数,也即仅获取进行拥塞控制计算所必须的参数,减少了该拥塞控制通知的长度,降低了CPU进行内存访问的带宽。
可选地,该TOE向中央处理器CPU发送拥塞控制通知,包括:
由于该TOE维护有包含目标参数的目标TCB,该TOE可以在遍历目标TCB之后,确定该目标参数所占用的存储空间,该TOE向该CPU发送第三POE消息,该第三POE消息用于指示该CPU进行拥塞控制计算,其中,该第三POE消息包含该目标参数的存储空间的第二首地址,该第二首地址用于供该CPU获取该目标参数。
本实施方式中,将目标参数的存储空间的第二首地址发送给CPU,由CPU根据第二首地址直接内存读取目标参数,节省了TOE读取和拷贝目标参数的步骤,减少了TOE的工作量。
可选地,该TOE向中央处理器CPU发送拥塞控制通知,包括:
由于该TOE维护有包含目标参数的目标TCB,该TOE可以在读取该目标TCB中包含的目标参数,该TOE可以向该CPU发送第四POE消息,该第四POE消息用于指示该CPU进行拥塞控制计算,其中,该第四POE消息中携带有该目标参数。
本实施方式中,向CPU发送的第四POE消息中直接携带有该目标参数,则CPU可以在接接收到第四POE消息后直接进行拥塞控制算法计算,提高了本方案的可行性。
可选地,该目标TCB还包含第二标志位和该目标参数;
若该第二标志位指示将该目标TCB传送给该CPU,该拥塞控制通知包括第五POE消息,该第五POE消息用于供该CPU获取该目标TCB,并从该目标TCB中提取该目标参数。
若该第二标志位指示仅将该目标参数传送给该CPU,该拥塞控制通知包括第六POE消息,该第六POE消息用于供该CPU仅获取该目标参数。
本实施方式中,该目标TCB还包含第二标志位,TOE上配置了实现拥塞控制通知的两种作用的硬件逻辑,可以通过修改第二标志位在上述两种硬件逻辑之间进行切换,提高了本方案的实现灵活性。
本实施方式中,该TOE获取该CPU返回的拥塞控制计算结果,包括:
该TOE接收该CPU返回的第七POE消息,该第七POE消息中携带有该拥塞控制计算结果,则该TOE可以从该第七POE消息中直接提取该拥塞控制计算结果。
该TOE接收该CPU返回的第八POE消息,该第八POE消息用于指示该拥塞控制计算结果已被该CPU写入到该目标TCB中,由于该目标TCB由该TOE维护,则该TOE在接收到该第八POE消息后,可以从该目标TCB中读取该拥塞控制计算结果。
该TOE接收该CPU返回的第九POE消息,该第九POE消息包含该拥塞控制计算结果的存储位置的第三首地址,该TOE以该第三首地址作为起始位置读取该拥塞控制计算结果。
本实施方式中,提供了多种拥塞控制计算结果的返回方式,提高了本方案的实现可能性,增强了本方案的灵活性。
可选地,该TOE和该CPU可以共同使用该第一缓存空间,由于该TOE维护有目标TCB,则该TOE可以将该目标TCB写入该第一缓存空间。
该向中央处理器CPU发送拥塞控制通知,包括:该TOE可以向该CPU发送第一通知,该第一通知用于告知该CPU进行拥塞控制算法计算,以使该CPU从该第一缓存空间中读取该目标TCB,其中,该第一通知可以为特殊类型的电信号。
该接收该CPU返回的拥塞控制计算结果,包括:该TOE和该CPU可以共同使用该第二缓存空间,其中,该第二缓存空间中存储有拥塞控制计算结果,该TOE接收该CPU返回的第二通知后,可以获知需要读取该拥塞控制计算结果,从而从该第二缓存空间中读取该拥塞控制计算结果。
本实施方式中,TOE和CPU共享缓存空间,则TOE将目标TCB写入第一缓存空间后,仅需向CPU发送读取目标TCB的第一通知,CPU可主动从该第一缓存空间中读取该目标TCB,在接收到读取该拥塞控制计算结果的第二通知后,TOE可主动从该第二缓存空间中读取该拥塞控制计算结果,提供了更多的TOE和CPU之间的交互方式,增加了本方案的实现灵活性。
可选地,该TOE和该CPU可以共同使用该第三缓存空间,由于该TOE维护有目标TCB,则该TOE可以从目标TCB中读取到该目标参数,并将该目标参数写入第三缓存空间。
该向中央处理器CPU发送拥塞控制通知,包括:该TOE可以向该CPU发送第三通知,该第三通知用于告知该CPU进行拥塞控制算法计算,以使该CPU从该第三缓存空间中读取该目标参数,其中,该第三通知可以为特殊类型的电信号。
该接收该CPU返回的拥塞控制计算结果,包括:该TOE和该CPU可以共同使用该第二缓存空间,其中,该第二缓存空间中存储有拥塞控制计算结果,该TOE接收该CPU返回的第二通知后,可以获知需要读取该拥塞控制计算结果,从而从该第二缓存空间中读取该拥塞控制计算结果。
本实施方式中,TOE和CPU共享缓存空间,则TOE将目标TCB写入第一缓存空间后,仅需向CPU发送读取目标参数的第一通知,CPU可主动从该第一缓存空间中读取该目标参数,在接收到读取该拥塞控制计算结果的第二通知后,TOE可主动从该第二缓存空间中读取该拥塞控制计算结果,提供了更多的TOE和CPU之间的交互方式,增加了本方案的实现灵活性。
第二方面,本申请实施例提供了一种传输控制协议卸载引擎,该传输控制协议卸载引擎执行如前述第一方面中所述的方法,该传输控制协议卸载引擎包括:
处理器、存储器、第一接口以及第二接口;
该处理器用于通过该第一接口向中央处理器CPU发送拥塞控制通知,该拥塞控制通知指示该CPU获取目标参数,该目标参数用于该CPU生成拥塞控制计算结果;
该处理器用于通过该第一接口获取该CPU返回的该拥塞控制计算结果,其中,该拥塞控制计算结果包括拥塞控制窗口值;
该存储器用于存储该拥塞控制窗口值;
该处理器用于根据存储器中存储的该拥塞控制窗口值通过所述第二接口发送报文。
本申请中,TOE通过第一接口向CPU发送拥塞控制通知,以指示CPU获取到进行拥塞控制算法计算时所需的目标参数,并通过该第一接口接收CPU根据该目标参数生成的拥塞控制计算结果,其中,拥塞控制计算结果至少包括拥塞控制窗口值,处理器根据存储器中存储的该拥塞控制窗口值调整待发送报文的实际长度。本方案中由CPU计算生成拥塞控制窗口值,也即拥塞控制算法运行于软件上,由于软件更新速度快,当出现新型拥塞控制算法时,可迅速实现拥塞控制算法的升级,提高了拥塞控制算法更新的灵活性;而且,在得到拥塞控制窗口值后,由硬件TOE调整待发送报文的实际长度,由于硬件的处理速度快,提高了整个拥塞控制过程的效率。
本申请第二方面的拥塞控制通知可以参考第一方面。
第三方面,本申请实施例提供了一种拥塞控制系统,该系统包括传输控制协议卸载引擎TOE和中央处理器CPU,其中,该TOE为上述第一方面的任一实施方式中所述的TOE;
该CPU用于接收该TOE发送的拥塞控制通知,根据该拥塞控制通知获取目标参数,并根据该目标参数生成拥塞控制计算结果,将该拥塞控制计算结果发送至该TOE,其中,该拥塞控制计算结果包括拥塞控制窗口值,该拥塞控制窗口值用于供该TOE发送报文。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有拥塞控制的指令,当其在计算机上运行时,使得计算机执行上述第一方面该的方法。
第五方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请第二至第五方面的有益效果,可以参考第一方面。
附图说明
图1为本申请实施例提供的一种系统结构示意图;
图2为本申请实施例提供的另一种系统结构示意图;
图3为本申请实施例提供的拥塞控制方法的一种流程示意图;
图4为本申请实施例提供的拥塞控制方法的另一种流程示意图;
图5为本申请实施例提供的拥塞控制方法的又一种流程示意图;
图6为本申请实施例提供的传输控制协议卸载引擎的一种结构示意图。
具体实施方式
本申请实施例提供了一种拥塞控制方法及相关设备,用于当出现新型拥塞控制算法时,可以迅速的实现拥塞控制算法的升级,以缩短拥塞控制算法的升级周期,提高灵活性。
本申请实施例中,参见图1,提供了一种系统,该系统包括CPU200和TOE100。通过把TCP/IP协议栈的全部或者部分功能卸载到专用硬件TOE100上,让TOE100来处理TCP报文,从而降低CPU200的处理负担。TOE100负责校验和计算、TCP报文解封装、TCP报文打包、乱序报文重组、拥塞控制计算等工作,CPU收到的只是处理完毕后的TCP报文的负荷。
本申请实施例中,TOE100包括接收引擎1001、拥塞控制引擎1002、传输控制块1003(transmit control block,TCB)、命令处理引擎1004和发送引擎1005。
其中,接收引擎1001在接收TCP报文后,负责解析TCP报文、计算校验和、重组乱序报文等,并将接收该报文的过程中产生的参数写入TCB1003。
命令处理引擎1004负责与CPU200之间的信息交互,在接收引擎1001解析出TCP报文的报文负荷后,将该报文负荷上传至CPU200,并根据CPU200下发的指令更新TCB1003。
由于每个TCP报文都归属于某条TCP连接,TCB1003可以对每条TCP连接维护有一个TCB,每个TCB均用于记录一条TCP连接在报文接收和发送过程中所产生的参数。
拥塞控制引擎1002结合TCB1003中的参数调整待发送TCP报文的长度后,由发送引擎1005将TCP报文打包发送。
本申请实施例中,CPU200上运行有处理模块2001和应用程序2002,其中处理模块2001用于与TOE100进行消息交互,将接收到的TCP报文的负荷传递给应用程序2002。
参见图2,CPU200还包括配置管理模块2003。命令处理引擎1004向处理模块2001发送用于指示CPU执行拥塞控制计算的拥塞控制通知,配置管理模块2003利用CPU上配置的拥塞控制算法进行拥塞控制计算,并通过处理模块2001向TOE100返回拥塞控制计算结果,该拥塞控制计算结果中至少包含有拥塞控制窗口值。拥塞控制引擎1002根据该拥塞控制窗口值发送报文。
本申请实施例中,由于TOE针对每条TCP连接均维护有对应的TCB,则TOE向CPU发送的拥塞控制通知可以供该CPU仅获取到进行拥塞控制计算所必须的目标参数;也可以供该CPU获取到包含该目标参数的整个目标TCB。
本申请实施例中,该TOE中可以预先设定有向该CPU发送的拥塞控制通知的类型,例如,用于供该CPU获取目标TCB,或者用于供该CPU仅获取目标参数;也可以在TCB中设置有指示该拥塞控制通知的类型的目标标志位,该TOE在向该CPU发送拥塞控制通知之前,可以读取目标TCB中的目标标志位,根据该目标标志位的指示来确定该拥塞控制通知的类型。以下,对上述三种情况分别进行介绍。
一、拥塞控制通知用于供该CPU获取该目标TCB。
具体参阅图3,本申请实施例中,拥塞控制方法的一个实施例可以包括步骤301-306。
301、TOE获取与该目标参数对应的目标TCB,该目标TCB至少包含第一标志位,该第一标志位用于指示是否需要该CPU参与拥塞控制。
本实施例中,在TOE接收到确认(Acknowledgement,ACK)报文之后,可以确定该ACK报文所归属的目标TCP连接,进而获取与该目标TCP连接对应的目标TCB,该目标TCB包括目标参数,也即获取到了与该目标参数对应的目标TCB。该目标TCB可以包含第一标志位,该第一标志位用于指示是否需要该CPU参与拥塞控制,若该第一标志位指示需要该CPU参与拥塞控制,则执行步骤302;若该第一标志位指示不需要该CPU参与拥塞控制,则执行步骤306。
本实施例及后续实施例中,目标TCB包含通过目标TCP连接接收报文和发送报文过程中所产生的参数,可以包括目标TCP连接状态、目标TCP报文的往返时间(round-triptime,RTT)、目标TCP报文的重传超时时间(retransmission time out,RTO)、ACK报文的个数、拥塞控制状态、拥塞控制窗口值、报文发送速率或者其他在执行TCP协议过程中所产生的参数。
其中,该目标TCB的存储形式可以是数组,也可以是表格或者其他存储形式等,具体此处不做限定。
本实施例及后续实施例中,由于目标TCP连接可以由CPU建立,则CPU可以在建立目标TCP连接时,创建用于记录该目标TCP连接的目标TCB,并通过处理模块2001将目标TCB的索引值和该TCB下发给TOE,由TOE维护目标TCB;目标TCP连接也可以由TOE建立,则TOE可以在建立目标TCP连接时,创建用于记录该目标TCP连接的目标TCB,并维护目标TCB。
本实施例及后续实施例中,目标参数为对目标TCP连接进行拥塞控制算法计算时所必须的参数,该目标参数可以包括RTT、拥塞控制状态、ACK报文的个数或其他参数等,作为示例,例如当拥塞控制算法为慢重启算法时,所必须的目标参数包括慢启动窗口阈值、ACK报文的个数和拥塞控制状态;作为另一示例,例如当拥塞控制算法为cubic算法时,所必须的目标参数包括慢启动窗口阈值、平滑计算后的RTT、上次接收到ACK报文时的拥塞窗口值、上一次更新接收到ACK报文时的拥塞窗口值的时间、拥塞控制状态、ACK报文的个数等参数,该应当理解,由于拥塞控制算法不断更新升级,进行拥塞控制算法计算时所必须的参数可以不断变化,具体目标参数的取值应结合实际使用的拥塞控制算法进行设定,此处不做限定。
本实施例中,第一标志位上存在不同信息时,分别用于指示需要或者不需要CPU参与拥塞控制,也即当第一标志位上存在第一信息时,该第一标志位指示需要该CPU参与拥塞控制;当第一标志位上存在第二信息时,该第一标志位指示不需要该CPU参与拥塞控制。作为示例,例如当第一标志位上存在1时,则指示需要该CPU参与拥塞控制;当第一标志位上存在0时,则指示不需要该CPU参与拥塞控制,应当理解,此处举例仅为方便理解本方案,对第一标志位上存在的信息不做限定。
本实施例中,硬件TOE上已经固化了部分拥塞控制算法,软件CPU上也配置有另一部分拥塞控制算法,在目标TCP连接建立成功后,CPU可以获取硬件TOE的拥塞控制算法的能力,从而可以识别到硬件TOE上固化的拥塞控制算法是否可以支持本次拥塞控制计算,若不支持,则需要该CPU参与拥塞控制,可以在该第一标志位上添加第一信息;若支持,则不需要该CPU参与拥塞控制,可以在该第一标志位上添加第二信息。本申请可以根据硬件TOE和软件CPU上实际配置的拥塞控制算法的情况来决定是否需要CPU参与拥塞控制,从而避免了已经固化到硬件TOE上的部分拥塞控制算法的浪费,又可以实现采用最优的拥塞控制算法进行拥塞计算。
302、TOE向该CPU发送拥塞控制通知,该拥塞控制通知用于供该CPU获取该目标TCB。
本实施例中,在该TOE根据获取到的目标TCB确定需要CPU参与拥塞控制之后,TOE可以向该CPU发送拥塞控制通知,该拥塞控制通知用于供该CPU获取该目标TCB。在一个实施方式中,TOE可以通过向CPU发消息的形式以协助CPU获取到目标TCB。在另一个实施方式中,为TOE和CPU设置共享的第一缓存空间,该TOE在将目标TCB写入该第一缓存空间后,向CPU发送用于告知该CPU进行拥塞控制算法计算的通知,从而CPU到第一缓存空间中读取目标TCB。
本实施例中,该TOE向该CPU发送的拥塞控制通知可以为包保序管理(packetorderenforcer,POE)消息,也可以为其他类型的消息。
其中,POE消息为实现硬件与软件之间的消息通信的一种消息类型,该POE消息可以包括消息头和消息体。本实施例及后续实施例中,以该TOE向该CPU发送的消息为POE消息为例进行说明。
本实施例及后续实施例中,TOE和CPU共享的第一缓存空间可以为链表的形式,也可以为队列的形式,还可以为其他数据存储形式等,具体TOE和CPU共享的第一缓存空间的展现形式,此处不做限定。以下,对TOE向CPU发送的拥塞控制通知的情况分别进行描述。
1.TOE向CPU发送POE消息。
本实施例中,该TOE可以向该CPU发送第一POE消息,该第一POE消息可以包含该目标TCB的存储空间的第一首地址,该CPU在获取到该第一POE消息后,根据该目标TCB的存储空间的第一首地址读取该目标TCB,并从读取到的该目标TCB中确定该目标参数。向该CPU发送的第一POE消息中仅需要携带有目标TCB的存储空间的第一首地址,由CPU根据该第一首地址直接读取目标TCB,从而避免了TOE读取目标TCB后再拷贝到第一POE消息的过程,减少了TOE的工作量。
本实施例中,第一POE消息包括消息头和消息体,以下结合表1对第一POE消息的消息头中包含的内容进行介绍,应当理解,第一POE消息的消息头中还包含其他字段,例如消息体的长度、消息绑定的组号或其他字段内容,此处仅对与本申请有关的字段进行介绍。
字段 取值
用户自定义 目标TCB的索引值
消息类型 1
首地址 目标TCB的存储空间的第一首地址
表1
本实施例中,参见表1,第一POE消息的用户自定义字段的取值为目标TCB的索引值,用于指示TCB与TCP连接的对应关系;消息类型字段的取值为1用于指示需要CPU参与拥塞控制;该首地址字段用于指示目标TCB的存储空间的第一首地址;其中,由于POE消息可以支持多种消息类型,对不同消息类型与取值之间的关系可以根据实际情况灵活设定。
应当理解,此处仅为结合表格对第一POE消息的消息头进行解释,第一POE消息具体不以表格的形式存在。
本实施例中,该TOE还可以向该CPU发送第二POE消息,该第二POE消息的消息体中可以直接携带有该目标TCB,该目标TCB包括该目标参数,该CPU在接收并读取该第二POE消息,从该第二POE消息携带的该目标TCB中获取该目标参数。第二POE消息中直接携带有目标TCB,由硬件TOE到目标TCB的存储空间中读取到目标TCB后,直接告知CPU,由于硬件处理速度快,可以提高拥塞控制过程的处理效率。
2.TOE与CPU共享第一缓存空间。
本实施例中,由于该TOE和CPU共用该第一缓存空间,该TOE预先将目标TCB写入到该第一缓存空间中,当该TOE向CPU发送第一通知时,该第一通知用于告知该CPU进行拥塞控制计算,该CPU可以从该第一缓存空间中读取该目标TCB。其中,该第一通知可以为电信号,作为示例,例如当TOE向CPU发送高电平的电信号时,表示告知该CPU进行拥塞控制算法计算,则该CPU从该第一缓存空间中读取该目标TCB;作为另一示例,该第一通知也可以为低电平的电信号,具体第一通知的表现形式,此处不做限定。
本实施例中,该第一缓存空间存储有多个第一缓存条目,每个第一缓存条目可以包含目标TCB的索引值和目标TCB,则该CPU从该第一缓存空间中读取该目标TCB时,也可同时获取到该目标TCB的索引值,以确定TCB与TCP连接的对应关系。
应当理解,TOE还可以通过其他方式将目标TCB传递给CPU,此处不再一一赘述。
本实施例中,由于拥塞控制算法处于不断更新升级中,CPU进行拥塞控制计算所需要的目标参数可能不断发生变化,本申请中TOE不需要考虑目标参数的变更,仅需将与目标参数对应的整个目标TCB传递给CPU,由CPU从目标TCB中获取所需的目标参数,简化了硬件TOE的执行逻辑。
303、CPU根据目标参数生成拥塞控制计算结果。
本实施例中,该CPU根据接收到的拥塞控制通知获取到目标TCB后,结合其采用的拥塞控制算法从目标TCB中获取需要的目标参数,并进行拥塞控制算法计算,以生成拥塞控制计算结果。
304、TOE获取该CPU返回的该拥塞控制计算结果。
本实施例中,该CPU在获取到目标TCB后,从中获取到目标参数,进行拥塞控制计算后,将拥塞控制计算结果返回给TOE。
本实施例中,该拥塞控制计算结果至少包含拥塞控制窗口值,还可以包含报文发送速率或者其他TOE在发送报文时所需要的参数等,不同的拥塞控制算法所得出的拥塞控制计算结果可能不同,具体拥塞控制计算结果包含的内容应结合实际的拥塞控制算法灵活设定。
本实施例中,TOE获取该CPU返回的该拥塞控制计算结果的方式可以为接收该CPU返回的POE消息;还可以为该TOE和CPU共用第二缓存空间,TOE接收CPU返回的第二通知后,到第二缓存空间中读取该拥塞控制计算结果。以下,对上述两种拥塞控制计算结果的获取方式分别进行介绍。
(1)TOE获取该CPU返回的POE消息。
本实施例中,该TOE可以接收该CPU返回的第七POE消息,该第七POE消息的消息体中携带有该拥塞控制计算结果,则该TOE接收到该第七POE消息后,可以从中读取该拥塞控制计算结果。
本实施例中,该TOE也可以接收该CPU返回的第八POE消息,该第八POE消息用于指示该拥塞控制计算结果已被该CPU写入到该目标TCB中,则该TOE接收到该第八POE消息后,可以从目标TCB中读取该拥塞控制计算结果。
本实施例中,该TOE还可以接收该CPU返回的第九POE消息,该第九POE消息包含该拥塞控制计算结果的存储位置的第三首地址,则该TOE接收到该第九POE消息后,可以以该第三首地址作为起始位置读取该拥塞控制计算结果。
(2)TOE与该CPU共享第二缓存空间。
本实施例中,由于该TOE和CPU共用该第二缓存空间,该CPU将该拥塞控制计算结果写入到该第二缓存空间后,该TOE可以接收到该CPU返回的第二通知,该第二通知用于指示读取该拥塞控制计算结果,该TOE可以从该第二缓存空间中读取该拥塞控制计算结果。其中,该第二通知可以为电信号,作为示例,例如当TOE接收到该CPU发送的高电平电信号时,表示需要读取拥塞控制计算结果,则该TOE从该第二缓存空间中读取该拥塞控制计算结果;作为另一示例,该第二通知也可以为低电平的电信号,具体第二通知的表现形式,此处不做限定。
本实施例中,该第二缓存空间存储有多个第二缓存条目,每个第二缓存条目可以包含目标TCB的索引值和拥塞控制计算结果,则该TOE从该第二缓存空间中读取该拥塞控制计算结果时,也可同时获取到与该目标TCB对应的拥塞控制计算结果,以确定拥塞控制计算结果与TCP连接的对应关系。
本实施例中,提供了多种拥塞控制计算结果的返回方式,提高了本方案的实现可能性,增强了本方案的灵活性。
305、TOE根据该拥塞控制窗口值发送报文。
本实施例中,由于该拥塞控制计算结果包括拥塞控制窗口值,该TOE在发送报文时,可以将待发送报文的长度与获取到的拥塞控制窗口值进行比较,若待发送报文的长度大于该拥塞控制窗口值,则调整待发送报文的负荷长度,以使得待发送报文的总长度等于该拥塞控制窗口值后发送报文;若待发送报文的长度小于该拥塞控制窗口值,则直接发送该报文。
本实施例中,当该拥塞控制计算结果还包括报文发送速率时,该TOE在确定待发送报文的负荷长度后,根据该报文发送速率调整发送两个相邻的报文之间的时间间隔。
306、TOE执行其他程序。
二、拥塞控制通知用于供CPU仅获取目标参数。
具体参阅图4,本申请实施例中,拥塞控制方法的另一个实施例可以包括步骤401-406。
401、获取与目标参数对应的目标TCB。
本实施例中,步骤401与前述图3所示实施例中步骤301类似,此处不再赘述。
402、TOE向该CPU发送该拥塞控制通知,该拥塞控制通知用于供CPU仅获取目标参数。
本实施例中,在该TOE确定需要CPU参与拥塞控制之后,该TOE可以通过向CPU发送POE消息的形式以协助CPU获取到目标参数;也可以为TOE和CPU共享第三缓存空间,在该TOE将目标参数写入该第三缓存空间后,向CPU发送用于告知该CPU进行拥塞控制算法计算的通知,从而CPU到第三缓存空间中读取该目标参数。以下,对TOE向CPU发送拥塞控制通知的情况分别进行描述。
A.TOE向CPU发送POE消息。
在一个实施方式中,该TOE可以向该CPU发送第三POE消息,该第三POE消息包含该目标参数的存储空间的第二首地址,该CPU在接收到该第三POE消息后,可以以该第二首地址为起始位置读取该目标参数。
在另一个实施方式中,该TOE还可以向该CPU发送第四POE消息,该第四POE消息中携带有该目标参数,该CPU在接收该第四POE消息后,读取该第四POE消息携带的该目标参数。
B.TOE与CPU共享第三缓存空间。
本实施例中,由于该TOE和CPU共用该第三缓存空间,该TOE预先将目标参数写入到该第三缓存空间中,当该TOE向CPU发送用于告知该CPU进行拥塞控制计算的第三通知时,该CPU可以从该第三缓存空间中读取该目标参数。
本实施例中,该第三缓存空间存储有多个第三缓存条目,每个第三缓存条目可以包含目标TCB的索引值和目标参数,则该CPU从该第三缓存空间中读取该目标参数时,也可同时获取到该目标TCB的索引值,以确定目标参数与TCP连接的对应关系。
应当理解,TOE还可以通过其他方式将目标参数传递给CPU,此处不再一一赘述。
本实施例中,TOE发送的拥塞控制通知用于供CPU仅获取目标参数,也即仅获取进行拥塞控制计算所必须的参数,减少了该拥塞控制通知的长度,降低了CPU进行内存访问的带宽。
403、CPU根据目标参数生成拥塞控制计算结果。
404、TOE获取该CPU返回的该拥塞控制计算结果。
405、TOE根据该拥塞控制窗口值发送报文。
406、TOE执行其他程序。
本实施例中,步骤403至406与前述图3所示实施例中步骤303和306类似,此处不再赘述。
三、根据目标TCB中包含的标志位确定拥塞控制通知的类型。
具体参阅图5,本申请实施例中,拥塞控制方法的另一个实施例可以包括步骤501-507。
501、获取与目标参数对应的目标TCB,该目标TCB除包含第一标志位外,还包含第二标志位。
本实施例中,在TOE接收到确认(Acknowledgement,ACK)报文之后,可以确定该ACK报文所归属的目标TCP连接,进而获取与该目标TCP连接对应的目标TCB,该目标TCB包括目标参数,也即获取到了与该目标参数对应的目标TCB。
本实施例中,该目标TCB包含第一标志位、第二标志位和该目标参数,在根据该第一标志位确定需要该CPU参与拥塞控制后,可以读取该第二标志位,若该第二标志位指示将该目标TCB传送给该CPU,则进入步骤502;若该第二标志位指示仅将该目标参数传送给该CPU,则进入步骤503。
本实施例中,在创建目标TCB时,可以由CPU根据采用的拥塞控制算法设置该第二标志位,作为示例,例如当CPU需要的目标参数发生变更时,可以将该第二标志位设置为指示将该目标TCB传送给该CPU;作为另一示例,例如当CPU需要的目标参数较少时,可以将该第二标志位设置为指示将该目标参数传送给该CPU等,具体第二标志位的设置可以由CPU根据实际情况灵活选择。
本实施例中,TOE上配置了实现拥塞控制通知的两种类型的硬件逻辑,可以通过修改第二标志位在上述两种硬件逻辑之间进行切换,提高了本方案的实现灵活性。
502、TOE向该CPU发送拥塞控制通知,该拥塞控制通知包含第五消息,该第五消息用于供该CPU获取该目标TCB。
本实施例中,步骤502与前述图3所示实施例中步骤302类似,此处不再赘述。
503、TOE向该CPU发送该拥塞控制通知,该拥塞控制通知包含第六消息,该第六消息用于供CPU仅获取目标参数。
本实施例中,步骤503与前述图4所示实施例中步骤402类似,此处不再赘述。
504、CPU根据目标参数生成拥塞控制计算结果。
505、TOE获取该CPU返回的该拥塞控制计算结果。
506、TOE根据该拥塞控制窗口值发送报文。
507、TOE执行其他程序。
本实施例中,步骤504至507与前述图3所示实施例中步骤303和306类似,此处不再赘述。
图6是本申请实施例提供的传输控制协议卸载引擎的一种结构示意图,该传输控制协议卸载引擎TOE600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器601和存储器602(例如一个或一个以上海量存储设备)。其中,存储器602可以是易失性存储器或非易失性存储器。存储在存储器602上的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括一系列指令操作。更进一步地,处理器601可以设置为与存储器602通信,在TOE600上执行存储器602中的一系列指令操作。
TOE600还可以包括第一接口603和第二接口604。
在本发明的一些实施例中,处理器601、存储器602、第一接口603和第二接口604互相连接。其中,处理器601通过第一接口603与CPU通信,通过第二接口604发送报文。
其中,该处理器601用于通过该第一接口向中央处理器CPU发送拥塞控制通知,该拥塞控制通知指示该CPU获取目标参数,该目标参数用于该CPU生成拥塞控制计算结果;
该处理器601用于通过该第一接口603获取该CPU返回的该拥塞控制计算结果,其中,该拥塞控制计算结果包括拥塞控制窗口值;
该存储器602用于存储该拥塞控制窗口值;
该处理器601用于根据该存储器中存储的该拥塞控制窗口值通过该第二接口604发送报文。
本实施例中,传输控制协议卸载引擎中各元件执行的流程与前述图3至图5所示实施例中传输控制协议卸载引擎所执行的流程类似,此处不再赘述。
本实施例中,传输控制协议卸载引擎向CPU发送拥塞控制通知,并接收CPU根据该拥塞控制通知生成的拥塞控制计算结果,其中,拥塞控制计算结果包括拥塞控制窗口值。该TOE根据该拥塞控制窗口值调整待发送报文的实际长度。本方案中由CPU计算生成拥塞控制窗口值,也即拥塞控制算法运行于软件上,由于软件更新速度快,当出现新型拥塞控制算法时,可迅速实现拥塞控制算法的升级,提高了拥塞控制算法更新的灵活性;而且,在得到拥塞控制窗口值后,由硬件TOE调整待发送报文的实际长度,由于硬件的处理速度快,提高了整个拥塞控制过程的效率。
有一种可能的实现方式中,该存储器602中还存储有该目标参数对应的目标TCB,该处理器601还用于获取该目标TCB,该目标TCB包含该报文接收和发送过程中所产生的参数,该目标TCB包含第一标志位;当该第一标志位指示需要该CPU参与拥塞控制时,该处理器601通过该第一接口603向该CPU发送该拥塞控制通知。
该拥塞控制通知可以参考方法实施例部分的描述。
该处理器601可以执行接收引擎1001,拥塞控制引擎1002的功能,该第一接口可以包括命令处理引擎1004,该第二接口可以包括发送引擎1005。
本申请实施例还提供一种拥塞控制系统,该系统包括传输控制协议卸载引擎TOE和中央处理器CPU。
该TOE用于向该CPU发送的拥塞控制通知,获取该CPU根据该拥塞控制通知返回的拥塞控制计算结果,根据该拥塞控制结果中包括的拥塞控制窗口值发送报文;其中,该拥塞控制通知指示该CPU获取目标参数,该目标参数用于该CPU生成该拥塞控制计算结果。
该CPU用于接收该TOE发送的该拥塞控制通知,根据该拥塞控制通知获取该目标参数,并根据该目标参数生成该拥塞控制计算结果,将该拥塞控制计算结果发送至该TOE,其中,该拥塞控制计算结果包括拥塞控制窗口值,该拥塞控制窗口值用于供该TOE发送报文。
本实施例中,传输控制协议卸载引擎中各元件执行的流程与前述图3至图5所示实施例中传输控制协议卸载引擎所执行的流程类似,此处不再赘述。
有一种可能的实现方式中,该TOE还用于获取与该目标参数对应的目标传输控制块TCB,该目标TCB包含该报文接收和发送过程中所产生的参数,该目标TCB包含第一标志位;当该第一标志位指示需要该CPU参与拥塞控制时,向该CPU发送该拥塞控制通知。
本申请实施例中还提供一种计算机存储介质,该计算机可读存储介质中存储有拥塞控制的指令,当其在计算机上运行时,使得计算机执行如前述图3至图5所示实施例中描述的方法。
本申请实施例中还提供一种包含拥塞控制指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图5所示实施例中描述的方法。
本申请实施例中还提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、计算机存储介质和计算机程序产品,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (19)

1.一种拥塞控制方法,其特征在于,所述方法包括:
传输控制协议卸载引擎TOE向中央处理器CPU发送拥塞控制通知,所述拥塞控制通知指示所述CPU获取目标参数,所述目标参数用于所述CPU生成拥塞控制计算结果;
所述TOE获取所述CPU返回的所述拥塞控制计算结果,其中,所述拥塞控制计算结果包括拥塞控制窗口值;
所述TOE根据所述拥塞控制窗口值发送报文。
2.根据权利要求1所述的方法,其特征在于,所述TOE向中央处理器CPU发送拥塞控制通知之前,所述方法还包括:
所述TOE获取与所述目标参数对应的目标传输控制块TCB,所述目标TCB包含所述报文接收和发送过程中所产生的参数,所述目标TCB包含第一标志位;
所述TOE向中央处理器CPU发送拥塞控制通知,包括:
若所述第一标志位指示需要所述CPU参与拥塞控制,则所述TOE向所述CPU发送所述拥塞控制通知。
3.根据权利要求2所述的方法,其特征在于,所述TOE向中央处理器CPU发送拥塞控制通知,包括:
所述TOE向所述CPU发送第一消息,所述第一消息用于指示所述CPU进行拥塞控制计算,所述第一消息包含所述目标TCB的存储空间的第一首地址,所述第一首地址用于供所述CPU读取所述目标TCB,以获得所述目标TCB中包含的所述目标参数。
4.根据权利要求2所述的方法,其特征在于,所述TOE向中央处理器CPU发送拥塞控制通知,包括:
所述TOE向所述CPU发送第二消息,所述第二消息用于指示所述CPU进行拥塞控制计算,所述第二消息中携带有所述目标TCB,所述目标TCB包括所述目标参数,以使所述CPU从所述第二消息携带的所述目标TCB中获取所述目标参数。
5.根据权利要求1或2所述的方法,其特征在于,所述TOE向中央处理器CPU发送拥塞控制通知,包括:
所述TOE向所述CPU发送第三消息,所述第三消息用于指示所述CPU进行拥塞控制计算,其中,所述第三消息包含所述目标参数的存储空间的第二首地址,所述第二首地址用于供所述CPU获取所述目标参数。
6.根据权利要求1或2所述的方法,其特征在于,所述TOE向中央处理器CPU发送拥塞控制通知,包括:
所述TOE向所述CPU发送第四消息,所述第四消息用于指示所述CPU进行拥塞控制计算,其中,所述第四消息中携带有所述目标参数。
7.根据权利要求2所述的方法,其特征在于,所述目标TCB还包含第二标志位和所述目标参数;
若所述第二标志位指示将所述目标TCB传送给所述CPU,所述拥塞控制通知包括第五消息,所述第五消息用于供所述CPU获取所述目标TCB,并从所述目标TCB中提取所述目标参数;
若所述第二标志位指示仅将所述目标参数传送给所述CPU,所述拥塞控制通知包括第六消息,所述第六消息用于供所述CPU仅获取所述目标参数。
8.根据权利要求2所述的方法,其特征在于,所述TOE获取所述CPU返回的拥塞控制计算结果,包括:
所述TOE接收所述CPU返回的第七消息,所述第七消息中携带有所述拥塞控制计算结果;
所述TOE接收所述CPU返回的第八消息,所述第八消息用于指示所述拥塞控制计算结果已被所述CPU写入到所述目标TCB中;
所述TOE从所述目标TCB中读取所述拥塞控制计算结果;
所述TOE接收所述CPU返回的第九消息,所述第九消息包含所述拥塞控制计算结果的存储位置的第三首地址;
所述TOE以所述第三首地址作为起始位置读取所述拥塞控制计算结果。
9.一种传输控制协议卸载引擎TOE,其特征在于,所述TOE包括:
处理器、存储器第一接口以及第二接口;
所述处理器用于通过所述第一接口向中央处理器CPU发送拥塞控制通知,所述拥塞控制通知指示所述CPU获取目标参数,所述目标参数用于所述CPU生成拥塞控制计算结果;
所述处理器用于通过所述第一接口获取所述CPU返回的所述拥塞控制计算结果,其中,所述拥塞控制计算结果包括拥塞控制窗口值;
所述存储器用于存储所述拥塞控制窗口值;
所述处理器用于根据所述存储器中存储的所述拥塞控制窗口值通过所述第二接口发送报文。
10.根据权利要求9所述的TOE,其特征在于,
所述处理器还用于获取与所述目标参数对应的目标传输控制块TCB,所述目标TCB包含所述报文接收和发送过程中所产生的参数,所述目标TCB包含第一标志位;
当所述第一标志位指示需要所述CPU参与拥塞控制时,所述处理器通过所述第一接口向所述CPU发送所述拥塞控制通知。
11.根据权利要求10所述的TOE,其特征在于,所述拥塞控制通知包含第一消息,所述第一消息包含所述目标TCB的存储空间的第一首地址,所述第一首地址用于供所述CPU读取所述目标TCB,以获得所述目标TCB中包含的所述目标参数。
12.根据权利要求10所述的TOE,其特征在于,所述拥塞控制通知包含第二消息,所述第二消息中携带有所述目标TCB,所述目标TCB包括所述目标参数,以使所述CPU从所述第二消息携带的所述目标TCB中获取所述目标参数。
13.根据权利要求10所述的TOE,其特征在于,所述拥塞控制通知包含第三消息,所述第三消息包含所述目标参数的存储空间的第二首地址,所述第二首地址用于供所述CPU获取所述目标参数。
14.根据权利要求10所述的TOE,其特征在于,所述拥塞控制通知包含第四消息,所述第四消息中携带有所述目标参数。
15.根据权利要求10所述的TOE,其特征在于,所述目标TCB还包含第二标志位和所述目标参数;
若所述第二标志位指示仅将所述目标参数传送给所述CPU,所述拥塞控制通知包括第五消息,所述第五消息用于供所述CPU获取所述目标参数;
若所述第二标志位指示将所述目标TCB传送给所述CPU,所述拥塞控制通知包括第六消息,所述第六消息用于供所述CPU获取所述目标TCB,并从所述目标TCB中提取所述目标参数。
16.根据权利要求10所述的TOE,其特征在于,
所述处理器用于通过所述第一接口接收所述CPU返回的第七消息,所述第七消息中携带有所述拥塞控制计算结果;
所述处理器用于通过所述第一接口接收所述CPU返回的第八消息,所述第八消息用于指示所述拥塞控制计算结果已被所述CPU写入到所述目标TCB中;
所述处理器还用于从所述目标TCB中读取所述拥塞控制计算结果;
所述处理器用于通过所述第一接口接收所述CPU返回的第九消息,所述第九消息包含所述拥塞控制计算结果的存储位置的第三首地址;
所述处理器还用于以所述第三首地址作为起始位置读取所述拥塞控制计算结果。
17.一种拥塞控制系统,其特征在于,所述系统包括传输控制协议卸载引擎TOE和中央处理器CPU,
所述TOE用于向所述CPU发送的拥塞控制通知,获取所述CPU根据所述拥塞控制通知返回的拥塞控制计算结果,根据所述拥塞控制结果中包括的拥塞控制窗口值发送报文;其中,所述拥塞控制通知指示所述CPU获取目标参数,所述目标参数用于所述CPU生成所述拥塞控制计算结果;
所述CPU用于接收所述TOE发送的所述拥塞控制通知,根据所述拥塞控制通知获取所述目标参数,并根据所述目标参数生成所述拥塞控制计算结果,将所述拥塞控制计算结果发送至所述TOE,其中,所述拥塞控制计算结果包括拥塞控制窗口值,所述拥塞控制窗口值用于供所述TOE发送报文。
18.根据权利要求17所述的系统,其特征在于,
所述TOE还用于获取与所述目标参数对应的目标传输控制块TCB,所述目标TCB包含所述报文接收和发送过程中所产生的参数,所述目标TCB包含第一标志位;当所述第一标志位指示需要所述CPU参与拥塞控制时,向所述CPU发送所述拥塞控制通知。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有拥塞控制的指令,当其在计算机上运行时,使得计算机执行上述权利要求1-8任一权利要求所述的方法。
CN201810909011.XA 2018-08-10 2018-08-10 拥塞控制方法及相关设备 Active CN110830381B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810909011.XA CN110830381B (zh) 2018-08-10 2018-08-10 拥塞控制方法及相关设备
PCT/CN2019/097031 WO2020029778A1 (zh) 2018-08-10 2019-07-22 拥塞控制方法及相关设备
EP19846327.5A EP3826244B1 (en) 2018-08-10 2019-07-22 Congestion control method and related device
US17/172,084 US11546261B2 (en) 2018-08-10 2021-02-10 Congestion control method and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810909011.XA CN110830381B (zh) 2018-08-10 2018-08-10 拥塞控制方法及相关设备

Publications (2)

Publication Number Publication Date
CN110830381A true CN110830381A (zh) 2020-02-21
CN110830381B CN110830381B (zh) 2021-10-26

Family

ID=69415386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810909011.XA Active CN110830381B (zh) 2018-08-10 2018-08-10 拥塞控制方法及相关设备

Country Status (4)

Country Link
US (1) US11546261B2 (zh)
EP (1) EP3826244B1 (zh)
CN (1) CN110830381B (zh)
WO (1) WO2020029778A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953967A (zh) * 2021-03-30 2021-06-11 扬州万方电子技术有限责任公司 网络协议卸载装置和数据传输系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11979330B2 (en) * 2020-06-22 2024-05-07 Google Llc Rate update engine for reliable transport protocol

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050135412A1 (en) * 2003-12-19 2005-06-23 Fan Kan F. Method and system for transmission control protocol (TCP) retransmit processing
US20070070906A1 (en) * 2005-09-28 2007-03-29 Network Appliance, Inc. Cumulative TCP congestion control
CN102611620A (zh) * 2012-02-23 2012-07-25 福建星网锐捷网络有限公司 拥塞控制方法和报文处理设备
CN104796350A (zh) * 2015-04-29 2015-07-22 广西大学 一种基于连续报文标记的多路径tcp拥塞控制方法
CN105099938A (zh) * 2014-05-13 2015-11-25 华为技术有限公司 网络中拥塞窗口的确定方法和装置
CN106789708A (zh) * 2016-12-06 2017-05-31 中国电子科技集团公司第三十二研究所 Tcp/ip卸载引擎中的多通道处理方法
CN108011834A (zh) * 2016-10-28 2018-05-08 华为技术有限公司 Tcp拥塞窗口的确定方法和装置
CN108141779A (zh) * 2015-10-19 2018-06-08 华为技术有限公司 用于通信网络的方法和设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244890B2 (en) 2002-03-08 2012-08-14 Broadcom Corporation System and method for handling transport protocol segments
US8631162B2 (en) 2002-08-30 2014-01-14 Broadcom Corporation System and method for network interfacing in a multiple network environment
US7426579B2 (en) 2002-09-17 2008-09-16 Broadcom Corporation System and method for handling frames in multiple stack environments
US8230090B2 (en) 2002-09-11 2012-07-24 Broadcom Corporation System and method for TCP offloading and uploading
US7224692B2 (en) 2002-09-04 2007-05-29 Broadcom Corporation System and method for fault tolerant TCP offload
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7937554B2 (en) 2002-11-12 2011-05-03 Broadcom Corporation System and method for managing memory
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
WO2004021150A2 (en) * 2002-08-30 2004-03-11 Broadcom Corporation System and method for tpc/ip offload independent of bandwidth delay product
EP1554842A4 (en) 2002-08-30 2010-01-27 Corporation Broadcom SYSTEM AND METHOD FOR TREATING FRAMES OUTSIDE THE ORDER
WO2004036381A2 (en) 2002-10-18 2004-04-29 Broadcom Corporation System and method for receive queue provisioning
US7363572B2 (en) * 2003-06-05 2008-04-22 Nvidia Corporation Editing outbound TCP frames and generating acknowledgements
US20070297334A1 (en) * 2006-06-21 2007-12-27 Fong Pong Method and system for network protocol offloading
US8407364B2 (en) * 2007-10-25 2013-03-26 Cisco Technology, Inc. Apparatus and method for providing a congestion measurement in a network
US9674318B2 (en) * 2010-12-09 2017-06-06 Solarflare Communications, Inc. TCP processing for devices
US8976664B2 (en) * 2013-03-11 2015-03-10 Broadcom Corporation Facilitating network flows
US9755973B2 (en) * 2013-08-07 2017-09-05 Citrix Systems, Inc. Performing QoS on unknown bandwidths through rate estimating TCP congestion handlers
CN104869077B (zh) * 2015-04-15 2018-06-15 清华大学 令牌传输控制方法及系统
CN107231315A (zh) * 2016-03-24 2017-10-03 阿里巴巴集团控股有限公司 一种拥塞控制方法及系统
JP2018026653A (ja) * 2016-08-09 2018-02-15 富士通株式会社 通信装置、及び通信方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050135412A1 (en) * 2003-12-19 2005-06-23 Fan Kan F. Method and system for transmission control protocol (TCP) retransmit processing
US20070070906A1 (en) * 2005-09-28 2007-03-29 Network Appliance, Inc. Cumulative TCP congestion control
US20100020693A1 (en) * 2005-09-28 2010-01-28 Manish Thakur Cumulative tcp congestion control
CN102611620A (zh) * 2012-02-23 2012-07-25 福建星网锐捷网络有限公司 拥塞控制方法和报文处理设备
CN105099938A (zh) * 2014-05-13 2015-11-25 华为技术有限公司 网络中拥塞窗口的确定方法和装置
CN104796350A (zh) * 2015-04-29 2015-07-22 广西大学 一种基于连续报文标记的多路径tcp拥塞控制方法
CN108141779A (zh) * 2015-10-19 2018-06-08 华为技术有限公司 用于通信网络的方法和设备
CN108011834A (zh) * 2016-10-28 2018-05-08 华为技术有限公司 Tcp拥塞窗口的确定方法和装置
CN106789708A (zh) * 2016-12-06 2017-05-31 中国电子科技集团公司第三十二研究所 Tcp/ip卸载引擎中的多通道处理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953967A (zh) * 2021-03-30 2021-06-11 扬州万方电子技术有限责任公司 网络协议卸载装置和数据传输系统

Also Published As

Publication number Publication date
WO2020029778A1 (zh) 2020-02-13
EP3826244A1 (en) 2021-05-26
EP3826244A4 (en) 2021-09-15
EP3826244B1 (en) 2024-01-24
CN110830381B (zh) 2021-10-26
US20210168076A1 (en) 2021-06-03
US11546261B2 (en) 2023-01-03

Similar Documents

Publication Publication Date Title
JP4921569B2 (ja) オフロードユニットを使用したtcp接続のためのデータ処理
RU2651219C2 (ru) Компьютер, устройство управления и способ обработки данных
US9392081B2 (en) Method and device for sending requests
EP3514690B1 (en) Non-volatile memory persistence method and computing device
CN103218310A (zh) 缓存装置、通信设备以及计算机程序产品
CN110830381B (zh) 拥塞控制方法及相关设备
CN101176076A (zh) 用于直接高速缓存访问的直接存储器存取重新排序
EP4030293A1 (en) Solid state disk access method and storage device
CN111338806A (zh) 一种业务控制方法及装置
JP2019016042A (ja) データ取得プログラム、装置、及び方法
CN113179327A (zh) 基于大容量内存的高并发协议栈卸载方法、设备、介质
JP4921142B2 (ja) 通信装置
CN109582479B (zh) 一种基于反射内存卡的OpenDDS分布式通信方法
CN117033275B (zh) 加速卡间的dma方法、装置、加速卡、加速平台及介质
CN117312229A (zh) 一种数据传输装置、数据处理设备、系统、方法及介质
JP2009157437A (ja) 分散記憶システム
CN110597467B (zh) 高可用数据零丢失存储系统及方法
WO2015107653A1 (ja) 通信装置、通信方法、および、通信プログラム
WO2017071430A1 (zh) 处理报文的方法、网卡及系统、更新信息的方法及主机
JP2008236378A (ja) ホストコンピュータとネットワークインタフェースコントローラ間のデータ転送方法、プログラム及びネットワークインタフェースコントローラ
CN113641604B (zh) 一种数据传输方法及系统
CN105912477B (zh) 一种目录读取的方法、装置及系统
CN114338653A (zh) 文件断点续传方法及装置
CN114416275A (zh) 一种实现多个管理客户端同步虚拟机状态的方法及系统
JP2009199281A (ja) データ送信装置

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
GR01 Patent grant
GR01 Patent grant