一种网络拥塞控制方法及网络设备

文档序号:1908207 发布日期:2021-11-30 浏览:7次 >En<

阅读说明:本技术 一种网络拥塞控制方法及网络设备 (Network congestion control method and network equipment ) 是由 周军 夏怒 曲霄阳 何路友 朱夏 于 2020-05-26 设计创作,主要内容包括:本申请公开了一种网络拥塞控制方法及网络设备,涉及通信技术领域,可以提高传输控制协议(transport control protocol,TCP)流传输过程中,报文的连续性和完成性。本申请中,转发设备在TCP流的转发方向上出现预拥塞(即有拥塞可能)时,通过减小确认(acknowledge,ACK)报文中的接收窗口(Receive Window,RWND)字段的值,以降低TCP流中的报文的发送端的发送速率或延缓发送端发送报文,从而缓解转发设备的缓存压力,降低丢包问题,提高TCP流传输过程中报文的连续性和完成性。(The application discloses a network congestion control method and network equipment, relates to the technical field of communication, and can improve the continuity and the completeness of a message in a Transmission Control Protocol (TCP) stream transmission process. In the application, when the forwarding device is congested in the forwarding direction of the TCP flow (that is, there is a possibility of congestion), the sending rate of the sending end of the packet in the TCP flow is reduced or the sending end is delayed to send the packet by reducing the value of a Receive Window (RWND) field in an Acknowledgement (ACK) packet, so that the buffer pressure of the forwarding device is relieved, the packet loss problem is reduced, and the continuity and the completeness of the packet in the TCP flow transmission process are improved.)

一种网络拥塞控制方法及网络设备

技术领域

本申请涉及通信技术领域,尤其涉及一种网络拥塞控制方法及网络设备。

背景技术

在多级交换机的场景中,例如企业园区网络场景中,不免存在由于各种原因导致的网络拥塞问题。以图1所示的企业园区网络架构为例,该企业园区网络包括多个接入交换机、多个汇聚交换机和多个核心交换机。假设图1所示的核心交换机向汇聚交换机发送数据的下行端口是40千兆以太网(gigabit ethernet,GE)端口,汇聚交换机向接入交换机发送数据的下行端口是10GE端口,接入交换机向AP发送数据的下行端口是1GE端口。假设每1台核心交换机提供2个40GE端口与2台汇聚交换机连接,每1台汇聚交换机提供10个10GE端口与10台接入交换机连接,每一台接入交换机可提供48个端口1GE与接入点(access point,AP)或者终端设备(如超级计算机)连接。则可以确定,接入交换机、汇聚交换机和核心交换机的传输资源配置比为(2*10*48GE):(2*10*10GE):(2*40GE)=960:200:80。

由于例如上述接入交换机、汇聚交换机和核心交换机的传输资源配置的不匹配或者上行数据本身的突发性等原因导致的网络拥塞,容易造成上行数据在网络设备(如接入交换机、汇聚交换机或核心交换机)处的多打一丢包现象,影响数据连续性和完成性,影响用户体验。

发明内容

本申请提供一种网络拥塞控制方法及网络设备,可以提高TCP流传输过程中,报文的连续性和完成性。

为达到上述目的,本申请采用如下技术方案:

第一方面,提供一种网络拥塞控制方法,该方法包括:在转发TCP流的转发设备在该TCP流的转发方向上出现预拥塞时,转发设备减小该TCP流中的报文的ACK报文中的接收窗口(Receive Window,RWND)字段的值;其中,上述ACK报文与TCP流反向。

上述第一方面提供的技术方案,转发设备在TCP流的转发方向上出现预拥塞(即有拥塞可能)时,通过减小确认(acknowledge,ACK)报文中的RWND字段的值,以控制TCP流中的报文的发送端的发送速率,从而缓解转发设备的缓存压力,降低丢包问题,提高TCP流传输过程中报文的连续性和完成性。

在一种可能的实现方式中,上述方法还包括:转发设备根据该转发设备的缓存状态确定在TCP流的转发方向上出现预拥塞;其中,转发设备的缓存状态取决于以下一个或多个:该转发设备中缓存的报文数量、转发设备中缓存的报文的数据量、转发设备中缓存的报文的数据量占缓存区的比例。本申请中,转发设备根据转发设备的缓存状态可以判断是否在TCP流的转发方向上出现预拥塞,以触发降低RWND字段的值的机制。

在一种可能的实现方式中,上述转发设备根据转发设备的缓存状态确定在TCP流的转发方向上出现预拥塞,包括:当满足以下一个或多个时,转发设备确定在TCP流的转发方向上出现预拥塞:转发设备在TCP流的转发方向上的缓存的报文数量大于预设数量,转发设备在TCP流的转发方向上的缓存的报文的数据量大于预设数据量,转发设备在TCP流的转发方向上的缓存的报文的数据量占所述缓存区的比例大于预设比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量、报文的数据量和报文的数据量占所述缓存区的比例中的一个或多个判断是否在TCP流的转发方向上出现预拥塞,以触发降低RWND字段的值的机制。

