一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-02-20 19:51:04 来源:中国专利 TAG:
1.本技术涉及通信
技术领域
:,尤其涉及一种网络拥塞控制方法及设备。
背景技术
::2.常规技术中,为了降低传输控制协议(tcp)传输过程中网络拥塞的风险,引入了基于ecn的拥塞控制方法。该方法的基本原理是:网络设备在发生预拥塞时进行拥塞ecn标记,以便报文发送端(如终端设备或服务器)进行拥塞窗口(congestionwindow,cwnd)调整,从而避免网络拥塞风险。3.但是,上述拥塞ecn标记是网络设备在发生预拥塞时标记在报文中的,之后,该拥塞ecn标记会跟随报文被转发至报文接收端,再由报文接收端通过确认(acknowledge,ack)报文发送给报文发送端。由于网络的时延,造成了拥塞反馈响应的滞后,特别是造成了在tcp慢启动阶段的拥塞反馈响应的滞后。拥塞反馈响应的滞后,会导致拥塞不及时控制,从而导致时延增加和丢包率突增等问题,影响用户体验。技术实现要素:4.本技术提供一种网络拥塞控制方法及设备,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致拥塞控制不及时,从而导致时延增加和丢包率突增等问题。5.为达到上述目的,本技术采用如下技术方案:6.第一方面,提供一种网络拥塞控制方法,该方法包括:转发设备接收tcp报文;转发设备在tcp流的转发方向上的缓存占用大于预警水线且小于预拥塞水线时,在tcp报文中设置拥塞预警指示;转发设备转发包括拥塞预警指示的tcp报文。7.上述第一方面提供的技术方案,转发设备通过在tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预警水线且小于对应预拥塞水线时,在大于该预警水线的报文中设置拥塞预警指示,以尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。在转发设备发生预拥塞前,提前采取慢启动阶段→拥塞避免阶段的状态切换,可以避免在发生拥塞之后一段时间才进行拥塞控制导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。8.在一种可能的实现方式中,上述方法还包括:转发设备在tcp流的反向方向上接收tcp报文对应的ack报文;该ack报文包括拥塞预警标识,该拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。转发设备通过向tcp流的发送设备转发包括拥塞预警标识的ack报文,以指示tcp流的发送设备对转发设备的拥塞预警做出响应,调整tcp会话的状态,将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。9.在一种可能的实现方式中,上述拥塞预警指示以显式拥塞通知ecn标记表示。10.在一种可能的实现方式中,如果ecn标记的值为“01”表示ecn协商成功,ecn标记为“10”表示上述拥塞预警指示;或者,如果ecn标记的值为“10”表示ecn协商成功,ecn标记为“01”表示上述拥塞预警指示。本技术中,转发设备可以通过“01”和“10”的反转进行拥塞预警指示。11.在一种可能的实现方式中,上述转发方向包括上行方向和下行方向。本技术提供的网络拥塞控制方法对上行方向的转发和下行方向的转发场景均适用。12.在一种可能的实现方式中,上述转发设备是核心交换机、汇聚交换机、接入交换机或者接入点ap。本技术提供的网络拥塞控制方法对tcp流转发场景中的任何转发设备均适用,例如核心交换机、汇聚交换机、接入交换机或者接入点ap等。13.第二方面,提供一种网络拥塞控制方法,该方法包括:接收设备接收第一tcp报文;该第一tcp报文包括拥塞预警指示;接收设备根据拥塞预警指示尝试将第一tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。14.上述第二方面提供的技术方案,tcp报文的接收设备在接收到tcp报文之后,根据tcp报文包括的拥塞预警指示尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。15.在一种可能的实现方式中,上述接收设备根据拥塞预警指示尝试将第一tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段,包括:接收设备在属于tcp会话的确认ack报文中设置拥塞预警标识;拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。接收设备根据tcp报文中包括的拥塞预警指示指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。16.在一种可能的实现方式中,上述接收设备在属于tcp会话的ack报文中设置拥塞预警标识,包括:接收设备将ack报文的flag位的reserved位置1。本技术中,接收设备可以通过将tcp报文对应的ack报文的flag位的reserved位置1作为拥塞预警标识。17.在一种可能的实现方式中,上述方法还包括:接收设备接收第二tcp报文;该第二tcp报文包括预拥塞指示;接收设备将第二tcp报文对应的ack报文的flag位的ecn-echo位置1。接收设备可以通过将第二tcp报文对应的ack报文的flag位的ecn-echo位置1作为拥塞标识,以指示指示tcp会话的发起设备对转发设备的预拥塞做出响应,将tcp会话的状态调整为拥塞阶段,以解决拥塞问题。18.第三方面,提供一种转发设备,该转发设备包括:收发单元,用于接收tcp报文;处理单元,用于在tcp流的转发方向上的缓存占用大于预警水线且小于预拥塞水线时,在tcp报文中设置拥塞预警指示;上述收发单元还用于,转发包括拥塞预警指示的tcp报文。19.上述第三方面提供的技术方案,转发设备通过在tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预警水线且小于对应预拥塞水线时,在大于该预警水线的报文中设置拥塞预警指示,以尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。在转发设备发生预拥塞前,提前采取慢启动阶段→拥塞避免阶段的状态切换,可以避免在发生拥塞之后一段时间才进行拥塞控制导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。20.在一种可能的实现方式中,上述收发单元还用于,在tcp流的反向方向上接收tcp报文对应的ack报文;该ack报文包括拥塞预警标识,该拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。转发设备通过向tcp流的发送设备转发包括拥塞预警标识的ack报文,以指示tcp流的发送设备对转发设备的拥塞预警做出响应,调整tcp会话的状态,将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。21.在一种可能的实现方式中,上述拥塞预警指示以显式拥塞通知ecn标记表示。22.在一种可能的实现方式中,如果ecn标记的值为“01”表示ecn协商成功,ecn标记为“10”表示上述拥塞预警指示;或者,如果ecn标记的值为“10”表示ecn协商成功,ecn标记为“01”表示上述拥塞预警指示。本技术中,转发设备可以通过“01”和“10”的反转进行拥塞预警指示。23.在一种可能的实现方式中,上述转发方向包括上行方向和下行方向。本技术提供的网络拥塞控制方法对上行方向的转发和下行方向的转发场景均适用。24.在一种可能的实现方式中,上述转发设备是核心交换机、汇聚交换机、接入交换机或者接入点ap。本技术提供的网络拥塞控制方法对tcp流转发场景中的任何转发设备均适用,例如核心交换机、汇聚交换机、接入交换机或者接入点ap等。25.第四方面,提供一种接收设备,该接收设备包括:收发单元,用于接收第一tcp报文;该第一tcp报文包括拥塞预警指示;处理单元,用于根据拥塞预警指示尝试将第一tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。26.上述第四方面提供的技术方案,tcp报文的接收设备在接收到第一tcp报文之后,根据第一tcp报文包括的拥塞预警指示尝试将第一tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。27.在一种可能的实现方式中,上述处理单元具体用于,在属于tcp会话的ack报文中设置拥塞预警标识;拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。接收设备根据第一tcp报文中包括的拥塞预警指示指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。28.在一种可能的实现方式中,上述处理单元在属于tcp会话的ack报文中设置拥塞预警标识,包括:处理单元将ack报文的flag位的reserved位置1。本技术中,接收设备可以通过将第一tcp报文对应的ack报文的flag位的reserved位置1作为拥塞预警标识。29.在一种可能的实现方式中,上述收发单元还用于,接收第二tcp报文,该第二tcp报文包括预拥塞指示;上述处理单元还用于,将第二tcp报文对应的ack报文的flag位的ecn-echo位置1。接收设备可以通过将第二tcp报文对应的ack报文的flag位的ecn-echo位置1作为拥塞标识,以指示tcp会话的发起设备对转发设备的预拥塞做出响应,将tcp会话的状态调整为拥塞阶段,以解决拥塞问题。30.第五方面,提供一种转发设备,该转发设备包括:存储器,用于存储计算机程序和上述tcp流;收发器,用于接收或发送无线电信号;处理器,用于执行所述计算机程序,使得转发设备通过收发器接收tcp报文;在tcp流的转发方向上的缓存占用大于预警水线且小于预拥塞水线时,在tcp报文中设置拥塞预警指示;以及,通过收发器转发包括拥塞预警指示的tcp报文。31.上述第五方面提供的技术方案,转发设备通过在tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预警水线且小于对应预拥塞水线时,在大于该预警水线的报文中设置拥塞预警指示,以尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。在转发设备发生预拥塞前,提前采取慢启动阶段→拥塞避免阶段的状态切换,可以避免在发生拥塞之后一段时间才进行拥塞控制导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。32.在一种可能的实现方式中,上述收发器还用于,在tcp流的反向方向上接收tcp报文对应的ack报文;该ack报文包括拥塞预警标识,该拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。转发设备通过向tcp流的发送设备转发包括拥塞预警标识的ack报文,以指示tcp流的发送设备对转发设备的拥塞预警做出响应,调整tcp会话的状态,将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。33.在一种可能的实现方式中,上述拥塞预警指示以显式拥塞通知ecn标记表示。34.在一种可能的实现方式中,如果ecn标记的值为“01”表示ecn协商成功,ecn标记为“10”表示上述拥塞预警指示;或者,如果ecn标记的值为“10”表示ecn协商成功,ecn标记为“01”表示上述拥塞预警指示。本技术中,转发设备可以通过“01”和“10”的反转进行拥塞预警指示。35.在一种可能的实现方式中,上述转发方向包括上行方向和下行方向。本技术提供的网络拥塞控制方法对上行方向的转发和下行方向的转发场景均适用。36.在一种可能的实现方式中,上述转发设备是核心交换机、汇聚交换机、接入交换机或者接入点ap。本技术提供的网络拥塞控制方法对tcp流转发场景中的任何转发设备均适用,例如核心交换机、汇聚交换机、接入交换机或者接入点ap等。37.第六方面,提供一种接收设备,该接收设备包括:存储器,用于存储计算机程序和tcp流;收发器,用于接收或发送无线电信号;处理器,用于执行所述计算机程序,使得接收设备通过收发器接收第一tcp报文;该第一tcp报文包括拥塞预警指示;以及,根据拥塞预警指示尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。38.上述第六方面提供的技术方案,tcp报文的接收设备在接收到第一tcp报文之后,根据第一tcp报文包括的拥塞预警指示尝试将第一tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。39.在一种可能的实现方式中,上述处理器具体用于,执行所述计算机程序,使得接收设备在属于tcp会话的确认ack报文中设置拥塞预警标识;拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。接收设备根据第一tcp报文中包括的拥塞预警指示指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。40.在一种可能的实现方式中,上述接收设备在属于tcp会话的ack报文中设置拥塞预警标识,包括:接收设备将ack报文的flag位的reserved位置1。本技术中,接收设备可以通generationmobilenetworksor5thgenerationwirelesssystems,5g)系统、或者5g之后的通信系统,例如6g系统、设备到设备(devicetodevice,d2d)通信系统、车联网等。本技术不作限定。60.本技术提供的一种网络拥塞控制方法可以应用于任何tcp传输的应用场景中。例如,本技术实施例提供的一种网络拥塞控制方法可以应用于企业园区网络场景或数据中心网络场景中。61.例如,在iot系统的企业园区网络场景中,通过各种信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等装置与互联网结合起来而形成的一个巨大网络。其目的是让所有的物品都与网络连接在一起,方便识别和管理。例如,摄像头采集的数据分别通过接入点(accesspoint,ap)和交换机上传至服务器,在服务器侧进行汇总分析和统一管理。62.通常,企业园区网络是分层的。如图1所示,企业园区网络可以分为接入层、汇聚层和核心层,其中,接入层对应接入交换机,汇聚层对应汇聚交换机,核心层对应核心交换机。63.其中,ap主要用于移动终端(例如手机)等设备接入有线网络。可以用于宽带家庭、大楼内部以及园区内部等。通常,ap可以覆盖几十米至上百米。网络中直接面向用户连接或访问网络的部分称为接入层。接入层对应的接入交换机主要用于将终端设备连接到网络。接入交换机一般用于直接连接电脑等终端设备,因此接入交换机通常具有低成本和高端口密度特性。汇聚交换机是多台接入层设备的汇聚点,它能够处理来自接入层设备(如接入交换机)的通信量,并提供到核心层设备(如核心交换机)的上行链路。因此,汇聚交换机与接入交换机相比,通常具有更高的性能,更少的接口和更高的交换速率。在企业园区网络中,汇聚交换机一般用于楼宇间,相当于一个局部或重要的中转站。核心交换机主要用于为汇聚层设备(如汇聚交换机)提供高速的传输和优化,相当于一个出口或总汇总。核心交换机承受、汇聚着所有传输流量,因此,核心交换机通常具有较高的可靠性和吞吐量。例如,吞吐量强大的二层交换机或者三层交换机可以作为核心交换机。服务器包括企业园区内部的服务器群,例如,企业园区中自建的数据中心(datacenter,dc)、机房或者私有云。服务器用于为终端设备提供远程服务(例如,计算服务、存储服务以及网络服务)。dc或私有云是企业园区网络中自建的数据中心或者机房,用于提供远程服务。dc或私有云是由云服务客户控制,用于单一云服务用户和资源专用的云部署模式。dc或私有云可能由企业本身或第三方拥有、管理和运营,可能部署在企业工作场所内。私有云可能部署在dc内。在本技术实施例中,上行tcp流的发送设备是终端设备,最终接收设备可能设置在服务器(如dc或私有云)中。64.在本技术中,终端设备可以是具有有线或无线连接功能的桌面型设备、膝上型设备、手持型设备、可穿戴设备、智能家居设备、计算设备和车载型设备等。例如,上网本、平板电脑、智能手表、超级计算机、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、智能相机、上网本、个人数字助理(personaldigitalassistant,pda)、便携式多媒体播放器(portablemultimediaplayer,pmp)、ar(增强现实)/vr(虚拟现实)设备、飞行器上的无线设备、机器人上的无线设备、工业控制中的无线设备、远程医疗中的无线设备、智能电网中的无线设备、智慧城市(smartcity)中的无线设备等。或者ue还可以是窄带(narrowband,nb)技术中的无线设备等。此外,在本技术中,终端设备还可以是iot系统中的终端设备,例如,传感器或摄像头等。或者,终端设备还可以是工业制造自动光学检测(automaticopticalinspection,aoi)设备等。本技术对终端设备的具体类型和结构等不作限定。65.需要说明的是,本技术不限定企业园区网络的网络架构。也就是说,企业园区网络并不限于图1所示的网络设备(包括服务器、核心交换机、汇聚交换机、接入交换机和ap),还可以包括其他网络设备。例如,企业园区网络还可以包括园区网络控制器、出口路由器、运营商网络、专用网络或公有云等。66.其中,园区网络控制器用于管理园区网络设备(例如图1所示的核心交换机、汇聚交换和、接入交换机、ap等)。例如,园区网络控制器可以是软件定义网络(softwaredefinednetwork,sdn)控制器,sdn控制器用于负责流量控制以确保智能网络等。出口路由器用于提供访问广域网络三层接口服务,提供局域网或广域网络的报文转发功能等。公有云是由云服务提供商控制,用于云服务用户和资源的云部署模式。云服务商构建基础架构,整合资源构建云端虚拟资源池,根据需要分配给多租户使用。例如,公有云可以包括云服务器或云服务器实例等。67.另外,需要说明的是,上述图1仅作为一种网络拥塞控制方法的应用场景示例,本技术提供的一种网络拥塞控制方法还可以应用于其他tcp传输的应用场景中,本技术不作限定。68.在tcp传输过程中,tcp报文的发送设备向接收设备发送基于业务的tcp流。其中,该业务可以包括但不限于视频业务或语音业务等。每一个tcp流包括一个或多个报文。每一个tcp流可以对应一个业务,也可以对应一个用户等,本技术不作限定。转发设备(如图1所示的核心交换机、汇聚交换机、接入交换机或ap)在接收到该tcp流时,将其中的报文缓存在缓存区,并转发给接收设备。69.其中,在tcp/因特网协议(internetprotocol,ip)中,在tcp报文传输过程中,如果tcp报文的接收设备成功接收到报文,则会向tcp报文的发送设备回复ack报文,以向tcp报文的发送设备确认已接收到相应的tcp报文。例如,tcp报文的发送设备为图1所示的手机1,tcp报文的接收设备为图1所示的服务器,则服务器在成功接收到报文后,向手机1回复ack报文,以向手机1确认已接收到相应的tcp报文。也就是说,ack报文与tcp流的转发方向相反。若tcp流的转发方向为上行,则ack报文为下行ack报文;若tcp流的转发方向为上行,则ack报文为下行ack报文。70.当tcp报文的发送设备接收到ack报文时,就可以发送下一个报文。如果tcp报文的发送设备没有收到ack报文,则可能会重发当前报文,也可能停止发送报文等。具体情况取决于所采用的网络协议。通常ack报文有固定的格式和长度大小。本技术实施例对ack报文的报文格式和长度大小不做特别限定,只要符合传输协议即可。关于ack报文的具体介绍,可以参考常规技术中的解释和说明,这里不做赘述。71.如上文所示,本技术中的转发设备可以是图1所示的核心交换机、汇聚交换机、接入交换机或ap。但是不申请不限定转发设备的具体功能和结构。例如,转发设备还可以是企业园区网络架构中的园区网络控制器。转发设备还可以是其他tcp传输的应用场景中的设备。该转发设备具有转发tcp报文的能力。72.请参考图2,图2示出了本技术实施例提供的一种网络设备或终端设备的硬件结构示意图,该网络设备可以是转发设备,也可以是tcp流的发送设备或接收设备;终端设备可以是tcp流的发送设备,也可以是tcp流的接收设备。如图2所示,网络设备或终端设备可以包括一个或多个处理器(图2中仅是以包括两个处理器201为例进行说明),通信线路202,存储器203以及至少一个通信接口(图2中仅是以包括通信接口204为例进行说明)。73.处理器201可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。74.通信线路202可包括一通路,在上述组件之间传送信息。75.通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信。例如,与ap、接入交换机、汇聚交换机、核心交换机或网络控制器通信。76.存储器203可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器203可以是独立存在,通过通信线路402与处理器201相连接。存储器203也可以和处理器201集成在一起。77.其中,存储器203用于存储执行本技术方案的计算机执行指令,其中,存储器203可以存储用于实现模块化功能的指令,如发送指令、接收指令和处理指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机执行指令,从而实现本技术下述实施例提供的方法。图2中示出的存储器203仅为示意图,该存储器还可以包括其他功能化的指令,对此,本发明对此不进行限定。78.可选的,本技术中的计算机执行指令也可以称之为应用程序代码,本技术对此不作具体限定。79.在具体实现中,作为一种实施例,处理器201可以包括一个或多个cpu,例如图2中的cpu0和cpu1。80.需要说明的是,图2所示网络设备或终端设备包括的硬件模块只是示例性地描述,并不对网络设备和终端设备的具体结构做出限定。例如,网络设备或终端设备还可以包括其他功能模块。81.在一种可能的结构中,在图2所示的设备是转发设备时,图2所示的处理器201可以包括如图3所示的网络处理器(networkprocessor,np)、流量管理器(trafficmanager,tm)和包编辑器(packeteditor,pe)。存储器203可以包括如图3所示的输出缓存器(outputbuffer,ob)。82.其中,ob可以用于缓存接收到的tcp流。83.tm可以用于从ob获取缓存队列和端口吞吐信息,并向np提供缓存队列和端口吞吐信息。tm还可以用于接受pe的使能ecn通知,读取水线寄存器信息,例如水线寄存器中存储的拥塞水线和预警水线。以及,根据水线(包括预拥塞水线和预警水线)和缓存队列(如缓存的报文数量、报文数据量或报文数据量占缓存区的比例)修改报文的ecn字段。84.np可以用于向pe发送使能ecn指令。np还可以用于从tm的寄存器读取信息,根据读取的信息,如队列缓存和吞吐计算水线。例如,计算预警水线和/或预拥塞水线。修改tm的水线寄存器中的水线值。85.在一些实施例中,np还用于根据队列拥塞情况调整接收窗口(receivewindow,rwnd)的值,或者计算拥塞窗口cwnd的值。86.本技术提供的一种网络拥塞控制方法可以应用于具有图2结构或者类似结构的网络设备或终端设备中。或者还可以应用于其他结构的设备中,本技术不限定。87.常规技术中,为了在tcp传输过程中实现拥塞控制,tcp拥塞控制算法通常采用滑动窗口策略,通过控制cwnd字段的值来调节发送速率,实现拥塞控制。例如,可以通过控制tcp状态机工作在慢启动(slowstart,ss)阶段和拥塞避免阶段,来进行cwnd字段的值的控制。88.具体的,每当建立一个tcp连接时或一个tcp连接发生超时重传后,该tcp连接便进入慢启动阶段。此后,tcp流的发送设备每收到一个报文对应的ack报文,cwnd的值加1。因此,在慢启动阶段,cwnd字段的值按指数增加。89.当cwnd字段的值超过慢启动阈值后,慢启动阶段结束,进入拥塞避免阶段。90.在拥塞避免阶段,cwnd字段的值通常呈加法增加(additiveincrease,ai)趋势。例如,在拥塞避免阶段,可以通过reno,cubic,数据中心tcp(datacentertcp,dctcp)等算法进行cwnd字段的值的控制。关于拥塞避免阶段的控制算法,可以参考常规技术中的介绍和说明,这里不做赘述。91.通常,慢启动阈值会设置的比较大,因此慢启动阶段持续的时间会比较长。如图4所示,假设在慢启动阶段,转发设备在t1时刻发生预拥塞时,通过在报文中进行拥塞ecn标记,以便报文接收端根据该拥塞ecn标记指示报文发送端进行cwnd调整,从而避免网络拥塞风险。92.但是,由于拥塞ecn标记是转发设备在发生预拥塞时标记在报文中的,之后,该拥塞ecn标记会跟随报文被转发至报文接收端,再由报文接收端通过ack报文发送给报文发送端。在这期间,报文发送端无法及时对转发设备的预拥塞事件做出响应。因此,在报文发送端还未及时做出响应时,由于慢启动阶段cwnd按指数增加的趋势,大量的tcp流导致转发设备已经发生拥塞。如图4所示,转发设备在t2时刻开始拥塞。而在转发设备发生拥塞一段时间之后,报文发送端在t3时刻才开始对t1时刻的预拥塞做出响应,控制tcp的状态机进入拥塞避免阶段。报文发送端响应的滞后,导致了拥塞不及时控制,从而导致时延增加和丢包率突增等问题,影响用户体验。93.为了解决上述问题,本技术提供的一种网络拥塞控制方法,该方法引入了预警(pre-alert)水线。其中,预警水线小于预拥塞水线。转发设备通过在tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预警水线且小于对应预拥塞水线时,在大于预警水线的报文中设置拥塞预警指示,在转发设备发生预拥塞前,提前采取慢启动阶段→拥塞避免阶段的状态切换。94.例如,预警水线和预拥塞水线的单位是报文数量,其中,预警水线为80个报文,预拥塞水线为100个报文。又如,预警水线和预拥塞水线的单位是报文数据量,其中,预警水线为80千字节(kbyte)报文,预拥塞水线为100kbyte报文。又如,预警水线和预拥塞水线的单位是缓存的报文数据量占缓存区的百分比,其中,预警水线为70%,预拥塞水线为75%。95.其中,在本技术中,“拥塞预警”是指预拥塞前,即将预拥塞的状态。“预拥塞”是指接近拥塞的状态。“拥塞”是指:在缓存队列中剩余的存储空间小于阈值的情况下(例如,缓存队列被占满),目标队列将丢弃一部分报文,以缓存队列的缓存压力。缓存队列丢弃的报文可能是已缓存的报文,也可能是新流入的报文。因此,缓存队列中剩余的存储空间越小,缓存队列丢包的可能性越大。96.其中,本技术实施例提供的一种网络拥塞控制方法中,转发设备(如图1所示的核心交换机、汇聚交换机、接入交换机或ap)中预先设置有预警水线和预拥塞水线。例如,预警水线和预拥塞水线预先设置在转发设备的处理器中的水线寄存器中。97.在一些实施例中,上述预警水线和预拥塞水线可以是人工设置的,也可以是转发设备计算得到的动态基线值。例如,预警水线和预拥塞水线可以根据当前tcp流的转发方向的吞吐量和缓存区缓存的报文数量/报文的数据量计算得到。又如,预警水线可以根据预拥塞水线确定。本技术不限定确定预警水线和预拥塞水线的具体设置方式和设置原则。98.例如,假设k1是预拥塞水线,rtt是tcp流的发送设备和tcp流的接收设备之间的往返时延(roundtriptime),rtt2是转发设备和tcp流的接收设备之间的往返时延,γ是可调参数(例如γ=1/2),则预警水线k2可以通过以下计算式计算得到:99.k2=k1×γ×(rtt rtt2)/rtt。100.作为一种示例,上述预拥塞水线k1可以通过以下计算式计算得到:101.k1=c×rtt×λ。102.其中,c为转发设备的出口带宽,rtt是tcp流的发送设备和tcp流的接收设备之间的往返时延,λ是可调参数(例如λ=1/7)。103.需要说明的是,上述计算式仅作为示例,还可以采用其他计算式,基于转发设备的预拥塞水线计算得到转发设备的预警水线。或者,还可以基于其他参数,计算得到转发设备的预警水线和拥塞水线,本技术不限定预警水线和拥塞水线具体的计算依据和方法。104.本技术实施例提供的一种网络拥塞控制方法中,转发设备用于转发tcp流。该转发设备具备ecn标记能力。例如,该转发设备可以是图1所示的ap、接入交换机、汇聚交换机或者核心交换机。105.其中,转发设备具备ecn标记能力是指转发设备具备为tcp报文打ecn标记的能力。106.在一种可能的情况下,tcp流的发送设备与tcp流的接收设备在开始tcp流的传输之前会先进行ecn协商,使得tcp流的发送设备与tcp流的接收设备都支持ecn机制。若tcp流的发送设备与tcp流的接收设备都支持ecn机制,则tcp流的发送设备在向tcp流的接收设备发送tcp报文之前会使能tcp报文的ecn标识位,此时ecn标识位的值为“01”或“10”。在这种情况下,转发设备具备为tcp报文打ecn标记的能力具体是指当转发设备的缓存队列达到预警水线且未达到预拥塞水线时,转发设备具备为tcp报文打上拥塞预警指示(即,将tcp报文的ecn标识位由“01”修改为“10”,或者由“10”修改为“01”)的能力,以通知接收设备转发设备发生拥塞预警。或者,当转发设备的缓存队列达到预拥塞水线时,转发设备具备为tcp报文打上预拥塞指示(即,将tcp报文的ecn标识位由“01”或者“10”修改为“11”)的能力,以通知接收设备转发设备发生预拥塞。107.在另一种可能的情况下,tcp流的发送设备与tcp流的接收设备在开始tcp流的传输之前不会进行ecn协商。例如,tcp流的发送设备与tcp流的接收设备属于不同厂家时,tcp流的发送设备与tcp流的接收设备在开始tcp流的传输之前不会进行ecn协商。那么tcp流的发送设备发送的tcp报文中可能不包括ecn标识位。在这种情况下,转发设备具备为tcp报文打ecn标记的能力具体可以是指当转发设备的缓存队列达到预警水线且未达到预拥塞水线时,或者当转发设备的缓存队列达到预拥塞水线时,转发设备具备使能tcp报文的ecn标识位的能力。在转发设备使能tcp报文的ecn标识位之后,转发设备可以在转发设备的缓存队列达到预警水线且未达到预拥塞水线时,将ecn标识位置“01”或者“10”,以通知接收设备转发设备发生拥塞预警。或者在转发设备的缓存队列达到预拥塞水线时,将ecn标识位置“11”,以通知接收设备转发设备发生预拥塞。108.请参考图5,图5示出了一种ip首部结构示意图。其中,图5所示的ip首部中的ecn标识位可以为“00”、“01”、“10”或“11”。其中,“00”用于表征ecn协商失败,即tcp流的发送设备和tcp流的接收设备中的至少一方不支持ecn机制。“01”或“10”表示ecn协商成功,即tcp流的发送设备和tcp流的接收设备均支持ecn机制。“11”表示tcp报文传输过程中,转发设备发生了预拥塞。109.通常,ip首部中的版本为4位(bit)ip协议(如ipv4)版本号。首部长度用于标识首部有多少个字节。差分业务编码(differentiatedservicescodepoint,dscp)用于表示整个ip首部的长度。例如,dscp最大可以为65535。110.需要说明的是,图5仅作为一种ip首部结构示例,本技术对ip首部的具体结构不作限定。例如,ip首部还可以包括其他信息,例如服务类型、段偏移量等。具体可以参考现有技术中的介绍,这里不做赘述。111.需要说明的是,无论tcp流的发送设备与tcp流的接收设备在开始tcp流的传输之前是否进行ecn协商,本技术实施例提供的一种网络拥塞控制方法均适用。以下结合附图,对本技术实施例提供的一种网络拥塞控制方法进行具体介绍。112.请参考图6,图6是本技术实施例提供的一种网络拥塞控制方法的流程示意图。如图6所示,本技术实施例提供的一种网络拥塞控制方法可以包括以下步骤s601-s603:113.s601、转发设备接收tcp报文。114.例如,tcp报文可以是基于视频业务或语音业务等的tcp报文。115.s602、转发设备在tcp流的转发方向的缓存占用大于预警水线且小于预拥塞水线时,在tcp报文中设置拥塞预警指示。116.其中,上述缓存占用大于预警水线且小于预拥塞水线可以包括但不限于:缓存的报文数量大于数量预警水线且小于数量预拥塞水线、报文数据量大于数据量预警水线且小于数据量预拥塞水线或报文数据量占缓存区的比例大于比例预警水线且小于比例预拥塞水线。117.其中,tcp流的转发方向包括上行方向和下行方向。118.以图1所示的园区网络架构为例,tcp流的上行转发方向可以是图1中手机(如手机1-手机4m)→服务器方向;或者,是图1中超级计算机(如超级计算机1或超级计算机2)→服务器方向。更为具体的,tcp流的上行转发方向是图1中手机→ap→接入交换机→汇聚交换机→核心交换机→服务器方向;或者,是图1中超级计算机→接入交换机→汇聚交换机→核心交换机→服务器方向。tcp流的下行转发方向可以是图1中服务器→手机(如手机1-手机4m)方向;或者,是图1中服务器→超级计算机(如超级计算机1或超级计算机2)方向。更为具体的,tcp流的下行转发方向是图1中服务器→核心交换机→汇聚交换机→接入交换机→ap→手机方向;或者,是图1中服务器→核心交换机→汇聚交换机→接入交换机→超级计算机方向。119.需要说明的是,在本技术实施例中,转发设备的缓存队列中可能既缓存有tcp报文,也缓存有用户数据报协议(userdatagramprotocol,udp)报文或者基于其他协议的报文(如网络组管理协议(internetgroupmanagementprotocol,igmp)报文、网络控制信息协议(internetcontrolmessageprotocol,icmp)报文、开放式最短路径优先(openshortestpathfirst,ospf)报文或边界网关协议(bordergatewayprotocol,bgp)报文等)。因此,缓存队列中的报文数量不仅包括tcp报文的数量,还包括其他类型报文的数量;缓存队列中的报文数据量不仅包括tcp报文的数据量,还包括其他类型报文的数据量。则转发设备可以基于转发设备中缓存的各个类型报文的总数量,或转发设备中缓存的各个类型报文的总数据量,或转发设备中缓存的各个类型报文的总数据量占缓存区的比例判断转发设备在tcp流的转发方向上的缓存队列是否大于预警水线。120.例如,预警水线和预拥塞水线的单位是报文数量,上述步骤s602具体可以包括:转发设备在传输tcp流的转发方向上的报文数量大于数量预警水线且小于数量预拥塞水线时,在tcp报文中设置拥塞预警指示。121.又如,预警水线和预拥塞水线的单位是报文数据量,上述步骤s602具体可以包括:转发设备在传输tcp流的转发方向上的报文数据量大于数据量预警水线且小于数据量预拥塞水线时,在tcp报文中设置拥塞预警指示。122.又如,预警水线和预拥塞水线的单位是缓存的报文数据量占缓存区的百分比,上述步骤s602具体可以包括:转发设备在传输tcp流的转发方向上的缓存的报文的数据量占缓存区的比例大于比例预警水线且小于比例预拥塞水线时,在tcp报文中设置拥塞预警指示。123.在本技术中,拥塞预警指示用于提前向tcp流的接收设备进行拥塞预警,以尝试将tcp报文所属tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。其中,在本技术中,tcp会话的发起设备也可以理解为tcp报文的发送端。124.例如,拥塞预警指示可以以ecn标记表示,如转发设备可以通过反转ecn标识位的方式进行拥塞预警指示。125.具体的,如果ecn标记的值为“01”表示ecn协商成功,可以用ecn标记为“10”表示拥塞预警指示,即若约定的ecn标识位为“01”,则转发设备将tcp报文中的ecn标识位置为“10”以表示拥塞预警指示。如果ecn标记的值为“10”表示ecn协商成功,可以用ecn标记为“01”表示拥塞预警指示,即若约定的ecn标识位为“10”,则转发设备将tcp报文中的ecn标识位置为“01”以表示拥塞预警指示。在tcp传输中,若约定的ecn标识位为“01”,则报文发送设备发送的报文中的ecn标识位为“01”;若约定的ecn标识位为“10”,则报文发送设备发送的报文中的ecn标识位为“10”。因此,若转发设备中缓存的队列未达到预警水线,则报文中的ecn标识位不变,只有在转发设备中缓存的队达到预警水线时,转发设备会反转报文中的ecn标识位。126.如图7中的(a)所示,假设预拥塞水线为k1,预警水线为水线k2,约定的ecn标识位为“01”。对于大于预警水线且小于预拥塞水线的缓存队列,即大于图7中的(a)所示的水线k2且小于图7中的(a)所示的水线k1的缓存队列(即图7中的(a)所示的区域a对应的缓存队列),转发设备将对应报文中ecn标识位由“01”置为“10”。127.进一步的,若在传输tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预拥塞水线时,转发设备在tcp报文中设置预拥塞指示。预拥塞指示用于通知接收设备转发设备发生预拥塞,以尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段。128.例如,预拥塞指示可以以ecn标记表示。具体的,如果ecn标记的值为“01”或“10”表示ecn协商成功,可以用ecn标记为“11”表示预拥塞指示。预拥塞指示用于通知接收设备转发设备发生预拥塞,以尝试将tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞阶段,以解决拥塞问题。129.例如,上述转发设备在tcp报文中设置拥塞指示,具体可以包括:转发设备在约定的ecn标识位为“01”或“10”时,将tcp报文中的ecn标识位置为“11”。130.如图7中的(b)所示,假设预拥塞水线为k1,预警水线为水线k2,约定的ecn标识位为“01”。对于大于预拥塞水线的缓存队列,即大于图7中的(a)所示的水线k1的缓存队列(即图7中的(a)所示的区域b对应的缓存队列),转发设备将对应报文中ecn标识位由“01”置为“11”。131.s603、转发设备向tcp流的接收设备转发设置了拥塞预警指示的tcp报文。132.其中,tcp报文中的拥塞预警指示用于tcp流的接收设备在tcp报文对应的ack报文中设置拥塞预警标识,以指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。133.进一步的,若转发设备在传输tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预拥塞水线时,转发设备在tcp报文中设置了预拥塞指示。则转发设备向tcp流的接收设备转发设置了预拥塞指示的tcp报文。该预拥塞指示用于tcp流的接收设备在tcp报文对应的ack报文中设置拥塞标识,以指示tcp会话的发起设备将tcp会话的状态调整为拥塞阶段,以解决拥塞问题。134.关于tcp流的接收设备在接收到转发设备转发的tcp报文后的具体行为,可以参考图8所示的步骤s801。135.如图8所示,在步骤s603之后,本技术实施例提供的一种网络拥塞控制方法还包括步骤s801-s804:136.s801、tcp流的接收设备根据tcp报文中包括的拥塞预警指示在tcp报文对应的ack报文中设置拥塞预警标识。137.其中,拥塞预警标识用于指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。其中,在本技术中,tcp会话的发起设备也可以理解为tcp报文的发送端。138.例如,若拥塞预警指示以ecn标记表示,tcp流的接收设备在接收到转发设备转发的tcp报文后,可以通过分析tcp报文的ip首部中的ecn标识位来确定转发设备是否发生拥塞预警。139.例如,若tcp流的接收设备与tcp流的发送设备约定的ecn标识位为“01”,但是tcp流的接收设备接收到转发设备转发的tcp报文中的ecn标识位为“10”,则tcp流的接收设备确定转发设备发生拥塞预警。又如,若tcp流的接收设备与tcp流的发送设备约定的ecn标识位为“10”,但是tcp流的接收设备接收到转发设备转发的tcp报文中的ecn标识位为“01”,则tcp流的接收设备确定转发设备发生拥塞预警。或者,tcp流的接收设备与tcp流的发送设备未协商ecn机制,但是tcp流的接收设备接收到转发设备转发的tcp报文包括ecn标识位,且ecn标识位为“10”或者“01”,则tcp流的接收设备确定转发设备发生拥塞预警。140.例如,在本技术实施例中,tcp流的接收设备可以在tcp报文包括拥塞预警指示时,将tcp报文对应的ack报文的flag位的reserved位置1,以进行拥塞预警标识。141.例如,请参考图9,图9示出了本技术实施例提供的一种ack报文的tcp首部的结构示意图。图9所示tcp首部中的reserved位、拥塞窗口减少(congestionwindowreduce,cwr)、ece(ecn-echo)位、urg(urgent)位、ack位、psh(push)位、rst(reset)位、syn(synchronize)位和fin(finished)位为flag位。其中,reserved位为保留位;ece位用于指示降低cwnd;urg位用于表示紧急指针是否有效;ack位用于确认、反馈连接情况;psh位用于指示将数据立刻送到应用层进行处理的;rst位用于指示重置tcp连接;syn位用于请求建立tcp连接;fin位用于指示断开tcp连接。关于tcp首部中各个位的具体介绍,可以参考常规技术中的说明,这里不做赘述。142.以图9所示结构的tcp首部为例,tcp流的接收设备可以在tcp报文包括拥塞预警指示时,将图9所示的tcp报文对应的ack报文的flag位的reserved位置1,以进行拥塞预警标识。143.需要说明的是,flag位的reserved位可以包括一位(bit)或多位(bit)。对于reserved位包括1位(bit)的情况,通常初始状态下,reserved位为“0”,那么tcp流的接收设备可以在tcp报文包括拥塞预警指示时,将reserved位置“1”。对于reserved位包括多位(bit)的情况,例如包括3位(bit)的情况,通常初始状态下,reserved位为“000”,那么tcp流的接收设备可以在tcp报文包括拥塞预警指示时,将reserved位的任一位置1,例如将reserved位置为“001”、“010”或者“100”,本技术不限定reserved位置1的具体方式。144.同样,若预拥塞指示以ecn标记表示,tcp流的接收设备在接收到转发设备转发的tcp报文后,可以通过分析tcp报文的ip首部中的ecn标识位来确定转发设备是否发生预拥塞。145.例如,若tcp流的接收设备与tcp流的发送设备约定的ecn标识位为“01”或者“10”,但是tcp流的接收设备接收到转发设备转发的tcp报文中的ecn标识位为“11”,则tcp流的接收设备确定转发设备发生预拥塞。或者,tcp流的接收设备与tcp流的发送设备未协商ecn机制,但是tcp流的接收设备接收到转发设备转发的tcp报文包括ecn标识位,且ecn标识位为“11”,则tcp流的接收设备确定转发设备发生预拥塞。146.例如,在本技术实施例中,tcp流的接收设备在tcp报文包括预拥塞指示时,可以将tcp报文对应的ack报文的flag位的ecn-echo位置1。以图9所示结构的tcp首部为例,转发设备可以在tcp报文包括预拥塞指示时,将图9所示的tcp报文对应的ack报文的flag位的ece位(即ecn-echo位)置1。147.需要说明的是,图9仅作为一种tcp首部接收示例,本技术不限定tcp首部的具体版本及结构,具体可以参考常规技术中的tcp首部结构。148.s802、转发设备接收tcp报文对应的ack报文,tcp报文对应的ack报文包括拥塞预警标识。149.具体的,tcp报文对应的ack报文由tcp流的接收设备发送给转发设备。例如,tcp流的接收设备是服务器,转发设备是核心交换机,则tcp报文对应的ack报文由服务器直接发送给核心交换机。又如,tcp流的接收设备是服务器,转发设备是汇聚交换机,则tcp报文对应的ack报文由服务器通过核心交换机转发给汇聚交换机。150.s803、转发设备向tcp流的发送设备转发tcp报文对应的ack报文。151.例如,转发设备是核心交换机,tcp流的接收设备是图1所示的超级计算机,则转发设备分别通过汇聚交换机和接入交换机向超级计算机转发tcp报文对应的ack报文。又如,转发设备是接入交换机,tcp流的接收设备是图1所示的超级计算机,则转发设备直接向超级计算机转发tcp报文对应的ack报文。152.s804、tcp流的发送设备根据ack报文中的拥塞预警标识控制tcp的状态机,以从慢启动阶段进入拥塞避免阶段。153.例如,若tcp流的发送设备确定ack报文的flag位的reserved位被置为1,例如reserved位为“1”、“001”、“010”或“100”,则tcp流的发送设备控制tcp的状态机,以结束慢启动状态,切换到拥塞避免状态。以及,在发送下一个报文时,将cwr位置1,以提醒tcp流的接收设备tcp流的发送设备已经对转发设备的拥塞预警事件做出响应。154.在一种可能的实现方式中,进一步的,若tcp流的发送设备确定ack报文的flag位的reserved位被置为1,tcp流的发送设备还可以重置cwnd字段的值和/或拥塞避免阈值。155.或者,若tcp流的发送设备确定ack报文的flag位的ecn-echo位被置为1,则例如,tcp流的发送设备可以控制tcp的状态机调整为拥塞状态。以及,在发送下一个报文时,将cwr位置1,以提醒tcp流的接收设备tcp流的发送设备已经对转发设备的预拥塞事件做出响应。156.在一种可能的实现方式中,进一步的,若tcp流的发送设备确定ack报文的flag位的ecn-echo位被置为1,则tcp流的发送设备还可以重置cwnd字段的值和/或拥塞避免阈值。157.本技术提供的一种网络拥塞控制方法中,转发设备通过在tcp流的转发方向上缓存的报文数量、报文数据量或报文数据量占缓存区的比例大于对应预警水线且小于对应预拥塞水线时,在大于预警水线的报文中设置拥塞预警指示,在转发设备发生预拥塞前,提前采取慢启动阶段→拥塞避免阶段的状态切换,可以避免在发生拥塞之后一段时间才进行拥塞控制,导致的拥塞控制不及时,从而导致时延增加和丢包率突增等问题。158.应理解,本技术实施例的各个方案可以进行合理的组合使用,并且实施例中出现的各个术语的解释或说明可以在各个实施例中互相参考或解释,对此不作限定。159.还应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。160.可以理解的是,转发设备(例如核心交换机、汇聚交换机、接入交换机或者接入点ap等)为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。161.本技术实施例可以对转发设备(例如核心交换机、汇聚交换机、接入交换机或者接入点ap等)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。162.比如,以采用集成的方式划分各个功能模块的情况下,如图10所示,为本技术实施例提供的一种转发设备的结构框图。该转发设备(例如核心交换机、汇聚交换机、接入交换机或者接入点ap等)可以包括处理单元1010、存储单元1020和收发单元1030。163.其中,收发单元1030用于接收或发送无线电信号,例如,接收tcp报文,转发接收到的tcp报文和ack报文,和/或,用于本文所描述的技术的其他信息。存储单元1020用于存储计算机程序,缓存上述tcp报文,和/或,用于本文所描述的技术的其他信息。处理单元810用于在tcp流的转发方向上的缓存占用大于预警水线且小于预拥塞水线时,在tcp报文中设置拥塞预警指示。例如,在tcp流的转发方向上缓存的报文数量大于数量预警水线且小于数量预拥塞水线、报文数据量大于数据量预警水线且小于数据量预拥塞水线或报文数据量占缓存区的比例大于比例预警水线且小于比例预拥塞水线时,在tcp报文中设置拥塞预警指示。164.其中,上述转发方向包括上行方向和下行方向。165.在一些实施例中,上述收发单元1030还用于,在tcp流的反向方向上接收tcp报文对应的ack报文。该ack报文包括拥塞预警标识,该拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。166.在一些实施例中,上述拥塞预警指示可以以ecn标记表示。例如,上述处理单元1010具体用于,如果ecn标记的值为“01”表示ecn协商成功,则将ecn标记置为“10”,以表示拥塞预警指示;或者,如果ecn标记的值为“10”表示ecn协商成功,则将ecn标记置为“01”,以表示拥塞预警指示。167.又如图11所示,为本技术实施例提供的一种tcp流的接收设备的结构框图。例如,该接收设备是服务器、超级计算机、手机等。如图11所示,该接收设备可以包括处理单元1110、存储单元1120和收发单元1130。168.其中,收发单元1130用于接收或发送无线电信号,例如,接收第一tcp报文,发送ack报文等,和/或,用于本文所描述的技术的其他信息。存储单元1120用于存储计算机程序,和/或,用于本文所描述的技术的其他信息。处理单元1110用于根据第一tcp报文中包括的拥塞预警指示尝试将第一tcp报文所属tcp会话的状态从慢启动阶段调整为拥塞避免阶段,以降低cwnd字段的增长速度。169.在一些实施例中,第一tcp报文包括拥塞预警指示。上述处理单元1110具体用于,根据第一tcp报文中包括的所述拥塞预警指示,在第一tcp报文对应的ack报文中设置拥塞预警标识;该拥塞预警标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞避免阶段。170.在一些实施例中,上述处理单元1110具体可以通过将第一tcp报文对应的ack报文的flag位的reserved位置1作为拥塞预警标识。171.在一些实施例中,收发单元1120还用于,接收第二tcp报文,该第二tcp报文中包括预拥塞指示。上述处理单元1110还用于,根据tcp报文中包括的预拥塞指示,在tcp报文对应的ack报文中设置拥塞标识;该拥塞标识指示tcp会话的发起设备将tcp会话的状态从慢启动阶段调整为拥塞阶段,以解决拥塞问题。172.在一些实施例中,上述处理单元1110具体可以通过将tcp报文对应的ack报文的flag位的ecn-echo位置1作为拥塞标识。173.需要说明的是,上述收发单元1030或收发单元1130可以包括射频电路。转发设备或接收设备可以通过射频电路进行无线信号的接收和发送。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。174.在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线((digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如数字化视频光盘(digitalvideodisk,dvd))、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。175.结合本技术实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。例如存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于探测装置中。当然,处理器和存储介质也可以作为分立组件存在于探测装置中。176.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。177.在一种可选的方式中,本技术提供一种芯片系统,该芯片系统包括处理器、存储器,存储器中存储有计算机程序代码;当计算机程序代码被处理器执行时,实现本技术提供的任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。178.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。179.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。180.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。181.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。182.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献