一种通信方法及设备与流程

文档序号:17896451发布日期:2019-06-13 16:01阅读:121来源:国知局
一种通信方法及设备与流程

本申请涉及通信技术领域,尤其涉及一种通信方法及设备。



背景技术:

现网运行中,两台核心路由器之间可能通过二层交换机网络进行通信,如果两台路由器配置的接口支持的最大传输单元(maximumtransmissionunit,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,可能会不够准确。因此在本申请实施例中,第一路由器可以向第二路由器发送一个第一探测报文,这样对于第一路由器来说负担较小,或者考虑到网络质量,第一路由器也可以向第二路由器发送多个第一探测报文。

在一个可能的设计中,所述第一探测报文和所述第二探测报文可以分别为ping报文。

本申请实施例可以通过ping探测机制来实现对mtu的侦测。但ping探测机制只是一种可选的机制,本申请实施例并不限制探测机制。

在一个可能的设计中,所述第一路由器将所述第一路由器的出接口支持的所述第一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,从而保证业务报文的正常发送。其中,该业务报文可以是第一路由器生成的,或者也可以是其他设备通过第一路由器转发的。如果该业务报文是第一路由器生成的,则该业务报文的mtu是第一路由器来设置,第一路由器可以直接设置为第二mtu,而如果该业务报文是其他设备通过第一路由器转发的,则该业务报文的mtu可以是其他设备来设置。例如,第一路由器确定了第二mtu之后,可以将第二mtu通知给第一路由器上游的其他设备,从而其他设备在后续通过第一路由器发送业务报文时,就可以知晓要将业务报文的mtu设置为第三二mtu。

在一个可能的设计中,环回报文为echo报文。

本申请实施例中可以通过echo报文来实现环回报文。当然本申请实施例还可以通过其他报文来实现环回报文,不作限制。

在一个可能的设计中,所述环回报文的目的地址为所述第一路由器的出接口的地址。

既然是环回报文,那么可以将目的地址设置为第一路由器的出接口的地址,那么交换机将第二mtu添加到环回报文后再发送环回报文,按照该目的地址,环回报文直接就可以回到第一路由器,无需交换机再重新生成报文发送给第一路由器,减轻交换机的负担,也更符合交换机的工作机制。

第四方面,提供一种路由器。该路由器具有实现上述方法设计中的第一路由器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,该路由器的具体结构可包括处理器和收发器。处理器和收发器可执行上述第一方面或第一方面的任意一种可能的设计所提供的方法中的相应功能。

第五方面,提供一种路由器。该路由器具有实现上述方法设计中的第一路由器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,该路由器的具体结构可包括处理器和收发器。处理器和收发器可执行上述第二方面或第二方面的任意一种可能的设计所提供的方法中的相应功能。

第六方面,提供一种交换机。该交换机具有实现上述方法设计中的交换机(第一交换机)的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,该交换机的具体结构可包括处理器和收发器。处理器和收发器可执行上述第三方面或第三方面的任意一种可能的设计所提供的方法中的相应功能。

第七方面,提供一种路由器。该路由器具有实现上述方法设计中的第一路由器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,该路由器的具体结构可包括处理模块和收发模块。处理模块和收发模块可执行上述第一方面或第一方面的任意一种可能的设计所提供的方法中的相应功能。

第八方面,提供一种路由器。该路由器具有实现上述方法设计中的第一路由器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,该路由器的具体结构可包括处理模块和收发模块。处理模块和收发模块可执行上述第二方面或第二方面的任意一种可能的设计所提供的方法中的相应功能。

第九方面,提供一种交换机。该交换机具有实现上述方法设计中的交换机(第一交换机)的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,该交换机的具体结构可包括处理器和收发器。处理器和收发器可执行上述第三方面或第三方面的任意一种可能的设计所提供的方法中的相应功能。

第十方面,提供一种通信装置。该通信装置可以为上述方法设计中的第一路由器,或者为设置在第一路由器中的芯片。该通信装置包括:存储器,用于存储计算机可执行程序代码;以及处理器,处理器与存储器耦合。其中存储器所存储的程序代码包括指令,当处理器执行所述指令时,使通信装置执行上述第一方面或第一方面的任意一种可能的设计中第一路由器所执行的方法。

第十一方面,提供一种通信装置。该通信装置可以为上述方法设计中的第一路由器,或者为设置在第一路由器中的芯片。该通信装置包括:存储器,用于存储计算机可执行程序代码;以及处理器,处理器与存储器耦合。其中存储器所存储的程序代码包括指令,当处理器执行所述指令时,使通信装置执行上述第二方面或第二方面的任意一种可能的设计中第一路由器所执行的方法。

第十二方面,提供一种通信装置。该通信装置可以为上述方法设计中的交换机(第一交换机),或者为设置在交换机(第一交换机)中的芯片。该通信装置包括:存储器,用于存储计算机可执行程序代码;以及处理器,处理器与存储器耦合。其中存储器所存储的程序代码包括指令,当处理器执行所述指令时,使通信装置执行上述第二方面或第二方面的任意一种可能的设计中交换机(第一交换机)所执行的方法。

第十三方面,提供一种通信系统,包括第一路由器和交换机。其中,第一路由器,用于向第二路由器发送探测报文,所述探测报文封装了第一mtu,所述第一mtu为所述第一路由器的出接口支持的mtu,所述探测报文用于探测大小为所述第一mtu的报文是否能够发送到所述第二路由器,确定在设定时长内未从所述第二路由器接收探测反馈报文,所述探测反馈报文是所述探测报文的反馈报文,向所述第二路由器发送环回报文,所述环回报文用于请求所述第一路由器到所述第二路由器之间的传输路径所支持的mtu,接收环回反馈报文,所述环回反馈报文为所述环回报文的反馈报文,获取所述环回反馈报文所指示的第二mtu,所述第二mtu为所述第一路由器到所述第二路由器之间的传输路径所支持的mtu;交换机,用于从所述第一路由器接收环回报文,所述环回报文用于请求所述第一路由器到第二路由器之间的传输路径所支持的mtu,所述交换机位于所述第一路由器和所述第二路由器之间的传输路径上,在所述环回报文中添加第二mtu,得到环回反馈报文,所述第二mtu为所述交换机所支持的mtu,将所述环回反馈报文发送给所述第一路由器。

第十四方面,提供一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的设计中所述的方法。

第十五方面,提供一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面的任意一种可能的设计中所述的方法。

第十六方面,提供一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第三方面或第三方面的任意一种可能的设计中所述的方法。

第十七方面,提供一种包含指令的计算机程序产品,所述计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的设计中所述的方法。

第十八方面,提供一种包含指令的计算机程序产品,所述计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面的任意一种可能的设计中所述的方法。

第十九方面,提供一种包含指令的计算机程序产品,所述计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述第三方面或第三方面的任意一种可能的设计中所述的方法。

本申请实施例补充扩展了网络路径mtu学习发现的技术,提供了一种可以高效快速侦测二层网络的路径mtu的发现技术。

附图说明

图1a为icmp不可达报文的格式示意图;

图1b为两台路由器配置的接口支持的mtu大于中间的交换机配置的mtu时,交换机丢弃报文的示意图;

图2为本申请实施例的一种应用场景示意图;

图3为本申请实施例提供的一种通信方法的流程图;

图4a为本申请实施例的又一种应用场景示意图;

图4b为本申请实施例提供的又一种通信方法的流程图;

图5为本申请实施例提供的第一路由器的一种结构示意图;

图6为本申请实施例提供的第一路由器的一种结构示意图;

图7为本申请实施例提供的交换机的一种结构示意图;

图8a-图8b为本申请实施例提供的通信装置的两种结构示意图。

具体实施方式

为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例作进一步地详细描述。

以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。

1)路由器(router),是连接因特网(internet)中各局域网、广域网的设备,路由发生在开放式系统互联(opensysteminterconnection,osi)参考模型的第三层(本文也称为三层网络),即网络层,路由器会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