在一种可能的实现方式中,上述转发设备减小TCP流中的报文的ACK报文中的RWND字段的值,包括:转发设备根据以下一个或多个减小TCP流中的报文的ACK报文中的RWND字段的值:在转发设备在TCP流的转发方向上缓存的报文数量,在转发设备在TCP流的转发方向上缓存的报文的数据量,转发设备在TCP流的转发方向上缓存的报文的数据量占缓存区的比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量、报文的数据量和报文的数据量占所述缓存区的比例中的一个或多个计算减小后的RWND字段的值。

在一种可能的实现方式中,上述转发设备减小TCP流中的报文的ACK报文中的RWND字段的值,包括:该转发设备根据以下公式减小TCP流中的报文的ACK报文中的RWND字段的值:RWND=RWND'*(1-α/2);其中,α=(1-g)*α′+g*F;RWND′为转发设备的当前RWND字段的值;α′是当前可调参数;g是可调参数;F是转发设备在TCP流的转发方向上的缓存的报文数量,报文的数据量,或报文的数据量占所述缓存区的比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量,或报文的数据量,或报文的数据量占所述缓存区的比例计算减小后的RWND字段的值。

在一种可能的实现方式中,上述转发方向包括上行方向和下行方向。本申请提供的网络拥塞控制方法对上行方向的转发和下行方向的转发场景均适用。

在一种可能的实现方式中,上述转发设备是核心交换机、汇聚交换机、接入交换机或者无线接入点AP。本申请提供的网络拥塞控制方法对TCP流转发场景中的任何网络设备均适用,例如核心交换机、汇聚交换机、接入交换机或者无线接入点AP等。

第二方面,提供一种转发设备,该转发设备用于转发TCP流;该转发设备包括:处理单元,用于在上述TCP流的转发方向上出现预拥塞时,减小该TCP流中的报文的确认ACK报文中的接收窗口RWND字段的值;其中,上述ACK报文与TCP流反向。

上述第二方面提供的技术方案,转发设备在TCP流的转发方向上出现预拥塞(即有拥塞可能)时,通过减小ACK报文中的RWND字段的值,以控制TCP流中的报文的发送端的发送速率,从而缓解转发设备的缓存压力,降低丢包问题,提高TCP流传输过程中报文的连续性和完成性。

在一种可能的实现方式中,上述转发设备还包括:存储单元,用于缓存上述TCP流;上述处理单元还用于,根据存储单元的缓存状态确定在TCP流的转发方向上出现预拥塞;其中,存储单元的缓存状态取决于以下一个或多个:该存储单元中缓存的报文数量、该存储单元中缓存的报文的数据量、该存储单元中缓存的报文的数据量占缓存区的比例。本申请中,转发设备根据存储器的缓存状态可以判断是否在TCP流的转发方向上出现预拥塞,以触发降低RWND字段的值的机制。

在一种可能的实现方式中,上述处理单元根据存储单元的缓存状态确定在TCP流的转发方向上出现预拥塞,具体包括:当满足以下一个或多个时,处理单元确定在TCP流的转发方向上出现预拥塞:上述存储单元在TCP流的转发方向上的缓存的报文数量大于预设数量,上述存储单元在TCP流的转发方向上的缓存的报文的数据量大于预设数据量,上述存储单元在TCP流的转发方向上的缓存的报文的数据量占缓存区的比例大于预设比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量、报文的数据量和报文的数据量占所述缓存区的比例中的一个或多个判断是否在TCP流的转发方向上出现预拥塞,以触发降低RWND字段的值的机制。

在一种可能的实现方式中,上述处理单元减小TCP流中的报文的ACK报文中的RWND字段的值,包括:处理单元根据以下一个或多个减小TCP流中的报文的ACK报文中的RWND字段的值:存储单元在TCP流的转发方向上缓存的报文数量,存储单元在TCP流的转发方向上缓存的报文的数据量,存储单元在TCP流的转发方向上缓存的报文的数据量占缓存区的比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量、报文的数据量和报文的数据量占所述缓存区的比例中的一个或多个计算减小后的RWND字段的值。

在一种可能的实现方式中,上述处理单元减小TCP流中的报文的ACK报文中的RWND字段的值,包括:处理单元根据以下公式减小TCP流中的报文的ACK报文中的RWND字段的值:RWND=RWND'*(1-α/2);其中,α=(1-g)*α′+g*F;RWND′为转发设备的当前RWND字段的值;α′是当前可调参数;g是可调参数;F是存储单元在TCP流的转发方向上的缓存的报文数量,报文的数据量,或报文的数据量占所述缓存区的比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量,报文的数据量,或报文的数据量占所述缓存区的比例计算减小后的RWND字段的值。

