首页> 中国专利> 一种获取全域最小最大传输单元值的方法和设备

一种获取全域最小最大传输单元值的方法和设备

摘要

本发明公开了一种获取全域最小最大传输单元值的方法和设备,该方法包括:各网络设备获得本设备最小的MTU值,并将本设备最小MTU值添加到第一Hello报文中,向邻居网络设备发送第一Hello报文;各网络设备在收到第一Hello报文后,如果收到的第一Hello报文中携带的MTU值比本设备MTU值小,则将收到的第一Hello报文中携带的MTU值作为本设备MTU值保存在本地,向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;各网络设备在收到第二Hello报文后,如果收到的第二Hello报文中携带的MTU值比本设备MTU值小,则将收到的第二Hello报文中携带的MTU值作为本设备MTU值保存在本地,向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文。本发明实施例中,可以节省带宽资源。

著录项

  • 公开/公告号CN103023777A

    专利类型发明专利

  • 公开/公告日2013-04-03

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN201210489689.X

  • 发明设计人 陆亦雄;王伟;

    申请日2012-11-27

  • 分类号H04L12/721(20130101);

  • 代理机构11297 北京鑫媛睿博知识产权代理有限公司;

  • 代理人龚家骅

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2024-02-19 19:24:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-30

    专利权的转移 IPC(主分类):H04L12/721 专利号:ZL201210489689X 登记生效日:20230619 变更事项:专利权人 变更前权利人:新华三技术有限公司 变更后权利人:新华三信息技术有限公司 变更事项:地址 变更前权利人:310052 浙江省杭州市滨江区长河路466号 变更后权利人:310052 浙江省杭州市滨江区长河路466号11楼

    专利申请权、专利权的转移

  • 2017-05-31

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/721 变更前: 变更后: 申请日:20121127

    专利权人的姓名或者名称、地址的变更

  • 2015-11-25

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):H04L12/721 申请日:20121127

    实质审查的生效

  • 2013-04-03

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别是涉及了一种获取全域最小最大传输单元值的方法和设备。

背景技术

IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)是一种链路状态协议,通过使用SPF(Shortest Path First,最短路径优先)算法进行路由计算;具体的,在自治系统中,每一台运行IS-IS的网络设备(如路由器)收集各自的接口/邻接信息(称为链路状态),并通过Flooding(洪泛)算法在整个区域内广播自身的链路状态,使得整个区域内部维护一个同步的链路状态数据库;根据这一链路状态数据库,各网络设备计算出以自身为根,其它网络设备为叶的一根最短路径树,并根据最短路径树计算出最佳路由。

此外,MTU(Maximum Transmission Unit,最大传输单元)值为一个数据的最大值,如果IP层有数据需要传输,且数据长度大于MTU值,则IP层就需要进行分片(fragmentation)处理,将数据分成若干片,使得每一片数据都小于MTU值。进一步的,两台网络设备之间在进行通信时,通信链路上的各网络设备会对应有不同的MTU值,为了保证数据的正常传输,需要获得通信链路上各网络设备的MTU值中的最小值,并以最小值进行数据传输。

现有技术中,IS-IS区域内的两台网络设备之间需要进行通信时(如网络设备1通过接口1向网络设备2的接口2发送数据),则接口1的MTU值需要与接口2的MTU值相同;基于此,网络设备1需要按照接口1的MTU值填充IS-IS的Hello报文,网络设备2通过接口2收到Hello报文后,利用Hello报文的大小(即接口1的MTU值)确定接口2的MTU值,以此来保证接口1的MTU值与接口2的MTU值相同。

但是这种方式下,网络设备1在按照接口1的MTU值填充Hello报文时,需要保证Hello报文的长度为接口1的MTU值,浪费了带宽资源。

发明内容

本发明提供了一种获取全域最小最大传输单元值的方法和设备,以使各网络设备之间可以协商出IS-IS区域内的最小MTU值。

为了达到上述目的,本发明实施例提供一种获取全域最小最大传输单元值的方法,该方法包括以下步骤:

各网络设备获得本设备所有建立邻居关系的链路的最小最大传输单元MTU值,将所述本设备最小的MTU值作为本设备MTU值,并将所述本设备最小的MTU值添加到第一Hello报文中,向邻居网络设备发送所述第一Hello报文;

各网络设备在收到来自邻居网络设备的第一Hello报文后,如果接收到的第一Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第一Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第一Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值;

各网络设备在收到来自邻居网络设备的第二Hello报文后,如果接收到的第二Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第二Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第二Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值;

如果各网络设备在一个预设的时间内,一直没有收到比本地保存的本设备MTU值小的第一Hello报文或第二Hello报文,则该网络设备确定本地保存的本设备MTU值为全域最小MTU值。