路由器,也可理解为网关设备(gateway),用于连接多个逻辑上分开的网络。所谓逻辑网络,代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择互联网协议(internetprotocol,ip)路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属于网络层的一种互联设备。

2)交换机(switch)是一种基于媒体接入控制(mediaaccesscontrol,mac)(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”mac地址,并将学习的mac地址存放在内部的地址表中,通过在数据帧的始发端和目标端之间建立临时的交换路径,使数据帧能够直接由源地址到达目的地址。交换机包括工作在osi参考模型的第二层(本文也称为二层网络)的二层交换机和工作在三层网络的三层交换机,三层交换机或是更高层的交换机。三层交换机同样可以有路由的功能,而且比低端路由器的转发速率更快。它的主要特点是:一次路由,多次转发。本申请实施例主要讨论的是二层交换机。

3)mtu,是指一种通信协议的某一层上所能通过的最大的数据包的大小,以字节为单位。最大传输单元通常与通信接口有关,例如网络接口卡或串口等。例如本申请实施例会讨论路由器的出接口所支持的mtu。

4)本申请实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。

以及,除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。

本申请实施例可以适用于长期演进(longtermevolution,lte)系统,或第五代移动通信技术(5g)新无线(newradio,nr)系统,或者也可以适用于其他类似的通信系统,例如下一代通信系统等。

为了更好地理解本申请实施例提供的技术方案,下面先介绍本申请实施例的技术背景。

在三层网络中,mtu是可以被发现的。例如,当路由器接收的报文的mtu超过了下一跳网络的mtu,且该报文不能拆分,则路由器需要给发送该报文的源设备返回一个控制报文协议(internetcontrolmessageprotocol,icmp)的目的不可达报文(例如称为icmp不可达报文),请参见图1a,为icmp不可达报文的格式。icmp不可达报文包括类型、代码、校验和、首部字段、internet首部字段(或者理解为ip头)+原始报文中的前64比特(bit),原始报文即为路由器接收的mtu超过了下一跳网络的mtu的报文。

其中,类型和代码用于共同确定icmp报文的类型,例如类型=3以及代码=4,表明该icmp为目的不可达报文。为了支持路径mtu发现技术,路由器会在icmp不可达报文的首部字段中低序的16bit中包含下一跳网络的mtu,这个字段在icmp标准中被标记为“未使用”。高序的16bit保持未用,设置为0。则源设备接收该icmp不可达报文后,可获得该icmp不可达报文的首部字段中低序的16bit包含的下一跳网络的mtu,从而根据该mtu重新生成报文来发送。

但是,目前的标准只针对三层报文的mtu发现做了定义,针对二层网络,目前还没有标准和相应的技术来发现mtu。

例如请参见图1b,路由器a和路由器b之间可能通过交换机a和交换机b进行通信,交换机a和交换机b均为二层交换机。路由器a的出接口和路由器b的入接口配置的mtu为1500,交换机a的出接口和交换机b的入接口配置的mtu为1000。路由器a发送给路由器b的报文在经过交换机a时,交换机a会因为无法支持该报文的mtu而直接丢弃该报文,导致路由器a和路由器b无法实现通信,这样就会影响路由器a和路由器b之间的协议邻居关系的正常建立和业务报文的正常传输。

鉴于此,提供本申请实施例的技术方案,以在两台路由器配置的接口支持的mtu大于中间的交换机配置的mtu的场景下,也能够使得两台路由器正常通信。

请参见图2,介绍本申请实施例的一种应用场景。其中包括第一路由器和第二路由器,在第一路由器和第二路由器之间的传输路径上包括位于二层网络的第一交换机和第二交换机。其中,第一路由器的出接口的ip地址例如为10.1.1.1,第二路由器的入接口的ip地址例如为10.1.1.2。第一路由器的出接口和第二路由器的入接口配置的mtu例如为1500,第一交换机的出接口和第二交换机的入接口配置的mtu例如为1000。即,作为协议邻居的第一路由器和第二路由器之间是二层网络,且位于二层网络的交换机互连的链路允许的mtu小于两端路由器的接口mtu。

其中,第一交换机支持的mtu(或交换机支持的mtu),第一路由器和第二路由器之间的传输路径所支持的mtu,第一路由器和第二路由器之间的路径mtu,第一路由器和第二路由器之间的二层网络所支持的mtu,这几种概念在本文中是同种含义,可彼此替换。关于这几种概念,将在后文中有所介绍。