在一种可能的实现方式中,上述转发方向包括上行方向和下行方向。本申请提供的网络拥塞控制方法对上行方向的转发和下行方向的转发场景均适用。

在一种可能的实现方式中,上述转发设备是核心交换机、汇聚交换机、接入交换机或者无线接入点AP。本申请提供的网络拥塞控制方法对TCP流转发场景中的任何网络设备均适用,例如核心交换机、汇聚交换机、接入交换机或者无线接入点AP等。

第三方面,提供一种转发设备,该转发设备用于转发TCP流;该转发设备包括:存储器,用于存储计算机程序和上述TCP流;收发器,用于接收或发送无线电信号;处理器,用于执行所述计算机程序,使得转发设备在上述TCP流的转发方向上出现预拥塞时,减小该TCP流中的报文的确认ACK报文中的接收窗口RWND字段的值;其中,上述ACK报文与TCP流反向。

上述第三方面提供的技术方案,转发设备在TCP流的转发方向上出现预拥塞(即有拥塞可能)时,通过减小ACK报文中的RWND字段的值,以控制TCP流中的报文的发送端的发送速率,从而缓解转发设备的缓存压力,降低丢包问题,提高TCP流传输过程中报文的连续性和完成性。

在一种可能的实现方式中,上述处理器还用于,执行所述计算机程序,使得转发设备根据存储器的缓存状态确定在TCP流的转发方向上出现预拥塞;其中,存储器的缓存状态取决于以下一个或多个:该存储器中缓存的报文数量、该存储器中缓存的报文的数据量、该存储器中缓存的报文的数据量占缓存区的比例。本申请中,转发设备根据存储器的缓存状态可以判断是否在TCP流的转发方向上出现预拥塞,以触发降低RWND字段的值的机制。

在一种可能的实现方式中,上述处理器具体用于,执行所述计算机程序,使得转发设备在满足以下一个或多个时,确定在TCP流的转发方向上出现预拥塞:上述存储器在TCP流的转发方向上的缓存的报文数量大于预设数量,上述存储器在TCP流的转发方向上的缓存的报文的数据量大于预设数据量,上述存储器在TCP流的转发方向上的缓存的报文的数据量占缓存区的比例大于预设比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量、报文的数据量和报文的数据量占所述缓存区的比例中的一个或多个判断是否在TCP流的转发方向上出现预拥塞,以触发降低RWND字段的值的机制。

在一种可能的实现方式中,上述处理器减小TCP流中的报文的ACK报文中的RWND字段的值,包括:处理器根据以下一个或多个减小TCP流中的报文的ACK报文中的RWND字段的值:存储器在TCP流的转发方向上缓存的报文数量,存储器在TCP流的转发方向上缓存的报文的数据量,存储器在TCP流的转发方向上缓存的报文的数据量占缓存区的比例,减小TCP流中的报文的ACK报文中的RWND字段的值。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量、报文的数据量和报文的数据量占所述缓存区的比例中的一个或多个计算减小后的RWND字段的值。

在一种可能的实现方式中,上述处理器执行上述计算机程序,使得转发设备减小TCP流中的报文的ACK报文中的RWND字段的值,包括:上述处理器执行上述计算机程序,使得转发设备根据以下公式减小TCP流中的报文的ACK报文中的RWND字段的值:RWND=RWND'*(1-α/2);其中,α=(1-g)*α′+g*F;RWND′为转发设备的当前RWND字段的值;α′是当前可调参数;g是可调参数;F是存储器在TCP流的转发方向上的缓存的报文数量,报文的数据量,或报文的数据量占所述缓存区的比例。本申请中,转发设备可以根据在TCP流的转发方向上的缓存的报文数量,报文的数据量,或报文的数据量占所述缓存区的比例计算较小后的RWND字段的值。

在一种可能的实现方式中,上述转发方向包括上行方向和下行方向。本申请提供的网络拥塞控制方法对上行方向的转发和下行方向的转发场景均适用。

在一种可能的实现方式中,上述转发设备是核心交换机、汇聚交换机、接入交换机或者无线接入点AP。本申请提供的网络拥塞控制方法对TCP流转发场景中的任何网络设备均适用,例如核心交换机、汇聚交换机、接入交换机或者无线接入点AP等。

第四方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序代码,该计算机程序代码被处理器执行时实现如第一方面任一种可能的实现方式中的方法。

第五方面,提供一种芯片系统,该芯片系统包括处理器、存储器,存储器中存储有计算机程序代码;所述计算机程序代码被所述处理器执行时,实现如第一方面任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

第六方面,提供一种计算机程序产品,当其在计算机上运行时,使得实现如第一方面任一种可能的实现方式中的方法。

