CN111835652A - 一种数据流的虚拟通道的设置方法及装置 - Google Patents

一种数据流的虚拟通道的设置方法及装置 Download PDF

Info

Publication number
CN111835652A
CN111835652A CN201910309167.9A CN201910309167A CN111835652A CN 111835652 A CN111835652 A CN 111835652A CN 201910309167 A CN201910309167 A CN 201910309167A CN 111835652 A CN111835652 A CN 111835652A
Authority
CN
China
Prior art keywords
virtual channel
virtual
data stream
data
group
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
CN201910309167.9A
Other languages
English (en)
Other versions
CN111835652B (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 CN201910309167.9A priority Critical patent/CN111835652B/zh
Priority to EP20791875.6A priority patent/EP3952234A4/en
Priority to PCT/CN2020/084548 priority patent/WO2020211728A1/zh
Publication of CN111835652A publication Critical patent/CN111835652A/zh
Priority to US17/498,756 priority patent/US20220029919A1/en
Application granted granted Critical
Publication of CN111835652B publication Critical patent/CN111835652B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • 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
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/267Flow control; Congestion control using explicit feedback to the source, e.g. choke packets sent by the destination endpoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Abstract

本申请提供一种数据流的虚拟通道的设置方法及装置。该方法包括:接收设备从发送设备接收第一数据流的第一数据报文,第一数据报文包括第一数据流对应的第一虚拟通道的标识;接收设备从第一数据流对应的第一虚拟通道组中,为第一数据流选择第二虚拟通道,第二虚拟通道与第一虚拟通道不同;接收设备向发送设备发送应答报文,应答报文包括第二虚拟通道的标识,第二虚拟通道的标识用于发送设备更新第一数据流对应的虚拟通道。基于该方案,接收设备动态地为第一数据流分配当前拥塞程度较低的虚拟通道,因而发送设备在发送该第一数据流时,可以降低虚拟通道发生拥塞的可能性,使得第一数据流可以快速被发送至接收设备。

Description

一种数据流的虚拟通道的设置方法及装置
技术领域
本申请涉及移动通信技术领域,尤其涉及一种数据流的虚拟通道的设置方法及装置。
背景技术
在网络中有些高性能的业务要求无丢包地传输,以太网暂停(Pause)机制是一种防止丢包的机制,其基本原理是:当接收设备的接收能力小于发送设备的发送能力时,会主动发送流量暂停信号(Pause帧)给发送设备,以通知发送设备暂停发送,等待一定时间后再继续发送。但是Pause机制是针对整个端口的,Pause帧会导致整个链路暂停流量。当多种业务共享链路时任意一种业务导致链路流量暂停都会中断所有业务。
为解决上述问题,目前的一种解决方案是:在一条以太网链路上创建多个虚拟通道,一个虚拟通道对应一种业务类型,即一种业务类型的数据流通过一个虚拟通道发送。因此,当某个虚拟通道发生拥塞(即接收设备上的该虚拟通道对应的缓存队列发生拥塞)时,只需要单独暂停这一个虚拟通道的流量,因而不影响其它虚拟通道的流量,从而实现多种类型的业务对一个物理链路的共享和隔离。
如图1所示,为基于虚拟通道的流量控制示意图。作为示例,发送设备和接收设备之间的一个物理链路分成了8个虚拟通道,一种业务类型对应一个虚拟通道,接收设备上的一个缓存队列对应一个虚拟通道。例如,当第7个虚拟通道流量发生拥塞时,接收设备的虚拟通道7会给发送设备的虚拟通道7发送流量暂停信号,发送设备的虚拟通道7收到流量暂停信号后暂停发送流量,其他虚拟通道的业务流量不受影响。
上述方法存在的问题是:当一个业务类型的数据流的数量较多时,将导致该业务类型对应的虚拟通道的流量非常大,则该虚拟通道将会持续出现拥塞的情况,从而造成数据流不能被快速发送,甚至是不能发送。
发明内容
本申请提供一种数据流的虚拟通道的设置方法及装置,用以解决虚拟通道拥塞造成的数据流不能被快速发送的问题。
第一方面,本申请提供一种数据流的虚拟通道的设置方法,包括:接收设备从发送设备接收第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;所述接收设备从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;所述接收设备向所述发送设备发送应答报文,所述应答报文包括所述第二虚拟通道的标识,所述第二虚拟通道的标识用于所述发送设备更新所述第一数据流对应的虚拟通道。基于该方案,接收设备动态地为第一数据流分配当前拥塞程度较低的虚拟通道,因而发送设备在发送该第一数据流时,可以降低虚拟通道发生拥塞的可能性,使得第一数据流可以快速被发送至接收设备。
在一种可能的实现方法中,所述第一数据报文包括所述第一数据流的标识;所述接收设备从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,包括:所述接收设备根据所述第一数据流的标识和所述第一虚拟通道组,为所述第一数据流选择所述第二虚拟通道。
在一种可能的实现方法中,所述接收设备从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,包括:所述接收设备从第二虚拟通道组中,为所述第一数据流选择所述第二虚拟通道;其中,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。该方案,先设置一个第二虚拟通道组,该第二虚拟通道组内的虚拟通道均为拥塞程度较低的虚拟通道,因而后续可以直接从该第二虚拟通道组内选择第二虚拟通道,可以提升选择的效率,有助于提升性能。
在一种可能的实现方法中,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
在一种可能的实现方法中,所述接收设备根据所述第一虚拟通道组中的虚拟通道的当前拥塞程度,更新所述第二虚拟通道组。该方案,可以动态更新第二虚拟通道组,因而有助于保持第二虚拟通道组内的虚拟通道始终是拥塞程度较低的一些虚拟通道,有助于接收设备选择出一个拥塞程度低的虚拟通道,进而可以提升发生拥塞的可能性。
在一种可能的实现方法中,所述第二虚拟通道为所述第一虚拟通道组中的拥塞程度最低的一个虚拟通道。该方案,接收设备选择出一个拥塞程度最低的虚拟通道,进而可以提升发生拥塞的可能性。
在一种可能的实现方法中,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
在一种可能的实现方法中,所述接收设备内维护一个流虚拟通道表,所述流虚拟通道表包括至少一个表项,一个表项对应一条数据流,一个表项至少包括以下三个字段:数据流的标识、数据流的虚拟通道、表项是否有效;所述流虚拟通道表包括所述第一数据流对应的第一表项,所述第一表项对应的数据流的虚拟通道为所述第二虚拟通道;所述接收设备向所述发送设备发送应答报文之前,所述接收设备确定所述第一数据流对应的所述第一表项有效,并从所述第一表项获取所述第二虚拟通道;所述接收设备确定所述第一表项对应的数据流的虚拟通道与所述第一虚拟通道不同。该方案,通过维护一个流虚拟通道表,便于接收设备记录为每个数据流选择的虚拟通道,以及记录当前是否需要更新该数据流对应的虚拟通道。
在一种可能的实现方法中,所述第一表项的初始状态为无效;所述接收设备确定所述第一数据流对应的所述第一表项有效,并从所述第一表项获取所述第二虚拟通道之前,还包括:所述接收设备确定所述第一数据报文满足预设条件;所述接收设备将所述第二虚拟通道更新至所述第一表项,以及将所述第一表项设置为有效。
在一种可能的实现方法中,所述接收设备从所述发送设备接收所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
在一种可能的实现方法中,所述接收设备确定所述第二虚拟通道的当前拥塞程度满足预设条件,则从所述第一虚拟通道组中为所述第一数据流选择第三虚拟通道;所述接收设备将所述第三虚拟通道更新至所述第一表项,所述第三虚拟通道与所述第二虚拟通道不同;若所述第一表项无效,则所述接收设备将所述第一表项设置为有效。基于该方案,可以动态更新流虚拟通道表中的数据流对应的虚拟通道,有助于为该数据流选择出拥塞程度低的虚拟通道。
在一种可能的实现方法中,所述接收设备确定所述第二虚拟通道的当前拥塞程度满足预设条件,包括:所述接收设备确定所述第二虚拟通道的拥塞程度高于第一拥塞程度阈值;或者,所述接收设备确定向所述发送设备发送的反压报文的次数大于反压次数阈值,所述反压报文用于指示所述第二虚拟通道的拥塞程度高于第二拥塞程度阈值。
第二方面,本申请提供一种数据流的虚拟通道的设置方法,包括:发送设备向接收设备发送第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;所述发送设备从所述接收设备接收应答报文,所述应答报文包括第二虚拟通道,所述第二虚拟通道为所述第一数据流对应的第一虚拟通道组中的一个虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;所述发送设备将所述第一数据流对应的虚拟通道,更新为所述第二虚拟通道。基于该方案,接收设备动态地为第一数据流分配当前拥塞程度较低的虚拟通道,因而发送设备在发送该第一数据流时,可以降低虚拟通道发生拥塞的可能性,使得第一数据流可以快速被发送至接收设备。
在一种可能的实现方法中,所述第二虚拟通道为第二虚拟通道组中的一个虚拟通道,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
在一种可能的实现方法中,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
在一种可能的实现方法中,所述第二虚拟通道为所述第一虚拟通道组中的拥塞程度最低的一个虚拟通道。
在一种可能的实现方法中,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
在一种可能的实现方法中,所述第一数据报文为满足预设条件的数据报文。
在一种可能的实现方法中,所述发送设备将所述第一数据流的虚拟通道,更新为所述第二虚拟通道之后,所述发送设备向所述接收设备发送所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
第三方面,本申请提供一种数据流的虚拟通道的设置装置,该装置可以是接收设备,还可以是用于接收设备的芯片。该装置具有实现上述第一方面的各实施例的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请提供一种数据流的虚拟通道的设置装置,该装置可以是发送设备,还可以是用于发送设备的芯片。该装置具有实现上述第二方面的各实施例的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请提供一种数据流的虚拟通道的设置装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行如上述各方面所述的方法。
第六方面,本申请提供一种数据流的虚拟通道的设置装置,包括:包括用于执行上述各方面的各个步骤的单元或手段(means)。
第七方面,本申请提供一种数据流的虚拟通道的设置装置,包括处理器和接口电路,所述处理器用于通过接口电路与其它装置通信,并执行上述各方面所述的方法。该处理器包括一个或多个。
第八方面,本申请提供一种数据流的虚拟通道的设置装置,包括处理器,用于与存储器相连,用于调用所述存储器中存储的程序,以执行上述各方面所述的方法。该存储器可以位于该装置之内,也可以位于该装置之外。且该处理器包括一个或多个。
第九方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得处理器执行上述各方面所述的方法。
第十方面,本申请还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第十一方面,本申请还提供一种芯片系统,包括:处理器,用于执行上述各方面所述的方法。
第十二方面,本申请还提供一种通信系统,包括:用于执行上述第一方面任意所述的方法的接收设备和用于执行上述第二方面任意所述的方法的发送设备。
附图说明
图1为现有技术基于虚拟通道的流量控制示意图;
图2为本申请适用的网络架构示意图;
图3为本申请提供的一种数据流的虚拟通道的设置方法流程示意图;
图4为本申请提供的又一种数据流的虚拟通道的设置方法流程示意图;
图5为本申请提供的一种数据流的虚拟通道的设置装置示意图;
图6为本申请提供的又一种数据流的虚拟通道的设置装置示意图;
图7为本申请提供的又一种数据流的虚拟通道的设置装置示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如图2所示,为本申请适用的网络架构示意图。该网络架构包括发送设备和接收设备。本申请中的发送设备和接收设备可以数据中心网络(如高性能计算、高性能分布式存储、大数据、人工智能等)里的服务器或网卡,也可以是交换机或其他设备形态。
作为一个示例,比如存在一条链路:设备1->设备2->设备3->设备4,即设备1发送数据流至设备4,这里的设备1即为数据流的发起者或数据流的源端,该设备1比如可以是服务器等,这里的设备4即为数据流的接受者或数据流的目的端,该设备4比如可以是服务器等,这里的设备2和设备3即为数据流的转发者,该设备2和设备3比如可以是交换机或网卡等。其中,该链路上相邻两个设备之间的通道可以是虚拟通道或物理通道。
基于该示例,在一个实施例中,本申请图2所示的发送设备可以是该设备1,接收设备可以是设备2、或设备3、或设备4,即发送设备始终是源端,接收设备可以是链路中除源端之外的任意节点的设备。
基于该示例,在又一个实施例中,本申请图2所示的发送设备可以是该设备1,接收设备可以是设备4,即发送设备始终是源端,接收设备始终是目的端。
基于该示例,在又一个实施例中,本申请图2所示的发送设备可以是该设备1,接收设备可以是设备2;或者,发送设备可以是该设备2,接收设备可以是设备3;或者,发送设备可以是该设备3,接收设备可以是设备4。即发送设备和接收设备始终是链路上相邻的两个设备。
需要说明的是,上述示例仅仅是作为说明,其并不构成对本申请范围的限定。
为便于理解本申请方案,下面对本申请中涉及到的一些名词或术语进行解释说明。
一、缓存队列、虚拟通道
本申请中,发送设备和接收设备之间存在N个虚拟通道,N大于1,发送设备上存在N个缓存队列,发送设备上的每个缓存对应一个虚拟通道,接收设备上也存在N个缓存队列,接收设备上的每个缓存对应一个虚拟通道。即发送设备的N个缓存队列、接收设备上的N个缓存队列以及N个虚拟通道,三者之间存在一一对应关系。
其中,虚拟通道可以是由物理通道虚拟出来的,一个物理通道可以虚拟成多个虚拟通道。
以图1为例,则发送设备和接收设备之间存在8个虚拟通道,发送设备上存在8个缓存队列,接收设备上存在8个缓存队列。则存在以下对应关系:
发送设备上的缓存队列1的数据流,通过虚拟通道1,发送至接收设备的缓存队列1;
发送设备上的缓存队列2的数据流,通过虚拟通道2,发送至接收设备的缓存队列2;
发送设备上的缓存队列3的数据流,通过虚拟通道3,发送至接收设备的缓存队列3;
发送设备上的缓存队列4的数据流,通过虚拟通道4,发送至接收设备的缓存队列4;
发送设备上的缓存队列5的数据流,通过虚拟通道5,发送至接收设备的缓存队列5;
发送设备上的缓存队列6的数据流,通过虚拟通道6,发送至接收设备的缓存队列6;
发送设备上的缓存队列7的数据流,通过虚拟通道7,发送至接收设备的缓存队列7;
发送设备上的缓存队列8的数据流,通过虚拟通道8,发送至接收设备的缓存队列8。
本申请中,一个虚拟通道拥塞,指的是发送设备发送的数据流过快或过多,导致接收设备上的相应的缓存队列出现队满或即将队满的情形。因此,一个虚拟通道拥塞,也可以理解为接收上的相应的缓存队列拥塞。比如,以图1为例,虚拟通道7发生拥塞,也可以理解为接收设备上的缓存队列7发生拥塞。
作为一种实现方法,虚拟通道的拥塞程度可以使用该虚拟通道对应的接收设备上的缓存队列的拥塞程度来表示。并且,一个缓存队列的拥塞程度可以使用该缓存队列中缓存的数据报文的数量与缓存队列的存储容量(即可缓存的数据报文的总数量)的比值来表示。
二、数据流、数据类型和虚拟通道之间的对应关系
本申请中,数据流、数据类型和虚拟通道之间的对应关系可以通过以下方法1或方法2实现。
方法1、一个数据流对应一个或多个虚拟通道。
以图1为例,比如,针对数据流1,该数据流1对应4个虚拟通道(分别为虚拟通道1-虚拟通道4),因此发送设备可以将该数据流1的任意数据报文通过该4个虚拟通道中的任意一个发送至接收设备。再比如,针对数据流2,该数据流2对应3个虚拟通道(分别为虚拟通道1-虚拟通道3),因此发送设备可以将该数据流2的任意数据报文通过该3个虚拟通道中的任意一个发送至接收设备。再比如,针对数据流3,该数据流3对应3个虚拟通道(分别为虚拟通道3-虚拟通道5),因此发送设备可以将该数据流3的任意数据报文通过该3个虚拟通道中的任意一个发送至接收设备。
需要说明的是,上述数据流可以是相同业务类型的数据流,也可以是不同业务类型的数据流。比如,数据流1和数据流2是视频类型的数据流,数据流3是语音类型的数据流。可以看出,不同业务类型的数据流可以共享虚拟通道,比如视频类型的数据流2和语音类型的数据流3共享虚拟通道3。
并且,同样业务类型的数据流可以使用的虚拟通道也可以不完全相同,比如视频类型的数据流1不可以使用虚拟通道4,但视频类型的数据流2则可以使用虚拟通道4。
方法2、一个业务类型对应多个虚拟通道,一个业务类型的数据流对应该多个虚拟通道中的部分或全部虚拟通道,且不同业务类型的数据流分别对应的虚拟通道不同。
针对任意一个数据流(称为第一数据流),若该第一数据流为第一业务类型的数据流,则第一数据流对应的虚拟通道为第一业务类型的数据流对应的虚拟通道组中的部分或全部虚拟通道,并且,第一数据流对应的虚拟通道中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,该第一业务类型与第二业务类型不同。可选的,第一数据流对应的虚拟通道中的任意一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的虚拟通道均不同。
下面以第一数据流对应的虚拟通道中的任意一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的虚拟通道均不同为例进行举例说明。
以图1为例,比如,视频业务类型对应虚拟通道1-虚拟通道4,语音业务类型对应虚拟通道5-虚拟通道7,即视频业务类型对应的虚拟通道与语音业务类型对应的虚拟通道之间没有交集。
针对视频业务类型的数据流,则该数据流对应的虚拟通道为虚拟通道1-虚拟通道4中的部分或全部虚拟通道。比如,针对视频业务类型的数据流1,对应的虚拟通道为虚拟通道1-虚拟通道3,表明发送设备可以将数据流1的任意数据报文可以通过这3个虚拟通道中的任意一个发送至接收设备。再比如,针对视频业务类型的数据流2,对应的虚拟通道为虚拟通道1-虚拟通道4,表明发送设备可以将数据流2的任意数据报文可以通过这4个虚拟通道中的任意一个发送至接收设备。
针对语音业务类型的数据流,则该数据流对应的虚拟通道为虚拟通道5-虚拟通道7中的部分或全部虚拟通道。比如,针对语音业务类型的数据流3,对应的虚拟通道为虚拟通道5-虚拟通道6,表明发送设备可以将数据流3的任意数据报文可以通过这2个虚拟通道中的任意一个发送至接收设备。再比如,针对语音业务类型的数据流4,对应的虚拟通道为虚拟通道5-虚拟通道7,表明发送设备可以将数据流4的任意数据报文可以通过这3个虚拟通道中的任意一个发送至接收设备。
作为一种实现方法,同一个业务类型对应的所有虚拟通道均设置为相同的优先级,不同的业务类型对应的虚拟通道之间的优先级设置为不同。比如,针对视频业务类型对应的所有虚拟通道均设置为优先级1,则视频业务类型的数据流之间的优先级相同,即均为1;再比如,针对语音业务类型对应的所有虚拟通道均设置为优先级2,则语音业务类型的数据流之间的优先级相同,即均为2。
需要说明的是,不管是上述方法1还是方法2,本申请中,一个数据流可以对应一个或多个虚拟通道。
三、第一虚拟通道组、第二虚拟通道组
本申请中,将任意一个数据流(本申请称为第一数据流)对应的所有虚拟通道构成的集合称为第一虚拟通道组。比如,针对数据流1,若其对应的所有虚拟通道为虚拟通道1-虚拟通道4时,则数据流1对应的第一虚拟通道组包括:{虚拟通道1、虚拟通道2、虚拟通道3、虚拟通道4}。本申请中,一个数据流对应的第一虚拟通道组,指的是该数据流对应的所有可以使用的虚拟通道的集合。
本申请中,将任意一个数据流对应的第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道构成的集合称为第二虚拟通道组。
比如,这里的预设条件可以是拥塞程度最低,即将第一虚拟通道组中的拥塞程度最低的一个或多个虚拟通道构成的集合称为第二虚拟通道组。比如,针对数据流1,若其对应的第一虚拟通道组包括:{虚拟通道1、虚拟通道2、虚拟通道3、虚拟通道4},且预设第二虚拟通道组包括的虚拟通道的数量等于2,若虚拟通道3、虚拟通道4是第一虚拟通道组中拥塞程度最低的两个虚拟通道,则第二虚拟通道组包括:{虚拟通道3、虚拟通道4}。
再比如,这里的预设条件还可以是拥塞程度小于预设阈值,即将第一虚拟通道组中的拥塞程度小于预设阈值的一个或多个虚拟通道构成的集合称为第二虚拟通道组。
再比如,这里的预设条件还可以是拥塞程度小于预设阈值且拥塞程度不是最小,即将第一虚拟通道组中的拥塞程度小于预设阈值且拥塞程度不是最小的一个或多个虚拟通道构成的集合称为第二虚拟通道组。该方法将拥塞程度最小的虚拟通道排除在第二虚拟通道组之外,是考虑到可以将该拥塞程度最小的虚拟通道留作其他用途,比如用作特定数据流的发送。
需要说明的是,该第二虚拟通道组是可以动态更新的,比如可以周期性的更新。具体的,接收设备可以根据第一虚拟通道组中的虚拟通道的当前拥塞程度,更新第二虚拟通道组。即,第一虚拟通道组中的虚拟通道的拥塞程度是实时变化的,因此接收设备可以在周期到达时,基于第一虚拟通道组中的虚拟通道的当前拥塞程度,更新第二虚拟通道组。
下面对本申请提出的数据流的虚拟通道的设置方法进行介绍说明,以用于解决背景技术中提到的现有技术所存在的缺陷。
如图3所示,为本申请提供的一种数据流的虚拟通道的设置方法流程示意图。该实施例是针对任意一个数据流(称为第一数据流)进行说明的,该第一数据流对应第一虚拟通道组,该第一虚拟通道组包括至少两个虚拟通道,分别为第一虚拟通道和第二虚拟通道,第二虚拟通道与所述第一虚拟通道不同。该第一数据流对应的第二虚拟通道组是第一虚拟通道组的子集或真子集。
该方法包括以下步骤:
步骤301,发送设备向接收设备发送第一数据流的第一数据报文。相应地,接收设备可以接收到该第一数据流的第一数据报文。
该第一数据报文为第一数据流的任意一个数据报文,具体的,可以是该第一数据流的第一个数据报文,也可以是后续数据报文。
该第一数据报文包括该第一数据流对应的第一虚拟通道的标识。该第一虚拟通道指的是该第一数据流当前使用的虚拟通道。
步骤303,接收设备从第一数据流对应的第一虚拟通道组中,为第一数据流选择第二虚拟通道。
下面给出为第一数据流选择第二虚拟通道的不同实现方法。
方法1、将第一虚拟通道组中的拥塞程度最低的虚拟通道,作为选择的第二虚拟通道。
方法2、将第二虚拟通道组中的拥塞程度最低的虚拟通道,作为选择的第二虚拟通道。
方法3、将第二虚拟通道组中的任一虚拟通道,作为选择的第二虚拟通道。
由于第二虚拟通道组内的虚拟通道均为拥塞程度相对较轻的虚拟通道,因此直接从该第二虚拟通道组内选择任意一个虚拟通道作为第二虚拟通道,可以使得实现起来更为简便。
方法4、根据第一数据流的标识(比如可以是五元组信息)和第二虚拟通道组,为该第一数据流选择上述第二虚拟通道。
该方法是针对同时为多个数据流选择第二虚拟通道的方法。比如,接收设备同时需要为多个不同的数据流(这些数据流可以是同一个业务类型的数据流,也可以是不同业务类型的数据流)分别选择第二虚拟通道,则接收设备可以根据数据流的标识和第二虚拟通道组,将这些数据流分配至第二虚拟通道组内的不同的虚拟通道,以实现均匀分配,避免将多个数据流对应的第二虚拟通道同时分配到某个或某些虚拟通道,而造成某个或某些虚拟通道拥塞。
下面结合具体示例,对上述方法1-方法4进行说明。
比如,以图1为例,第一数据流对应的第一虚拟通道组包括:{虚拟通道1、虚拟通道2、虚拟通道3、虚拟通道4},其中,虚拟通道1的拥塞程度>虚拟通道2的拥塞程度>虚拟通道3的拥塞程度>虚拟通道4的拥塞程度,第二虚拟通道组包括:{虚拟通道3、虚拟通道4}。
该步骤303中,若基于上述方法1,则接收设备是从第一虚拟通道组中选择第二虚拟通道,即从虚拟通道1、虚拟通道2、虚拟通道3、虚拟通道4中选择拥塞程度最低的虚拟通道4,作为第二虚拟通道,即第二虚拟通道为虚拟通道4。
该步骤303中,若基于上述方法2,则接收设备是从第二虚拟通道组中选择第二虚拟通道,即从虚拟通道3、虚拟通道4中选择拥塞程度最低的虚拟通道4,作为第二虚拟通道,即第二虚拟通道为虚拟通道4。
该步骤303中,若基于上述方法3,则接收设备是从第二虚拟通道组中选择任意一个虚拟通道,即从虚拟通道3、虚拟通道4中选择任意一个虚拟通道,作为第二虚拟通道,因此第二虚拟通道为虚拟通道3或虚拟通道4。
该步骤303中,若基于上述方法4,若同时需要为两个数据流(分别称为第一数据流和第二数据流)选择第二虚拟通道,则接收设备根据第一数据流的标识和第一虚拟通道组,为第一数据流选择一个第二虚拟通道,以及根据第二数据流的标识和第一虚拟通道组,为第二数据流选择一个第二虚拟通道。比如,可以通过哈希函数的方法进行选择,以使得为不同数据流选择的虚拟通道尽量分散。比如,接收设备为第一数据流选择的虚拟通道为虚拟通道3,为第二数据流选择的虚拟通道为虚拟通道4。
步骤305,接收设备向发送设备发送应答报文。相应地,发送设备可以接收到该应答报文。
该应答报文包括上述第二虚拟通道的标识,该第二虚拟通道用于更新发送设备上的该第一数据流对应的虚拟通道。
步骤306,发送设备将第一数据流的虚拟通道,更新为第二虚拟通道。
具体的,发送设备将该第一数据流的虚拟通道从第一虚拟通道更新为第二虚拟通道。
通过上述实施例,接收设备动态地为第一数据流分配当前拥塞程度较低的虚拟通道,因而发送设备在发送该第一数据流时,可以降低虚拟通道发生拥塞的可能性,使得第一数据流可以快速被发送至接收设备。
可选的,该步骤306之后,还包括以下步骤307。
步骤307,发送设备向接收设备发送该第一数据流的第二数据报文。相应地,接收设备可以接收到该第一数据流的第二数据报文。
该第二数据报文包括第二虚拟通道的标识。因此,接收设备将该第一数据流的后续数据报文缓存至第二虚拟通道对应的缓存队列。
需要说明的是,该第二数据报文可以是第一数据报文之后的第一个数据报文,也可以是该第一数据报文之后间隔多个数据报文的一个数据报文,这是因为发送设备可能一次性连续发送第一数据流的多个数据报文(其中包括第一数据报文),每个数据报文均包括一个第一虚拟通道的标识,并且发送设备在更新虚拟通道之前,可能又发送了该第一数据流的多个数据报文,则这些数据报文包括的虚拟通道的标识也是第一虚拟通道的标识。
在一种可能的实现方法中,在上述步骤301之后步骤303之前,还包括以下步骤302。
步骤302,接收设备确定第一数据报文满足预设条件。
比如,这里的满足预设条件可以是第一数据报文为该第一数据流的第一个数据报文。即接收设备在接收到该第一数据流的第一个数据报文时,才执行上述为该第一数据流重新选择一个虚拟通道的方案。
再比如,这里的满足预设条件还可以是该第一数据报文为该第一数据流的第K个报文,K为预设的大于1的整数。比如,当K预设为100时,表示接收设备在接收到该第一数据流的第100个数据报文时,触发执行上述为该第一数据流重新选择一个虚拟通道的方案。基于该方案,当第一数据流的数据报文的数量较多,即达到K个时,接收设备认为有必要为第一数据流选择一个拥塞程度较低的虚拟通道,因而触发执行上述虚拟通道的选择流程。
在一种可能的实现方法中,在上述步骤303之后步骤305之前(此时可以包括步骤302,也可以不包括步骤302),还可以包括以下步骤304。
步骤304,接收设备确定第二虚拟通道与第一虚拟通道不同。
即接收设备在确定第二虚拟通道与第一虚拟通道不同时,才会在应答报文中携带第二虚拟通道的标识,否则上述步骤305的应答报文为一个普通的应答报文,其不携带第二虚拟通道的标识,因此发送设备也不需要执行步骤306,相应地,步骤307的第二数据报文中仍然携带第一虚拟通道的标识。
下面结合图4,给出一种具体的实现方法。如图4所示,为本申请提供的又一种数据流的虚拟通道的设置方法流程示意图。
其中,在接收设备内维护一个流虚拟通道表,该流虚拟通道表包括一个或多个表项,一个表项对应一个数据流,不同的表项对应不同的数据流。一个表项至少包括三个字段:数据流的标识、数据流的虚拟通道和表项是否有效。初始状态时,将该虚拟通道表中每个表项均设置为无效,即将每个表项中的“表项是否有效”的字段设置为“无效”,以及,将每个表项中的“数据流的虚拟通道”的字段设置为空或其他无效信息。
即,以任意一个数据流(称为第一数据流)为例,则初始状态下,该流虚拟通道表包括该第一数据流的标识、且第一数据流对应的虚拟通道设置为空或其他无效信息,第一数据流对应的表项无效,即第一数据流对应的虚拟通道不能被用于更新第一数据流的虚拟通道。
如表1所示,为流虚拟通道表的初始状态。
表1流虚拟通道表的初始状态
数据流(flow)的标识 数据流的虚拟通道 表项是否有效
flow ID1 无效
flow ID2 无效
flow ID3 无效
…… …… ……
flow IDn 无效
该方法包括以下步骤:
步骤401,接收设备接收到第一数据流的第一数据报文,并判断接收到的第一数据流的第一数据报文是否为该第一数据流的第一个数据报文。若是,则转到步骤402,若否,则转到步骤403。
其中,这里的第一数据流的第一数据报文中包括第一虚拟通道的标识,该第一虚拟通道即为该数据流的当前使用的虚拟通道。
该实施例中,以第一数据流的第一数据报文满足预设条件为:该第一数据报文为该第一数据流的第一个数据报文为例进行说明的。
步骤402,接收设备为该第一数据流选择一个新的虚拟通道(称为第二虚拟通道),设置到流虚拟通道表中。
由于该第一数据报文是该第一数据流的第一个数据报文,该第一数据报文中携带的第一虚拟通道是该第一数据流对应的初始虚拟通道,例如预配置各个数据流对应的初始虚拟通道均为虚拟通道X(比如X=1等),则该第一个数据报文携带的虚拟通道即为虚拟通道X的标识。
当接收设备确定该第一数据报文是该第一数据流的第一个数据报文后,则为该第一数据流重新选择一个新的虚拟通道(即第二虚拟通道)。其选择新的虚拟通道的具体方法可以参考图3实施例的描述(即图3中选择第二虚拟通道的具体方法)。
比如,针对数据流1(flow ID1指示的数据流),初始虚拟通道是虚拟通道X(该虚拟通道可以称为第一虚拟通道),步骤402中选择的新的虚拟通道为虚拟通道A(比如A=3),则接收设备将该虚拟通道A(也称为第二虚拟通道)更新至流虚拟通道表中与该数据流1对应的表项,以及将所述表项设置为有效。
基于表1,则对表1进行更新,得到表2,该表2为更新数据流1对应的表项后的流虚拟通道表。
表2更新数据流1对应的表项后的流虚拟通道表
数据流(flow)的标识 数据流的虚拟通道 表项是否有效
flow ID1 A 有效
flow ID2 无效
flow ID3 无效
…… …… ……
flow IDn 无效
同样的,若有其他数据流的第一个数据报文也到达接收设备,则接收设备也可以对流虚拟通道表中的其他数据流的表项进行相应更新。比如,表3为对数据流1和数据流2分别对应的表项进行更新,得到的更新后的流虚拟通道表,其中,数据流2的虚拟通道更新为虚拟通道B(比如B=5)。
表3更新数据流1和数据流2分别对应的表项后的流虚拟通道表
数据流(flow)的标识 数据流的虚拟通道 表项是否有效
flow ID1 A 有效
flow ID2 B 有效
flow ID3 无效
…… …… ……
flow IDn 无效
步骤403,接收设备判断流虚拟通道表中与该第一数据流对应的表项是否有效。若有效,则转到步骤404;若无效,则转到步骤408。
具体的,若接收设备确定流虚拟通道表中与该第一数据流对应的表项有效,则从该流虚拟通道表中获取该第一数据流对应的虚拟通道(即第二虚拟通道),并转到步骤404。若接收设备确定流虚拟通道表中与该第一数据流对应的表项无效,则转到步骤408。
当步骤403中确定接收到的第一数据报文是第一数据流的第一个数据报文时,则会执行步骤402,因此该第一数据流在流虚拟通道中对应的表项一定是有效的,因而会转到执行步骤404。
当步骤403中确定接收到的第一数据报文不是第一数据流的第一个数据报文时,则不会执行步骤402,而是跳过步骤402执行步骤403,此时,该流虚拟通道表中与该第一数据流对应的表项可能是有效的,也可能是无效的。
步骤404,接收设备判断第一数据报文中的第一虚拟通道与流虚拟通道表中与第一数据流对应的表项的虚拟通道是否相同。若不相同,则转到步骤405;若相同,则转到步骤407。
接收设备从流虚拟通道表中获取与第一数据流对应的表项(即第一表项)对应的虚拟通道的标识,即第二虚拟通道的标识,然后将该第二虚拟通道与第一虚拟通道进行比较。
针对第一数据流的第一个数据报文,以数据流1的第一个数据报文为例,则流虚拟通道表中与数据流1对应的表项是有效的(参见表2或表3),并且,若接收到的第一个数据报文中的虚拟通道与流虚拟通道表中与该数据流1对应的表项中的虚拟通道不同,则转到执行步骤405。当然,针对第一个数据报文,也有可能在上述步骤402中为该第一数据流重新选择的虚拟通道正好是与该第一数据流的初始虚拟通道相同(即选择的第二虚拟通道与第一虚拟通道相同),则此时在步骤404之后转到步骤407。
步骤405,接收设备向发送设备发送应答报文,该应答报文携带第二虚拟通道的标识。
比如针对上述第一数据流的第一个数据报文,接收设备在发送针对该第一个数据报文的应答报文中携带第二虚拟通道的标识。当然,针对第一数据流的非第一个数据报文,若接收设备也选择了第二虚拟通道,则该应答报文中也携带第二虚拟通道的标识。
步骤406,发送设备将第一数据流对应的虚拟通道更新为第二虚拟通道。
步骤407,接收设备将流虚拟通道表中与该第一数据流对应的表项设置为无效。
下面分不同情形,介绍什么情况下会执行步骤407,以及执行步骤407之后带来的效果。
情形1,接收设备接收到第一数据流的第一个数据报文,且选择的第二虚拟通道与第一虚拟通道相同。
该情形下,相当于该第一数据流的虚拟通道已经是一个较优的虚拟通道,因此不需要更新,或者理解为该第一数据流的虚拟通道保持不变,即完成了该第一数据流所使用的虚拟通道的确认,因此将流虚拟通道表中与该第一数据流对应的表项设置为无效,即后续不再需要为该第一数据流选择虚拟通道。
情形2,接收设备接收到第一数据流的第一个数据报文,且选择的第二虚拟通道与第一虚拟通道不同。
该情形下,将会执行步骤405,即接收设备通过应答报文通知发送设备更新虚拟通道,具体的,又分为以下两种情形。
情形2.1,发送设备接收到该应答报文并获取到该应答报文中的新的虚拟通道的标识(即第二虚拟通道的标识),完成了虚拟通道的更新(即从第一虚拟通道更新为第二虚拟通道)。
该情形下,发送设备在发送该第一数据流的后续数据报文(称为第二数据报文),该第二数据报文将携带第二虚拟通道的标识,此时流虚拟通道表中与该第一数据流对应的表项仍然有效,因此针对该第二数据报文,将会执行步骤401、步骤403以及步骤404,且在步骤404之后执行步骤407。
情形2.2,发送设备未接收到该应答报文或者未能正确解析该应答报文,因而未能完成虚拟通道的更新(即保持虚拟通道为第一虚拟通道)。
该情形下,发送设备在发送该第一数据流的后续数据报文(称为第二数据报文),该第二数据报文将仍然携带更新前的虚拟通道的标识(即第一虚拟通道的标识),此时流虚拟通道表中与该第一数据流对应的表项仍然有效,因此针对该第二数据报文,将会执行步骤401、步骤403以及步骤404,且在步骤404之后执行步骤405。
从上述分析可以看出,只有当发送设备的初始虚拟通道与接收设备选择的虚拟通道相同,或者是发送设备根据接收设备分配的新的虚拟通道进行更新后,接收设备才会执行上述步骤407,因而每个数据流的虚拟通道只会更新一次,并且该虚拟通道是接收设备所认为的一个较优的虚拟通道,因而实现了为数据流分配合适的虚拟通道。
作为一种实现方法,流虚拟通道表中的第一数据流的虚拟通道也可以是动态更新的。比如,流虚拟通道中,第一数据流当前对应的虚拟通道为第二虚拟通道,则接收设备在确定第二虚拟通道的当前拥塞程度满足预设条件时,则从第一数据流对应的第一虚拟通道组中,为该第一数据流选择一个新的虚拟通道(称为第三虚拟通道),并将该第三虚拟通道更新至流虚拟通道表中与该第一数据流对应的表项,第三虚拟通道与第二虚拟通道不同,该第三虚拟通道的拥塞程度低于或等于该第二虚拟通道的拥塞程度。
其中,接收设备确定第一数据流的当前拥塞程度满足预设条件,包括:
方法1,接收设备确定该第二虚拟通道的拥塞程度高于第一拥塞程度阈值。
即只要第二虚拟通道的拥塞程度高于预设的第一拥塞程度阈值,则认为该虚拟通道已经比较拥塞,则可以该第一数据流重新选择一个虚拟通道。
其中,一个虚拟通道的拥塞程度可以用接收设备上的该虚拟通道对应的缓存队列的拥塞程度表示。
方法2,接收设备确定向发送设备发送的反压报文的次数大于反压次数阈值,该反压报文用于指示第二虚拟通道的拥塞程度高于第二拥塞程度阈值。
该方法中,每当接收设备确定第一数据流的对应的虚拟通道的拥塞程度高于预设的第二拥塞程度阈值时,则会向发送设备发送一个反压报文(比如一个反压帧或pause帧),用于通知发送设备该第二虚拟通道当前较为拥塞。当接收设备发送反压报文的次数大于预设的反压次数阈值时,则触发接收设备为该第一数据流重新选择一个新的虚拟通道(即第三虚拟通道),并更新至流虚拟通道中。作为一种实现方法,这里的反压报文的次数指的是在预设时长内统计到的反压报文的次数,即方法2可以理解为:接收设备确定向发送设备发送的反压报文的次数大于反压次数阈值,该反压报文用于指示第二虚拟通道的拥塞程度高于第二拥塞程度阈值。
基于上述实现方法,接收设备可以在接收到一个数据流的第一个数据报文时,设置流虚拟通道表中与该数据流对应的表项,也可以是在该数据流的虚拟通道更新周期到达时,为该数据流重新选择一个新的虚拟通道,然后将该新的虚拟通道更新至流虚拟通道表中与该数据流对应的表项,当然,若该数据流在流虚拟通道表中的虚拟通道与选择的新的虚拟通道相同,则无需更新。此外,需要说明的是,若在更新流虚拟通道表,发现字段“数据流的虚拟通道”当前设置为“无效”,则还需要将该字段设置为“有效”。
通过该方法,可以实现为一个数据流多次更新虚拟通道,有助于保证该数据流的虚拟通道始终处于较优状态(即虚拟通道的拥塞程度较低)。
步骤408,接收设备向发送设备发送普通的应答报文。相应地,发送设备可以接收到该应答报文。
该普通的应答报文即为不包括新的虚拟通道的报文。
通过上述实施例,通过使用一个流虚拟通道表,实现了为一个或多个数据流分配并更新虚拟通道,从而实现了为不同的数据流分配相对较优的虚拟通道。
需要说明的是,接收设备可以一次对一个数据流按照图4实施例进行虚拟通道的设置,也可以一次对多个数据流按照图4实施例进行虚拟通道的设置。并且,接收设备可以在接收到一个数据流的第一个数据报文时,实施对该数据流的虚拟通道的更新,也可以是在接收到该数据流的后续数据报文时,完成对该数据流的虚拟通道的更新。
本申请实施例,在接收设备首次收到数据流的数据报文时基于数据流来分配虚拟通道,可以很好地解决虚拟通道流量大造成的拥塞问题。另外,在后续收发数据报文过程中,接收设备还可以根据数据流的反压情况和当前的虚拟通道的状态动态更新流虚拟通道表,在流量模型发生变化时依然可以很好地预防和缓解虚拟通道流量大造成的拥塞问题。因此,本申请方法可以实现基于数据流来分配虚拟通道和动态修改数据流的虚拟通道,相比于背景技术方案,能够更充分利用网络资源,可以很好地预防和缓解虚拟通道流量大造成的拥塞问题。
上述主要从各个网元之间交互的角度对本申请提供的方案进行了介绍。可以理解的是,上述实现各网元为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如图5所示,为本申请所涉及的数据流的虚拟通道的设置装置的一种可能的示例性框图,该装置500可以以软件或硬件的形式存在。装置500可以包括:处理单元502和通信单元503。作为一种实现方式,该通信单元503可以包括接收单元和发送单元。处理单元502用于对装置500的动作进行控制管理。通信单元503用于支持装置500与其他网络实体的通信。装置500还可以包括存储单元501,用于存储装置500的程序代码和数据。
其中,处理单元502可以是处理器或控制器,例如可以是通用中央处理器(centralprocessing unit,CPU),通用处理器,数字信号处理(digital signal processing,DSP),专用集成电路(application specific integrated circuits,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。存储单元501可以是存储器。通信单元503是一种该装置的接口电路,用于从其它装置接收信号。例如,当该装置以芯片的方式实现时,该通信单元503是该芯片用于从其它芯片或装置接收信号的接口电路,或者,是该芯片用于向其它芯片或装置发送信号的接口电路。
该装置500可以为上述任一实施例中的接收设备,还可以为用于接收设备的芯片。例如,当装置500为接收设备时,该处理单元502例如可以是处理器,该通信单元503例如可以是收发器。可选的,该收发器可以包括射频电路,该存储单元例如可以是存储器。例如,当装置500为用于接收设备的芯片时,该处理单元502例如可以是处理器,该通信单元503例如可以是输入/输出接口、管脚或电路等。该处理单元502可执行存储单元存储的计算机执行指令,可选地,该存储单元为该芯片内的存储单元,如寄存器、缓存等,该存储单元还可以是该接收设备内的位于该芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random accessmemory,RAM)等。
在一个实施例中,该装置500为接收设备,其中通信单元503包括发送单元和接收单元。接收单元,用于从发送设备接收第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;处理单元502,用于从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;发送单元,用于向所述发送设备发送应答报文,所述应答报文包括所述第二虚拟通道的标识,所述第二虚拟通道的标识用于所述发送设备更新所述第一数据流对应的虚拟通道。
在一种可能的实现方法中,所述第一数据报文包括所述第一数据流的标识;所述处理单元502,具体用于根据所述第一数据流的标识和所述第一虚拟通道组,为所述第一数据流选择所述第二虚拟通道。
在一种可能的实现方法中,所述处理单元502,具体用于:从第二虚拟通道组中,为所述第一数据流选择所述第二虚拟通道;其中,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
在一种可能的实现方法中,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
在一种可能的实现方法中,所述处理单元502,还用于根据所述第一虚拟通道组中的虚拟通道的当前拥塞程度,更新所述第二虚拟通道组。
在一种可能的实现方法中,所述第二虚拟通道为所述第一虚拟通道组中的拥塞程度最低的一个虚拟通道。
在一种可能的实现方法中,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
在一种可能的实现方法中,所述装置内维护一个流虚拟通道表,所述流虚拟通道表包括至少一个表项,一个表项对应一条数据流,一个表项至少包括以下三个字段:数据流的标识、数据流的虚拟通道、表项是否有效;所述流虚拟通道表包括所述第一数据流对应的第一表项,所述第一表项对应的数据流的虚拟通道为所述第二虚拟通道;
所述处理单元502,还用于在所述发送单元向所述发送设备发送应答报文之前,确定所述第一数据流对应的所述第一表项有效;确定所述第一表项对应的数据流的虚拟通道与所述第一虚拟通道不同。
在一种可能的实现方法中,所述第一表项的初始状态为无效;所述处理单元502还用于:在确定所述第一数据流对应的所述第一表项有效,并从所述第一表项获取所述第二虚拟通道之前,确定所述第一数据报文满足预设条件;将所述第二虚拟通道更新至所述第一表项,以及将所述第一表项设置为有效。
在一种可能的实现方法中,所述接收单元,还用于从所述发送设备接收所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
在一种可能的实现方法中,所述处理单元502,还用于:确定所述第二虚拟通道的当前拥塞程度满足预设条件,则从所述第一虚拟通道组中为所述第一数据流选择第三虚拟通道;将所述第三虚拟通道更新至所述第一表项,所述第三虚拟通道与所述第二虚拟通道不同;若所述第一表项无效,则将所述第一表项设置为有效。
在一种可能的实现方法中,所述处理单元502,具体用于:确定所述第二虚拟通道的拥塞程度高于第一拥塞程度阈值;或者,确定向所述发送设备发送的反压报文的次数大于反压次数阈值,所述反压报文用于指示所述第二虚拟通道的拥塞程度高于第二拥塞程度阈值。
可以理解的是,该装置用于上述数据流的虚拟通道的设置方法时的具体实现过程以及相应的有益效果,可以参考前述方法实施例中的相关描述,这里不再赘述。
如图6所示,为本申请所涉及的数据流的虚拟通道的设置装置的一种可能的示例性框图,该装置600可以以软件或硬件的形式存在。装置600可以包括:处理单元602和通信单元603。作为一种实现方式,该通信单元603可以包括接收单元和发送单元。处理单元602用于对装置600的动作进行控制管理。通信单元603用于支持装置600与其他网络实体的通信。装置600还可以包括存储单元601,用于存储装置600的程序代码和数据。
其中,处理单元602可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。存储单元601可以是存储器。通信单元603是一种该装置的接口电路,用于从其它装置接收信号。例如,当该装置以芯片的方式实现时,该通信单元603是该芯片用于从其它芯片或装置接收信号的接口电路,或者,是该芯片用于向其它芯片或装置发送信号的接口电路。
该装置600可以为上述任一实施例中的发送设备,还可以为用于发送设备的芯片。例如,当装置600为发送设备时,该处理单元602例如可以是处理器,该通信单元603例如可以是收发器。可选的,该收发器可以包括射频电路,该存储单元例如可以是存储器。例如,当装置600为用于发送设备的芯片时,该处理单元602例如可以是处理器,该通信单元603例如可以是输入/输出接口、管脚或电路等。该处理单元602可执行存储单元存储的计算机执行指令,可选地,该存储单元为该芯片内的存储单元,如寄存器、缓存等,该存储单元还可以是该发送设备内的位于该芯片外部的存储单元,如ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM等。
在一个实施例中,该装置600为发送设备,通信单元603包括发送单元和接收单元。发送单元,用于向接收设备发送第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;接收单元,用于从所述接收设备接收应答报文,所述应答报文包括第二虚拟通道的标识,所述第二虚拟通道为所述第一数据流对应的第一虚拟通道组中的一个虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;处理单元602,用于将所述第一数据流对应的虚拟通道,更新为所述第二虚拟通道。
在一种可能的实现方法中,所述第二虚拟通道为第二虚拟通道组中的一个虚拟通道,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
在一种可能的实现方法中,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
在一种可能的实现方法中,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
在一种可能的实现方法中,所述第一数据报文为所述第一数据流的满足预设条件的数据报文。
在一种可能的实现方法中,所述发送单元,还用于在所述处理单元602将所述第一数据流的虚拟通道,更新为所述第二虚拟通道之后,向所述接收设备发送所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
在一种可能的实现方法中,所述第二虚拟通道为所述第一虚拟通道组中的拥塞程度最低的一个虚拟通道。可以理解的是,该装置用于上述数据流的虚拟通道的设置方法时的具体实现过程以及相应的有益效果,可以参考前述方法实施例中的相关描述,这里不再赘述。
如图7所示,为本申请提供的一种数据流的虚拟通道的设置装置示意图,该装置可以是上述实施例中的接收设备、或发送设备。该装置700包括:处理器702、通信接口703、存储器701。可选的,装置700还可以包括通信线路704。其中,通信接口703、处理器702以及存储器701可以通过通信线路704相互连接;通信线路704可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。所述通信线路704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器702可以是一个CPU,微处理器,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口703,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN),有线接入网等。
存储器701可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路704与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器701用于存储执行本申请方案的计算机执行指令,并由处理器702来控制执行。处理器702用于执行存储器701中存储的计算机执行指令,从而实现本申请上述实施例提供的数据流的虚拟通道的设置方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。“多个”是指两个或两个以上,其它量词与之类似。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。例如,“a device”意味着对一个或多个这样的device。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。

