CN109219944B - 用于减小分组网络中mtu大小的系统和方法 - Google Patents

用于减小分组网络中mtu大小的系统和方法 Download PDF

Info

Publication number
CN109219944B
CN109219944B CN201780034204.9A CN201780034204A CN109219944B CN 109219944 B CN109219944 B CN 109219944B CN 201780034204 A CN201780034204 A CN 201780034204A CN 109219944 B CN109219944 B CN 109219944B
Authority
CN
China
Prior art keywords
mtu
output port
jitter
size
network entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780034204.9A
Other languages
English (en)
Other versions
CN109219944A (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
Publication of CN109219944A publication Critical patent/CN109219944A/zh
Application granted granted Critical
Publication of CN109219944B publication Critical patent/CN109219944B/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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate

Landscapes

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

Abstract

本发明公开了当抖动敏感包流使用输出端口时,减小与所述输出端口相关联的最大传输单元(maximum transmission unit,MTU)大小的系统和方法。这可减少引入到所述抖动敏感包流中的抖动量。在一实施例中,一种方法包括通过输出端口传输数据包。所述输出端口的MTU大小设为第一MTU值,并且所述数据包的大小不大于所述第一MTU值。所述方法还包括将所述MTU大小设为第二较小MTU值,以及通过所述输出端口传输其它数据包。所述其它数据包的大小不大于所述第二MTU值。所述其它数据包包括抖动敏感包流中的数据包。所述方法还包括随后将所述MTU大小设为大于所述第二MTU值的MTU值。

Description

用于减小分组网络中MTU大小的系统和方法
相关申请案交叉申请
本申请要求2016年6月24日递交的发明名称为“用于减小分组网络中MTU大小的系统和方法(System and Method for MTU Size Reduction in a Packet Network)”的第15/192,152号美国专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文本中。
技术领域
本发明涉及修改与网络实体的输出端口相关联的最大传输单元(maximumtransmission unit,MTU)值。
背景技术
在分组交换网络中,数据包从网络中的一个网络实体转发到另一个网络实体,从而从源流至目的地。网络实体可具有输出端口,最大传输单元(maximum transmissionunit,MTU)大小可与该输出端口相关联。MTU大小是能够经由链路通过输出端口传输至下一网络实体的最大数据包的大小。如果要通过输出端口传输的数据包的大小大于MTU大小,则可丢弃该数据包。或者,可将一个大于MTU大小的数据包分为多个小于MTU大小的数据包。然后可通过输出端口传输这些较小的数据包。
常常需要将相对较大的MTU大小与输出端口相关联。MTU大小越大,意味着可通过输出端口传输的数据包越大。通过输出端口传输较大的数据包可比通过输出端口传输较小的数据包更高效。每个数据包可具有相关联的开销和每包处理时间。在一个数据包中能够传输的数据越多(即,数据包越大),数据开销比越高,因此数据传输也更高效。
然而,与通过输出端口传输较小数据包所需的时间相比,当通过输出端口传输较大数据包时,输出端口被占用的时间较长。
发明内容
本发明公开了当抖动敏感包流使用输出端口时,减小与所述输出端口相关联的MTU大小的系统和方法。这可减少引入到所述抖动敏感包流中的抖动量。当所述抖动敏感包流中的数据包到达所述输出端口的队列时,如果另一低优先级数据包正在通过所述输出端口进行传输,则所述数据包可能无法通过所述输出端口进行传输。所述抖动敏感包流的所述数据包可能需要等待,直至所述另一低优先级数据包传输完成。传输所述另一低优先级数据包所需时间与所述低优先级数据包的大小有关。如果MTU大小较大,则所述低优先级数据包可能较大,这就意味着在通过所述输出端口传输所述抖动敏感包流的所述数据包之前,可能会产生较大时延。所述MTU大小越大,在所述抖动敏感包流的所述数据包能够进行传输之前所产生的可能时延的变化就越大。
在出现抖动敏感包流时,通过减小与所述输出端口相关联的MTU值,可减少引入到所述抖动敏感包流中的时延变化。例如,可将与输出端口相关联的所述MTU大小设为第一值以在未出现抖动敏感包流时使用。然后,当出现抖动敏感包流时,可将所述MTU大小设为第二较低值。一旦所述抖动敏感包流不再出现,则可将所述MTU大小增加回所述第一值。
在一实施例中,提供了一种由网络实体执行的方法。所述方法可包括通过所述网络实体的输出端口传输数据包。所述输出端口的MTU大小设为第一MTU值,并且所述数据包的大小不大于所述第一MTU值。所述方法还可包括将所述MTU大小设为第二MTU值。所述第二MTU值小于所述第一MTU值。所述方法还可包括通过所述输出端口传输其它数据包。所述其它数据包的大小不大于所述第二MTU值,并且所述其它数据包包括抖动敏感包流中的数据包。所述方法还可包括随后将所述MTU大小设为大于所述第二MTU值的MTU值。还公开了一种用于执行所述方法的网络实体。
在另一实施例中,提供了一种由网络中的流量管理器执行的方法。所述方法可包括确定抖动敏感包流将使用网络实体的输出端口。所述输出端口的MTU大小设为第一MTU值。所述方法还可包括传输消息,所述消息指示所述网络实体将所述MTU大小设为第二MTU值。所述第二MTU值小于所述第一MTU值。所述方法还可包括传输后续消息,所述后续消息指示所述网络实体将所述MTU大小设为大于所述第二MTU值的MTU值。还公开了一种用于执行所述方法的流量管理器。
附图说明
此处仅作为示例,结合附图描述了实施例,其中:
图1是根据一个实施例的分组网络的框图;
图2是分组网络的框图,但是示出了示例抖动敏感包流;
图3是根据一个实施例的节点的框图;
图4是示例时间线,示出了不同时间点的队列和节点发射器;
图5是根据一个实施例的流量管理器的框图;
图6包括图6A和图6B,是根据一个实施例的由流量管理器和节点执行的操作的流程图;
图7是根据一个实施例的由一个网络实体执行的操作的流程图;
图8是根据一个实施例的由另一网络实体执行的操作的流程图;
图9是根据另一实施例的节点的框图。
具体实施方式
出于说明性目的,现将在下文结合附图更详细地说明特定示例实施例。
图1是根据一个实施例的分组网络100的框图。分组网络100包括若干网络实体,在本实施例中,这些网络实体称为节点102。图1中示出了八个节点102,标记为102a至102h。在实际实现中,可能存在更多或更少的节点102。每个节点102包括至少一个输入端口和至少一个输出端口。每个节点102的每个输入端口标记为“I”,每个节点的每个输出端口标记为“O”。部分节点的至少一些输出端口通过通信链路耦合到其它节点的输入端口。例如,节点102b具有一个输入端口104和两个输出端口106、108。可在节点102b处通过输入端口104从链路110接收数据包。然后,可通过输出端口106将该数据包从节点102b传输至链路112上。还可以或替代地通过输出端口108将该数据包从节点102b传输至链路114上。链路110耦合到节点102a的输出端口116,链路112耦合到节点102d的输入端口118,链路114耦合到节点102e的输入端口120。链路110、112和114可以是物理链路或无线链路。
在图1中,每个节点102仅示为具有最多两个输入端口和最多两个输出端口。在实际实现中,一个节点可具有更多输入端口和/或更多输出端口。还应理解,虽然输入和输出端口示为每个端口仅用于到另一网络实体的单条链路,但是输入和输出端口可以用于通过公共总线将数据包传输至各不同的目的地。如果输入和输出端口利用以太网等网络接口,则输入和输出端口可以是同一网络接口的一部分。
分组网络100还包括流量管理器103。流量管理器103可通信地耦合到每个节点102,使得流量管理器103能够向每个节点102发送消息并从每个节点102接收消息。为清晰起见,图1中未示出流量管理器103与节点102之间的通信路径。
在操作中,若干包流穿过分组网络100。部分包流可能源自网络100之外的源,也终止于网络100之外的目的地,在源与目的地之间的某一点处穿过网络100。例如,源自某一国家的网络服务器且终止于另一国家的计算机处的低优先级包流可能在从源到目的地的路径上流经网络100。该流可在节点102a处进入网络100,在102f处离开网络100。其它包流可源自和/或终止于网络100。例如,一个包流可源自节点102a并在节点102g处终止。
流量管理器103实施流量管理功能以管理网络100中的包流。对于网络100中的每个包流,流量管理器103可确定该流在网络100中的传输路径。例如,如果一个包流在节点102a处进入网络100并在节点102f处离开网络100,则流量管理器103可确定该包流将从节点102a传输到节点102b,然后到节点102e,然后到节点102f。然后,流量管理器103可向节点102a发送消息,该消息指示节点102a将流中的任何数据包转发到输出端口116,使得这些数据包通过链路110传输到节点102b。流量管理器103还可向节点102b发送消息,该消息指示节点102b将流中的任何数据包转发到输出端口108,使得这些数据包通过链路114从节点102b传输到节点102e,以此类推。
有时可能存在对抖动敏感的包流。“抖动敏感”意味着数据包之间的时延变化必须在某一容限内。词语“抖动”和“时延变化”将会互换使用。从源发送数据包的时间与该数据包到达目的地的时间之间将始终存在时延(也称为延迟)。当包到包的时延变化量必须在某一容限内时,该流对抖动敏感。例如,抖动敏感包流的源可为节点102a,目的地可为节点102f。源可按等时间间隔传输四个数据包。如果这四个数据包中的每个数据包都在从节点102a传输出去正好100μs后在节点102f处收到,则包流的抖动为零。然而,如果这四个数据包中的某一数据包在源节点102a与目的节点102f之间的传输用时为110μs,这四个数据包中的另一数据包在源节点102a与目的节点102f之间的传输用时为90μs,则该包流的抖动为110μs-90μs=20μs。而情况可能是,目的节点102f要求流的抖动在10μs内。该抖动容限未能满足。抖动敏感包流有时还可称为抖动敏感连接。
图2是图1的分组网络100的框图,但是示出了在节点102a与节点102h之间出现的示例抖动敏感包流142。在本实施例中,抖动敏感包流142源自节点102a,终止于节点102h。或者,抖动敏感包流142可源自和/或终止于网络100外部。抖动敏感包流142在网络100中的传输路径由流量管理器103确定。在本实施例中,抖动敏感包流142经由链路110通过节点102a的输出端口116传输,再通过节点102b的输入端口104,然后经由链路112通过节点102b的输出端口106,接着通过节点102d的输入端口118,然后经由链路126通过节点102d的输出端口124,随后通过节点102h的输入端口128。
图3是根据一个实施例的图2的节点102b的框图。节点102b包括耦合到链路110的输入端口104。接收器152耦合到输入端口104。映射器154耦合到接收器152。映射器154包括存储了转发表158的存储器156。映射器154耦合到两组队列:一组队列160,用于存储通过输出端口106传输的数据包,以及另一组队列162,用于存储通过输出端口108传输的数据包。存储通过输出端口106传输的数据包的一组队列160包括拥有不同传输优先级的队列。例如,队列164为高优先级队列,队列166为低优先级队列。该组队列160耦合到包括指针170和缓冲区172的发射器168。发射器168的输出端耦合到输出端口106。控制器174耦合到该组队列160以及发射器168。MTU实施器176也耦合到该组队列160。节点102b还包括用于输出端口108和该组队列162的发射器、控制器和MTU实施器,但为清晰起见,省略了这些元件。节点102b还可包括为清晰起见而未示出或未描述的其它组件。
输入端口104为可传输信号的物理端口,该物理端口将接收器152连接到链路110,使得该链路上的信号可以传输到接收器152。
接收器152、映射器154、发射器168、控制器174以及MTU实施器176可分别通过处理器来实施,该处理器通过执行指令来执行接收器152、映射器154、发射器168、控制器174以及MTU实施器176的相应操作。可使用同一处理器来实施接收器152、映射器154、发射器168、控制器174以及MTU实施器176中的每一个。或者,可使用不同的处理器来实施接收器152、映射器154、发射器168、控制器174以及MTU实施器176中的一个或多个。或者,接收器152、映射器154、发射器168、控制器174以及MTU实施器176可分别为专用集成电路,例如,用于执行接收器152、映射器154、发射器168、控制器174以及MTU实施器176的相应操作的特定应用集成电路(application specific integrated circuit,ASIC)、图形处理器(graphicsprocessing unit,GPU)或程序化的现场可编程门阵列(field programmable gate array,FPGA)。可使用一套集成电路来实施全部接收器152、映射器154、发射器168、控制器174以及MTU实施器176。或者,可使用不同的集成电路来实施接收器152、映射器154、发射器168、控制器174以及MTU实施器176中的一个或多个。
队列可以通过存储器或物理寄存器来实施。输出端口106为可传输信号的物理端口,该物理端口将节点102b的发射器168连接到链路112,使得信号可以传输到链路112。类似地,输出端口108为可以传输信号的物理端口,该物理端口将节点102b连接到链路114,使得信号可以传输到链路114。
节点102b还包括接收器,用于从流量管理器103接收消息。该接收器可为专用接收器(未示出),或者,如果来自流量管理器103的消息通过链路110到达,则该接收器可为接收器152。例如,如下所述,流量管理器103可向节点102b发送消息,该消息指示节点102b修改输出端口106的MTU值。接收器将该消息转发给MTU实施器176。节点102b还包括发射器,用于向流量管理器103发送消息。该发射器可为专用发射器(未示出),或者,如果消息通过链路112发送,则该发射器可为发射器168。例如,如下所述,节点102b可向流量管理器103发送消息,该消息指示输出端口106的当前MTU大小和/或链路112的链路速度和/或节点102b是否能够对通过输出端口106传输的数据包执行抢占。该消息可通过节点102b的发射器来发送。
在操作中,当通过链路110在输入端口104处收到数据包时,该数据包由接收器152接收。接收器152实施接收数据包所必需的物理操作。接收器152实际实施的具体操作是特定于实施场景的,取决于链路110的性质,例如,链路110是光链路、无线链路还是铜线,等等。然而,在一实施例中,接收器152的操作包括从在输入端口104处收到的信号中提取数据包,例如,解调和解码,以在电域中获得数字形式的数据包。该数据包从接收器152转发到映射器154。映射器154读取数据包中的标记以识别数据包并确定该数据包要转发到另一节点。映射器154使用该标记来查询转发表158。转发表158是查找表,其针对每个要转发的数据包指示该数据包应存储到哪个输出端口的哪个队列中。在一个示例中,数据包是抖动敏感包流142中的数据包,转发表158指示流142中的数据包要存储到高优先级队列164中。因此,映射器154将数据包转发到队列164。如果该数据包来自另一条流,则转发表158可指示将该数据包存储到另一队列中,例如,可能存储到低优先级队列166中,或者可能存储到输出端口108的一个队列中。
存在与输出端口106相关联的MTU大小。MTU实施器176设置输出端口106的MTU大小并强制实施该MTU大小。每次要传输存储在队列160之一中的数据包时,MTU实施器176首先将数据包的大小与设置的MTU大小进行比较。如果数据包的大小大于所设置的MTU大小,则MTU实施器176执行以下两个操作之一:
(1)MTU实施器176停止传输该数据包并丢弃该数据包。如果在未通知发送该数据包的实体的情况下丢弃该数据包,则这种丢弃称为静态丢弃。或者,当丢弃该数据包时,MTU实施器176可指示节点102b向发送该数据包的实体发送消息。该消息可指示由于该数据包的大小超过MTU大小,所以该数据包已被丢弃。
(2)MTU实施器176还可在传输之前将数据包分割为两个或更多较小数据包。这称为分片。这两个或更多较小数据包中的每个数据包的大小选择为不大于所设置的MTU大小。然后,可通过输出端口106传输这些较小数据包中的每一个,而非传输超过所设置的MTU大小的原始数据包。
发射器168通过输出端口106传输存储在一组队列160中的数据包。在传输之前,可以检索数据包并将数据包存储到缓冲区172中。将指针170初始化到存储在缓冲区172中的数据包的起点。然后,指针170增长,数据包被从缓冲区172中读取出。当数据包的每个部分从缓冲区172中读取出时,发射器168执行必要的操作以通过输出端口106将数据包的一部分发送到链路112上。发射器168执行的特定操作是特定于实施场景的,取决于链路112的性质,例如,链路112是光链路、无线链路还是铜线,等等。然而,在一实施例中,发射器168的操作包括对数据包比特进行编码并调制到适合链路112的介质的信号上。例如,发射器168可使用误差控制码对数据包比特进行编码,然后通过使用调制方案将这些比特映射到传输符号来对编码过的比特进行调制,再将调制过的符号发送到链路112上。
控制器174控制要从一组队列160向发射器168发送哪个数据包。当发射器168的指针170增长到缓冲区172末尾时,这就向控制器174表明发射器168完成了通过输出端口106传输数据包的操作且不再占用输出端口106。控制器174查询该组队列160中每个队列的状态。可能出现以下三种场景之一:
(1)当控制器174查询该组队列160中每个队列的状态时,任何队列中都没有数据包。控制器174等待该组队列160中的任何一个队列有数据包到达,然后立即指示将该数据包转发到发射器168的缓冲区172。
(2)当控制器174查询该组队列160中每个队列的状态时,该组队列160中仅有一个队列中有一些数据包(或仅一个数据包),该组队列160中的其余队列为空。控制器174指示传输该非空队列中的下一数据包。例如,可能仅低优先级队列166中存储了数据包。因此,控制器174指示将低优先级队列166中的下一数据包转发到发射器168的缓冲区172。
(3)当控制器174查询该组队列160中每个队列的状态时,该组队列160中的至少两个队列中都分别有一个或多个数据包。因此,基于控制器174实施的调度算法,控制器174选择接下来要传输哪个数据包。例如,控制器174可始终先选择高优先级队列中的数据包,再选择低优先级队列中的数据包。该调度算法是特定于实施场景的。例如,如果有两个数据包等待通过输出端口106进行传输,一个在高优先级队列164中,另一个在低优先级队列166中,则控制器174可首先选择高优先级队列164中的数据包。然而,如果低优先级队列166中存储的数据包变得太旧,则控制器174可先选择低优先级队列166中数据包,再选择高优先级队列164中的数据包。
与输出端口106相关联的MTU大小可能导致包流中的抖动。为了帮助理解这一点,参考图4。图4是示例时间线,示出了不同时间点的高优先级队列164、低优先级队列166和发射器168。在本示例中,抖动敏感包流包括四个数据包,在图4中标记为1、2、3和4。这些数据包在高优先级队列164中接收时,彼此间隔1毫秒(millisecond,ms),发射器168传输每个数据包耗时0.5ms。
抖动敏感包流中的数据包1在t=1.0ms时到达高优先级队列164,并在下一可用传输时间进行传输。由于发射器168这时未传输其它数据包,所以立即传输数据包1。数据包1的传输耗时0.5ms,因此,发射器168准备好在t=1.5ms时传输另一数据包。然而,在t=1.5ms时,队列164或166中没有数据包要传输。
抖动敏感包流中的数据包2在t=2.0ms时到达高优先级队列164并立即传输,因为发射器168未传输任何其它数据包。数据包2的传输耗时0.5ms,因此,发射器168准备好在t=2.5ms时传输另一数据包。然而,在t=2.5ms时,队列164或166中没有数据包要传输。
在t=2.75ms时,另一低优先级流中的另一数据包A到达低优先级队列166并立即传输,因为发射器168未传输任何其它数据包。在本示例中,数据包A还恰好与抖动敏感数据包的大小相同,因此发射器168耗时0.5ms来传输数据包A。
抖动敏感包流中的数据包3在t=3.0ms时到达高优先级队列164。然而,在t=3.0ms时,数据包A的传输仍在进行,即,发射器168尚未完全将数据包A的所有比特都序列化到链路112上。直到数据包A在t=3.25ms完成传输时,才能传输数据包3。数据包3的传输耗时0.5ms,因此,发射器168准备好在t=3.75ms时传输另一数据包。然而,在t=3.75ms时,队列164或166中没有数据包要传输。
抖动敏感包流中的数据包4在t=4.0ms时到达高优先级队列164并立即传输,因为发射器168未传输任何其它数据包。数据包4的传输耗时0.5ms。
数据包1完成传输与数据包2完成传输之间的间隔为1ms。然而,由于中间介入了数据包A的传输,所以数据包2完成传输与数据包3完成传输之间的间隔为1.25ms。另外,数据包3完成传输与数据包4完成传输之间的间隔为0.75ms。因此,抖动敏感包流中的数据包的到达时间之间的时延变化,即抖动,为1.25ms-0.75ms=0.5ms。根据目的地可接受的抖动容限,该抖动量可能不合需要或不可接受。
抖动敏感包流中的数据包1至4所经历的时延变化量可通过对数据包1至4进行高优先级处理来部分解决,即,将数据包1至4存储到高优先级队列164中。也就是说,在一些实施例中,抖动敏感包流可指定为高优先级。然而,时延变化量还受输出端口106的MTU大小的影响。在图4的示例中,数据包A越大,数据包A通过输出端口106进行传输的时间就越长。数据包A通过输出端口106进行传输的时间越长,时延变化就越大。在图4的示例中,数据包A的大小等于抖动敏感包流中的数据包的大小。然而,通常数据包A的大小可能更大,只要数据包A的大小不超过输出端口106的MTU大小。低优先级大数据包在传输过程中可能在高优先级抖动敏感流量中引入较大抖动。
有可能始终将输出端口106的MTU大小设为较小值,以尝试减小抖动。然而,当未出现抖动敏感包流时,可能无法始终将MTU大小保持为较小值。因此,可将输出端口106的MTU大小保持为标准值或较大值,当抖动敏感包流正在使用输出端口106时,MTU实施器176可将输出端口108的MTU大小设为较小的MTU值。在出现抖动敏感包流时,这将减小能够通过输出端口106进行传输的数据包的大小,因此有助于减小引入到抖动敏感包流中的抖动。在图4的示例中,当出现抖动敏感包流时,数据包A的最大大小受限于该较小的MTU大小。如果数据包A的大小大于该较小的MTU大小,则MTU实施器176丢弃或分割数据包A。
图5是根据一个实施例的流量管理器103的框图。流量管理器103可以是软件定义网络(software defined networking,SDN)控制器、另一类型的SDN实体,或执行流量管理功能的另一实体,例如操作、管理和处理(operation,administration,and management,OAM)实体。OAM实体有时还称为操作、管理和维护实体。
流量管理器103包括包流建立器182,其通过执行本文所述的操作来实施流量工程功能。包流建立器182包括MTU调节器184。流量管理器103还包括发射器186,用于将消息从流量管理器103发送到节点102,以及接收器188,用于从节点102接收消息。流量管理器103包括为清晰起见而省略的其它组件。
包流建立器182可使用处理器来实施,该处理器通过执行指令来执行包流建立器182的操作。或者,包流建立器182可为专用集成电路,例如用于执行包流建立器182的操作的ASIC、GPU或FPGA。类似地,MTU调节器184可使用处理器来实施,该处理器通过执行指令来执行MTU调节器184的操作。或者,MTU调节器184可为专用集成电路,例如用于执行MTU调节器184的操作的ASIC、GPU或FPGA。包流建立器182和MTU调节器184可使用同一处理器或同一组集成电路来实施。或者,包流建立器182和MTU调节器184可使用不同的处理器或不同的集成电路来实施。在下文所述的一些实施例中,包流建立器182或MTU调节器184向节点102中的一个或多个发送消息。这意味着来自包流建立器182或MTU调节器184的消息被发送到流量管理器103的发射器186,流量管理器103的发射器186再传输该消息。类似地,当节点102之一发送响应且包流建立器182或MTU调节器184接收该响应时,该响应由流量管理器103的接收器188接收,接收器188再将该响应转发给包流建立器182或MTU调节器184。发射器186对消息进行编码和调制,从而将消息调制到信号上以进行传输。接收器188对携带消息的信号进行解调和解码,以便获取该消息。发射器186和接收器188可各自通过一个专用集成电路或处理器来实施,该处理器通过执行指令来执行发射器186和接收器188的操作。发射器186和接收器188可合并为单个收发器。
在操作中,流量管理器103从网络100中的节点102之一接收消息。该消息请求流量管理器103在该节点的特定输出端口与网络100中另一节点的特定输入端口之间建立包流。在本示例中,该包流为抖动敏感包流。包流建立器182确定该包流为抖动敏感包流。包流建立器182还确定该包流在网络100中的流路径。然后,MTU调节器184向流路径中的至少一个节点发送消息,该消息指示该节点减小与该抖动敏感包流使用的输出端口相关联的MTU大小。
现描述流量管理器103和网络100中的节点102所执行的其它详细示例方法。
图6包括图6A和图6B,是根据一个实施例的由流量管理器103和节点102a、102b、102d、102h执行的操作的流程图。
在步骤202中,节点102a向流量管理器103发送“包流请求”,请求在节点102a与节点102h之间建立包流。在一些实施例中,该包流请求消息明确指示该流将使用节点102a的哪个输出端口和/或该流将使用节点102h的哪个输入端口。例如,该消息可请求在节点102a的输出端口116与节点102h的输入端口128之间建立包流。或者,该包流请求消息可以不明确指示该流将使用节点102a的哪个输出端口和/或该流将使用节点102h的哪个输入端口。
如果包流源自网络100之外的源实体,则可替代地,在步骤202中,该源实体可发送包流请求消息,或者在步骤202中,该源实体可指示节点102a发送包流请求消息。
在步骤204中,流量管理器103的包流建立器182确定所请求的包流是抖动敏感包流。在一些实施例中,在步骤202中发送的消息明确指示了包流是抖动敏感包流,在这种情况下,包流建立器182通过读取该消息中的这一指示来确定所请求的包流是抖动敏感的。在一些实施例中,包流建立器182基于所请求的包流的类型,或基于所请求的包流的属性,或基于所请求的包流源自节点102a这一事实,或基于所请求的包流终止于节点102h这一事实,或基于前面列出的因素的组合,来确定所请求的包流是抖动敏感包流。
在步骤206中,流量管理器103的包流建立器182确定所请求的包流将使用哪个路径从节点102a传输到节点102h。包流建立器182可使用不同的方法来选择流路径。例如,包流建立器182可尝试将跳数度量最小化,即,选择穿过网络100中最少数量的节点102的路径。路径选择方法中可能要考虑的另一因素是候选路径的可用带宽。在一实施例中,包流建立器182使用各种约束最短路径方法来计算路径。这通过以下方式完成:包流建立器182首先构建节点102的完整拓扑图,包括所有节点和链路,以及链路的可用容量和穿过各链路的成本因素。当必须计算需要一定量的带宽的路径时,将图中没有足够的容量来支持这一路径的链路从图中移除。然后对剩余的拓扑执行最短路径算法,如Dijkstra算法。这样确保所选的路径是能够支持路径带宽要求的路径中最短的(最低成本总和)。还存在可能的其它非Dijkstra方法,例如,基于线性程序的方法。
举例来说,在本实施例中,包流建立器182确定抖动敏感包流将使用图2中示出的路径142。
在步骤208中,包流建立器182向抖动敏感包流路径142上的每个节点发送相应消息。该相应消息提供必要的信息用于沿所确定的路径转发抖动敏感包流中的数据包。步骤208包括步骤208A、208B、208C和208D。在步骤208A中,向节点102a发送消息,该消息指示节点102a通过输出端口116转发抖动敏感包流中的任何数据包。在步骤208B中,向节点102b发送消息,该消息指示节点102b通过输出端口106转发抖动敏感包流中的任何到达输入端口104的数据包。在步骤208C中,向节点102d发送消息,该消息指示节点102d通过输出端口124转发抖动敏感包流中的任何到达输入端口118的数据包。在步骤208D中,向节点102h发送消息,通知节点102h,抖动敏感包流将到达输入端口128。
在步骤210中,抖动敏感包流路径142上的每个节点记录在步骤208处发送的信息。步骤210包括步骤210A、210B、210C和210D。在步骤210A中,节点102a在存储器(未示出)中记录通过输出端口116转发抖动敏感包流中的任何数据包。在步骤210B中,节点102d在存储器中记录通过输出端口106转发抖动敏感包流中的任何到达输入端口104的数据包。例如,可在图3示出的转发表158中记录指令,以指示通过输出端口106转发抖动敏感包流中的任何到达输入端口104的数据包。在步骤210C中,节点102d在存储器中记录通过输出端口124转发抖动敏感包流中的任何到达输入端口118的数据包。在步骤210D中,节点102h在存储器中记录抖动敏感包流将到达输入端口128。
在步骤212中,流量管理器103的MTU调节器184向抖动敏感包流路径142上的每个节点102a、102b和102d发送相应消息,以查询MTU大小、输出端口的链路速度,以及抢占能力。步骤212包括步骤212A、212B和212C。
在步骤212A中,向节点102a发送消息,请求输出端口116的当前MTU大小,请求链路110的链路速度,并查询节点102a是否能够对通过输出端口116传输的数据包执行抢占。网络中的节点可能有也可能没有抢占能力。如果节点102a能够对通过输出端口116传输的数据包执行抢占,这就意味着节点102a具有能够完成以下操作的功能:在第一数据包通过输出端口116完成传输之前停止第一数据包的传输,以传输第二数据包,然后在第二数据包完成传输后立即完成第一数据包的传输。例如,参考图4,在时间t=3.0ms,如果节点102b能够执行抢占,则可停止数据包A的传输,在抖动敏感数据包3在t=3.0ms到达队列164之后,可立即传输抖动敏感数据包3。然后,一旦抖动敏感数据包3完成传输,就可传输数据包A的剩余部分。执行抢占时,可能无需减小与输出端口相关联的MTU大小。这是因为可以对另一个正在传输的数据包(即,使其传输停止)执行抢占,以传输抖动敏感数据包。
在步骤212B中,向节点102b发送消息,请求输出端口106的当前MTU大小,请求链路112的链路速度,并查询节点102b是否能够对通过输出端口106传输的数据包执行抢占。
在步骤212C中,向节点102d发送消息,请求输出端口124的当前MTU大小,请求链路126的链路速度,并查询节点102d是否能够对通过输出端口124传输的数据包执行抢占。
步骤212并非在所有实施例中都是必需的。例如,如果MTU调节器184已经知晓在步骤212中请求的信息,则无需发送消息来请求该信息。如果MTU调节器184已经知晓在步骤212中请求的部分信息,而另一部分信息不为MTU调节器184所知,则可将步骤212修改为仅请求MTU调节器184不知道的信息。此外,虽然在步骤212中向每个节点发送单个消息,但是也可发送多个消息。例如,在步骤212A中,可向节点102a发送第一消息来查询链路110的速度,可向节点102a发送第二消息来查询节点102a是否能够对通过输出端口116传输的数据包执行抢占,还可发送第三消息来请求输出端口116的当前MTU大小。
在执行步骤212时,还执行步骤214。在步骤214中,节点102a、102b和102d中的每一个对在步骤212中发送的消息发送响应。步骤214包括步骤214A、214B和214C。举例来说,在本实施例中,在214A、214B和214C中发送以下响应。
在步骤214A中,节点102a发送指示如下信息的响应:输出端口116的当前MTU大小为32千字节,链路110的链路速度为1吉比特/秒(gigabits per second,Gbps),并且节点102a能够对通过输出端口116传输的数据包执行抢占。
在步骤214B中,节点102b发送指示如下信息的响应:输出端口106的当前MTU大小为32千字节,链路112的链路速度为1Gbps,并且节点102b不能对通过输出端口106传输的数据包执行抢占。
在步骤214C中,节点102d发送指示如下信息的响应:输出端口124的当前MTU大小为32千字节,链路112的链路速度为100Gbps,并且节点102d不能对通过输出端口106传输的数据包执行抢占。
在步骤216中,MTU调节器184使用在步骤214中接收的信息,针对抖动敏感流路径上的每个输出端口,来确定是否应减小输出端口的MTU大小。步骤216包括步骤216A、216B和216C。
在步骤216A中,MTU调节器184确定不应减小输出端口116的MTU大小,因为节点102a能够对通过输出端口116传输的数据包执行抢占。如果当前未启用对输出端口116的抢占,则MTU调节器184可向节点102a发送消息(未示出),以指示节点102a启用对输出端口116的抢占。
在步骤216B中,MTU调节器184确定应减小输出端口106的MTU大小,因为:(1)节点102b不能对通过输出端口106传输的数据包执行抢占,(2)输出端口106的当前MTU大小(32千字节)高于第一预定阈值,(3)链路112的链路速度(1Gbps)低于第二预定阈值。如果当前MTU大小已经比较小,则设置第一预定阈值以防止减小MTU大小。例如,第一预定阈值可为256字节。如果当前MTU大小低于256字节,则MTU大小不会再减小。如果链路速度较快,则设置第二预定阈值以防止减小MTU大小。例如,第二预定阈值可为50Gbps。如果链路112的速度高于50Gpbs,则不会减小MTU大小。高速链路意味着能够更快地传输数据包,因此,如果抖动敏感数据包在一个较大低优先级数据包刚开始传输之后到达输出端口的队列,则因抖动敏感数据包必须等待而产生的时延会相对较小,原因是由于链路速度快,所以该较大低优先级数据包能够很快地传输。
在步骤216C中,MTU调节器184确定不应减小输出端口124的MTU大小,因为链路126的链路速度(100Gbps)高于第二阈值。
在步骤216中,MTU调节器184确定只有在满足以下所有条件时,才减小输出端口的MTU大小:(a)不能进行抢占,(b)当前MTU大小高于第一预定阈值(即,当前MTU大小不是太小),(c)链路速度低于第二预定阈值(即,链路速度不是太快)。在替代性实施例中,当仅满足因素(a)至(c)中的一项或它们的子集时,MTU调节器184可确定要减小输出端口的MTU大小。例如,每当不能进行抢占时,MTU调节器184可确定要减小MTU大小,无论当前MTU大小和链路速度是多少。
在步骤216所述的示例中,MTU调节器184仅确定要减小节点102b的输出端口106的MTU大小。因此,在步骤218中,MTU调节器184向节点102b传输消息,该消息指示节点102b将输出端口106的MTU大小设为小于输出端口106的当前MTU大小的MTU值。输出端口106的当前MTU大小为32千字节。例如,MTU调节器184指示节点102b将输出端口106的MTU大小设为256字节。在一些实施例中,MTU调节器184将MTU大小所减至的准确值作为链路112的速度函数来确定。链路112的速度越快,MTU大小减小得越少。在本示例中,基于链路112的链路速度1Gbps,MTU调节器184确定要将输出端口106的MTU大小减小至256字节。如果链路112的速度更快,则MTU大小可以不减小这么多。例如,如果链路112的速度为10Gbps,则MTU调节器184可将MTU大小减小至1500字节。
在步骤220中,抖动敏感包流中的数据包通过路径142从节点102a传输到节点102h。路径142上的每个节点以步骤208中包流建立器182所指示的方式来转发抖动敏感包流中的数据包。
输出端口106的MTU大小已减小至256字节。参照图3,节点102b的MTU实施器176丢弃或分割任何要通过输出端口106传输而大小大于256字节的数据包。即使是该抖动敏感包流以外的其它流中的数据包要通过输出端口106传输,如果这些数据包大于256字节,那么它们也会被丢弃或分割。抖动敏感流中在节点102b处接收的每个数据包被发送到高优先级队列164,所以这些抖动敏感流数据包将以高优先级进行转发,以帮助减小时延变化。
抖动敏感包流中的数据包大小不大于包流路径上的最小减小后MTU(例如,在图6的实施例中为256字节)。然而,其它流中的数据包的大小可能大于减小后的MTU大小。当另一流中存在大于减小后的MTU大小的数据包,且这些数据包因此被丢弃或分割,则该流的端点可触发IP MTU发现。IP MTU发现可由于被丢弃的数据包的显式丢包而触发,或者通过因特网控制报文协议(Internet Control Message Protocol,ICMP)“帧超大”响应而触发。因此,低优先级流可能存在一些丢包,直到低优先级流适应较小的MTU。然而,作为交换,当出现抖动敏感包流时,较小的MTU可以帮助减小抖动敏感包流中的抖动。
最后,抖动敏感包流将终止。在发生这一情况时,在步骤222处,MTU调节器184向节点102b发送消息,该消息指示节点102b将端口106的MTU大小设为32千字节。
在图6所述的实施例中,可以实现以下结果。如果创建了利用输出端口/链路的抖动敏感包流,其中该输出端口/链路携带大MTU流量,则可针对抖动敏感包流的存在时长来减小该输出端口/链路的MTU。因此,无需升级抖动敏感路径的节点中的硬件便可满足抖动敏感流量。例如,抖动敏感路径上的节点无需对节点硬件进行升级以支持抢占。当不存在抖动敏感路径时,可实现与具有较高MTU相关的效率。当存在抖动敏感路径时,可仅减小MTU。
在图6所述的实施例中,流量管理器103直接与抖动敏感流路径中的每个节点通信。例如,在图6的步骤208中,流量管理器103向节点102a、102b、102d和102h中的每一个发送单独的消息,消息中携带该节点的转发/到达信息。或者,流量管理器103可向节点102a发送消息,该消息将沿预期的抖动敏感流路径进行转发,并且配置了抖动敏感流路径上的每个节点,因为该消息在节点间转发。例如,该消息可首先例如通过以下方式配置节点102a:指示节点102a更新节点102a的转发表以建立流路径的节点交叉连接,并在必要时减小节点102a的MTU值。然后,节点102a可将该消息转发到节点102b。随后该消息可例如通过以下方式配置节点102b:指示节点102b更新节点102b的转发表,并在必要时减小节点102b的MTU值。然后节点102b可将该消息转发到节点102d,以此类推,直到该消息配置了抖动敏感流路径上的每个节点并因此建立了抖动敏感流路径。此外,流量管理器103可建立抖动敏感流路径上的节点的其它属性。例如,可针对抖动敏感流路径上的数据包建立配置参数,如数据包在队列中的最大允许存储时间。另外,在一些实施例中,节点102a可代替流量管理器103来确定包流路径。
以下为使用实施例的一个应用。无线通信系统可包括多个无线资源头(radioresource head,RRH)或基站,它们将用户设备(user equipment,UE)无线连接到网络。网络可包括前传网络和回传网络。回传网络可以是云无线接入网(cloud radio accessnetwork,C-RAN)。前传网络是RRH与回传网络之间的网络。回传网络可以是互联网协议(Internet Protocol,IP)分组网络。传统上,前传网络不是IP分组网络。前传网络可以是专用光纤网络。将前传网络实施为IP分组网络可能是有益的。然而,前传网络中通过RRH发往UE的包流可能是抖动敏感的。当出现抖动敏感包流时,减小前传网络中实体的MTU大小可适当地满足前传网络中的抖动敏感包流。
图6示出了由流量管理器103和节点102a、102b、102d、102h执行的详细示例方法。图7和图8描述了一般情况下网络中的实体可分别执行的方法步骤。
图7是根据一个实施例的由一个网络实体执行的操作的流程图。该网络实体将称为节点。例如,图7的方法可由节点102b执行。
在步骤302中,节点通过节点的输出端口传输数据包。该输出端口的MTU大小设为第一MTU值,并且通过该输出端口传输的数据包的大小不大于第一MTU值。
可选地,在步骤304中,从另一网络实体(例如流量管理器)接收消息,该消息指示节点将MTU大小设为小于第一MTU值的第二MTU值。当流量管理器确定抖动敏感包流将要使用输出端口并传输节点在步骤304中收到的消息时,可执行步骤304。但是步骤304是可选的,这是因为,在收到信令指示新的抖动敏感包流正在(或者将要)使用该输出端口后,节点也可自动将MTU大小设为第二MTU值(即,执行下文的步骤306)。该信令可源于该节点或另一节点,而非通过来自流量管理器的消息来传输。或者,在收到抖动敏感包流中的数据包后,节点可自动将MTU大小设为第二MTU值(即,执行下文的步骤306)。
在步骤306中,节点将MTU大小设为第二MTU值。然后在步骤308中,节点通过输出端口传输其它数据包。这些其它数据包的大小不大于第二MTU值,并且这些其它数据包包括抖动敏感包流中的数据包。
可选地,在步骤310中,从流量管理器接收另一消息,该消息指示节点将MTU大小设为大于第二MTU值的MTU值。当流量管理器确定使用该输出端口的抖动敏感包流已终止并传输节点在步骤310中收到的消息时,可执行步骤310。但是步骤310是可选的,因为,在确定抖动敏感包流已终止且无需从流量管理器接收显式消息后,节点也可自动将MTU大小设为较大值(即,执行下文的步骤312)。例如,若在预定时间段过后未收到抖动敏感包流中的任何其它数据包,则节点可自动将MTU值设为较大值。
在步骤312中,节点将MTU大小设为大于第二MTU值的MTU值。该大于第二MTU值的MTU值可为第一MTU值。也就是说,节点可将MTU值返回到第一MTU值。
当出现抖动敏感包流时,使用第二MTU值。这并不意味着在未出现抖动敏感包流时不能使用第二MTU值。相反,MTU大小可在抖动敏感包流出现前设为第二MTU值,并保持到抖动敏感包流终止后。这可确保减小后的MTU大小针对整个抖动敏感包流都有效。类似地,只因为在出现抖动敏感包流时使用第二MTU值,这并不意味着在出现抖动敏感包流时不能使用第一MTU值。相反,在抖动敏感包流开始之后,例如在节点确定当前存在抖动敏感数据包后,MTU大小可设为第二MTU值。然而,无论如何,第二MTU值的目的都是用于抖动敏感包流以及优先处理抖动敏感包流。当未出现抖动敏感包流时,可使用第一MTU值。
将MTU大小设为第二MTU值是为了优先处理抖动敏感包流。将MTU大小设为第二MTU值可响应于消息而执行。该消息可能来自流量管理器,但是也可能来自其它网络实体,或者该消息甚至可能在节点自身内生成。该消息可为显示消息,指示出现了或将出现抖动敏感包流。或者,该消息可为隐式消息。例如,该消息可为指示节点更新转发表的指令,和/或该消息可为指示节点将MTU大小减至第二MTU值的指令。
在一些实施例中,抖动敏感流中数据包的包大小不大于第二MTU值,因此,当MTU大小设为第二MTU值时,抖动敏感流中的数据包不会被丢弃或分割。在一些实施例中,当MTU大小设为第二MTU值时,节点可以:接收抖动敏感包流中的数据包,将抖动敏感包流中的该数据包存储在第一队列中,并且在传输存储于另一低优先级队列中的另一数据包之前,优先通过输出端口传输抖动敏感包流中的该数据包。为抖动敏感包流使用优先级较高的第一队列还可帮助减小抖动敏感包流中的抖动。在一些实施例中,在将MTU大小设为第二MTU值之前,节点接收查询以下一项或多项信息的消息:输出端口是否支持抢占,和/或连接到输出端口的链路的速度,和/或输出端口的当前MTU大小。节点可传输对查询的响应,在传输响应之后,可接收将MTU大小设为第二MTU值的指令。在一些实施例中,当MTU大小设为较低的第二MTU值时,MTU值所减小(为了获得第二MTU值)的量取决于链路速度。
图8是根据一个实施例的由另一网络实体执行的操作的流程图。该网络实体将称为流量管理器。例如,图8的方法可由流量管理器103执行。
在步骤352中,流量管理器确定抖动敏感包流将使用节点的输出端口。该输出端口的MTU大小设为第一MTU值。在步骤354中,流量管理器传输一个消息,该消息指示节点将MTU大小设为第二MTU值。第二MTU值小于第一MTU值。在步骤356中,流量管理器随后传输另一消息,该消息指示节点将MTU大小设为大于第二MTU值的MTU值。该后续消息可在抖动敏感包流终止后立即传输。可选地,在步骤358中,针对抖动敏感包流路径上的一个或多个其它节点重复步骤352至步骤356。
在一些实施例中,在步骤354之前,本方法还包括向节点传输查询以下一项或多项信息的消息:输出端口是否支持抢占,和/或连接到输出端口的链路的速度,和/或输出端口的当前MTU大小。可从节点接收对查询的响应。然后仅根据响应执行步骤354,如上所述。例如,如果响应指示不支持抢占且链路的速度低于阈值,则可执行步骤354。
在一些实施例中,执行可选步骤358,该步骤针对抖动敏感流路径上的多个节点中的每个节点包括以下步骤:(1)确定抖动敏感包流将使用的节点输出端口是否要减小该输出端口的MTU大小;(2)如果确定要减小MTU大小,则向节点传输消息,该消息指示节点将MTU大小设为小于与输出端口相关联的当前MTU大小的值。步骤(1)可包括向节点传输查询以下一项或多项信息的消息:输出端口是否支持抢占,和/或连接到输出端口的链路的速度,和/或输出端口的当前MTU大小。然后基于节点对查询的响应来确定是否减小MTU大小。
在一些实施例中,图8的方法在步骤352之前还可包括以下操作:(1)接收为抖动敏感包流提供服务的请求;(2)通过确定抖动敏感包流将采用的路径来建立抖动敏感包流;(3)向路径上多个节点中的每个节点传输指令,以将抖动敏感包流中的每个数据包转发给节点的特定相应输出端口。
图9是根据另一实施例的节点400的框图。节点400包括至少一个输入端口402和至少一个输出端口404。节点400还包括处理器406和存储器408。存储器408中存储有指令,这些指令在由处理器406访问并执行时,使处理器406执行本文所述的节点操作。例如,处理器406可通过执行指令来执行图3中的接收器152、映射器154、发射器168、控制器174和MTU实施器176的操作。存储器408可存储图3中的转发表158和缓冲区172。存储器408还可实施图3的队列160和162,例如实施为虚拟输出队列。
尽管已经参考本发明的特定特征和实施例来描述本发明,但是在不脱离本发明的情况下可以对本发明进行各种修改和组合。说明书和附图仅被视为所附权利要求书所定义的本发明部分实施例的示例并且考虑落于本说明书的范围内的任何和所有修改、变体、组合或均等物。因此,虽然已详细描述了本发明及其优势,但是在不脱离如所附权利要求书所界定的本发明的情况下,可以对本发明做出各种改变、替代和更改。此外,本发明的范围并不局限于说明书中所述的过程、机器、制造、物质组分、构件、方法和步骤的具体实施例。所属领域的一般技术人员可从本发明中轻易地了解,可根据本发明使用现有的或即将开发出的,具有与本文所描述的相应实施例实质相同的功能,或能够取得与所述实施例实质相同的结果的过程、机器、制造、物质组分、构件、方法或步骤。相应地,所附权利要求范围包括这些流程、机器、制造、物质组分、构件、方法或步骤。
此外,本文所例示的执行指令的任何模块、组件或设备均可包括或能够访问用于存储信息的非瞬时性计算机/处理器可读存储媒介或介质,这些信息包括计算机/处理器可读指令、数据结构、程序模块和/或其它数据等。非瞬时性计算机/处理器可读存储介质的非详尽示例列表包括磁带盒、磁带、磁盘存储器或其它磁存储设备、光盘(例如只读光盘(compact disc read-only memory,CD-ROM)、数字视频光盘或数字多功能光盘(digitalvideo disc/digital versatile dis,DVD)、蓝光光盘TM或其它光存储器)、以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质、随机存取存储器(random-accessmemory,RAM)、只读存储器(read-only memory,ROM)、电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存或其它存储技术。任何这类非瞬时性计算机/处理器存储介质都可为一个设备的一部分,或可接入或可连接到该设备。本文描述的任何应用或模块都可使用计算机/处理器可读/可执行指令来实施,这些计算机/处理器可读/可执行指令可存储在这类非瞬时性计算机/处理器可读存储介质中或由这类非瞬时性计算机/处理器可读存储介质所拥有。

Claims (21)

1.一种由网络实体执行的方法,其特征在于,所述方法包括:
通过所述网络实体的输出端口传输数据包,所述输出端口的最大传输单元(maximumtransmission unit,MTU)大小设为第一MTU值,并且所述数据包的大小不大于所述第一MTU值;
将所述MTU大小设为第二MTU值,所述第二MTU值小于所述第一MTU值;
通过所述输出端口传输其它数据包,所述其它数据包的大小不大于所述第二MTU值,并且所述其它数据包包括抖动敏感包流中的数据包;以及
将所述MTU大小设为大于所述第二MTU值的MTU值;
其中所述网络实体是第一网络实体,所述方法还包括:
从第二网络实体接收一个消息,所述消息指示所述第一网络实体将所述MTU大小设为所述第二MTU值;以及
随后从所述第二网络实体接收另一消息,所述另一消息指示所述第一网络实体将所述MTU大小设为大于所述第二MTU值的所述MTU值;
所述方法还包括:在将所述MTU大小设为所述第二MTU值之前:
从第二网络实体接收消息,查询所述输出端口是否支持抢占,其中所述抢占包括当所述其它数据包到达所述输出端口时,所述输出端口停止所述数据包的传输,以传输所述其它数据包,然后在所述其它数据包完成传输后完成所述数据包的传输;以及
传输指示所述输出端口是否支持所述抢占的响应;
在传输所述响应之后,接收将所述MTU大小设为所述第二MTU值的指令。
2.根据权利要求1所述的方法,其特征在于,当出现所述抖动敏感包流时,使用所述第二MTU值。
3.根据权利要求1或2所述的方法,其特征在于,执行所述将所述MTU大小设为所述第二MTU值的操作以响应于消息优先处理所述抖动敏感包流。
4.根据权利要求1或2所述的方法,其特征在于,在收到所述抖动敏感包流中的数据包之后,执行所述将所述MTU大小设为所述第二MTU的操作。
5.根据权利要求1或2所述的方法,其特征在于,还包括,当所述MTU大小设为所述第二MTU值时:
接收所述抖动敏感包流中的数据包;
将所述抖动敏感包流中的所述数据包存储到第一队列中;以及
在传输另一低优先级队列中存储的另一数据包之前,优先通过所述输出端口传输所述抖动敏感包流中的所述数据包。
6.根据权利要求1或2所述的方法,其特征在于,所述网络实体是第一网络实体,所述方法还包括:
在将所述MTU大小设为所述第二MTU值之前:
从第二网络实体接收消息,查询连接到所述输出端口的链路的速度;以及
传输指示所述链路的所述速度的响应;
在传输所述响应之后,接收将所述MTU大小设为所述第二MTU值的指令。
7.一种网络实体,其特征在于,包括:
输出端口,其具有最大传输单元(maximum transmission unit,MTU)大小;
发射器,接收器;以及
MTU实施器;
所述发射器用于,当所述输出端口的所述MTU大小设为第一MTU值时,通过所述输出端口传输数据包,所述数据包的大小不大于所述第一MTU值;
所述MTU实施器用于将所述MTU大小设为第二MTU值,所述第二MTU值小于所述第一MTU值;
所述发射器用于通过所述输出端口传输其它数据包,所述其它数据包的大小不大于所述第二MTU值,并且所述其它数据包包括抖动敏感包流中的数据包;以及
所述MTU实施器用于将所述MTU大小设为大于所述第二MTU值的MTU值;
所述接收器用于,从第二网络实体接收一个消息,所述消息指示所述网络实体将所述MTU大小设为所述第二MTU值;以及
随后从所述第二网络实体接收另一消息,所述另一消息指示所述网络实体将所述MTU大小设为大于所述第二MTU值的所述MTU值;
所述接收器还用于,在将所述MTU大小设为所述第二MTU值之前,从所述第二网络实体接收消息,查询所述输出端口是否支持抢占,其中所述抢占包括当所述其它数据包到达所述输出端口时,所述输出端口停止所述数据包的传输,以传输所述其它数据包,然后在所述其它数据包完成传输后完成所述数据包的传输;以及
所述发射器还用于传输指示所述输出端口是否支持所述抢占的响应;
在传输所述响应之后,所述接收器用于接收将所述MTU大小设为所述第二MTU值的指令。
8.根据权利要求7所述的网络实体,其特征在于,当出现所述抖动敏感包流时,使用所述第二MTU值。
9.根据权利要求7或8所述的网络实体,其特征在于,所述MTU实施器用于将所述MTU大小设为所述第二MTU值以响应于消息优先处理所述抖动敏感包流。
10.根据权利要求7或8所述的网络实体,其特征在于,所述MTU实施器用于,在所述网络实体收到所述抖动敏感包流中的数据包之后,将所述MTU大小设为所述第二MTU值。
11.根据权利要求7或8所述的网络实体,其特征在于,当所述MTU大小设为所述第二MTU值时,所述网络实体用于:
接收所述抖动敏感包流中的数据包;
将所述抖动敏感包流中的所述数据包存储到第一队列中;以及
在传输另一低优先级队列中存储的另一数据包之前,优先通过所述输出端口传输所述抖动敏感包流中的所述数据包。
12.根据权利要求7或8所述的网络实体,其特征在于,所述网络实体是第一网络实体,所述第一网络实体用于:
在将所述MTU大小设为所述第二MTU值之前:
从第二网络实体接收消息,查询连接到所述输出端口的链路的速度;以及
传输指示所述链路的所述速度的响应;
在传输所述响应之后,接收将所述MTU大小设为所述第二MTU值的指令。
13.一种由网络中的流量管理器执行的方法,其特征在于,所述方法包括:
确定抖动敏感包流将使用网络实体的输出端口,所述输出端口的最大传输单元(maximum transmission unit,MTU)大小设为第一MTU值;
传输消息,所述消息指示所述网络实体将所述MTU大小设为第二MTU值,所述第二MTU值小于所述第一MTU值;以及
传输后续消息,所述后续消息指示所述网络实体将所述MTU大小设为大于所述第二MTU值的MTU值;
向所述网络实体传输消息,查询所述输出端口是否支持抢占,其中所述抢占包括当所述抖动敏感包流到达所述输出端口时,所述输出端口停止数据包的传输,以传输所述抖动敏感包流,然后在所述抖动敏感包流完成传输后完成所述数据包的传输;
从所述网络实体接收响应,所述响应指示所述输出端口是否支持抢占;以及
在接收所述响应之后,传输所述指示所述网络实体将所述MTU大小设为所述第二MTU值的消息。
14.根据权利要求13所述的方法,其特征在于,当出现所述抖动敏感包流时,使用所述第二MTU值。
15.根据权利要求13或14所述的方法,其特征在于,还包括:
向所述网络实体传输消息,请求连接到所述输出端口的链路的速度;
从所述网络实体接收指示所述链路的所述速度的响应;
确定所述链路的所述速度低于阈值;以及
在确定所述链路的所述速度低于所述阈值之后,传输所述指示所述网络实体将所述MTU大小设为所述第二MTU值的消息。
16.根据权利要求13或14所述的方法,其特征在于,所述网络实体是所述抖动敏感包流的路径上的多个节点之一,所述方法还包括:
对于所述多个节点中的每个节点:
确定所述抖动敏感包流将使用的所述节点的输出端口是否要减小所述输出端口的MTU大小;以及
如果确定要减小所述MTU大小,则向所述节点传输消息,所述消息指示所述节点将所述MTU大小设为小于与所述输出端口相关联的当前MTU大小的值。
17.一种流量管理器,其特征在于,包括:
包流建立器,用于确定抖动敏感包流将使用网络实体的输出端口,所述输出端口的最大传输单元(maximum transmission unit,MTU)大小设为第一MTU值;以及
MTU调节器,用于:
传输消息,所述消息指示所述网络实体将所述MTU大小设为第二MTU值,所述第二MTU值小于所述第一MTU值;以及
传输后续消息,所述后续消息指示所述网络实体将所述MTU大小设为大于所述第二MTU值的MTU值;
所述MTU调节器还用于:
向所述网络实体传输消息,查询所述输出端口是否支持抢占,其中所述抢占包括当所述抖动敏感包流到达所述输出端口时,所述输出端口停止数据包的传输,以传输所述抖动敏感包流,然后在所述抖动敏感包流完成传输后完成所述数据包的传输;
从所述网络实体接收响应,所述响应指示所述输出端口是否支持抢占;以及
在接收所述响应之后,传输所述指示所述网络实体将所述MTU大小设为所述第二MTU值的消息。
18.根据权利要求17所述的流量管理器,其特征在于,当出现所述抖动敏感包流时,使用所述第二MTU值。
19.根据权利要求17或18所述的流量管理器,其特征在于,所述MTU调节器还用于:
向所述网络实体传输消息,请求连接到所述输出端口的链路的速度;
从所述网络实体接收指示所述链路的所述速度的响应;
确定所述链路的所述速度低于阈值;以及
在确定所述链路的所述速度低于所述阈值之后,传输所述指示所述网络实体将所述MTU大小设为所述第二MTU值的消息。
20.根据权利要求17或18所述的流量管理器,其特征在于,所述网络实体是所述抖动敏感包流的路径上的多个节点之一,所述MTU调节器还用于:
对于所述多个节点中的每个节点:
确定所述抖动敏感包流将使用的所述节点的输出端口是否要减小所述输出端口的MTU大小;以及
如果确定要减小所述MTU大小,则向所述节点传输消息,所述消息指示所述节点将所述MTU大小设为小于与所述输出端口相关联的当前MTU大小的值。
21.一种计算机可读介质,其特征在于,诉述介质存储有指令,当网络实体运行所述指令时,权利要求1-6、13-16中任意一项所述的方法被执行。
CN201780034204.9A 2016-06-24 2017-06-20 用于减小分组网络中mtu大小的系统和方法 Active CN109219944B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/192,152 2016-06-24
US15/192,152 US20170373982A1 (en) 2016-06-24 2016-06-24 System and method for mtu size reduction in a packet network
PCT/CN2017/089090 WO2017219950A1 (en) 2016-06-24 2017-06-20 System and method for mtu size reduction in a packet network

Publications (2)

Publication Number Publication Date
CN109219944A CN109219944A (zh) 2019-01-15
CN109219944B true CN109219944B (zh) 2020-08-14

Family

ID=60677123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780034204.9A Active CN109219944B (zh) 2016-06-24 2017-06-20 用于减小分组网络中mtu大小的系统和方法

Country Status (4)

Country Link
US (1) US20170373982A1 (zh)
EP (1) EP3459216B1 (zh)
CN (1) CN109219944B (zh)
WO (1) WO2017219950A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200077355A1 (en) * 2018-08-29 2020-03-05 Commscope Technologies Llc Clock synchronization in a centralized radio access network having multiple controllers
US11916800B2 (en) * 2019-06-28 2024-02-27 Intel Corporation Dynamic virtual cut-through and dynamic fabric bandwidth allocation between virtual cut-through and store-and-forward traffic

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6650652B1 (en) * 1999-10-12 2003-11-18 Cisco Technology, Inc. Optimizing queuing of voice packet flows in a network
CN101119319A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 一种在数据传输过程中抵抗丢包的方法、收发装置及系统
WO2011033780A1 (ja) * 2009-09-18 2011-03-24 株式会社ソニー・コンピュータエンタテインメント 端末装置、音声出力方法および情報処理システム
CN102209034A (zh) * 2011-05-24 2011-10-05 中兴通讯股份有限公司 一种二层路径最大传输单元发现方法和节点
CN105337883A (zh) * 2015-08-20 2016-02-17 电子科技大学 一种支持多业务的网络交换装置及其实现方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475679A (en) * 1994-12-08 1995-12-12 Northern Telecom Limited Large capacity ATM switch
US20080008202A1 (en) * 2002-10-31 2008-01-10 Terrell William C Router with routing processors and methods for virtualization
CN101138200A (zh) * 2005-02-04 2008-03-05 阿派伦特网络股份有限公司 评估分组网络上运行的实时应用的服务质量的方法及装置
US8189552B2 (en) * 2006-05-16 2012-05-29 Autonet Mobile, Inc. Mobile router that monitors links
CN101521622A (zh) * 2008-02-29 2009-09-02 华为技术有限公司 确定最大传输单元的方法和装置
DE102011003321A1 (de) * 2011-01-28 2012-08-02 Siemens Aktiengesellschaft Verfahren zum Erhöhen der Qualität der Datenübertragung in einem paketbasierten Kommunikationsnetz
US8879579B2 (en) * 2011-08-23 2014-11-04 Oracle International Corporation Method and system for requester virtual cut through
US9124506B2 (en) * 2013-06-07 2015-09-01 Brocade Communications Systems, Inc. Techniques for end-to-end network bandwidth optimization using software defined networking
US9973596B2 (en) * 2013-06-19 2018-05-15 Cisco Technology, Inc. Dynamically adjusting frame MTU to support low-latency communication
US9271164B2 (en) * 2013-08-05 2016-02-23 Acer Incorporated Method of increasing data throughput of a wireless network system by dynamically adjusting MTU/fragmentation size according to current transmission status
US10116577B2 (en) * 2014-12-04 2018-10-30 Dell Products Lp Detecting path MTU mismatch at first-hop router

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6650652B1 (en) * 1999-10-12 2003-11-18 Cisco Technology, Inc. Optimizing queuing of voice packet flows in a network
CN101119319A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 一种在数据传输过程中抵抗丢包的方法、收发装置及系统
WO2011033780A1 (ja) * 2009-09-18 2011-03-24 株式会社ソニー・コンピュータエンタテインメント 端末装置、音声出力方法および情報処理システム
CN102209034A (zh) * 2011-05-24 2011-10-05 中兴通讯股份有限公司 一种二层路径最大传输单元发现方法和节点
CN105337883A (zh) * 2015-08-20 2016-02-17 电子科技大学 一种支持多业务的网络交换装置及其实现方法

Also Published As

Publication number Publication date
EP3459216A1 (en) 2019-03-27
CN109219944A (zh) 2019-01-15
EP3459216B1 (en) 2022-06-22
EP3459216A4 (en) 2019-04-03
WO2017219950A1 (en) 2017-12-28
US20170373982A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
KR102317523B1 (ko) 패킷 제어 방법 및 네트워크 기기
US10849008B2 (en) Processing method and device for radio bearer for transmitting data stream
CN106134138B (zh) 一种拥塞控制的方法、设备和系统
US20210211937A1 (en) Data Transmission Method, Apparatus, and System
CN111800351B (zh) 由交换机进行的拥塞通知分组生成
US8942094B2 (en) Credit-based network congestion management
US20130272318A1 (en) Communication link bandwidth fragmentation avoidance
US9571410B2 (en) Credit-based link level flow control and credit exchange using DCBX
US20150215224A1 (en) Positive feedback ethernet link flow control for promoting lossless ethernet
CN107770085B (zh) 一种网络负载均衡方法、设备及系统
US9998364B2 (en) Method for processing packet and forwarder
WO2010099718A1 (zh) 一种数据传输控制方法、装置及系统
US20200128112A1 (en) Packet transmission method, proxy server, and computer-readable storage medium
US20200228633A1 (en) Method and Apparatus for Determining Quality of Service, and Storage Medium
US20180279322A1 (en) Service Data Packet Processing Method And Apparatus
WO2021244450A1 (zh) 一种通信方法及装置
US9699113B2 (en) Method and apparatus for bandwidth adjustment in network virtualization system
CN109219944B (zh) 用于减小分组网络中mtu大小的系统和方法
ES2781782T3 (es) Gestión de flujo de sub-servicio accionado por aplicación de QoS/QoE en sistema 5G
CN103166872A (zh) 网络中流量转发的方法和网络设备
US11115334B1 (en) Optimized network latency using in-band telemetry
CN113037651B (zh) 流量转发的提升QoS的方法、装置、设备及存储介质
CN112714071A (zh) 一种数据发送方法及装置
CN110868357A (zh) 网络流量控制方法、vtep设备和存储介质
JP6211257B2 (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