附图说明

图1为本申请实施例提供的一种企业园区网络架构图;

图2为本申请实施例提供的一种转发设备的硬件结构示意图;

图3为本申请实施例提供的一种转发设备的功能模块示意图;

图4为本申请实施例提供的一种网络拥塞控制方法的流程示意图;

图5为本申请实施例提供的另一种网络拥塞控制方法的流程示意图;

图6为本申请实施例提供的一种网络拥塞示例图;

图7为本申请实施例提供的一种网络拥塞控制方法的交互图;

图8为本申请实施例提供的一种转发设备结构框图。

具体实施方式

本申请实施例提供一种网络拥塞控制方法,可以应用于基于传输控制协议(transmission control protocol,TCP)的通信系统中。

例如,本申请实施例提供的网络拥塞控制方法可以适用于基于TCP协议的以下通信系统中:物联网(internet of things,IoT)系统、无线局域网(wireless local accessnetwork,WLAN)系统、长期演进(long term evolution,LTE)系统、第五代移动通信(5thgeneration mobile networks or 5th generation wireless systems,5G)新空口(newradio,NR)系统、或者5G之后的通信系统,例如6G系统、设备到设备(device to device,D2D)通信系统、车联网等。本申请不作限定。

本申请不限定网络拥塞控制方法的具体应用场景,例如,本申请实施例提供的一种网络拥塞控制方法可以应用于图1所示的企业园区网络场景或数据中心网络场景中。

例如,在IoT系统的企业园区网络场景中,通过各种信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等装置与互联网结合起来而形成的一个巨大网络。其目的是让所有的物品都与网络连接在一起,方便识别和管理。例如,监控摄像头采集的数据需要分别通过无线AP和交换机上传至服务器,在服务器侧进行汇总分析和统一管理。通常,企业园区网络是分层的,例如可以分为接入层、汇聚层和核心层。每一层分别对应接入交换机、汇聚交换机和核心交换机。

其中,AP主要用于移动终端(例如手机)等设备接入有线网络的接入点。可以用于宽带家庭、大楼内部以及园区内部等,AP可以覆盖几十米至上百米。接入交换机主要用于将终端设备连接到网络。网络中直接面向用户连接或访问网络的部分称为接入层。接入交换机一般用于直接连接电脑等终端设备。因此接入交换机通常具有低成本和高端口密度特性。汇聚交换机是多台接入交换机的汇聚点,它能够处理来自接入层设备(如接入交换机)的所有通信量,并提供到核心层设备(如核心交换机)的上行链路。因此汇聚层交换机与接入层交换机相比,通常具有更高的性能,更少的接口和更高的交换速率。在企业园区网络中,汇聚交换机一般用于楼宇间,相当于一个局部或重要的中转站。核心交换机主要用于为汇聚层设备(如汇聚交换机)提供高速的传输和优化,相当于一个出口或总汇总。核心交换机承受、汇聚着所有传输流量,因此,核心交换机通常具有较高的可靠性和吞吐量。例如,吞吐量强大的二层交换机或者三层交换机可以作为核心交换机。服务器包括企业园区内部的服务器群,例如,企业园区中自建的数据中心(data center,DC)、机房或者私有云。服务器用于为终端设备提供远程服务(例如,计算服务、存储服务以及网络服务)。DC或私有云是企业园区网络中自建的数据中心或者机房,用于提供远程服务。DC或私有云是由云服务客户控制,用于单一云服务用户和资源专用的云部署模式。DC或私有云可能由企业本身或第三方拥有、管理和运营,可能部署在企业工作场所内。私有云可能部署在DC内。在本申请实施例中,上行TCP流的发送端是终端设备,最终接收端可能设置在服务器(如DC或私有云)中。

在本申请中,终端设备可以是具有有线或无线连接功能的桌面型设备、膝上型设备、手持型设备、可穿戴设备、智能家居设备、计算设备和车载型设备等。例如,上网本、平板电脑、智能手表、超级计算机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、智能相机、上网本、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portable multimedia player,PMP)、AR(增强现实)/VR(虚拟现实)设备、飞行器上的无线设备、机器人上的无线设备、工业控制中的无线设备、远程医疗中的无线设备、智能电网中的无线设备、智慧城市(smart city)中的无线设备等。或者UE还可以是窄带(narrow band,NB)技术中的无线设备等。此外,在本申请中,终端设备还可以是IoT系统中的终端设备,例如,传感器或摄像头等。或者,终端设备还可以是工业制造自动光学检测(automatic optical inspection,AOI)设备等。本申请对终端设备的具体类型和结构等不作限定。

需要说明的是,本申请不限定企业园区网络的网络架构。也就是说,企业园区网络并不限于图1所示的各个网络设备,还可以包括其他功能的网络设备。例如,企业园区网络还可以包括园区网络控制器、出口路由器、运营商网络、专用网络或公有云等。