Claims (30)

1.一种数据流的虚拟通道的设置方法,其特征在于,包括:
接收设备从发送设备接收第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;
所述接收设备从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;
所述接收设备向所述发送设备发送应答报文,所述应答报文包括所述第二虚拟通道的标识,所述第二虚拟通道的标识用于所述发送设备更新所述第一数据流对应的虚拟通道。
2.如权利要求1所述的方法,其特征在于,所述接收设备从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,包括:
所述接收设备从第二虚拟通道组中,为所述第一数据流选择所述第二虚拟通道;
其中,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
3.如权利要求2所述的方法,其特征在于,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
4.如权利要求2或3所述的方法,其特征在于,所述方法还包括:
所述接收设备根据所述第一虚拟通道组中的虚拟通道的当前拥塞程度,更新所述第二虚拟通道组。
5.如权利要求1-4任一所述的方法,其特征在于,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
6.如权利要求1-5任一所述的方法,其特征在于,所述接收设备内维护一个流虚拟通道表,所述流虚拟通道表包括至少一个表项,一个表项对应一条数据流,一个表项至少包括以下三个字段:数据流的标识、数据流的虚拟通道、表项是否有效;所述流虚拟通道表包括所述第一数据流对应的第一表项,所述第一表项对应的数据流的虚拟通道为所述第二虚拟通道;
所述接收设备向所述发送设备发送应答报文之前,还包括:
所述接收设备确定所述第一数据流对应的所述第一表项有效;
所述接收设备确定所述第一表项对应的数据流的虚拟通道与所述第一虚拟通道不同。
7.如权利要求6所述的方法,其特征在于,所述第一表项的初始状态为无效;
所述接收设备确定所述第一数据流对应的所述第一表项有效,并从所述第一表项获取所述第二虚拟通道之前,还包括:
所述接收设备确定所述第一数据报文满足预设条件;
所述接收设备将所述第二虚拟通道更新至所述第一表项,以及将所述第一表项设置为有效。
8.如权利要求1-7任一所述的方法,其特征在于,所述方法还包括:
所述接收设备从所述发送设备接收所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
9.如权利要求6-8任一所述的方法,其特征在于,所述方法还包括:
所述接收设备确定所述第二虚拟通道的当前拥塞程度满足预设条件,则从所述第一虚拟通道组中为所述第一数据流选择第三虚拟通道;
所述接收设备将所述第三虚拟通道更新至所述第一表项,所述第三虚拟通道与所述第二虚拟通道不同;
若所述第一表项无效,则所述接收设备将所述第一表项设置为有效。
10.一种数据流的虚拟通道的设置方法,其特征在于,包括:
发送设备向接收设备发送第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;
所述发送设备从所述接收设备接收应答报文,所述应答报文包括第二虚拟通道的标识,所述第二虚拟通道为所述第一数据流对应的第一虚拟通道组中的一个虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;
所述发送设备将所述第一数据流对应的虚拟通道,更新为所述第二虚拟通道。
11.如权利要求10所述的方法,其特征在于,所述第二虚拟通道为第二虚拟通道组中的一个虚拟通道,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
12.如权利要求11所述的方法,其特征在于,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
13.如权利要求10-12任一所述的方法,其特征在于,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
14.如权利要求10-13任一所述的方法,其特征在于,所述第一数据报文为所述第一数据流的满足预设条件的数据报文。
15.如权利要求10-14任一所述的方法,其特征在于,所述发送设备将所述第一数据流的虚拟通道,更新为所述第二虚拟通道之后,还包括:
所述发送设备向所述接收设备发送所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
16.一种数据流的虚拟通道的设置装置,其特征在于,包括:
接收单元,用于从发送设备接收第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;
处理单元,用于从所述第一数据流对应的第一虚拟通道组中,为所述第一数据流选择第二虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;
发送单元,用于向所述发送设备发送应答报文,所述应答报文包括所述第二虚拟通道的标识,所述第二虚拟通道的标识用于所述发送设备更新所述第一数据流对应的虚拟通道。
17.如权利要求16所述的装置,其特征在于,所述处理单元,具体用于:
从第二虚拟通道组中,为所述第一数据流选择所述第二虚拟通道;
其中,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
18.如权利要求17所述的装置,其特征在于,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
19.如权利要求17或18所述的装置,其特征在于,所述处理单元,还用于根据所述第一虚拟通道组中的虚拟通道的当前拥塞程度,更新所述第二虚拟通道组。
20.如权利要求16-19任一所述的装置,其特征在于,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
21.如权利要求16-20任一所述的装置,其特征在于,所述装置内维护一个流虚拟通道表,所述流虚拟通道表包括至少一个表项,一个表项对应一条数据流,一个表项至少包括以下三个字段:数据流的标识、数据流的虚拟通道、表项是否有效;所述流虚拟通道表包括所述第一数据流对应的第一表项,所述第一表项对应的数据流的虚拟通道为所述第二虚拟通道;
所述处理单元,还用于在所述发送单元向所述发送设备发送应答报文之前,确定所述第一数据流对应的所述第一表项有效;确定所述第一表项对应的数据流的虚拟通道与所述第一虚拟通道不同。
22.如权利要求21所述的装置,其特征在于,所述第一表项的初始状态为无效;
所述处理单元还用于:在确定所述第一数据流对应的所述第一表项有效,并从所述第一表项获取所述第二虚拟通道之前,确定所述第一数据报文满足预设条件;将所述第二虚拟通道更新至所述第一表项,以及将所述第一表项设置为有效。
23.如权利要求16-22任一所述的装置,其特征在于,所述接收单元,还用于从所述发送设备接收所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
24.如权利要求21-23任一所述的装置,其特征在于,所述处理单元,还用于:
确定所述第二虚拟通道的当前拥塞程度满足预设条件,则从所述第一虚拟通道组中为所述第一数据流选择第三虚拟通道;
将所述第三虚拟通道更新至所述第一表项,所述第三虚拟通道与所述第二虚拟通道不同;
若所述第一表项无效,则将所述第一表项设置为有效。
25.一种数据流的虚拟通道的设置装置,其特征在于,包括:
发送单元,用于向接收设备发送第一数据流的第一数据报文,所述第一数据报文包括所述第一数据流对应的第一虚拟通道的标识;
接收单元,用于从所述接收设备接收应答报文,所述应答报文包括第二虚拟通道的标识,所述第二虚拟通道为所述第一数据流对应的第一虚拟通道组中的一个虚拟通道,所述第二虚拟通道与所述第一虚拟通道不同;
处理单元,用于将所述第一数据流对应的虚拟通道,更新为所述第二虚拟通道。
26.如权利要求25所述的装置,其特征在于,所述第二虚拟通道为第二虚拟通道组中的一个虚拟通道,所述第二虚拟通道组包括所述第一虚拟通道组中的拥塞程度满足预设条件的一个或多个虚拟通道。
27.如权利要求26所述的装置,其特征在于,所述第二虚拟通道组中包括至少一个虚拟通道,所述第二虚拟通道为所述第二虚拟通道组中的任一虚拟通道。
28.如权利要求25-27任一所述的装置,其特征在于,所述第一数据流为第一业务类型的数据流,所述第一虚拟通道组中的虚拟通道为所述第一业务类型的数据流对应的虚拟通道组中的虚拟通道,所述第一虚拟通道组中的至少一个虚拟通道与第二业务类型的数据流对应的虚拟通道组中的至少一个虚拟通道不同,所述第一业务类型与所述第二业务类型不同。
29.如权利要求25-28任一所述的装置,其特征在于,所述第一数据报文为所述第一数据流的满足预设条件的数据报文。
30.如权利要求25-29任一所述的装置,其特征在于,所述发送单元,还用于在所述处理单元将所述第一数据流的虚拟通道,更新为所述第二虚拟通道之后,向所述接收设备发送所述第一数据流的第二数据报文,所述第二数据报文包括所述第二虚拟通道的标识。
CN201910309167.9A 2019-04-17 2019-04-17 一种数据流的虚拟通道的设置方法及装置 Active CN111835652B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910309167.9A CN111835652B (zh) 2019-04-17 2019-04-17 一种数据流的虚拟通道的设置方法及装置
EP20791875.6A EP3952234A4 (en) 2019-04-17 2020-04-13 METHOD AND DEVICE FOR ADJUSTING A VIRTUAL CHANNEL OF A DATA STREAM
PCT/CN2020/084548 WO2020211728A1 (zh) 2019-04-17 2020-04-13 一种数据流的虚拟通道的设置方法及装置
US17/498,756 US20220029919A1 (en) 2019-04-17 2021-10-12 Virtual channel setting method and apparatus for data flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910309167.9A CN111835652B (zh) 2019-04-17 2019-04-17 一种数据流的虚拟通道的设置方法及装置