所述各网络设备获得本设备所有建立邻居关系的链路的最小最大传输单元MTU值,具体包括:

网络设备在与其它网络设备建立邻居关系时,将其它网络设备对应接口的MTU值添加到第三Hello报文中,并向其它网络设备发送第三Hello报文;

如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值相同,则所述网络设备能够与所述其它网络设备建立邻居关系;如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值不同,则所述网络设备不能够与所述其它网络设备建立邻居关系,一直到所述其它网络设备对应接口的MTU值为收到第三Hello报文的接口的MTU值,以使所述网络设备能够与所述其它网络设备建立邻居关系;

所述网络设备获得本设备所有接口的MTU值,并选择所有接口的MTU值中最小的MTU值为本设备最小的MTU值。

各Hello报文中携带有类型长度值TLV,所述TLV包括类型type字段、长度length字段和值value字段;所述type字段中携带了用于标明value字段中携带的是MTU值的信息;所述length字段中携带了用来标明value字段长度的信息;所述value字段的第一部分为第一标识时,表示Hello报文为第一Hello报文,第一部分为第二标识时,表示Hello报文为第二Hello报文,第一部分为第三标识时,表示Hello报文为第三Hello报文;以及,所述value字段的第二部分为Hello报文中携带的MTU值。

所述方法进一步包括:各网络设备利用本设备MTU值生成需要向邻居网络设备发送的数据,并向所述邻居网络设备发送所述生成的数据。

当在中间系统到中间系统IS-IS区域内确定各网络设备的MTU值时,Hello报文包括基于IS-IS协议的IIH报文。

本发明实施例提供一种网络设备,所述网络设备包括:

获得模块,用于获得本设备所有建立邻居关系的链路的最小最大传输单元MTU值;

第一发送模块,用于将所述本设备最小的MTU值作为本设备MTU值,并将所述本设备最小的MTU值添加到第一Hello报文中,向邻居网络设备发送所述第一Hello报文;

第二发送模块,用于在收到来自邻居网络设备的第一Hello报文后,如果接收到的第一Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第一Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第一Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值;

第三发送模块,用于在收到来自邻居网络设备的第二Hello报文后,如果接收到的第二Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第二Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第二Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值;

确定模块,用于在一个预设的时间内,如果一直没有收到比本地保存的本设备MTU值小的第一Hello报文或第二Hello报文,则确定本地保存的本设备MTU值为全域最小MTU值。

所述获得模块,具体用于在本设备与其它网络设备建立邻居关系时,将所述其它网络设备对应接口的MTU值添加到第三Hello报文中,并向所述其它网络设备发送所述第三Hello报文;如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值相同,则本设备能够与所述其它网络设备建立邻居关系;如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值不同,则本设备不能够与所述其它网络设备建立邻居关系,一直到所述其它网络设备对应接口的MTU值为收到第三Hello报文的接口的MTU值,以使本设备能够与所述其它网络设备建立邻居关系;以及,获得本设备所有接口的MTU值,并选择所有接口的MTU值中最小的MTU值为本设备最小的MTU值。

各Hello报文中携带有类型长度值TLV,所述TLV包括类型type字段、长度length字段和值value字段;所述type字段中携带了用于标明value字段中携带的是MTU值的信息;所述length字段中携带了用来标明value字段长度的信息;所述value字段的第一部分为第一标识时,表示Hello报文为第一Hello报文,第一部分为第二标识时,表示Hello报文为第二Hello报文,第一部分为第三标识时,表示Hello报文为第三Hello报文;以及,所述value字段的第二部分为Hello报文中携带的MTU值。

还包括:第四发送模块,用于利用本设备MTU值生成需要向邻居网络设备发送的数据,并向所述邻居网络设备发送所述生成的数据。

当在中间系统到中间系统IS-IS区域内确定各网络设备的MTU值时,Hello报文包括基于IS-IS协议的IIH报文。

与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,各网络设备之间可以协商出IS-IS区域内的最小MTU值,且各网络设备将IS-IS区域内的最小MTU值作为本设备MTU值,并利用本设备MTU值进行后续处理,从而可以实现数据的正常传输;而且在检测MTU值的过程中,不需要将接口的MTU值填充IS-IS的Hello报文中,从而可以节省带宽资源。

附图说明

图1是本发明实施例提出的一种获取全域最小最大传输单元值的方法流程图;

图2是本发明实施例提出的一种网络设备的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

本发明实施例提出一种获取全域最小最大传输单元值的方法,该方法可以应用的场景包括但不限于如下网络:基于ISIS协议的网络、基于SPB(Shortest Path Bridge,最短路径桥接)-ISIS协议的网络、基于EVI(Ethernet Virtualization Interconnection,以太网虚拟化互联)-ISIS协议的网络、基于TRILL(Transparent Interconnection of Lots of Links,多链路透明互联)协议的网络等;如图1所示,该方法包括以下步骤:

