CN114244782A - 路径最大传输单元Path MTU值调整方法及装置 - Google Patents
路径最大传输单元Path MTU值调整方法及装置 Download PDFInfo
- Publication number
- CN114244782A CN114244782A CN202110994352.3A CN202110994352A CN114244782A CN 114244782 A CN114244782 A CN 114244782A CN 202110994352 A CN202110994352 A CN 202110994352A CN 114244782 A CN114244782 A CN 114244782A
- Authority
- CN
- China
- Prior art keywords
- mtu
- path
- forwarding
- detection
- load
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000005540 biological transmission Effects 0.000 title claims description 17
- 238000001514 detection method Methods 0.000 claims abstract description 267
- 230000002829 reductive effect Effects 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 19
- 239000000523 sample Substances 0.000 claims description 16
- 230000002457 bidirectional effect Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 230000006855 networking Effects 0.000 description 8
- 238000013467 fragmentation Methods 0.000 description 7
- 238000006062 fragmentation reaction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000010187 selection method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000003827 upregulation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003828 downregulation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009071 up-regulation mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种路径最大传输单元Path MTU值调整方法及装置。在MTU探测周期内,通过源节点与目的节点之间的转发路径向目的节点发送MTU探测报文,该MTU探测报文的报文长度与转发路径当前的Path MTU值相同;若在MTU探测周期内未接收到MTU探测报文的MTU反射报文,则确定本次的MTU探测失败,调低转发路径的Path MTU值;将调低后的Path MTU值作为当前的Path MTU值,继续执行在MTU探测周期内,通过源节点与目的节点之间的转发路径向目的节点发送MTU探测报文的步骤,直至确认MTU探测通过为止;若在MTU探测周期内接收到MTU探测报文的MTU反射报文,则确定本次的MTU探测通过。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种路径最大传输单元Path MTU值调整方法及装置。
背景技术
随着网络IPv6化的快速推进,IPv6段路由(IPv6 Segment Routing,SRv6)技术得到大力发展,无论是运营商网络还是其他网络都已经并加速将SRv6技术应用到网络解决方案中。但对SRv6技术应用影响较大的一个问题是SRv6报文转发对最大传输单元(MaximumTransfer Unit,MTU)的要求。SRv6报文封装会对原始报文增加较多报文长度,SRv6报文的封装格式为:在原始数据报文前面添加新的IPv6基本头和SRH(Segment Routing Header,IPv6 SR报文头)。因此对转发芯片支持的MTU提出了更高的要求。通常只有IPv6源节点进入SRv6隧道时才会对IPv6报文进行IPv6 MTU分片,中间节点转发IPv6报文时不进行IPv6 MTU分片。当IPv6报文的报文长度大于出接口IPv6 MTU时,中间节点会丢弃报文,并进行路径最大传输单元Path MTU值发现。另外,IPv6报文被分片后转发性能会大大降低。因此需要在SRv6隧道头端规划一个合理的Path MTU值。
针对上述SRv6的Path MTU规划问题,设备厂商普遍采用在SRv6隧道源节点通过命令行静态配置,先通过一个命令行配置SRv6隧道所在整个转发路径所支持的MTU值,然后再用一个命令行配置一个预留值(reserved-value),然后利用整个转发路径所支持的MTU值减去上述配置的预留值,得到的即为实际生效的MTU值,也即Active Path MTU,以用于转发平面报文转发处理。然而该方法中,上述Path MTU值一旦配置无法动态调整,如果中间节点的MTU值发生变化,就需要手动修改所有经过该中间节点的源节点的Path MTU值。此外,通过配置Path MTU的保留值适配中间节点可能增加报文长度的方法存在缺陷,因为中间节点报文增加的长度是不固定的,只能配置一个经验值,配置大了会导致实际生效的MTU变小,造成报文容易分片影响转发效率,配置小了会导致下游节点MTU检查不通过而丢弃报文。
因此,如何动态调整Path MTU值是值得考虑的技术问题之一。
发明内容
有鉴于此,本申请提供一种路径最大传输单元Path MTU值调整方法及装置,用以实现动态调整SRv6网络中的Path MTU值。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提供一种路径最大传输单元Path MTU值调整方法,应用于源节点,该方法包括:
在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文,所述MTU探测报文为对双向转发检测BFD报文填充得到的,所述MTU探测报文的报文长度与所述转发路径当前的Path MTU值相同;
若在所述MTU探测周期内未接收到所述MTU探测报文的MTU反射报文,则确定本次的MTU探测失败,并调低所述转发路径的Path MTU值;
将调低后的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤,直至确认MTU探测通过为止;
若在所述MTU探测周期内接收到所述MTU探测报文的MTU反射报文,则确定本次的MTU探测通过。
根据本申请的第二方面,提供一种路径最大传输单元Path MTU值调整装置,设置于源节点中,所述装置包括:
发送模块,用于在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文,所述MTU探测报文为对双向转发检测BFD报文填充得到的,所述MTU探测报文的报文长度与所述转发路径当前的Path MTU值相同;
判断模块,用于判断在所述MTU探测周期内是否接收到所述MTU探测报文的MTU反射报文;
探测模块,用于若所述判断模块的判断结果为否,则确定本次的MTU探测失败;
调整模块,用于在所述探测模块确定本次的MTU探测失败时,调低所述转发路径的Path MTU值;
所述发送模块,还用于将调低后的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤,直至所述探测模块确认MTU探测通过为止;
所述探测模块,还用于若所述判断模块的判断结果为是,则确定本次的MTU探测通过。
根据本申请的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的计算机程序,处理器被计算机程序促使执行本申请实施例第一方面所提供的方法。
根据本申请的第四方面,提供一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例第一方面所提供的方法。
本申请实施例的有益效果:
本申请通过转发路径向目的节点发送MTU探测报文,以探测该转发路径中的节点能否成功转发该MTU探测报文,由于该MTU探测报文的报文长度与当前的Path MTU值相同,当未接收到目的节点发送的MTU反射报文后,表明该转发路径中的节点的出接口支持不了MTU探测报文的报文长度,则对当前的Path MTU进行调低处理,由此实现了动态调整PathMTU值。
附图说明
图1是现有技术提供的一种组网及转发表设计示意图;
图2是本申请实施例提供的一种Path MTU值调整方法的流程示意图;
图3a是本申请实施例提供的BFD检测原理示意图;
图3b是本申请实施例提供的MTU探测报文的发送示意图;
图4是本申请实施例提供的一种转发路径选择方法的流程示意图;
图5是本申请实施例提供的一种组网及转发表设计示意图;
图6是本申请实施例提供的一种Path MTU值调整装置的结构示意图;
图7是本申请实施例提供的一种实施Path MTU值调整方法的电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前在通过命令行调整Path MTU时,首先会通过命令1:Path-mtu mtu-value在头节点配置SRv6隧道对应的整个转发路径的MTU值,记为mtu-value,然后再通过命令2:Path-mtu reserved reserved-value配置一个保留值,记为reserved-value,然后再通过命令1配置的mtu-value减去命令2配置的reserved-value得到一个实际生效的MTU值,即为Active Path MTU,用于转发面的报文转发处理。
发明人发现,该方法中,一方面该方法中Path MTU值一旦配置就无法动态调整;另一方面,目前Path MTU配置在转发平面主要用途是判断是否对报文分片,当源节点到目的节点之间存在多条路径时,目前提供的方案中无法利用Path MTU值进行选路。如图1(左图)所示,设备A和设备E之间有多条SRv6转发路径,由于经过不同的设备,而且不同设备分别支持的Path MTU值不同,因此在SRv6隧道头节点即设备A上针对不同转发路径配置不同的Path MTU值,最终体现在图1(右图)所示的转发表上。按目前的转发表设计,当报文进入ECMP等价转发组(ECMP Group)。需要说明的是,该等价转发组仅记录设备A和设备E之间存在的转发路径的数量,即等价转发路径个数ECMP number。根据报文计算一个Hash Value(哈希值),Hash Value模ECMP number(等价转发路径个数)得到Module Value(模值),再根据Module Value得到对应ECMP Path信息,如果当前得到的ECMP Path的Path MTU小于报文长度,那么需要对报文分片后再转发。如果某个报文长度为1200Bytes,但哈希到图1所示的ECMP Path1上(ECMP Path1的Path MTU为1000),那么在ECMP Path1转发该报文时,该报文就会被分片处理,但是报文分片后转发性能会大大降低,然而实际上ECMP Group中有PathMTU大于1200的路径(如ECMP Path2或ECMP Path3),若将该报文选路到ECMP Path2或ECMPPath3时,该报文就不会被分片转发。
因此,如何利用Path MTU值进行路径选择,以将报文分配到合适的路径,尽量减少报文被分片转发,提升报文转发性能也是至关重要的问题。
针对上述方法中Path MTU值无法动态调整的问题,本申请给出了解决方案,即提出了一种Path MTU调整方法,应用于源节点,该方法包括:在MTU探测周期内,通过源节点与目的节点之间的转发路径向目的节点发送MTU探测报文,MTU探测报文为对双向转发检测BFD报文填充得到的,MTU探测报文的报文长度与转发路径当前的Path MTU值相同;若在MTU探测周期内未接收到MTU探测报文的MTU反射报文,则确定本次的MTU探测失败,并调低转发路径的Path MTU值,以及继续执行在MTU探测周期内,通过源节点与目的节点之间的转发路径向目的节点发送MTU探测报文的步骤,直至确认MTU探测通过为止。通过转发路径向目的节点发送MTU探测报文,以探测该转发路径中的节点能否成功转发该MTU探测报文,由于该MTU探测报文的报文长度与当前的Path MTU值相同,当未接收到目的节点发送的MTU反射报文后,表明该转发路径中的节点的出接口支持不了MTU探测报文的报文长度,则对当前的Path MTU进行调低处理,由此实现了动态调整Path MTU值。
下面对本申请提供的Path MTU值调整方法进行详细地说明。
参见图2,图2是本申请提供的一种Path MTU值调整方法的流程示意图,该方法应用于源节点中,源节点实施该方法时可包括如下所示步骤:
S201、在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文。
其中,上述MTU探测报文为对双向转发检测(Bidirectional ForwardingDetection,BFD)报文填充得到的,上述MTU探测报文的报文长度与所述转发路径当前的Path MTU值相同。
本步骤中,针对源节点与目的节点之间的每条转发路径,在生成该转发路径的MTU探测报文时,本申请提出对BFD报文进行改造得到上述MTU探测报文。具体为,为了能够探测该条转发路径当前的Path MTU值是否能够保证报文能够被该条转发路径涉及的中间节点成功转发到目的节点,本申请对BFD报文进行扩展处理,即,将BFD报文进行填充,通过增加MTU padding(填充)得到MTU探测报文,使得填充后得到的BFD报文(也即MTU探测报文)的报文长度与该条转发路径当前的Path MTU值相同,然后通过该转发路径向目的节点发送MTU探测报文,以探测该条转发路径涉及的中间节点是否能够成功转发该MTU探测报文,也即探测当前的Path MTU值是否过大。
此外,上述基于BFD(Bidirectional Forwarding Detection,双向转发检测)扩展实现Path MTU的实时检测时,由于在现网部属中,对于SRv6隧道,一般都会为每个转发路径配置BFD报文进行关联,通过BFD检测得到的UP和DOWN状态以确认转发路径的可达性(即,连通性)。也即,本申请在进行BFD检测过程中发送MTU探测报,不仅能够实现BFD检测,即不影响BFD报文的检测功能,而且也能够达到探测当前的Path MTU值是否过大的目的,进而实现Path MTU值的动态调整。
可选地,上述BFD报文通常采用SBFD(Seamless BFD,无缝BFD)报文等。
可选地,上述MTU探测周期为BFD检测周期与探测次数的乘积,在此基础上,可以按照下述方法执行步骤S201:在每个BFD检测周期内,通过源节点与目的节点之间的转发路径向目的节点BFD报文和MTU探测报文。
具体地,SBFD检测中,节点的角色分为发起端(Initiator)和响应端(Reflector),发起端主要作用是发包和检测,响应端主要作用是对BFD报文进行反射,将反射报文返回发起端。BFD有两个关键的参数,一个是发包间隔,另一个是检测次数,发包间隔乘以检测次数则是BFD检测周期,比如100ms*3,发包间隔为100ms,检测次数为3,则表示每隔100ms发一个BFD报文,连续发送BFD报文,一个检测周期检测3次,即BFD检测周期为300ms。如果在BFD检测周期内一个BFD报文都收不到,那么BFD会话会DOWN,表示转发路径故障。如图3a所示,Device A和Device C分别记为设备A和设备C,设备A作为源节点,设备C作为目的节点,设备A到设备C创建了SRv6隧道,并为其转发路径配置了BFD检测,设备A是发起端,设备C是响应端,发包间隔是100ms。设备A到设备C方向,BFD报文按SRv6转发路径封装SRv6报文头沿转发路径(设备A-设备B-设备C)转发,设备C到设备A,BFD反射报文根据路由转发回来。
基于BFD报文检测原理,本申请提出在每个BFD检测周期内发送MTU探测报文和BFD报文,其中在BFD检测周期内,发送MTU探测报文的数量为至少一个,但要保证BFD检测周期内会发送BFD报文。实际应用中,为了防止BFD检测周期内基于转发路径发送过多的MTU探测报文时因MTU探测报文过大而导致原有的BFD可能发生震荡的情况,本申请提出可以在每个BFD检测周期内发送一个MTU探测报文。还以上述BFD检测周期为300ms为例进行说明,则在该BFD检测周期中可以在每3个BFD报文中,对其中1个BFD报文进行填充得到MTU探测报文,参考图3b所示。也即,在一个BFD检测周期内,发送2个BFD报文和一个MTU探测报文。也即,一个BFD检测周期为MTU探测的发包间隔,则MTU探测周期为MTU探测的发包间隔与探测次数的乘积,也即BFD检测周期与探测次数的乘积。若MTU探测周期内,MTU的探测次数为3次,则MTU探测周期=发包间隔*探测次数=BFD检测周期*探测次数=300ms*3=900ms。由此一来,不仅能够实现BFD功能的探测,而且也能够实现MTU探测。
可选地,上述MTU探测报文还包括探测标记,用以识别出MTU探测报文。具体地,通过在MTU探测报文中配置探测标记,以与BFD报文进行区分。这样,当目的节点接收到报文后,就可以从接收到的报文中识别该报文是否为MTU探测报文,以便返回MTU反射报文。
可选地,上述探测标记可以但不限于为UDP源端口号(Source port,Sport),当然也可以用其他字段作为探测标记,本申请对此不进行限定。当利用UDP源端口号作为探测标记时,在MTU探测报文中携带上述Sport,参考图3b所示,图3b所示的MTU探测报文中携带了MTU Padding(填充)和Sport。这样一来,目的节点接收到报文后,若从接收到的报文中解析出Sport,则可以确认接收到的报文为MTU探测报文,否则确认接收到的报文为BFD报文。
S202、在MTU探测周期内判断是否接收到所述MTU探测报文的MTU反射报文;若判断结果为否,则执行步骤S203;若判断结果为是,则执行步骤S205。
可选地,上述MTU反射报文可以仅包括探测标记,不携带填充内容(MTU Padding),这样不仅方便源节点从接收到的报文中快速识别出MTU反射报文,而且也可以防止回程路径(由于回程路径是按路由计算得到的,与发送MTU探测报文的转发路径可能不同)中MTU反射报文过大而被丢弃,可以有效防止误检测。
S203、确定本次的MTU探测失败,并调低所述转发路径的Path MTU值。
本步骤中,源节点若在MTU探测周期内未收到关于MTU探测报文的MTU反射报文,则确认本次的MTU探测失败,进而表明探测的转发路径当前的Path MTU值过大,导致MTU探测报文到达中间节点时,因MTU探测报文的报文长度(当前的Path MTU值)高于该中间节点所支持的MTU值而丢弃该MTU探测报文,从而使得目的节点收不到源节点通过转发路径发送的MTU探测报文,此时源节点可以降低转发路径的Path MTU值,由此实现了MTU值的动态调整。
可选地,在调低转发路径的Path MTU值时,可以按照预设步进进行调整,即调低后的Path MTU值=当前的Path MTU值-预设步进。需要说明的是,由于一个SRv6报文的分段标识SID为16Bytes,而SID为IPv6地址,基于此,可以将上述预设步进设置为16Bytes。当然,实际应用中还可以将其设置为其他值,具体可以根据实际组网环境而定。例如,转发路径当前的Path MTU值为1024Bytes,则当需要按预设步进调低当前的Path MTU值时,则调低的PathMTU值为1024-16=1008。
S204、将调低后的Path MTU值作为当前的Path MTU值,并继续执行步骤S201,直至确认MTU探测通过为止。
本步骤中,由于调低后的Path MTU值有可能也不适用于转发路径中各中间节点出接口的MTU值,因此需要继续进行MTU探测。基于此,本申请将调低后的Path MTU值当作当前的Path MTU值,然后基于执行步骤S201,即,等待一个新的MTU探测周期到达时,以调低后的Path MTU值填充BFD报文,得到MTU探测报文,然后通过转发路径发送该MTU探测报文,然后再判断是否接收到基于该MTU探测报文的MTU反射报文,直至MTU探测通过为止,MTU探测通过时的Path MTU值既能够适用整个转发路径,即在不进行报文分片的前提下报文长度支持转发路径涉及的各个节点的出接口的MTU值。
可选地,目的节点在返回MTU反射报文时,可以按照源节点发送MTU探测报文的转发路径对应的反路径发送该MTU反射报文,例如源节点通过中间节点1、中间节点2到达目的节点,则目的节点可以通过中间节点2、中间节点1将MTU反射报文返回到源节点。具体地,源节点与目的节点可以通过路径约定来协商上述MTU反射报文的返回路径。
S205、确认本次的MTU探测通过。
本步骤中,当在MTU探测周期内接收到MTU探测报文的MTU反射报文时,表明当前的Path MTU值适用整个转发路径中各个中间节点的出接口的MTU值,能够保证报文不分配的前提下基于该转发路径成功到达目的节点。则在此情况下,保持当前探测通过的Path MTU值不变,然后将MTU探测通过的Path MTU值下发到源节点的转发平面,以进行后续报文的转发处理。
通过实施本申请提供的Path MTU值调整方法,针对每条转发路径,源节点在MTU探测周期内向目的节点发送报文长度与该条转发路径所支持的Path MTU值相同的MTU探测报文,以此来当前的探测Path MTU值是否适合该条转发路径,即后续按照当前的Path MTU值发送分段路由报文时,能否成功到达目的节点。当源节点在MTU探测周期内收不到目的节点反馈的MTU反射报文时,则确认本次MTU探测失败,然后调低该条转发路径的Path MTU值,由此实现了Path MTU值的动态调整;然后将调低后的Path MTU值作为当前的Path MTU值,并继续执行发送MTU探测报文的过程直至MTU探测通过为止。当源节点在MTU探测周期内接收到目的节点反馈的MTU反射报文时,则确认本次MTU探测通过,则表明按照当前的Path MTU值进行报文转发时,能够成功到达目的节点。由此一来,当转发路径上某个中间节点的MTU变小了或中间节点转发加封装导致报文长度增加时,在SRv6的源节点通过发送MTU探测报文,可以快速感知到该条转发路径上的Path MTU值是否需要调整,而且在MTU探测失败时,可以实现Path MTU值的动态调整。
可选地,基于上述任一实施例,在执行步骤S205之后,本实施例提供的Path MTU值调整方法,还包括:若确认转发路径的MTU探测通过且设定的定时器的定时时间到达时,则调高所述转发路径的Path MTU值;并将调高的Path MTU值作为当前的Path MTU值,并继续执行步骤S201;在确定MTU探测失败时,重置定时器;以及,若确认转发路径的MTU探测通过且设定的定时器的定时时间未到达时,则将MTU探测通过对应的Path MTU值下发给源节点的转发平面。
具体地,实际应用中,Path MTU值并不是越小越好,较小的Path MTU值会导致报文分片比较多,影响报文转发性能。有鉴于此,本实施例中也提供了一种Path MTU值上调机制,即,由于网络一般是稳定的,为了减少不必要的上调尝试,增加一个定时器触发上调尝试,也即源节点提供了一个定时器并设置了定时时间,上述定时器的单位可以但不限于为小时或者天。具体来说,针对每条转发路径,在对该条转发路径当前的Path MTU值探测通过时,可以判断此时的定时器的定时时间是否达到,如果达到,则调高该条转发路径的PathMTU值;然而调高的Path MTU值也可能不适用整条转发路径,因此可以将调高的Path MTU值作为当前的Path MTU值,然后再次执行步骤S201~205的流程,直至对MTU探测通过为止。当利用调高的Path MTU值进行MTU探测时,如果MTU探测失败,则一方面调低Path MTU值,另一方面,将定时器进行重置处理,然后重新进行计时操作。而当MTU探测通过时,则可以将MTU探测通过时对应的Path MTU值下发给源节点的转发平面,以进行后续的报文转发处理。由此一来,实现了Path MTU值的动态调整。
为了更好地理解本实施例,以定时器的定时时间为1天为例进行说明,转发路径当前的Path MTU值为1000字节,若该转发路径由于中间节点的MTU变化,最大支持1040字节时,若基于步骤S201~205对转发路径当前的Path MTU值探测通过时,若此时判断定时器的定时时间已超过1天,则按照预设步进(16Bytes)上调一个步进,即调高到1016字节,然后以1016字节继续进行MTU探测处理,即继续执行步骤S201~S205。若依然探测通过且定时器依然处理超时,则继续对Path MTU值进行上调处理。若按照上述过程将Path MTU值上调到1048时,当基于1048继续进行MTU探测发现探测失败时,则将Path MTU值从1048调低到1032字节,同时重置定时器,即对定时器进行清零处理,然后重新开始计时。此时再利用1032进行MTU探测,此时MTU探测通过且此时也未到达定时器的定时时间,则表明Path MTU值为1032时进行报文转发不会存在丢弃报文的情况。则此时将MTU探测通过的Path MTU值(1032)下发到源节点的转发平面。使得转发平面在进行报文转发时利用探测通过的PathMTU值转发报文,除非MTU探测再次失败时再重新执行本申请提供的Path MTU值调整方法。
可选地,源节点在向转发平面发送当前探测通过的Path MTU值之前,可以判断转发平面当前使用的Path MTU值与当前探测通过的Path MTU值是否一致,当不一致时,再向转发平面发送当前探测通过的Path MTU值。
可选地,实际应用中,源节点与目的节点之间可能存在多条转发路径,基于此在进行报文转发时就会存在转发路径选择的过程。为此,基于上述任一实施例,本实施例还提供一种转发路径选择方法,可以包括图4所示的过程,包括以下步骤:
S401、针对每条转发路径,基于该转发路径探测通过的Path MTU值和该转发路径转发负载报文时需要封装的报文头的头长度,确定该转发路径所支持的负载的负载MTU值。
具体地,结合图5的左图进行说明,假设设备A(源节点)和设备E(目的节点)之间配置了SRv6隧道,隧道有三条转发路径,分别是PATH_abe、PATH_ace和PATH_ade,通过图2所示的Path MTU值动态调整方法得到三条转发路径探测通过的Path MTU值分别为2000、1000、3000,假设3条转发路径需要封装的报文头的头长度均为80Bytes,需要说明的是,实际应用中,各条转发路径的报文头的头长度可以相同也可以不同,需要根据具体的组网环境来定。由于Path MTU值指的是加完SRv6封装后整个转发路径支持的MTU值,从转发逻辑上只有选择了转发路径后才能得到封装后的报文的报文长度,然而动态选路的前提是在加封装之前选择目标转发路径,也即无法直接根据Path MTU值选择转发路径。基于此,本实施例提出计算每个转发路径所支持的负载的负载MTU值。即,基于该转发路径探测通过的Path MTU值和该转发路径在转发分段路由报文时需要封装的报文头的头长度,来计算该转发路径所支持的负载的负载MTU值。具体来说,可以将该转发路径探测通过的Path MTU值与需要封装的报文头的头长度之间的差值,确定为该转发路径所支持的负载的负载MTU值,记为PayloadMTU。基于此,则图5所示的3条转发路径的负载MTU值分别为1920、920和2920。
需要说明的是,实际应用中,不同的转发路径需要封装的报文头的头长度可以相同也可以不同,具体要根据实际情况来定。
S402、在接收到负载报文后,根据每条转发路径的负载MTU值选择出目标转发路径,以基于目标转发路径将负载报文封装成分段路由报文,并通过目标转发路径转发所述分段路由报文。
本步骤中,当接收到负载报文后,可以确定负载报文的报文长度,然后将负载报文的报文长度与各个转发路径的负载MTU值进行比较,可以选择出负载MTU值高于负载报文的报文长度的转发路径,然后从选择出的转发路径中筛选出一条目标转发路径,
基于该目标转发路径对该负载报文进行封装处理,得到该负载报文的分段路由报文,然后通过该目标转发路径转发该分段路由报文。由此一来,选择出的目标转发路径转发报文时一般不会被分片处理,也即该目标转发路径涉及的中间节点所支持的MTU值一般不小于该负载报文封装后的分段路由报文。由此也就实现了目标转发路径的选择,而且也实现了在不分片的情况下该目标转发路径转发该分段路由报文,进而提高了报文转发性能。
可选地,在执行步骤S401之后,还可以包括:根据每条转发路径的负载MTU值,生成等价路径转发组,该等价路径转发组包括各条转发路径的负载MTU值和每个负载MTU值对应的可转发路径数量,其中,每个负载MTU值对应的可转发路径数量为满足设定条件的转发路径的总路径数量,所述设定条件为转发路径所支持的完整的负载报文的报文长度不高于该负载MTU值;按照负载MTU值由大到小的顺序将每条转发路径的转发路径信息下发到对应模值的转发表上。
具体地,本申请对等价转发组(用new ECMP Group表示)进行改进处理,即,在等价转发组ECMP Group中记录每个负载MTU值和该负载MTU值对应的可转发路径数量(用newECMP number表示),不再是现有技术中的等价转发路径个数。其中,每个负载MTU值对应的可转发路径数量可以理解为所承载的负载报文(不被分片的负载报文)的报文长度不高于该负载MTU值的转发路径的总路径数量。还以图5所示的组网为例进行说明,基于图5所示的3条转发路径的负载MTU值(Payload MTU)和可转发路径数量生成等价路径转发组new ECMPGroup也请参考图5所示,例如,Payload MTU值为920,其对应可转发路径数量new ECMPnumber为3,表明报文长度不高于920的负载报文在3条转发路径上转发时不会被分片转发,这3条路径分别为PATH_abe、PATH_ace和PATH_ade;同理,Payload MTU值为1920对应的可转发路径数量为2,可以理解为报文长度不高于1920的负载报文可以在2条转发路径上转发时不会被分片转发,这2条路径分别为PATH_abe和PATH_ade;Payload mtu值为2920对应的可转发路径数量为1,可以理解为报文长度不高于2920的负载报文可以在1条转发路径上转发时不会被分片转发,该条转发路径为PATH_ade。此外,等价转发组中还包括ECMP number,该ECMP number用于记录源节点与目的节点之间包括的转发路径的总数量,用于在负载报文的报文长度大于每条转发路径的负载MTU值时的负载分担处理。还以图5为例进行说明,由于图5所示的组网中源节点(设备A)与目的节点(设备E)之间有3条转发路径,PATH_abe、PATH_ace和PATH_ade,则在等价转发组中的ECMP number记为3,当负载报文的报文长度大于2920时,则表明该负载报文需要进行分片转发,即利用ECMP number进行该负载报文的负载分担处理。
在此基础上,按照转发路径的总数量配置相应数量的模值,例如,图5所示的组网中有3条转发路径,则配置3个模值Module Value,分别为0、1和2,记为Module Value:0、Module Value:1和Module Value:2。按照负载MTU值从大到小的顺序下发每条转发路径的转发路径信息ECMP Path,也即,将负载MTU值最大(2920)的转发路径(PATH_ade)的转发路径信息(记为ECMP Path0)下发给模值Module Value:0对应的转发表上。同理,将负载MTU值为1920对应的转发路径(PATH_abe)的转发路径信息(ECMP Path1)下发给Module Value:1对应的转发表上;将将负载MTU值为920对应的转发路径(PATH_ace)的转发路径信息(ECMPPath2)下发给Module Value:2对应的转发表上,也请参考图5所示。每个转发路径的转发路径信息包括出接口和探测通过的Path MTU值等等。
同时,源节点也会向转发平面下发等价路径转发组,具体来说,源节点可以将等价路径转发组设置在等价路径转发组列表中,然后下发给转发平面。
需要说明的是,当转发路径探测通过的Path MTU值发生变化时,相应地负载MTU值也会发生变化,此时需要重新下发等价路径转发组,以及重新按照负载MTU值下发转发路径信息。
在此基础上,可以按照下述过程执行步骤S402:在接收到负载报文后,查询等价路径转发组,以确定不小于负载报文的报文长度的目标负载MTU值对应的目标可转发路径数量;对负载报文进行哈希计算得到哈希结果;基于哈希结果对目标可转发路径数量进行取模处理,得到目标模值;从目标模值对应的转发表中获得负载报文的转发路径信息;将获得的转发路径信息对应的转发路径确定为目标转发路径。
具体地,报文转发过程一般在转发平面来执行。当转发平面接收到负载报文时,会计算该负载报文的报文长度;然后查询等价路径转发组,获得不小于该负载报文长度的目标负载MTU值对应的目标可转发路径数量。然后对该负载报文进行哈希处理,得到哈希值(上述哈希结果),并用哈希值对目标可转发路径数量取模处理,从而可以得到该负载报文对应的目标模值;然后基于模值与转发路径信息之间的对应关系,获得到目标模值对应的转发路径信息,该转发路径信息对应的转发路径记为目标转发路径;并利用获得的转发路径信息对该负载报文进行封装处理得到该负载报文对应的分段路由报文,然后基于目标转发路径转发该分段路由报文。
为了更好地理解上述实施例,还以图5所示的组网为例进行说明。当转发平面计算出负载报文的报文长度为800,即报文长度小于920时,则查询图5所示的new ECMP Group,可以看到不小于负载长度800的Payload MTU值有920、1920和2920,然后选可以选择Payload MTU值(920)作为目标负载MTU值,相应地,920对应的new ECMP number作为目标可转发路径数量,也即此时确定出的目标可转发路径数量为3;然后对该负载报文进行哈希计算处理,得到哈希值;并利用哈希值模3,从而可以得到Module Value,最后根据得到的Module Value获得对应的转发路径信息,可以知道,图5中的3条转发路径任一条都可以作为目标转发路径来转发该负载报文,且在转发该负载报文时报文不会被分片处理,也就是说,当负载报文长度为800时,在图5中的3条转发路径上进行负载分担,不会被分片处理,从而实现了报文的转发路径的选择,而且也尽量减少了报文被分片,进而提高转发性能。
同理,当负载报文的报文长度为1620,即报文长度大于920且小于等于1920时,则按照上述路径选择方法,可以确定出目标转发路径为PATH_ade和PATH_abe,也即在这两条转发路径上进行负载分担时,可以保证负载报文不会被分配就能实现成功转发。当负载报文的报文长度为2420,即,报文长度大于1920且小于等于2920时,则按照上述路径选择方法,可以确定出目标转发路径为PATH_ade,即,在该转发路径上转发负载报文时,报文不会被分片处理。由此一来,实现了报文的转发路径选择。而当负载报文的报文长度大于2920时,则此时根据ECMP number及各转发路径的Payload MTU值对该负载报文进行分片处理,然后在3条转发路径上进行负载分担转发,具体地,对负载报文进行哈希计算后得到哈希值,然后利用该哈希值模ECMP number得到用于分担该负载报文的转发路径,由于确定出的转发路径的Payload MTU小于该负载报文的报文长度,因此还需要再基于各转发路径的Payload MTU值来分担该负载报文。
通过实施上述路径选择方法,可以根据负载报文的报文长度及各转发路径的PathMTU值来选择合适的转发路径转发负载报文,尽量减少报文被分片的情况,从而在一定程度上提高了转发性能。
基于同一发明构思,本申请还提供了与上述路径最大传输单元Path MTU值调整方法对应的路径最大传输单元Path MTU值调整装置。该路径最大传输单元Path MTU值调整装置的实施具体可以参考上述对路径最大传输单元Path MTU值调整方法的描述,此处不再一一论述。
参见图6,图6是本申请一示例性实施例提供的一种路径最大传输单元Path MTU值调整装置,设置于源节点中,该装置包括:
发送模块601,用于在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文,所述MTU探测报文为对双向转发检测BFD报文填充得到的,所述MTU探测报文的报文长度与所述转发路径当前的Path MTU值相同;
判断模块602,用于判断在所述MTU探测周期内是否接收到所述MTU探测报文的MTU反射报文;
探测模块603,用于若上述判断模块602的判断结果为否,则确定本次的MTU探测失败;
调整模块604,用于在所述探测模块确定本次的MTU探测失败时,调低所述转发路径的Path MTU值;
上述发送模块601,还用于将调低后的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤,直至所述探测模块确认MTU探测通过为止;
上述探测模块603,还用于若上述判断模块602的判断结果为是,则确定本次的MTU探测通过。
可选地,上述调整模块604,还用于若确认所述转发路径的MTU探测通过且设定的定时器的定时时间到达时,则调高所述转发路径的Path MTU值;
上述发送模块601,还用于将调高的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤;
在此基础上,本实施例提供的路径最大传输单元Path MTU值调整装置,还包括:
重置模块(图中未示出),用于在在确定MTU探测失败时,重置所述定时器;
第一下发模块(图中未示出),用于若确认所述转发路径的MTU探测通过且设定的定时器的定时时间未到达时,则将MTU探测通过对应的Path MTU值下发给所述源节点的转发平面。
可选地,本实施例中源节点与目的节点之间包括多条转发路径;在此基础上,本实施例提供的路径最大传输单元Path MTU值调整装置,还包括:
确定模块(图中未示出),用于针对每条转发路径,基于该转发路径探测通过的Path MTU值和该转发路径转发负载报文时需要封装的报文头的头长度,确定该转发路径所支持的负载的负载MTU值;
路径选择模块(图中未示出),用于在接收到负载报文后,根据每条转发路径的负载MTU值选择出目标转发路径,以基于所述目标转发路径将所述负载报文封装成分段路由报文,并通过所述目标转发路径转发所述分段路由报文。
可选地,本实施例提供的路径最大传输单元Path MTU值调整装置,还包括:
生成模块(图中未示出),用于在所述确定模块确定该转发路径所支持的负载的负载MTU值之后,根据每条转发路径的负载MTU值,生成等价路径转发组,所述等价路径转发组包括各条转发路径的负载MTU值和每个负载MTU值对应的可转发路径数量,其中,每个负载MTU值对应的可转发路径数量为满足设定条件的转发路径的总路径数量,所述设定条件为转发路径所支持的完整的负载报文的报文长度不高于该负载MTU值;
第二下发模块(图中未示出),用于按照负载MTU值由大到小的顺序将每条转发路径的转发路径信息下发到对应模值的转发表上。
可选地,上述路径选择模块(图中未示出),具体用于在接收到负载报文后,查询所述等价路径转发组,以确定不小于所述负载报文的报文长度的目标负载MTU值对应的目标可转发路径数量;对所述负载报文进行哈希计算得到哈希结果;基于所述哈希结果对所述目标可转发路径数量进行取模处理,得到目标模值;从目标模值对应的转发表中获得所述负载报文的转发路径信息;将获得的转发路径信息对应的转发路径确定为目标转发路径。
可选地,上述确定模块(图中未示出),具体用于将该转发路径探测通过的PathMTU值与所述报文头的头长度之间的差值,确定为该转发路径所支持的负载的负载MTU值。
可选地,上述MTU探测周期为BFD检测周期与探测次数的乘积;则
上述发送模块601,具体用于在每个BFD检测周期内,通过源节点与目的节点之间的转发路径向所述目的节点BFD报文和MTU探测报文。
基于同一发明构思,本申请实施例提供了一种电子设备,该电子设备可以为属于源节点的设备。如图7所示,该电子设备包括处理器701和机器可读存储介质702,机器可读存储介质702存储有能够被处理器701执行的计算机程序,处理器701被计算机程序促使执行本申请任一实施例所提供的路径最大传输单元Path MTU值调整方法。此外,该电子设备还包括通信接口703和通信总线704,其中,处理器701,通信接口703,机器可读存储介质702通过通信总线704完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM)、DDR SRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
另外,本申请实施例提供了一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例所提供的路径最大传输单元Path MTU值调整方法。
对于电子设备以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
上述装置中各个单元/模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部单元/模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (15)
1.一种路径最大传输单元Path MTU值调整方法,其特征在于,应用于源节点,所述方法包括:
在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文,所述MTU探测报文为对双向转发检测BFD报文填充得到的,所述MTU探测报文的报文长度与所述转发路径当前的Path MTU值相同;
若在所述MTU探测周期内未接收到所述MTU探测报文的MTU反射报文,则确定本次的MTU探测失败,并调低所述转发路径的Path MTU值;
将调低后的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤,直至确认MTU探测通过为止;
若在所述MTU探测周期内接收到所述MTU探测报文的MTU反射报文,则确定本次的MTU探测通过。
2.根据权利要求1所述的方法,其特征在于,还包括:
若确认所述转发路径的MTU探测通过且设定的定时器的定时时间到达时,则调高所述转发路径的Path MTU值;并
将调高的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤;
在确定MTU探测失败时,重置所述定时器;
若确认所述转发路径的MTU探测通过且设定的定时器的定时时间未到达时,则将MTU探测通过对应的Path MTU值下发给所述源节点的转发平面。
3.根据权利要求1所述的方法,其特征在于,所述源节点与目的节点之间包括多条转发路径;所述方法,还包括:
针对每条转发路径,基于该转发路径探测通过的Path MTU值和该转发路径转发负载报文时需要封装的报文头的头长度,确定该转发路径所支持的负载的负载MTU值;
在接收到负载报文后,根据每条转发路径的负载MTU值选择出目标转发路径,以基于所述目标转发路径将所述负载报文封装成分段路由报文,并通过所述目标转发路径转发所述分段路由报文。
4.根据权利要求3所述的方法,其特征在于,在确定该转发路径所支持的负载的负载MTU值之后,还包括:
根据每条转发路径的负载MTU值,生成等价路径转发组,所述等价路径转发组包括各条转发路径的负载MTU值和每个负载MTU值对应的可转发路径数量,其中,每个负载MTU值对应的可转发路径数量为满足设定条件的转发路径的总路径数量,所述设定条件为转发路径所支持的完整的负载报文的报文长度不高于该负载MTU值;
按照负载MTU值由大到小的顺序将每条转发路径的转发路径信息下发到对应模值的转发表上。
5.根据权利要求4所述的方法,其特征在于,在接收到负载报文后,根据每条转发路径的负载MTU值选择出目标转发路径,包括:
在接收到负载报文后,查询所述等价路径转发组,以确定不小于所述负载报文的报文长度的目标负载MTU值对应的目标可转发路径数量;
对所述负载报文进行哈希计算得到哈希结果;
基于所述哈希结果对所述目标可转发路径数量进行取模处理,得到目标模值;
从目标模值对应的转发表中获得所述负载报文的转发路径信息;
将获得的转发路径信息对应的转发路径确定为目标转发路径。
6.根据权利要求3所述的方法,其特征在于,基于该转发路径探测通过的Path MTU值和该转发路径转发分段路由报文时需要封装的报文头的头长度,确定该转发路径所支持的负载的负载MTU值,包括:
将该转发路径探测通过的Path MTU值与所述报文头的头长度之间的差值,确定为该转发路径所支持的负载的负载MTU值。
7.根据权利要求1所述的方法,其特征在于,所述MTU探测周期为BFD检测周期与探测次数的乘积;
在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文,包括:
在每个BFD检测周期内,通过源节点与目的节点之间的转发路径向所述目的节点BFD报文和MTU探测报文。
8.根据权利要求1所述的方法,其特征在于,所述MTU探测报文包括探测标记,所述探测标记用于识别出MTU探测报文;所述MTU反射报文携带有所述探测标记。
9.一种路径最大传输单元Path MTU值调整装置,其特征在于,设置于源节点中,所述装置包括:
发送模块,用于在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文,所述MTU探测报文为对双向转发检测BFD报文填充得到的,所述MTU探测报文的报文长度与所述转发路径当前的Path MTU值相同;
判断模块,用于判断在所述MTU探测周期内是否接收到所述MTU探测报文的MTU反射报文;
探测模块,用于若所述判断模块的判断结果为否,则确定本次的MTU探测失败;
调整模块,用于在所述探测模块确定本次的MTU探测失败时,调低所述转发路径的PathMTU值;
所述发送模块,还用于将调低后的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤,直至所述探测模块确认MTU探测通过为止;
所述探测模块,还用于若所述判断模块的判断结果为是,则确定本次的MTU探测通过。
10.根据权利要求9所述的装置,其特征在于,
所述调整模块,还用于若确认所述转发路径的MTU探测通过且设定的定时器的定时时间到达时,则调高所述转发路径的Path MTU值;
所述发送模块,还用于将调高的Path MTU值作为所述当前的Path MTU值,并继续执行所述在MTU探测周期内,通过源节点与目的节点之间的转发路径向所述目的节点发送MTU探测报文的步骤;
所述装置,还包括:
重置模块,用于在在确定MTU探测失败时,重置所述定时器;
第一下发模块,用于若确认所述转发路径的MTU探测通过且设定的定时器的定时时间未到达时,则将MTU探测通过对应的Path MTU值下发给所述源节点的转发平面。
11.根据权利要求9所述的装置,其特征在于,所述源节点与目的节点之间包括多条转发路径;所述装置,还包括:
确定模块,用于针对每条转发路径,基于该转发路径探测通过的Path MTU值和该转发路径转发负载报文时需要封装的报文头的头长度,确定该转发路径所支持的负载的负载MTU值;
路径选择模块,用于在接收到负载报文后,根据每条转发路径的负载MTU值选择出目标转发路径,以基于所述目标转发路径将所述负载报文封装成分段路由报文,并通过所述目标转发路径转发所述分段路由报文。
12.根据权利要求11所述的装置,其特征在于,所述装置,包括:
生成模块,用于在所述确定模块确定该转发路径所支持的负载的负载MTU值之后,根据每条转发路径的负载MTU值,生成等价路径转发组,所述等价路径转发组包括各条转发路径的负载MTU值和每个负载MTU值对应的可转发路径数量,其中,每个负载MTU值对应的可转发路径数量为满足设定条件的转发路径的总路径数量,所述设定条件为转发路径所支持的完整的负载报文的报文长度不高于该负载MTU值;
第二下发模块,用于按照负载MTU值由大到小的顺序将每条转发路径的转发路径信息下发到对应模值的转发表上。
13.根据权利要求12所述的装置,其特征在于,
所述路径选择模块,具体用于在接收到负载报文后,查询所述等价路径转发组,以确定不小于所述负载报文的报文长度的目标负载MTU值对应的目标可转发路径数量;对所述负载报文进行哈希计算得到哈希结果;基于所述哈希结果对所述目标可转发路径数量进行取模处理,得到目标模值;从目标模值对应的转发表中获得所述负载报文的转发路径信息;将获得的转发路径信息对应的转发路径确定为目标转发路径。
14.根据权利要求11所述的装置,其特征在于,
所述确定模块,具体用于将该转发路径探测通过的Path MTU值与所述报文头的头长度之间的差值,确定为该转发路径所支持的负载的负载MTU值。
15.根据权利要求9所述的装置,其特征在于,所述MTU探测周期为BFD检测周期与探测次数的乘积;则
所述发送模块,具体用于在每个BFD检测周期内,通过源节点与目的节点之间的转发路径向所述目的节点BFD报文和MTU探测报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110994352.3A CN114244782A (zh) | 2021-08-27 | 2021-08-27 | 路径最大传输单元Path MTU值调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110994352.3A CN114244782A (zh) | 2021-08-27 | 2021-08-27 | 路径最大传输单元Path MTU值调整方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114244782A true CN114244782A (zh) | 2022-03-25 |
Family
ID=80742928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110994352.3A Withdrawn CN114244782A (zh) | 2021-08-27 | 2021-08-27 | 路径最大传输单元Path MTU值调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114244782A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716944A (zh) * | 2004-06-28 | 2006-01-04 | 杭州华为三康技术有限公司 | 网络路径最大传输长度发现方法 |
CN1716943A (zh) * | 2004-06-28 | 2006-01-04 | 杭州华为三康技术有限公司 | 获取隧道网关环境中路径最大传输长度的方法及系统 |
WO2012159481A1 (zh) * | 2011-05-24 | 2012-11-29 | 中兴通讯股份有限公司 | 一种路径最大传输单元发现方法和节点 |
CN113055304A (zh) * | 2021-02-18 | 2021-06-29 | 新华三信息安全技术有限公司 | 路径mtu值老化的处理方法及装置 |
-
2021
- 2021-08-27 CN CN202110994352.3A patent/CN114244782A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716944A (zh) * | 2004-06-28 | 2006-01-04 | 杭州华为三康技术有限公司 | 网络路径最大传输长度发现方法 |
CN1716943A (zh) * | 2004-06-28 | 2006-01-04 | 杭州华为三康技术有限公司 | 获取隧道网关环境中路径最大传输长度的方法及系统 |
WO2012159481A1 (zh) * | 2011-05-24 | 2012-11-29 | 中兴通讯股份有限公司 | 一种路径最大传输单元发现方法和节点 |
CN113055304A (zh) * | 2021-02-18 | 2021-06-29 | 新华三信息安全技术有限公司 | 路径mtu值老化的处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405295B2 (en) | Scalable distributed end-to-end performance delay measurement for segment routing policies | |
US8976669B2 (en) | Switch fabric end-to-end congestion avoidance mechanism | |
US7881221B2 (en) | Hardware implementation of network testing and performance monitoring in a network device | |
US8897130B2 (en) | Network traffic management | |
US11032205B2 (en) | Flow control method and switching device | |
CN105391567B (zh) | 流量管理实现方法、装置和网络设备 | |
CN111630817B (zh) | 一种路由方法及设备 | |
CN108206753B (zh) | 一种检测时延的方法、装置及系统 | |
US9544239B2 (en) | Methods and systems for network congestion management | |
WO2022028456A1 (zh) | 拥塞控制方法和装置、网络节点设备,及计算机可读存储介质 | |
US9647925B2 (en) | System and method for data path validation and verification | |
US20230102193A1 (en) | Network Performance Measurement Method, Apparatus, Device, and System, and Storage Medium | |
TWI721103B (zh) | 集群精確限速方法和裝置 | |
WO2020073907A1 (zh) | 转发表项的更新方法及装置 | |
WO2018119790A1 (zh) | 网络性能检测方法及装置 | |
CN115037675A (zh) | 一种报文转发方法及装置 | |
CN113300929B (zh) | 一种报文转发方法、装置、电子设备及存储介质 | |
CN112737940A (zh) | 一种数据传输的方法和装置 | |
US10778568B2 (en) | Switch-enhanced short loop congestion notification for TCP | |
US8879390B2 (en) | Method, communication network and datacenter for traffic management in a communication network | |
CN114244782A (zh) | 路径最大传输单元Path MTU值调整方法及装置 | |
Papadopoulos et al. | Deterministic and Probabilistic P4-Enabled Lightweight In-Band Network Telemetry | |
CN114915564A (zh) | 网络状态测量方法、装置和系统 | |
CN106850386B (zh) | 报文处理方法和设备 | |
WO2023030202A1 (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220325 |