请参见图3,本申请实施例提供一种通信方法,在下文的介绍过程中,以将该方法应用于图2所示的应用场景为例。该方法的流程介绍如下。

s301、第一路由器向第二路由器发送至少一个第一探测报文,则第一交换机接收至少一个第一探测报文,第一探测报文封装了第一mtu,第一mtu为第一路由器的出接口支持的mtu,第一探测报文用于探测大小为第一mtu的报文是否能够发送到第二路由器,第一路由器和第二路由器之间的传输路径上包括位于二层网络的设备;

s302、第一交换机确定第一mtu与第三mtu之间的大小关系,如果确定第一mtu大于第三mtu,则第一交换机丢弃至少一个第一探测报文,第三mtu为第一交换机所支持的mtu(s302以此为例);而如果确定第一mtu等于第三mtu,则第一交换机向传输路径上的下一跳设备转发至少一个第一探测报文;

s303、如果第一交换机丢弃至少一个第一探测报文,则第一路由器确定在设定时长内未从第二路由器接收第一探测反馈报文,第一探测反馈报文是第一探测报文的反馈报文;

s304、第一路由器将第一mtu剪裁第一步长,得到第二mtu;

s305、因为第一路由器尚未探测确定第一路由器和第二路由器之间的传输路径所支持的mtu,因此第一路由器继续探测过程,例如第一路由器向第二路由器发送封装了第二mtu的至少一个第二探测报文,则第一交换机接收至少一个第二探测报文;

接着,第一交换机对于至少一个第二探测报文的处理方式类似于对至少一个第一探测报文的处理方式,第一交换机确定第二mtu与第三mtu之间的大小关系,例如确定第二mtu大于第三mtu,则第一交换机丢弃至少一个第二探测报文,后续第一路由器的处理方式也可参考s304和s305,也就是说第一路由器继续执行探测过程,中间省略多轮通过探测报文进行探测的过程。

直到经过n轮探测过程后,在第n+1轮探测过程中,s306、第一路由器向第二路由器发送至少一个探测报文(本实施例称为第三探测报文),至少一个第三探测报文均封装了第四mtu,则第一交换机接收至少一个第三探测报文;

s307、第一交换机确定第四mtu与第三mtu之间的大小关系,如果确定第四mtu大于第三mtu,则第一交换机丢弃至少一个第一探测报文,而如果确定第四mtu等于第三mtu,则第一交换机向传输路径上的下一跳设备转发至少一个第三探测报文(s307以此为例);传输路径上的下一跳设备例如为第二交换机,则第二交换机接收至少一个第三探测报文;

s308、第二交换机向第二路由器发送至少一个第三探测报文,则第二路由器接收至少一个第三探测报文;

s309、第二路由器生成至少一个第三探测反馈报文,第三探测反馈报文是第三探测报文的反馈报文;其中,第二路由器每接收一个第三探测反馈报文就可以生成一个第三探测反馈报文;

s310、第二路由器向第一路由器发送至少一个第三探测反馈报文,则第一路由器接收至少一个第三探测反馈报文;

其中,第二路由器每生成一个第三探测反馈报文就可以向第一路由器发送一个第三探测反馈报文,即,如果第二路由器生成多个第三探测反馈报文,则多个第三探测反馈报文的发送时间可能是不同的;

另外,第二路由器向第一路由器发送至少一个第三探测反馈报文包括三个过程,即图3中s310的3个过程,分别为:第二路由器向第二交换机发送至少一个第三探测反馈报文,第二交换机接收至少一个第三探测反馈报文,第二交换机向第一交换机发送至少一个第三探测反馈报文,第一交换机接收至少一个第三探测反馈报文,第一交换机向第一路由器发送至少一个第三探测反馈报文,第一路由器接收至少一个第三探测反馈报文;

s311、第一路由器确定在设定时长内接收了至少一个第三探测反馈报文,则确定第一路由器和第二路由器之间的传输路径所支持的mtu为第四mtu,第四mtu也就是第一路由器最后一次剪裁得到的mtu,而第四mtu也就是第三mtu。至此,对mtu的侦测过程结束。

其中,图3中的s31和s35中的箭头还包括从第一交换机指向第二路由器的虚线箭头,表明至少一个第一探测报文和至少一个第二探测报文实际上是发送给第二路由器的,当然第二路由器不一定能接收到,所以图中的虚线箭头只是示意。而至少一个第三探测报文是发送给第二路由器的,且第二路由器也能够接收,因此图3中为实线箭头。

以图2所示的场景为例,因为第一交换机和第二交换机位于二层网络中,因此按照目前的标准,第一路由器无法发现第一交换机支持的mtu。那么本申请实施例中,针对二层网络,提出通过探测报文来侦测mtu的方式,使得第一路由器能够最终获知第一交换机支持的mtu,而第一交换机支持的mtu也就是第一路由器和第二路由器之间的传输路径所支持的mtu,或者说,第一交换机支持的mtu也就是第一路由器和第二路由器之间的路径mtu,所谓的路径mtu,是指一条因特网传输路径中,从源地址(这里是指第一路由器的地址)到目的地址(这里是指第二路由器的地址)所经过的传输路径上的所有ip跳的最大传输单元的最小值,或者从另外一个角度来看,路径mtu就是无需将报文进行分片处理就能穿过这条传输路径的最大传输单元的最大值。

采用本申请实施例提供的方式侦测mtu,是路由器的一种功能,作为第一路由器来说,可以选择开启这种功能,也可以选择关闭这种功能。那么,第一路由器如果要选择开启这种功能,则第一路由器指定的出接口需要处于可用(up)状态,这里的第一路由器指定的出接口,就是第一路由器发送本申请实施例所提供的探测报文的接口。另外,第一路由器如果要选择开启这种功能,则还需要第一路由器和第二路由器都可以学习到对端接口的地址解析协议(addressresolutionprotocol,arp)表项,从而保证网络是物理可达的。