Publications (2)

Publication Number Publication Date
CN111835652A true CN111835652A (zh) 2020-10-27
CN111835652B CN111835652B (zh) 2024-04-16

Family

ID=72838037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910309167.9A Active CN111835652B (zh) 2019-04-17 2019-04-17 一种数据流的虚拟通道的设置方法及装置

Country Status (4)

Country Link
US (1) US20220029919A1 (zh)
EP (1) EP3952234A4 (zh)
CN (1) CN111835652B (zh)
WO (1) WO2020211728A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022247257A1 (zh) * 2021-05-25 2022-12-01 华为技术有限公司 一种pfc风暴的检测和处理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750175B2 (en) * 2020-09-18 2023-09-05 International Business Machines Corporation Multiplexing resonator induced phase gate drive signals
CN113992470B (zh) * 2021-10-14 2023-06-16 上海艾为电子技术股份有限公司 数据发送方法和接收方法、主设备、从设备及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974278B1 (en) * 2007-12-12 2011-07-05 Integrated Device Technology, Inc. Packet switch with configurable virtual channels
CN103746927A (zh) * 2013-12-27 2014-04-23 杭州华为数字技术有限公司 基于优先级的流控pfc方法及发送设备、接收设备
CN104917694A (zh) * 2015-06-15 2015-09-16 上海斐讯数据通信技术有限公司 一种基于优先级的流量控制方法
CN106330742A (zh) * 2015-06-23 2017-01-11 华为技术有限公司 一种流量控制的方法及网络控制器
CN106792831A (zh) * 2017-01-25 2017-05-31 合肥工业大学 无线片上网络中无线节点级和无线链路级的拥塞避免模块及其机制
CN109314666A (zh) * 2016-04-12 2019-02-05 Nicira股份有限公司 用于拥塞感知负载均衡的虚拟隧道端点

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905231A (en) * 1988-05-03 1990-02-27 American Telephone And Telegraph Company, At&T Bell Laboratories Multi-media virtual circuit
US5852601A (en) * 1991-09-09 1998-12-22 Network Equipment Technologies, Inc. Method and apparatus for reactive congestion control in an asynchronous transfer mode (ATM) network
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JP2002516042A (ja) * 1996-01-31 2002-05-28 イプシロン ネットワークス インコーポレイテッド 伝送ネットワークにおいてパケットの経路指定とスイッチングとの間をダイナミックにシフトする改良された方法及び装置
US6788691B1 (en) * 1998-08-27 2004-09-07 Nortel Networks Limited AAL2 negotiation procedure
US6954424B2 (en) * 2000-02-24 2005-10-11 Zarlink Semiconductor V.N., Inc. Credit-based pacing scheme for heterogeneous speed frame forwarding
US7027418B2 (en) * 2001-01-25 2006-04-11 Bandspeed, Inc. Approach for selecting communications channels based on performance
US7656898B2 (en) * 2003-09-18 2010-02-02 Brocade Communications Systems, Inc. Virtual channel remapping
US7650379B2 (en) * 2003-12-09 2010-01-19 Viasat, Inc. Method for channel congestion management
US8949392B2 (en) * 2007-11-07 2015-02-03 Brocade Communications Systems, Inc. Workload management with network dynamics
FR2925808A1 (fr) * 2007-12-21 2009-06-26 Thomson Licensing Sas Procede de communication dans un reseau comprenant un reseau primaire et un reseau secondaire
US7913024B2 (en) * 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US10798252B2 (en) * 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US8755269B2 (en) * 2009-12-23 2014-06-17 Medtronic Minimed, Inc. Ranking and switching of wireless channels in a body area network of medical devices
US20110271002A1 (en) * 2010-05-03 2011-11-03 Canon Kabushiki Kaisha Initializing network streaming over multiple physical interfaces
US9065773B2 (en) * 2010-06-22 2015-06-23 Juniper Networks, Inc. Methods and apparatus for virtual channel flow control associated with a switch fabric
US8879396B2 (en) * 2011-11-15 2014-11-04 Oracle International Corporation System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology
US11700211B2 (en) * 2012-04-10 2023-07-11 Comcast Cable Communications, Llc Data network traffic management
US9503397B2 (en) * 2013-01-15 2016-11-22 International Business Machines Corporation Applying a client policy to a group of channels
US9697161B2 (en) * 2013-03-22 2017-07-04 Stmicroelectronics (Grenoble) Sas Method of handling transactions, corresponding system and computer program product
CN103701710B (zh) * 2013-12-20 2017-01-11 杭州华为数字技术有限公司 一种数据传输方法、核心转发设备以及端点转发设备
WO2015160221A1 (en) * 2014-04-18 2015-10-22 Samsung Electronics Co., Ltd. Method and apparatus for providing information related to content supporting broadcast service
WO2015191937A1 (en) * 2014-06-13 2015-12-17 Unifythings, Inc. Virtual gateway for a connected device
US10470138B2 (en) * 2015-10-12 2019-11-05 Newracom, Inc. Apparatus and methods for virtual channel sensing
US9998507B2 (en) * 2015-12-22 2018-06-12 Rapidsos, Inc. Systems and methods for robust and persistent emergency communications
CN109565477B (zh) * 2016-05-18 2021-06-22 马维尔以色列(M.I.S.L.)有限公司 具有远程物理端口的网络交换系统中的流量管理
US10628547B1 (en) * 2017-06-30 2020-04-21 Xilinx, Inc. Routing circuit designs for implementation using a programmable network on chip
US10498631B2 (en) * 2017-08-15 2019-12-03 Hewlett Packard Enterprise Development Lp Routing packets using distance classes
US10511987B2 (en) * 2017-09-20 2019-12-17 Qualcomm Incorporated Methods and apparatus related to enhanced machine type communication
US10560940B2 (en) * 2017-11-10 2020-02-11 Nokia Solutions And Networks Oy Intelligent traffic steering over optimal paths using multiple access technologies
US11153211B2 (en) * 2017-12-09 2021-10-19 Intel Corporation Fast data center congestion response
US10367565B2 (en) * 2017-12-12 2019-07-30 Charter Communications Operating, Llc Communications methods and apparatus using multiple beams
US10673745B2 (en) * 2018-02-01 2020-06-02 Xilinx, Inc. End-to-end quality-of-service in a network-on-chip
US20190349806A1 (en) * 2018-05-10 2019-11-14 Qualcomm Incorporated Dynamic control channel management
WO2020004688A1 (ko) * 2018-06-28 2020-01-02 엘지전자(주) V2x 통신 장치 및 그의 데이터 전송 방법
CN110752905B (zh) * 2018-07-24 2021-02-12 华为技术有限公司 通信方法及装置
US20200076742A1 (en) * 2018-08-28 2020-03-05 Hewlett Packard Enterprise Development Lp Sending data using a plurality of credit pools at the receivers
US10848440B2 (en) * 2019-03-20 2020-11-24 Alibaba Group Holding Limited Systems and methods for allocating bandwidth across a cluster of accelerators
US11489779B2 (en) * 2019-05-20 2022-11-01 Citrix Systems, Inc. Systems and methods for managing streams of packets via intermediary devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974278B1 (en) * 2007-12-12 2011-07-05 Integrated Device Technology, Inc. Packet switch with configurable virtual channels
CN103746927A (zh) * 2013-12-27 2014-04-23 杭州华为数字技术有限公司 基于优先级的流控pfc方法及发送设备、接收设备
CN104917694A (zh) * 2015-06-15 2015-09-16 上海斐讯数据通信技术有限公司 一种基于优先级的流量控制方法
CN106330742A (zh) * 2015-06-23 2017-01-11 华为技术有限公司 一种流量控制的方法及网络控制器
CN109314666A (zh) * 2016-04-12 2019-02-05 Nicira股份有限公司 用于拥塞感知负载均衡的虚拟隧道端点
CN106792831A (zh) * 2017-01-25 2017-05-31 合肥工业大学 无线片上网络中无线节点级和无线链路级的拥塞避免模块及其机制

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Y. XU 等: "Simple virtual channel allocation for high throughput and high frequency on-chip routers", HPCA - 16 2010 THE SIXTEENTH INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE, BANGALORE, INDIA,, pages 1 - 22 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022247257A1 (zh) * 2021-05-25 2022-12-01 华为技术有限公司 一种pfc风暴的检测和处理方法