其中,在园区网络控制器用于管理园区网络设备(例如图1所示的核心交换机、汇聚交换和、接入交换机、AP等)。例如,园区网络控制器可以是软件定义网络(softwaredefined network,SDN)控制器,SDN控制器用于负责流量控制以确保智能网络等。出口路由器用于提供访问广域网络三层接口服务,提供局域网或广域网络的报文转发功能等。公有云是由云服务提供商控制,用于云服务用户和资源的云部署模式。云服务商构建基础架构,整合资源构建云端虚拟资源池,根据需要分配给多租户使用。例如,公有云可以包括云服务器或云服务器实例等。

本申请实施例提供的一种网络拥塞控制方法中,发送端向接收端发送基于业务的TCP流。其中,该业务可以包括但不限于视频业务或语音业务等。每一个TCP流中包括一个或多个报文。每一个TCP流可以对应一个业务,也可以对应一个用户等,本申请不作限定。转发设备在接收到该TCP流时,将其中的报文缓存在缓存区。转发设备在TCP流的转发方向上有拥塞可能时,通过减小确认(acknowledge,ACK)报文中的接收窗口(Receive Window,RWND)字段的值,以控制TCP流中的报文的发送端的发送速率,从而缓解转发设备的缓存压力,降低丢包问题,提高TCP流传输过程中报文的连续性和完成性。例如,转发设备在上行TCP流的转发方向上有拥塞可能时,通过减小下行ACK报文中的RWND字段的值,以控制终端设备的发送速率。转发设备在下行TCP流的转发方向上有拥塞可能时,通过减小上行ACK报文中的RWND字段的值,以控制服务器(如DC或私有云)的发送速率。

其中,在TCP/因特网协议(Internet Protocol,IP)中,在TCP报文传输过程中,如果TCP报文的接收端成功接收到报文,则会向TCP报文的发送端回复一个ACK报文,以向TCP报文的发送端确认已接收到相应的TCP报文。当TCP报文的发送方接收到ACK报文时,就可以发送下一个报文。如果TCP报文的发送端没有收到ACK报文,则可能会重发当前报文,也可能停止发送报文等。具体情况取决于所采用的网络协议。通常ACK报文有固定的格式和长度大小。本申请实施例对ACK报文的报文格式和长度大小不做特别限定,只要符合传输协议即可。关于ACK报文的具体介绍,可以参考常规技术中的解释和说明,这里不做赘述。

在本申请实施例中,ACK报文与TCP流的转发方向相反。以图1所示的企业园区网络架构为例,若转发设备是核心交换机,TCP流的转发方向为上行,则ACK报文为下行ACK报文。在这种情况下,ACK报文由核心交换机转发给汇聚交换机1和/或汇聚交换机2。若转发设备是汇聚交换机1,TCP流的转发方向为上行,则ACK报文为下行ACK报文。在这种情况下,ACK报文由汇聚交换机1转发给接入交换机1-接入交换机10中的至少一个。若转发设备是接入交换机1,TCP流的转发方向为上行,则ACK报文为下行ACK报文。在这种情况下,ACK报文由接入交换机1转发给无线接入点(access point,AP)1-无线AP n(n为正整数)中的至少一个。若转发设备是接入交换机10,TCP流的转发方向为上行,则ACK报文为下行ACK报文。在这种情况下,ACK报文由接入交换机10转发给超级计算机1。若转发设备是无线AP 1,TCP流的转发方向为上行,则ACK报文为下行ACK报文。在这种情况下,ACK报文由AP 1转发给手机1-手机m(m为正整数)中的至少一个。在TCP流的转发方向为上行时,TCP流的发送端通常为终端设备,例如图1所示的手机(如手机1-手机4m)或超级计算机(如超级计算机1或超级计算机2)。

若转发设备是无线AP 1,TCP流的转发方向为下行,则ACK报文为上行ACK报文。在这种情况下,ACK报文由AP 1转发给手接入交换机1。若转发设备是接入交换机1,TCP流的转发方向为下行,则ACK报文为上行ACK报文。在这种情况下,ACK报文由接入交换机1转发给汇聚交换机1。若转发设备是汇聚交换机1,TCP流的转发方向为下行,则ACK报文为上行ACK报文。在这种情况下,ACK报文由汇聚交换机1转发给核心交换机。在TCP流的转发方向为下行时,TCP流的发送端通常为网络设备,例如图1所示的核心交换机。

如上文所示,本申请中的转发设备可以是图1所示的核心交换机、汇聚交换机、接入交换机或AP。但是不申请不限定转发设备的具体功能和结构。例如,转发设备还可以是企业园区网络架构中的园区网络控制器。转发设备还可以是其他TCP传输的场景中的设备。该设备具有转发TCP报文的能力。