本申请实施例中因为要在二层网络中进行探测,那么作为一种示例,探测报文可以通过ping报文实现,即,可以通过ping检测机制来实现对mtu的探测。当然使用ping报文作为探测报文只是一种示例,或者也可以通过专门的探测报文来实现对于mtu的探测,或者也可以采用其他的机制来实现对于mtu的探测,本申请实施例不作限制。在下文的介绍过程中,以探测报文通过ping报文实现为例,则如前所述的第一探测报文、第二探测报文、及第三探测报文等都可以是ping报文。

另外,第一路由器发送探测报文后,如果该探测报文封装的mtu等于第一路由器和第二路由器之间的传输路径所支持的mtu,即,等于第一路由器和第二路由器之间的路径mtu(本实施例称为第三mtu),则第二路由器就能够接收该探测报文,第二路由器接收探测报文后,会生成针对该探测报文的反馈报文,本文将探测报文的反馈报文称为探测反馈报文,则第二路由器会将探测反馈报文发送给第一路由器,则第一路由器接收探测反馈报文后,就能确定该探测报文发送成功。否则,第一路由器发送探测报文后,如果该探测报文封装的mtu大于第一路由器和第二路由器之间的传输路径所支持的mtu,即,大于第一路由器和第二路由器之间的路径mtu,则中间的第一交换机会丢弃该探测报文,第一交换机丢弃探测报文后不会向第一路由器回复探测反馈报文,则第一路由器就不会接收探测反馈报文。那么,如果一段时间后未接收探测反馈报文,第一路由器就能确定该探测报文发送失败。本申请实施例中,为了让第一路由器能够明确探测报文是否发送失败,可以设置定时器,即,第一路由器可以设置定时器,并规定:在该定时器超时时,如果第一路由器尚未收到所发送的探测报文的反馈报文,则确定是因为所发送的探测报文封装的mtu过大而被丢弃,则第一路由器可以减小mtu,并重新发送封装了减小后的mtu的探测报文。该定时器的定时时长即为如前所述的设定时长,该设定时长可以根据经验确定,例如可设置定时器的定时时长为:在第一路由器发送的报文的mtu等于第一路由器和第二路由器之间的路径mtu时,第一路由器从发送报文到接收该报文的反馈报文之间所经历的时长。当然也可以通过其他方式来设置定时器的定时时长,本申请实施例不作限制。另外在设置定时器的定时时长后,也可以根据需求动态调整该定时时长。

例如,第一路由器需要探测第一路由器和第二路由器之间的二层网络支持的mtu,则第一路由器可以为第一路由器的出接口使能二层路径mtu(pathmtu)检测功能,这样就启动了mtu的探测功能,本申请实施例中以通过ping检测机制实现mtu的探测为例,因此这样就相当于启动了ping检测。