Also Published As

Publication number Publication date
WO2020211728A1 (zh) 2020-10-22
EP3952234A4 (en) 2022-05-18
EP3952234A1 (en) 2022-02-09
CN111835652B (zh) 2024-04-16
US20220029919A1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US7924708B2 (en) Method and apparatus for flow control initialization
CN111835652A (zh) 一种数据流的虚拟通道的设置方法及装置
US20040213151A1 (en) Fabric access integrated circuit configured to bound cell reorder depth
CN109587732B (zh) 一种服务质量流的传输方法及装置
EP3605975A1 (en) Client service transmission method and device
CN112753198B (zh) 在网络中的负载均衡和报文重排序方法及装置
US11690044B2 (en) Method and device for selecting resources in carrier wave
CN110312283B (zh) 一种信息处理方法及装置
US20180343675A1 (en) Control Signaling Transmission Method And Device
US10034298B2 (en) Time slot state update method and device
CN113411262A (zh) 一种大型接收卸载功能的设置方法和装置
CN113076280A (zh) 一种数据传输方法及相关设备
US10200871B2 (en) Radio resource allocation method and radio network controller
CN108696427B (zh) 一种数据传输方法及装置
CN115514708B (zh) 拥塞控制方法及装置
US11243900B2 (en) Data transmission method and device
US20190108060A1 (en) Mobile resource scheduler
EP3806411A1 (en) Message control method and node device
KR20170057770A (ko) 가상 스위치의 패킷 전송 제어 방법
EP4092978A1 (en) Designated forwarder election method, and apparatus
WO2023193689A1 (zh) 报文传输方法、装置、设备及计算机可读存储介质
WO2023105697A1 (ja) 変換装置、変換方法及び変換プログラム
CN109729018B (zh) 基于流量整形的突发尺寸确定方法及相关设备
CN116686270A (zh) 一种数据包排序方法及装置
CN107896199B (zh) 传输报文的方法和装置

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