步骤101,各网络设备获得本设备所有建立邻居关系的链路的最小MTU值,将本设备最小的MTU值作为本设备MTU值,并将本设备最小的MTU值添加到第一Hello报文中,以及向邻居网络设备发送该第一Hello报文。

本发明实施例中,各网络设备获得本设备所有建立邻居关系的链路的最小MTU值,具体包括:

网络设备在与其它网络设备建立邻居关系时,将其它网络设备对应接口的MTU值添加到第三Hello报文中,并向其它网络设备发送第三Hello报文;

如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值相同,则该网络设备能够与其它网络设备建立邻居关系;

如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值不同,则该网络设备不能够与其它网络设备建立邻居关系,一直到其它网络设备对应接口的MTU值为收到第三Hello报文的接口的MTU值,以使网络设备能够与其它网络设备建立邻居关系;

网络设备在所有邻居关系建立完成之后,可以确定所有接口的MTU值,即该网络设备可以获得本设备所有接口的MTU值,并选择所有接口的MTU值中最小的MTU值为本设备最小的MTU值。

例如,网络设备1的接口1与网络设备2的接口2相连,网络设备1在与网络设备2建立邻居关系时,将网络设备2对应接口(接口1)的MTU值(如1000)添加到第三Hello报文中,向网络设备2发送第三Hello报文;如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口(接口2)的MTU值相同,则网络设备1能够与网络设备2建立邻居关系,此时接口1的MTU值为1000;如果第三Hello报文中携带的MTU值与接口2的MTU值不同(设接口2的MTU值为800),则网络设备1不能够与网络设备2建立邻居关系,一直到接口1的MTU值为接口2的MTU值(通过修改接口1的MTU值实现,或通过修改接口2的MTU值实现,或通过同时修改接口1和接口2的MTU值实现),以使网络设备1能够与网络设备2建立邻居关系,假设通过修改接口1的MTU值实现,则接口1的MTU值为800。进一步的,网络设备1在所有接口对应的邻居关系建立完成后,可确定所有接口的MTU值,并选择所有接口的MTU值中最小的MTU值为本设备最小的MTU值。

步骤102,各网络设备在收到来自邻居网络设备的第一Hello报文后,如果接收到的第一Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第一Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第一Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值。

步骤103,各网络设备在收到来自邻居网络设备的第二Hello报文后,如果接收到的第二Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第二Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第二Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值。

步骤104,如果各网络设备在一个预设的时间内(如邻居建立时间),一直没有收到比本地保存的本设备MTU值小的第一Hello报文或第二Hello报文,则该网络设备确定本设备MTU值为全域最小MTU值。

进一步的,各网络设备在协商出区域内的最小MTU值之后(各网络设备的本设备MTU值为区域内的最小MTU值),各网络设备均可以利用本设备MTU值生成需要向邻居网络设备发送的数据(如LSP(Link State Protocol Data Unit,链路状态协议数据单元)等),并向邻居网络设备发送该生成的数据;且由于各网络设备均按照本设备MTU值(即区域内的最小MTU值)来生成LSP等,因此生成的LSP为区域内可用的LSP。

因此,通过上述实施方式的处理,可以解决在ISIS协议中由于MTU值不同,导致二层的LSP报文发送失败的问题。

本发明实施例中,各网络设备在协商出区域内的最小MTU值之后,如果又收到来自邻居网络设备的第一Hello报文或者第二Hello报文,则可以继续按照步骤102或者步骤103的方式进行处理,以重新协商区域内的最小MTU值,并以协商出的区域内的最小MTU值为本设备MTU值。

本发明上述实施例中,Hello报文用于建立和维持邻居关系,且不同应用场景下的Hello报文不同;例如,在基于ISIS协议的网络中,即在IS-IS区域内确定各网络设备的MTU值时,Hello报文包括基于IS-IS协议的IIH(IS-IS Hello)报文;在基于SPB-ISIS协议的网络中,即在SPB-ISIS区域内确定各网络设备的MTU值时,Hello报文包括基于SPB-ISIS协议的Hello报文。