在侦测mtu的过程中,第一路由器生成第一探测报文,第一探测报文的源ip地址是第一路由器的出接口的ip地址,第一探测报文的源mac地址也是第一路由器的出接口的mac地址,第一探测报文的目的ip地址是第二路由器的入接口的ip地址,第一探测报文的目的mac地址也是第二路由器的入接口的mac地址。例如第一探测报文是第一路由器在启动mtu的探测后所发送的第一个探测报文,则在第一探测报文中,第一路由器封装的mtu可以是第一路由器的出接口所支持的mtu,本文将第一探测报文中封装的mtu称为第一mtu,以图2所示的场景为例,则第一mtu等于1500。且第一路由器将第一探测报文中的不分片(don'tfragment,df)标志位的值置为1,表明第一探测报文不能被拆分传输。

考虑到网络质量等因素,第一路由器可向第二路由器发送至少一个第一探测报文,如果只发送一个第一探测报文,则第一路由器在定时器超时时未接收第一探测反馈报文,可能是因为mtu的原因,也可能是因为网络传输质量等原因,例如丢包或时延过大等,如果由此来确定减小mtu,可能会不够准确。因此在本申请实施例中,第一路由器可以向第二路由器发送一个第一探测报文,或者也可以向第二路由器发送多个第一探测报文,例如第一路由器每隔第一时长就向第二路由器发送一个第一探测报文,在发送第一个第一探测报文时,第一路由器可以启动定时器,在定时器超时前,即,在设定时长内,只要第一路由器接收针对在此期间发送的任意一个第一探测报文的第一探测反馈报文,就认为第一探测报文发送成功。其中,第一时长可由第一路由器设置,例如设置为1秒,或者也可以设置为其他时长。另外在设置第一时长后,也可以根据需求动态调整第一时长。

那么,第一路由器既然可以向第二路由器发送至少一个第一探测报文,则作为一种示例,定时器的定时时长也可以根据发送的探测报文的数量来控制。例如,为了减少网络中间报文的数量和压力,将第一时长设置为1秒,将定时器的定时时长设置为5秒,则第一路由器每隔1秒向第二路由器发送一个第一探测报文,在5秒的时间内第一路由器会发送5个第一探测报文。而在5秒的时间到达时,如果第一路由器未接收到针对这5秒内发送的任意一个第一探测报文的第一探测反馈报文,则第一路由器确定第一探测报文发送失败。

以图2所示的场景为例,第一交换机和第二交换机所在的二层网络所支持的mtu为1000,显然小于第一路由器的出接口支持的mtu。那么第一交换机接收第一探测报文后,因为第一探测报文封装的第一mtu大于第一交换机和第二交换机所在的二层网络所支持的mtu,第一交换机会丢弃第一探测报文。这样第一探测报文显然无法到达第二路由器,而第一交换机不会向第一路由器回复探测反馈报文,则第一路由器就不会收到探测反馈报文。例如第一交换机在发送第一探测报文时就启动了定时器,那么在定时器超时时第一交换机不会接收探测反馈报文(本文将针对第一探测报文的反馈报文称为第一探测反馈报文),那么第一路由器确定第一探测报文发送失败,可以重新发送探测报文。重新发送的探测报文中显然不能再封装第一mtu,本申请实施例中,第一路由器可以将第一mtu剪裁第一步长,得到第二mtu,在确定第一探测报文发送失败后,第一路由器生成第二探测报文,第二探测报文的源ip地址是第一路由器的出接口的ip地址,第二探测报文的源mac地址也是第一路由器的出接口的mac地址,第二探测报文的目的ip地址是第二路由器的入接口的ip地址,第二探测报文的目的mac地址也是第二路由器的入接口的mac地址,与第一探测报文不同的是,第二探测报文中封装的是第二mtu而不是第一mtu。同样,第一路由器会向第二路由器发送至少一个第二探测报文。也就是说,如果探测报文发送不成功,则第一路由器会逐步减小探测报文中封装的mtu,如此反复,直到第一路由器某次发送的探测报文(即本实施例中的第三探测报文)封装的mtu(即本实施例中的第四mtu)等于第一交换机和第二交换机所在的二层网络所支持的mtu时,第一路由器就会在定时器超时前接收第二路由器发送的探测反馈报文(即本实施例中的第三探测反馈报文),则第一路由器确定探测过程结束,而该探测反馈报文所对应的探测报文中封装的mtu,就是第一路由器和第二路由器之间的传输路径所支持的mtu,即本实施例中所述的第三mtu,则第一路由器令第三mtu在第一路由器的出接口生效,或者理解为,第一路由器将第一路由器的出接口支持的mtu从第一mtu调整为第三mtu。

其中,第一步长可以由第一路由器设置,例如为了使得递减粒度较细,尽量避免递减过大而错过正确的mtu,第一步长可设置为1,或者,为了加快探测过程,尽快探测成功,也可将第一步长设置的较大。具体如何设置本申请实施例不作限制。

之后,第一路由器如果向第二路由器发送业务报文,则该业务报文的mtu就使用第三mtu。其中,该业务报文可能是第一路由器生成的,或者也可以是其他设备通过第一路由器转发的。那么,第一路由器也可以向第一路由器上游的其他设备发送通知报文,例如发送icmp不可达报文,在该通知报文中封装了第三mtu,则其他设备接收该通知报文后,就可以确定后续发送的业务报文使用第三mtu,从而提高报文传输的成功率。

本申请实施例中,第一路由器通过发送探测报文并逐渐递减探测报文封装的mtu的方式,就能够获得第一路由器和第二路由器之间的传输路径所支持的mtu,解决了在二层网络中发现mtu的问题,使得第一路由器和第二路由器的协议邻居关系能够正常建立,也使得报文能够在第一路由器和第二路由器之间传输,且实现方式较为简单。

根据图3所示的实施例提供的方案,第一路由器通过发送探测报文并逐渐递减探测报文封装的mtu的方式,就能够获得第一路由器和第二路由器之间的传输路径所支持的mtu,解决了在二层网络中发现mtu的问题。而关于如何在二层网络中发现mtu,不限于图3所示的实施例所提供的方案。

请参见图4a,介绍本申请实施例的另一种应用场景。其中包括第一路由器和第二路由器,在第一路由器和第二路由器之间的传输路径上包括位于二层网络的第一交换机和第二交换机。其中,第一路由器的出接口的ip地址例如为10.1.1.1,第二路由器的入接口的ip地址例如为10.1.1.2。第一路由器的出接口和第二路由器的入接口配置的mtu例如为1500,第一交换机的出接口和第二交换机的入接口配置的mtu例如为1000。即,作为协议邻居的第一路由器和第二路由器之间是二层网络,且位于二层网络的交换机互连的链路允许的mtu小于两端路由器的接口mtu。

下面请参考图4b,本申请实施例还提供一种通信方法,同样能够解决在二层网络中发现mtu的问题。在下文的介绍过程中,以该通信方法应用于图4a所示的应用场景为例。该方法的流程介绍如下。

s41、第一路由器向第二路由器发送探测报文,则交换机接收该探测报文,该探测报文封装了第一mtu,第一mtu为第一路由器的出接口支持的mtu,探测报文用于探测大小为第一mtu的报文是否能够发送到第二路由器,第一路由器和第二路由器之间的传输路径上包括位于二层网络的设备;

s42、交换机确定第一mtu大于第二mtu,则交换机丢弃探测报文,第二mtu为交换机所支持的mtu;

s43、第一路由器确定在设定时长内未从第二路由器接收探测反馈报文,探测反馈报文是探测报文的反馈报文;

s44、第一路由器发送环回报文,则交换机接收该环回报文,该环回报文用于请求第一路由器到第二路由器之间的传输路径所支持的mtu;

s45、交换机在环回报文中添加第二mtu,得到环回反馈报文,环回反馈报文为环回报文的反馈报文;

s46、交换机将环回反馈报文发送给第一路由器,则第一路由器接收环回反馈报文;

s47、第一路由器获取环回反馈报文所指示的第二mtu,第二mtu为第一路由器到第二路由器之间的传输路径所支持的mtu。

图4b所示的实施例中所述的交换机,可以是图4a所示的场景中的第一交换机。其中,以图4a所示的场景为例,因为图4b所示的实施例的流程暂未涉及图4a中的第二交换机,因此图4b中未画出第二交换机。另外,图4b中的s41中的箭头还包括从第一交换机指向第二路由器的虚线箭头,表明探测报文实际上是发送给第二路由器的,当然第二路由器不一定能接收到,所以图中的虚线箭头只是示意。

本申请实施例中,针对二层网络,同样可以通过探测报文来侦测mtu,使得第一路由器能够最终获知第一交换机支持的mtu,而第一交换机支持的mtu也就是第一路由器和第二路由器之间的传输路径所支持的mtu,或者说,第一交换机支持的mtu也就是第一路由器和第二路由器之间的路径mtu。

与图3所示的实施例同理,采用本申请实施例提供的方式侦测mtu,是路由器的一种功能,作为第一路由器来说,可以选择开启这种功能,也可以选择关闭这种功能。那么,第一路由器如果要选择开启这种功能,则第一路由器指定的出接口需要处于up状态,这里的第一路由器指定的出接口,就是第一路由器发送本申请实施例所提供的探测报文的接口。另外,第一路由器如果要选择开启这种功能,则还需要第一路由器和第二路由器都可以学习到对端接口的arp表项,从而保证网络是物理可达的。

本申请实施例中因为要在二层网络中进行探测,那么作为一种示例,探测报文可以通过ping报文实现,即可以通过ping检测机制来实现对mtu的探测。当然使用ping报文作为探测报文只是一种示例,或者也可以通过专门的探测报文来实现对于mtu的探测,或者也可以采用其他的机制来实现对于mtu的探测,本申请实施例不作限制。在下文的介绍过程中,以探测报文通过ping报文实现为例。

另外,第一路由器发送探测报文后,如果该探测报文封装的mtu等于第一路由器和第二路由器之间的传输路径所支持的mtu,即,等于第一路由器和第二路由器之间的路径mtu,则第二路由器就能够接收该探测报文,第二路由器接收探测报文后,会生成针对该探测报文的反馈报文,本文将探测报文的反馈报文称为探测反馈报文,则第二路由器会将探测反馈报文发送给第一路由器,则第一路由器接收探测反馈报文后,就能确定该探测报文发送成功。否则,第一路由器发送探测报文后,如果该探测报文封装的mtu大于第一路由器和第二路由器之间的传输路径所支持的mtu,即,大于第一路由器和第二路由器之间的路径mtu,则中间的第一交换机会丢弃该探测报文,第一交换机丢弃探测报文后不会向第一路由器回复探测反馈报文,则第一路由器就不会接收探测反馈报文。那么,如果一段时间后未接收探测反馈报文,第一路由器就能确定该探测报文发送失败。本申请实施例中,为了让第一路由器能够明确探测报文是否发送失败,可以设置定时器,即,第一路由器可以设置定时器,定时器的定时时长即为如前所述的设定时长,并规定:在该定时器超时时,即,在设定时长内,如果第一路由器尚未收到所发送的探测报文的反馈报文,则确定是因为所发送的探测报文封装的mtu过大而被丢弃,则第一路由器可以向第二路由器发送环回报文。该定时器的定时时长的设置可参考图3所示的实施例的相关介绍,不多赘述。

例如,第一路由器需要探测第一路由器和第二路由器之间的二层网络支持的mtu,则第一路由器可以为第一路由器的出接口使能二层pathmtu检测功能,这样就启动了mtu的探测功能,本申请实施例中以通过ping检测机制实现mtu的探测为例,因此这样就相当于启动了ping检测。

在侦测mtu的过程中,第一路由器生成探测报文,该探测报文的源ip地址是第一路由器的出接口的ip地址,该探测报文的源mac地址也是第一路由器的出接口的mac地址,该探测报文的目的ip地址是第二路由器的入接口的ip地址,该探测报文的目的mac地址也是第二路由器的入接口的mac地址。在该探测报文中,第一路由器封装的mtu是第一路由器的出接口所支持的mtu,本文将探测报文中封装的mtu称为第一mtu,以图4a所示的场景为例,则第一mtu等于1500。且第一路由器将该探测报文中的df标志位的值置为1,表明该探测报文不能被拆分传输。

考虑到网络质量等因素,第一路由器可向第二路由器发送至少一个探测报文,例如第一路由器每隔第一时长就向第二路由器发送一个探测报文,在发送第一个探测报文时第一路由器可启动定时器,在该定时器超时前,只要第一路由器接收一个探测反馈报文,就认为探测报文发送成功。关于这部分内容的描述可参考图3所示的实施例中的相关介绍,不多赘述。

则交换机接收至少一个探测报文,这里以交换机对其中一个探测报文的处理方式为例来介绍,例如该探测报文是交换机接收的第一个探测报文。则交换机上行学习第一路由器出接口的mac地址,而在下行,会由于该探测报文封装的mtu过大而丢弃该探测报文。此时,交换机可记录该mac地址对应的mtu,该mtu为交换机的出接口的mtu,即为交换机支持的mtu,也是第一路由器和第二路由器之间的传输路径所支持的mtu。例如交换机可以将记录的mac地址与mtu之间的映射关系映射到交换机的mac转发表中。

在定时器超时时,显然第一路由器未接收第二路由器发送的探测反馈报文,则第一路由器生成环回报文,作为一种示例,环回报文例如通过回声(echo)报文实现。环回报文的封装例如为:在数据链路层封装的源mac地址和目的mac地址均为第一路由器出接口的mac地址,例如为图4a中所示的00-e0-fc-01-01-22,在网络层封装的源ip地址和目的ip地址均为第一路由器的出接口的ip地址,在传输层封装的是icmp不可达报文,在icmp不可达报文中,下一跳mtu填写为0。

第一路由器向第二路由器发送环回报文,则交换机接收该环回报文。交换机通过查询mac转发表,可以获得与第一路由器的出接口的mac地址对应的mtu,则交换机将该mtu添加到环回报文里,例如交换机是将该mtu填写到echo报文中封装的icmp不可达报文中的下一跳mtu字段中,得到环回反馈报文,本文将环回反馈报文中的mtu称为第二mtu。

交换机发送环回反馈报文,由于环回报文的目的ip地址是第一路由器的ip地址,目的mac地址也是第一路由器的mac地址,因此该环回反馈报文会回到第一路由器,或者理解为,交换机将环回反馈报文发送给第一路由器,则第一路由器接收环回反馈报文,如图4a中的环回箭头所示。第一路由器通过解析环回反馈报文,就可以获得其中封装的第二mtu,从而第一路由器可以根据第二mtu动态调整第一路由器的出接口的mtu,可理解为,第一路由器将所述第一路由器的出接口支持的mtu调整为第二mtu。

另外,从探测报文超时到第一路由器触发环回报文,这之间的时间间隔如果过长,则可能导致中间的交换机设备的mac转发表老化,无法继续存储记录的第一路由器的出接口的mac地址与交换机支持的mtu之间的映射关系。鉴于此,可以规定,在探测报文超时后,第一路由器需要在第二时长以内进入echo流程,即第一路由器触发echo报文,以保证探测继续进行。第二时长例如为3分钟,或者也可设置为其他时长,具体可根据mac转发表的老化速度等因素确定,另外在设定后也可以根据需求进行动态调整。

之后,第一路由器如果向第二路由器发送业务报文,则该业务报文的mtu就使用第二mtu。其中,该业务报文可能是第一路由器生成的,或者也可以是其他设备通过第一路由器转发的。那么,第一路由器也可以向第一路由器上游的其他设备发送通知报文,例如发送icmp不可达报文,其中,该icmp不可达报文就可以是封装在环回反馈报文中的icmp不可达报文,相当于第一路由器可以直接解析环回反馈报文得到icmp不可达报文,直接将该icmp不可达报文发送给第一路由器上游的其他设备,从而无需再重新生成icmp不可达报文,减少处理流程。则其他设备接收该通知报文后,就可以确定后续发送的业务报文使用第二mtu,从而提高报文传输的成功率。

本申请实施例补充扩展了网络路径mtu学习发现的技术,提供了一种可以高效快速侦测二层网络的路径mtu的发现技术。在本申请实施例中,第一路由器如果确定探测报文发送失败,则可以直接发送环回报文,从而能够直接获得第一路由器和第二路由器之间的传输路径所支持的mtu,解决了在二层网络中发现mtu的问题,无需过多的探测过程,加快了探测的速度。且,使得第一路由器和第二路由器的协议邻居关系能够正常建立,也使得报文能够在第一路由器和第二路由器之间传输。

下面结合附图介绍本申请实施例提供的设备。

图5示出了一种路由器500的结构示意图。该路由器500可以实现上文中涉及的第一路由器的功能。该路由器500可以是上文中所述的第一路由器,或者可以是设置在上文中所述的第一路由器中的芯片。该路由器500可以包括处理器501和收发器502。其中,处理器501可以用于执行图3所示的实施例中的s303、s304及s311,和/或用于支持本文所描述的技术的其它过程。收发器502可以用于执行图3所示的实施例中的s301、s305、s306及s310,和/或用于支持本文所描述的技术的其它过程。

例如,收发器502,用于向第二路由器发送至少一个第一探测报文,所述第一探测报文封装了第一mtu,所述第一mtu为所述路由器的出接口支持的mtu,所述第一探测报文用于探测大小为所述第一mtu的报文是否能够发送到所述第二路由器;

处理器501,用于确定在设定时长内未从所述第二路由器接收第一探测反馈报文,所述第一探测反馈报文是所述第一探测报文的反馈报文;

处理器501,还用于将所述第一mtu剪裁第一步长,得到第二mtu;

收发器502,还用于向第二路由器发送封装了所述第二mtu的至少一个第二探测报文,直到在所述设定时长内所述收发模块从所述第二路由器接收探测反馈报文为止;

处理器501,还用于将最后一次剪裁得到的第三mtu作为所述第一路由器到所述第二路由器之间的传输路径所支持的mtu。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

图6示出了一种路由器600的结构示意图。该路由器600可以实现上文中涉及的第一路由器的功能。该路由器600可以是上文中所述的第一路由器,或者可以是设置在上文中所述的第一路由器中的芯片。该路由器600可以包括处理器601和收发器602。其中,处理器601可以用于执行图4所示的实施例中的s43及s47,和/或用于支持本文所描述的技术的其它过程。收发器602可以用于执行图4所示的实施例中的s41、s44及s46,和/或用于支持本文所描述的技术的其它过程。

例如,收发器602,用于向第二路由器发送探测报文,所述探测报文封装了第一mtu,所述第一mtu为所述路由器的出接口支持的mtu,所述探测报文用于探测大小为所述第一mtu的报文是否能够发送到所述第二路由器;

处理器601,用于确定在设定时长内未从所述第二路由器接收探测反馈报文,所述探测反馈报文是所述探测报文的反馈报文;

收发器602,还用于向所述第二路由器发送环回报文,所述环回报文用于请求所述路由器到所述第二路由器之间的传输路径所支持的mtu;

收发器602,还用于接收环回反馈报文,所述环回反馈报文为所述环回报文的反馈报文;

处理器601,还用于获取所述环回反馈报文所指示的第二mtu,所述第二mtu为所述路由器到所述第二路由器之间的传输路径所支持的mtu。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

图7示出了一种交换机700的结构示意图。该交换机700可以实现上文中涉及的交换机(第一交换机)的功能。该交换机700可以是上文中所述的交换机(第一交换机),或者可以是设置在上文中所述的交换机(第一交换机)中的芯片。该交换机700可以包括处理器701和收发器702。其中,处理器701可以用于执行图4所示的实施例中的s42及s45,和/或用于支持本文所描述的技术的其它过程。收发器702可以用于执行图4所示的实施例中的s41、s44及s46,和/或用于支持本文所描述的技术的其它过程。

例如,收发器702,用于从第一路由器接收环回报文,所述环回报文用于请求所述第一路由器到第二路由器之间的传输路径所支持的mtu,所述交换机位于所述第一路由器和所述第二路由器之间的传输路径上;

处理器701,还用于在所述环回报文中添加第二mtu,得到环回反馈报文,所述第二mtu为所述交换机所支持的mtu;

收发器702,还用于将所述环回反馈报文发送给所述第一路由器。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在一个简单的实施例中,本领域的技术人员可以想到,还可以将路由器500、路由器600或交换机700通过如图8a所示的通信装置800的结构实现。该通信装置800可以实现上文中涉及的网络设备或通信设备的功能。该通信装置800可以包括处理器801。其中,在该通信装置800用于实现图3所示的实施例中的第一路由器的功能时,处理器801可用于执行图3所示的实施例中的s303、s304及s311,和/或用于支持本文所描述的技术的其它过程。在该通信装置800用于实现图4所示的实施例中的第一路由器的功能时,处理器801可用于执行图4所示的实施例中的s43及s47,和/或用于支持本文所描述的技术的其它过程。在该通信装置800用于实现图4所示的实施例中的交换机(第一交换机)的功能时,处理器801可以用于执行图4所示的实施例中的s42及s45,和/或用于支持本文所描述的技术的其它过程。

其中,通信装置800可以通过现场可编程门阵列(field-programmablegatearray,fpga),专用集成芯片(applicationspecificintegratedcircuit,asic),系统芯片(systemonchip,soc),中央处理器(centralprocessorunit,cpu),网络处理器(networkprocessor,np),数字信号处理电路(digitalsignalprocessor,dsp),微控制器(microcontrollerunit,mcu),还可以是可编程控制器(programmablelogicdevice,pld)或其他集成芯片实现,则通信装置600可被设置于本申请实施例的网络设备或通信设备中,以使得该网络设备或通信设备实现本申请实施例提供的传输消息的方法。

在一种可选实现方式中,该通信装置800还可以包括存储器802,可参考图8b,其中,存储器802用于存储计算机程序或指令,处理器801用于译码和执行这些计算机程序或指令。应理解,这些计算机程序或指令可包括上述第一路由器或交换机(第一交换机)的功能程序。当第一路由器的功能程序被处理器801译码并执行时,可使得第一路由器实现本申请实施例图3所示的实施例或图4所示的实施例所提供的通信方法中第一路由器的功能。当交换机(第一交换机)的功能程序被处理器801译码并执行时,可使得交换机(第一交换机)实现本申请实施例的图4所示的实施例所提供的通信方法中交换机(第一交换机)的功能。

在另一种可选实现方式中,这些第一路由器或交换机(第一交换机)的功能程序存储在通信装置800外部的存储器中。当第一路由器的功能程序被处理器801译码并执行时,存储器802中临时存放上述第一路由器的功能程序的部分或全部内容。当交换机(第一交换机)的功能程序被处理器801译码并执行时,存储器802中临时存放上述交换机(第一交换机)的功能程序的部分或全部内容。

在另一种可选实现方式中,这些第一路由器或交换机(第一交换机)的功能程序被设置于存储在通信装置800内部的存储器802中。当通信装置800内部的存储器802中存储有第一路由器的功能程序时,通信装置800可被设置在本申请实施例的第一路由器中。当通信装置800内部的存储器802中存储有交换机(第一交换机)的功能程序时,通信装置800可被设置在本申请实施例的交换机(第一交换机)中。

在又一种可选实现方式中,这些第一路由器的功能程序的部分内容存储在通信装置800外部的存储器中,这些第一路由器的功能程序的其他部分内容存储在通信装置800内部的存储器802中。或,这些交换机(第一交换机)的功能程序的部分内容存储在通信装置800外部的存储器中,这些交换机(第一交换机)的功能程序的其他部分内容存储在通信装置800内部的存储器802中。

在本申请实施例中,路由器500、路由器600交换机700及通信装置800对应各个功能划分各个功能模块的形式来呈现,或者,可以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指asic,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。

另外,图5所示的实施例提供的路由器500还可以通过其他形式实现。例如该路由器包括处理模块和收发模块。例如处理模块可通过处理器501实现,收发模块可通过收发器502实现。其中,处理模块可以用于执行图3所示的实施例中的s303、s304及s311,和/或用于支持本文所描述的技术的其它过程。收发模块可以用于执行图3所示的实施例中的s301、s305、s306及s310,和/或用于支持本文所描述的技术的其它过程。

例如,收发模块,用于向第二路由器发送至少一个第一探测报文,所述第一探测报文封装了第一mtu,所述第一mtu为所述路由器的出接口支持的mtu,所述第一探测报文用于探测大小为所述第一mtu的报文是否能够发送到所述第二路由器;

处理模块,用于确定在设定时长内未从所述第二路由器接收第一探测反馈报文,所述第一探测反馈报文是所述第一探测报文的反馈报文;

处理模块,还用于将所述第一mtu剪裁第一步长,得到第二mtu;

收发模块,还用于向第二路由器发送封装了所述第二mtu的至少一个第二探测报文,直到在所述设定时长内所述收发模块从所述第二路由器接收探测反馈报文为止;

处理模块,还用于将最后一次剪裁得到的第三mtu作为所述第一路由器到所述第二路由器之间的传输路径所支持的mtu。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

图6所示的实施例提供的路由器600还可以通过其他形式实现。例如该路由器包括处理模块和收发模块。例如处理模块可通过处理器601实现,收发模块可通过收发器602实现。其中,处理模块可以用于执行图4所示的实施例中的s43及s47,和/或用于支持本文所描述的技术的其它过程。收发模块可以用于执行图4所示的实施例中的s41、s44及s46,和/或用于支持本文所描述的技术的其它过程。

例如,收发模块,用于向第二路由器发送探测报文,所述探测报文封装了第一mtu,所述第一mtu为所述路由器的出接口支持的mtu,所述探测报文用于探测大小为所述第一mtu的报文是否能够发送到所述第二路由器;

处理模块,用于确定在设定时长内未从所述第二路由器接收探测反馈报文,所述探测反馈报文是所述探测报文的反馈报文;

收发模块,还用于向所述第二路由器发送环回报文,所述环回报文用于请求所述路由器到所述第二路由器之间的传输路径所支持的mtu;

收发模块,还用于接收环回反馈报文,所述环回反馈报文为所述环回报文的反馈报文;

处理模块,还用于获取所述环回反馈报文所指示的第二mtu,所述第二mtu为所述路由器到所述第二路由器之间的传输路径所支持的mtu。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

图7所示的实施例提供的交换机700还可以通过其他形式实现。例如该交换机包括处理模块和收发模块。例如处理模块可通过处理器701实现,收发模块可通过收发器702实现。其中,处理模块可以用于执行图4所示的实施例中的s42及s45,和/或用于支持本文所描述的技术的其它过程。收发模块可以用于执行图4所示的实施例中的s41、s44及s46,和/或用于支持本文所描述的技术的其它过程。

例如,收发模块,用于从第一路由器接收环回报文,所述环回报文用于请求所述第一路由器到第二路由器之间的传输路径所支持的mtu,所述交换机位于所述第一路由器和所述第二路由器之间的传输路径上;

处理模块,还用于在所述环回报文中添加第二mtu,得到环回反馈报文,所述第二mtu为所述交换机所支持的mtu;

收发模块,还用于将所述环回反馈报文发送给所述第一路由器。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

由于本申请实施例提供的路由器500、路由器600、交换机700及通信装置800可用于执行图3所示的实施例或图4所示的实施例所提供的方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalversatiledisc,dvd))、或者半导体介质(例如,固态硬盘(solidstatedisk,ssd))等。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1