请参考图2,图2示出了本申请实施例提供的一种转发设备的硬件结构示意图。如图2所示,转发设备可以包括处理器201,通信线路202,存储器203以及至少一个通信接口(图2中仅是示例性的以包括通信接口204为例进行说明)。

处理器201可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。

通信线路202可包括一通路,在上述组件之间传送信息。

通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信。例如,与AP、接入交换机、汇聚交换机、核心交换机或网络控制器通信。

存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路402与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器203用于存储执行本申请方案的计算机执行指令,其中,存储器203可以存储用于实现模块化功能的指令,如发送指令、接收指令和处理指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机执行指令,从而实现本申请下述实施例提供的方法。图2中示出的存储器203仅为示意图,该存储器还可以包括其他功能化的指令,对此,本发明对此不进行限定。

可选的,本申请中的计算机执行指令也可以称之为应用程序代码,本申请对此不作具体限定。

在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。

需要说明的是,图2所示转发设备包括的硬件模块只是示例性地描述,并不对转发设备的具体结构做出限定。例如,转发设备还可以包括其他功能模块。

在一种可能的结构中,如图3所示,处理器201可以包括网络处理器(networkprocessor,NP)、流量管理器(traffic manager,TM)和包编辑器(packet editor,PE)。存储器203可以包括输出缓存器(output buffer,OB)。

其中,OB可以用于缓存接收到的TCP流。

TM可以用于从OB获取队列和端口吞吐信息,并向NP提供队列和端口吞吐信息。TM还可以用于接受PE的使能显示拥塞通知(explicit congestion notification,ECN)通知,读取水线寄存器信息,以及根据水线和队列缓存长度修改报文的ECN字段。

NP可以用于向PE发送使能ECN指令。NP还可以用于从TM的寄存器读取信息,根据读取的信息,如队列缓存和吞吐计算水线。修改TM的水线寄存器值。根据队列拥塞情况计算拥塞窗口(congestion window,CWND)。

本申请提供的一种网络拥塞控制方法可以应用于具有图2结构或者类似结构的转发设备中。或者还可以应用于其他结构的转发设备中,本申请不限定。

以下进一步对本申请实施例提供的一种网络拥塞控制方法进行具体介绍。

请参考图4,图4是本申请实施例提供的一种网络拥塞控制方法的流程示意图。该方法的执行主体是转发设备。该转发设备用于转发TCP流。例如,该转发设备可以是图1所示的AP、接入交换机、汇聚交换机或者核心交换机。如图4所示,该网络拥塞控制方法可以包括以下步骤S401和S402:

S401、转发设备确定在TCP流的转发方向上出现预拥塞。

其中,TCP流的转发方向包括上行方向和下行方向。

以图1所示的园区网络架构为例,TCP流的上行转发方向可以是图1中手机(如手机1-手机4m)→服务器方向;或者,是图1中超级计算机(如超级计算机1或超级计算机2)→服务器方向。更为具体的,TCP流的上行转发方向是图1中手机→AP→接入交换机→汇聚交换机→核心交换机→服务器方向;或者,是图1中超级计算机→接入交换机→汇聚交换机→核心交换机→服务器方向。TCP流的下行转发方向可以是图1中服务器→手机(如手机1-手机4m)方向;或者,是图1中服务器→超级计算机(如超级计算机1或超级计算机2)方向。更为具体的,TCP流的下行转发方向是图1中服务器→核心交换机→汇聚交换机→接入交换机→AP→手机方向;或者,是图1中服务器→核心交换机→汇聚交换机→接入交换机→超级计算机方向。

在一些实施例中,上述步骤S401具体可以包括:转发设备根据转发设备的缓存状态,确定在TCP流的转发方向上出现预拥塞。其中,转发设备的缓存状态至少用于表征转发设备中缓存的报文数量、转发设备中缓存的报文的数据量占缓存区的比例。例如,转发设备的缓存状态取决于以下一个或多个:转发设备中缓存的报文数量、转发设备中缓存的报文的数据量、转发设备中缓存的报文的数据量占缓存区的比例。例如,若转发设备的一个缓存区缓存的报文数量大于预设数量,则转发设备确定在经由该缓存区转发的TCP流的转发方向上出现预拥塞。又如,若转发设备在一个缓存区缓存的报文的数据量占缓存区的比例大于预设比例,则转发设备确定在经由该缓存区转发的TCP流的转发方向上出现预拥塞。

本申请实施例中,若转发设备确定在TCP流的转发方向上既缓存有TCP报文,也缓存有用户数据报协议(user datagram protocol,UDP)报文或者基于其他协议的报文(如网络组管理协议(internet group management protocol,IGMP)报文、网络控制信息协议(internet control message protocol,ICMP)报文、开放式最短路径优先(open shortestpath first,OSPF)报文或边界网关协议(border gateway protocol,BGP)报文等),则转发设备可以基于转发设备中缓存报文的总数量,或转发设备中缓存的报文的总数据量判断转发设备确定在TCP流的转发方向上是否预拥塞。