网络设备在与其它网络设备建立邻居关系之后,为了解决网络设备或其它网络设备对接口的MTU值进行调整,导致网络设备与其它网络设备相应接口的MTU值不一致的问题;在本发明实施例的一种优选实施方式中,网络设备在通过某接口向其它网络设备发送第一Hello报文或第二Hello报文时,还需要将该接口的MTU值添加到第一Hello报文或第二Hello报文,并向其它网络设备发送第一Hello报文或第二Hello报文;如果第一Hello报文或第二Hello报文中携带的接口的MTU值与收到第一Hello报文或第二Hello报文的接口的MTU值相同,则该网络设备和其它网络设备不需要调整对应接口的MTU值;如果第一Hello报文或第二Hello报文中携带的接口的MTU值与收到第一Hello报文或第二Hello报文的接口的MTU值不同,则需要调整对应接口的MTU值,一直到第一Hello报文或第二Hello报文中携带的接口的MTU值与收到第一Hello报文或第二Hello报文的接口的MTU值相同。

进一步的,针对不同应用场景下的Hello报文,本发明实施例中需要在Hello报文中携带有TLV(type length value,类型长度值),且该TLV包括type(类型)字段、length(长度)字段和value(值)字段;其中:

(1)type字段中携带了用于标明value字段中携带的是MTU值的信息;

(2)length字段中携带了用来标明value字段长度的信息;

(3)value字段分为两部分(第一部分可包含一个字节,第二部分可包含两个字节);当第一部分为第一标识(如0)时,表示Hello报文为第一Hello报文(用于携带本设备最小的MTU值);当第一部分为第二标识(如1)时,表示Hello报文为第二Hello报文(用于携带来自其它网络设备的比本设备最小的MTU值更小的MTU值);当第一部分为第三标识(如2)时,表示Hello报文为第三Hello报文(用于携带接口的MTU值);此外,第二部分为Hello报文中携带的MTU值,且该MTU值的取值范围可以为0~65535。

在本发明实施例的优选实施方式中,如果第一Hello报文或第二Hello报文中携带了接口的MTU值,则TLV中有两个value字段,第一个value字段用于携带本设备最小的MTU值或来自其它网络设备的比本设备最小的MTU值更小的MTU值;第二个value字段用于携带接口的MTU值。

基于与上述方法同样的发明构思,本发明实施例还提出了一种网络设备,如图2所示,所述网络设备包括:

获得模块11,用于获得本设备所有建立邻居关系的链路的最小最大传输单元MTU值;

第一发送模块12,用于将所述本设备最小的MTU值作为本设备MTU值,并将所述本设备最小的MTU值添加到第一Hello报文中,向邻居网络设备发送所述第一Hello报文;

第二发送模块13,用于在收到来自邻居网络设备的第一Hello报文后,如果接收到的第一Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第一Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第一Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值;

第三发送模块14,用于在收到来自邻居网络设备的第二Hello报文后,如果接收到的第二Hello报文中携带的MTU值比本设备MTU值小,则将接收到的第二Hello报文中携带的MTU值作为本设备MTU值保存在本地,然后向邻居网络设备发送携带本地保存的本设备MTU值的第二Hello报文;如果接收到的第二Hello报文中携带的MTU值不比本设备MTU值小,则保持本设备MTU值;

确定模块15,用于在一个预设的时间内,如果一直没有收到比本地保存的本设备MTU值小的第一Hello报文或第二Hello报文,则确定本地保存的本设备MTU值为全域最小MTU值。

所述获得模块11,具体用于在本设备与其它网络设备建立邻居关系时,将所述其它网络设备对应接口的MTU值添加到第三Hello报文中,并向所述其它网络设备发送所述第三Hello报文;如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值相同,则本设备能够与所述其它网络设备建立邻居关系;如果第三Hello报文中携带的MTU值与收到第三Hello报文的接口的MTU值不同,则本设备不能够与所述其它网络设备建立邻居关系,一直到所述其它网络设备对应接口的MTU值为收到第三Hello报文的接口的MTU值,以使本设备能够与所述其它网络设备建立邻居关系;以及,获得本设备所有接口的MTU值,并选择所有接口的MTU值中最小的MTU值为本设备最小的MTU值。

本发明实施例中,各Hello报文中携带有类型长度值TLV,所述TLV包括类型type字段、长度length字段和值value字段;所述type字段中携带了用于标明value字段中携带的是MTU值的信息;所述length字段中携带了用来标明value字段长度的信息;所述value字段的第一部分为第一标识时,表示Hello报文为第一Hello报文,第一部分为第二标识时,表示Hello报文为第二Hello报文,第一部分为第三标识时,表示Hello报文为第三Hello报文;以及,所述value字段的第二部分为Hello报文中携带的MTU值。

该网络设备还包括:第四发送模块16,用于利用本设备MTU值生成需要向邻居网络设备发送的数据,并向所述邻居网络设备发送所述生成的数据。

本发明实施例中,当在中间系统到中间系统IS-IS区域内确定各网络设备的MTU值时,Hello报文包括基于IS-IS协议的IIH报文。

其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。       

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号