其中,上述预设数量或预设比例可以是人工设置的,也可以是转发设备根据当前TCP流的转发方向的吞吐量和缓存区缓存的报文数量/报文的数据量计算得到的。例如,预设数量可以为100个报文,预设数据量可以为100千字节(kByte)报文,预设比例可以为75%。

可以理解,TCP流的转发方向上的缓存的报文数量、转发设备中缓存的报文的数据量占缓存区的比例等均可以体现出转发设备的缓存状态。例如,缓存的报文数量越多,或缓存的报文的数据量越大,或缓存的报文的数据量占缓存区的比例越高,均可以说明转发设备缓存区中剩余缓存区越小,越容易造成拥塞。拥塞是指,在缓存区中的剩余缓存区小于预设值时(如缓存区已占满时),缓存区丢弃报文,以缓解缓存区的缓存压力。缓存区丢弃的可能是之前缓存的报文,也可能是新流入的报文。因此,转发设备缓存区中剩余缓存区越小,则丢包的可能性越大。接近拥塞的状态被称为预拥塞。在这种情况下,转发设备可以在TCP流的转发方向上出现预拥塞时,修改ACK报文中的RWND字段的值,从而缓解转发设备的缓存压力,避免由于拥塞导致的丢包(包括上行丢包和下行丢包)。

S402、转发设备减小TCP流中的报文的ACK报文中的RWND字段的值。

其中,ACK报文中的RWND字段的值用于表征TCP流的接收端的能够接收的报文数量或报文的数据量。RWND字段的值越大,则TCP流的发送端可以以越大的发送速率向接收端发送TCP报文。RWND字段的值越小,则TCP流的发送端需要以越小的发送速率向接收端发送TCP报文。

在本申请中,转发设备可以根据转发设备的缓存状态确定新的RWND字段的值,即减小后的ACK报文中的RWND字段的值。具体的,当满足转发设备在TCP流的转发方向上缓存的报文数量大于预设数量,转发设备在TCP流的转发方向上缓存的报文的数据量大于预设数据量,或转发设备在TCP流的转发方向上缓存的报文的数据量占缓存区的比例大于预设比例中的一个或多个时,转发设备确定在TCP流的转发方向上出现预拥塞。

例如,假设RWND′为转发设备的当前RWND字段的值。转发设备可以根据以下公式减小所述TCP流中的报文的ACK报文中的RWND字段的值:RWND=RWND'*(1-α/2)。

其中,α=(1-g)*α′+g*F;α′是当前可调参数,g是可调参数,F是转发设备在TCP流的转发方向上的缓存的报文数量,缓存的报文的数据量,或缓存的报文的数据量占缓存区的比例。

或者,转发设备还可以基于上述参数F,采用其他计算式得到RWND字段的值。

或者,转发设备还可以采用其他计算原则或方法计算得到减小后的ACK报文中的RWND字段的值。可以参考常规技术中的处理方法。本申请实施例对转发设备确定减小后的ACK报文中的RWND字段的值的具体方法不作限定。

进一步的,如图5所示,本申请实施例提供的网络拥塞控制方法还可以包括以下步骤S403:

S403、转发设备转发ACK报文。

其中,ACK报文(包括下行ACK报文或上行ACK报文)中包括RWND字段。ACK报文用于通知TCP流中的报文的发送端,接收端已收到相应报文。以及,进一步的,ACK报文用于通知报文的发送端根据ACK报文中RWND字段的值调整发送速率,以缓解转发设备的缓存压力,从而降低丢包问题(包括上行丢包和下行丢包)。其中,调整发送速率包括提高发送速率或降低发送速率。具体的,TCP报文的发送端可以通过调整其发送窗口以调整发送速率。其中,发送窗口是指发送方向网络中一次连续写入的报文数量或报文的数据量。

本申请中,上述ACK报文与TCP流反向。若TCP流的转发方向为上行,则ACK报文为下行ACK报文。若TCP流的转发方向为下行,则ACK报文为上行ACK报文。

以图1所示的园区网络架构为例,若TCP流的转发方向是图1中手机(如手机1-手机4m)或超级计算机(如超级计算机1或超级计算机2)→服务器方向,则ACK报文由服务器发送给手机(如手机1-手机4m)或超级计算机(如超级计算机1或超级计算机2)。若TCP流的转发方向是图1中服务器→手机(如手机1-手机4m)或超级计算机(如超级计算机1或超级计算机2)方向,则ACK报文接入交换机/AP发送给服务器。

如图6所示,以转发设备是汇聚交换机1,拥塞报文的发送端是超级计算机1,超级计算机1通过接入交换机10与汇聚交换机1连接为例,S403具体可以包括:转发设备(即汇聚交换机1)向接入交换机10转发ACK报文。如图7所示,接入交换机10在接收汇聚交换机1转发的ACK报文之后,本申请实施例提供的网络拥塞控制方法还可以包括以下步骤S701、S702-1或S702-2:

S701、接入交换机10向超级计算机1转发ACK报文。

其中,接入交换机10向超级计算机1转发ACK报文用于延缓超级计算机1发送上行报文,或者,用于超级计算机1降低上行报文的发送速率。

S702-1、超级计算机1降低上行报文的发送速率。

例如,超级计算机1可以通过减小发送窗口,以降低上行报文的发送速率。或者,超级计算机1可以通过其他方式降低上行报文的发送速率。可以参考常规技术,本申请不限定。

S702-2、超级计算机1延缓发送上行报文。

例如,超级计算机1可以延缓向服务器发送上行报文t时长。示例性的,t可以根据ACK报文中的RWND字段的值确定。或者,超级计算机1可以暂停向服务器发送上行报文,直至接收到恢复发送窗口的指示信息。本申请不限定。

同样,对于转发设备是核心交换机、接入交换机或AP等其他设备的情况,可以参考上述过程。以及,对于上行ACK报文的情况,也可参考上述过程。这里不做赘述。

本申请中,转发设备在TCP流的转发方向上有拥塞可能时,通过减小ACK报文中的RWND字段的值,以降低TCP流中的报文的发送端的发送速率或延缓发送端发送报文,从而缓解转发设备的缓存压力,降低丢包问题,提高TCP流传输过程中报文的连续性和完成性。

应理解,本申请实施例的各个方案可以进行合理的组合使用,并且实施例中出现的各个术语的解释或说明可以在各个实施例中互相参考或解释,对此不作限定。

还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

可以理解的是,转发设备(例如核心交换机、汇聚交换机、接入交换机或者无线接入点AP等)为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以对转发设备(例如核心交换机、汇聚交换机、接入交换机或者无线接入点AP等)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

比如,以采用集成的方式划分各个功能模块的情况下,如图8所示,为本申请实施例提供的一种转发设备的结构框图。该转发设备(例如核心交换机、汇聚交换机、接入交换机或者无线接入点AP等)可以包括处理单元810、存储单元820和收发单元830。

其中,处理单元810用于在上述TCP流的转发方向上出现预拥塞时,减小该TCP流中的报文的确认ACK报文中的接收窗口RWND字段的值;其中,上述ACK报文与TCP流反向,转发方向包括上行方向和下行方向。和/或,用于本文所描述的技术的其他过程。存储单元820用于存储计算机程序,缓存上述TCP流,和/或,用于本文所描述的技术的其他信息。收发单元830用于接收或发送无线电信号,例如,转发接收到的TCP流,和/或,用于本文所描述的技术的其他信息。

在一些实施例中,上述处理单元810还用于,根据存储单元820的缓存状态确定在TCP流的转发方向上出现预拥塞。其中,存储单元820的缓存状态取决于以下一个或多个:该存储单元820中缓存的报文数量、该存储单元820中缓存的报文的数据量、存储单元820中缓存的报文的数据量占缓存区的比例。

在一些实施例中,当满足一下一个或多个时,处理单元810确定在TCP流的转发方向上出现预拥塞:上述存储单元820在TCP流的转发方向上的缓存的报文数量大于预设数量,上述存储单元820在TCP流的转发方向上的缓存的报文的数据量大于预设数据量,上述存储单元820在TCP流的转发方向上的缓存的报文的数据量占缓存区的比例大于预设比例。

在一些实施例中,上述处理单元810可以根据以下公式减小TCP流中的报文的ACK报文中的RWND字段的值:RWND=RWND'*(1-α/2)。其中,α=(1-g)*α′+g*F;RWND′为转发设备的当前RWND字段的值;α′是当前可调参数;g是可调参数;F是在TCP流的转发方向上的缓存的报文数量,报文的数据量,或者报文的数据量占所述缓存区的比例。

需要说明的是,上述收发单元830可以包括射频电路。转发设备可以通过射频电路进行无线信号的接收和发送。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。

在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线((digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如数字化视频光盘(digital video disk,DVD))、或者半导体介质(例如固态硬盘solid state disk(SSD))等。

结合本申请实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于探测装置中。当然,处理器和存储介质也可以作为分立组件存在于探测装置中。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在一种可选的方式中,本申请提供一种芯片系统,该芯片系统包括处理器、存储器,存储器中存储有计算机程序代码;当计算机程序代码被处理器执行时,实现本申请提供的任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于限速策略的数据传输方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!