CN115208780B - 确定最大传输单元的方法及装置、存储介质、电子设备 - Google Patents
确定最大传输单元的方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN115208780B CN115208780B CN202110314698.4A CN202110314698A CN115208780B CN 115208780 B CN115208780 B CN 115208780B CN 202110314698 A CN202110314698 A CN 202110314698A CN 115208780 B CN115208780 B CN 115208780B
- Authority
- CN
- China
- Prior art keywords
- determining
- data message
- length
- local area
- protocol
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000005538 encapsulation Methods 0.000 claims description 61
- 230000005641 tunneling Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 14
- 238000004891 communication Methods 0.000 abstract description 11
- 238000012360 testing method Methods 0.000 abstract description 4
- 238000013467 fragmentation Methods 0.000 abstract description 3
- 238000006062 fragmentation reaction Methods 0.000 abstract description 3
- 230000006798 recombination Effects 0.000 abstract 1
- 238000005215 recombination Methods 0.000 abstract 1
- CKRLIWFOVCLXTP-UHFFFAOYSA-N 4-phenyl-1-propyl-3,6-dihydro-2h-pyridine Chemical compound C1N(CCC)CCC(C=2C=CC=CC=2)=C1 CKRLIWFOVCLXTP-UHFFFAOYSA-N 0.000 description 13
- 230000003044 adaptive effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Abstract
本公开涉及数据通信技术领域,提供了一种确定最大传输单元的方法、确定最大传输单元的装置、计算机存储介质、电子设备,其中,确定最大传输单元的方法包括:检测局域网的环境配置信息;根据环境配置信息确定网络数据报文的头部长度;根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元。本公开能够根据不同的网络部署情况快速确定MTU,解决现有技术中需要人工计算MTU所导致的效率较低的问题,同时还能够避免数据在传输过程中被分片、重组,无需人工测试数据报文分片长度,从而提高数据传输效率。
Description
技术领域
本公开涉及数据通信技术领域,特别涉及一种确定最大传输单元的方法、确定最大传输单元的装置、计算机存储介质及电子设备。
背景技术
最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。设置合适的MTU值可以解决“部分网站打不开”、“上网速度慢”等问题,并且可以适当提升上网速度。
目前,一般是通过人为的测试与判断之后,设定传输数据报时的MTU,然而,在虚拟网元大规模部署、不同的部署方式涉及不同网络技术的情况下,MTU是变化的,不是一成不变的。若MTU设置的太大,则数据报文在碰到路由器时会被拒绝转发或产生切包分片,影响数据传输效率,甚至产生丢包;若MTU设置的太小,则一次传输的数据量过小,浪费网络资源。
鉴于此,本领域亟需开发一种新的确定最大传输单元的方法及装置。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
发明内容
本公开的目的在于提供一种确定最大传输单元的方法、确定最大传输单元的装置、计算机存储介质及电子设备,进而至少在一定程度上克服现有技术中数据传输效率低的缺陷。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种确定最大传输单元的方法,包括:检测局域网的环境配置信息;根据所述环境配置信息确定网络数据报文的头部长度;根据所述局域网的最大帧长度和所述网络数据报文的头部长度,确定所述局域网的最大传输单元。
在本公开的示例性实施例中,所述环境配置信息包括所述局域网的基础平台管理平台;所述根据环境配置信息确定网络数据报文的头部长度,包括:若所述管理平台为虚拟机管理平台,则获取与所述虚拟机管理平台相关联的虚拟隧道协议;接收第一数据报文并解析得到所述第一数据报文的头部长度;根据所述虚拟隧道协议的头部长度与所述第一数据报文的头部长度之和,确定所述网络数据报文的头部长度。
在本公开的示例性实施例中,所述获取与所述虚拟机管理平台相关联的虚拟隧道协议,包括:检测所述虚拟机管理平台所采用的虚拟交换设备;根据所述虚拟交换设备所支持的协议类型,确定所述虚拟隧道协议。
在本公开的示例性实施例中,所述第一数据报文的头部长度,通过以下方式确定:对所述第一数据报文进行解析,得到协议标识符;根据所述协议标识符、预先存储的多个外部封装协议与协议标识符的对应关系,确定所述第一数据报文的外部封装协议;根据所述第一数据报文的外部封装协议、预先存储的外部封装协议与头部长度的对应关系,确定所述外部封装协议的头部长度;根据多个所述外部封装协议的头部长度之和,确定所述第一数据报文的头部长度。
在本公开的示例性实施例中,所述根据环境配置信息确定网络数据报文的头部长度,还包括:若所述管理平台为镜像管理平台,则接收第二数据报文并解析得到所述第二数据报文的头部长度;将所述第二数据报文的头部长度确定为所述网络数据报文的头部长度。
在本公开的示例性实施例中,所述根据所述局域网的最大帧长度和所述网络数据报文的头部长度,确定所述局域网的最大传输单元,包括:根据局域网的最大帧长度,确定局域网的数据字段的最大长度;获取局域网的数据字段的最大长度和网络数据报文的头部长度之间的差值;将差值确定为局域网的最大传输单元。
在本公开的示例性实施例中,在确定所述局域网的最大传输单元之后,所述方法还包括:检测所述局域网中各个网络设备的操作***;生成与所述操作***对应的最大传输单元设置指令;根据所述最大传输单元设置指令,重置各所述网络设备的最大传输单元。
根据本公开的第二方面,提供一种确定最大传输单元的装置,包括:检测模块,用于检测局域网的环境配置信息;第一确定模块,用于根据所述环境配置信息确定网络数据报文的头部长度;第二确定模块,用于根据所述局域网的最大帧长度和所述网络数据报文的头部长度,确定所述局域网的最大传输单元。
根据本公开的第三方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的确定最大传输单元的方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面所述的确定最大传输单元的方法。
由上述技术方案可知,本公开示例性实施例中的确定最大传输单元的方法、确定最大传输单元的装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
在本公开的一些实施例所提供的技术方案中,一方面,检测局域网的环境配置信息,根据环境配置信息确定网络数据报文的头部长度,能够针对变更的环境配置信息,及时调整网络数据报文的头部长度,保证后续确定出来的MTU值的准确性。另一方面,根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元,能够解决现有技术中需要人工测试MTU的技术问题,避免数据产生分片或被拒绝转发,无需人工测试最佳分片长度,提高数据通信效率。
本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中确定最大传输单元的方法流程示意图;
图2示出本示例性实施方式中根据环境配置信息确定网络数据报文的头部长度的流程示意图;
图3示出本示例性实施方式中确定第一数据报文的头部长度的流程示意图;
图4示出本示例性实施方式中根据环境配置信息确定网络数据报文的头部长度的流程示意图;
图5示出本示例性实施方式中确定最大传输单元的整体流程示意图;
图6示出本示例性实施方式中确定最大传输单元的整体架构图;
图7示出本公开示例性实施例中确定最大传输单元的装置的结构示意图;
图8示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
随着通讯领域内SDN(Software Defined Network,软件定义网络)和NFV(NetworkFunction Virtualization,网络功能虚拟化)技术应用愈加广泛,各类虚拟化网络功能产品层出不穷,例如:vMSE、vBRAS、vSGW、vCPE等。根据用户、网络、环境与业务等诸多情况,网元的部署方式也多种多样,例如:基于虚拟化的方式部署、基于容器的部署等。每一大类的部署方式下也包含很多种更为细节的部署方式,如:虚拟化中基于KVM(基于内核的虚拟机,是一种内建于Linux中的开源虚拟化技术)的部署、基于VMWare(VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX***)的部署、基于Hyper-V(Hyper-v是微软提出的一种***管理程序虚拟化技术)的部署等。每种细节部署方式下所采用的隧道协议也有所不同,例如:VxLAN(Virtual eXtensible LocalArea Network,虚拟可扩展局域网)、GRE(Generic Routing Encapsulation,通用路由封装)等。另外,由于部署网元所基于的各类不同技术源于不同的生产厂家,各厂家对底层的协议封装也各有不同,很难做到统一。因而,现有技术中必须通过人为的测试与判断后才能设置最佳MTU、MSS(Maximum Segment Size,最大报文长度,MSS一般比MTU小40个字节)。
以下是在标准以太网下,各种常见VPN(Virtual Private Network,虚拟私人网络)技术的最佳MTU/MSS:
以太网最大包大小=1518Byte;
所以以太网IP协议的MTU=1518-18(6 SRCMAC+6 DSTMAC+2 TYPE+4 CRC)=1500Byte;
TCP的MSS=1500-40(20 IP包头+20 TCP包头)=1460Byte;
UDP协议的MTU/MRU=1500-28(20包头+8UDP包头)=1472Byte
PPPoE MTU/MRU=1500-8(6 PPPoE会话开销+2 PPP包头)=1492Byte;
经过PPPoE的TCP MTU=1492(PPPoE MTU/MRU)-40(20 IP包头+20 TCP包头)=1452;
PPTP MTU/MRU=1500-56(20 IP包头+20 TCP包头+12 GRE包头+4 PPP包头)=1444Byte;
经过PPTP MSS的TCP MTU=1444(PPTP MTU/MRU)-40(20 IP包头+20 TCP包头)=1404;
L2TP MTU/MRU=1500-40(20 IP包头+8 UDP包头+8 L2TP包头+4 PPP包头)=1460Byte;
TCP经过L2TP MSS=1460(L2TP MTU/MRU)-40(20 IP包头+20 TCP包头)=1420Byte;
PPTP经过PPPoE MTU/MRU=1492(PPPoE MTU/MRU)-56(20 IP包头+20 TCP包头+12GRE包头+4 PPP包头)=1436Byte;
PPTP经过PPTP MTU/MRU=1444(PPTP MTU/MRU)-56(20 IP包头+20TCP包头+12GRE包头+4 PPP包头)=1388Byte;
PPTP经过L2TP MTU/MRU=1460(L2TP MTU/MRU)-56(20 IP包头+20 TCP包头+12GRE包头+4 PPP包头)=1404Byte;
L2TP经过PPPoE MTU/MRU=1492(PPPoE MTU/MRU)-40(20 IP包头+8 UDP包头+8L2TP包头+4 PPP包头)=1452Byte;
L2TP经过PPTP MTU/MRU=1444(PPTP MTU/MRU)-40(20 IP包头+8 UDP包头+8L2TP包头+4 PPP包头)=1404Byte;
L2TP经过L2TP MTU/MRU=1460(L2TP MTU/MRU)-40(20 IP包头+8 UDP包头+8L2TP包头+4 PPP包头)=1420Byte。
而在虚拟网元大规模部署、不同的部署方式涉及不同网络技术的情况下,MTU是变化的,不是一成不变的。若MTU设置的太大,则数据报文在碰到路由器时会被拒绝转发或产生切包分片,影响数据传输效率,甚至产生丢包;若MTU设置的太小,则一次传输的数据量过小,浪费网络资源。
在本公开的实施例中,首先提供了一种确定最大传输单元的方法,至少在一定程度上克服现有技术中数据传输效率低的缺陷。
图1示出本示例性实施方式中确定最大传输单元的方法的流程示意图,该方法的执行主体可以是对最大传输单元进行适配的服务器。
参考图1,根据本公开的一个实施例的确定最大传输单元的方法包括以下步骤:
步骤S110,检测局域网的环境配置信息;
步骤S120,根据环境配置信息确定网络数据报文的头部长度;
步骤S130,根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元。
在图1所示实施例所提供的技术方案中,一方面,检测局域网的环境配置信息,根据环境配置信息确定网络数据报文的头部长度,能够针对变更的环境配置信息,及时调整网络数据报文的头部长度,保证后续确定出来的MTU值的准确性。另一方面,根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元,能够解决现有技术中需要人工测试MTU的技术问题,避免数据产生分片或被拒绝转发,无需人工测试最佳分片长度,提高数据通信效率。
以下对图1中的各个步骤的具体实现过程进行详细阐述:
需要说明的是,局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。将各种计算机,外部设备和数据库等互相联接起来组成的计算机通信网。它可以通过数据通信网或专用数据电路,与远方的局域网、数据库或处理中心相连接,构成一个较大范围的信息处理***。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。以下实施例中,以局域网为以太网为例进行说明。
本公开中可以预先开发一MTU自适应器,该MTU自适应器的作用在于:检测局域网的环境配置信息(即部署局域网所涉及的技术,例如:虚拟交换技术、隧道技术、封装技术),并根据其环境配置信息计算并设置局域网的最佳MTU。
本公开中,首先,可以预先在上述MTU自适应器中存储不同的虚拟隧道协议对应的头部长度,以便于后续根据确定出来的虚拟隧道协议快速确定其头部长度。其中,虚拟隧道协议可以包括VxLAN、GRE、PPP(Point-Point Tunneling Protocol,点对点隧道协议)、IPsec(IP Security,IP安全协议)等。
参考表1,可以预先存储VxLAN协议的头部长度为8字节;预先存储GRE协议的头部长度为4字节;预先存储PPP协议的头部长度为4字节。
表1
其次,可以预先在上述MTU自适应器中存储不同的协议标识符(例如:协议号)与外部封装协议的对应关系,以便于后续根据数据报文中的协议标识符快速确定数据报文封装过程中所使用的外部封装协议。以及,预先存储不同外部封装协议与头部长度的对应关系,以便于后续快速确定不同外部封装协议对应的头部长度。
参考表2,可以预先存储协议标识符0800对应的外部封装协议为IP(InternetProtocol,因特网协议),其头部长度为20字节;预先存储协议标识符0806对应的外部封装协议为ARP(Address Resolution Protocol,地址解析协议),其头部长度为8字节;预先存储协议标识符8035对应的外部封装协议为RARP(Reverse Address Resolution Protocol,逆向地址解析协议),其头部长度为8字节。可以根据实际情况自行设定,属于本公开的保护范围。
表2
协议标识符 | 外部封装协议 | 头部长度(字节) |
0800 | IP | 20 |
0806 | ARP | 8 |
8035 | RARP | 8 |
再次,还可以预先在上述MTU自适应器中存储多个外部封装协议的协议结构,以便于后续针对某些变长报文(即报文头部包含了可变长度的选项字段),根据其协议结构确定其实际的头部长度。示例性的,可以参考表3-表5,表3为二层以太网协议的协议结构;表4为IPv4协议(是IP协议的第四版)的协议结构;表5为PPP协议的协议结构。
表3
表4
表5
从而,本公开中的MTU自适应器可以根据上述预先存储的虚拟隧道协议与其头部长度的对应关系、不同的协议标识符与外部封装协议的对应关系、不同外部封装协议与头部长度的对应关系以及多个外部封装协议的协议结构,执行以下步骤S110-步骤S130,确定出局域网的最大传输单元。
在步骤S110中,检测局域网的环境配置信息。
本步骤中,MTU自适应器可以检测局域网的环境配置信息,环境配置信息可以包括局域网的管理平台。具体的,MTU自适应器可以与局域网中的网络设备建立通信连接,进而,读取网络设备的硬件配置信息,以确定出局域网的管理平台。其中,网络设备及部件是连接到网络中的物理实体。网络设备的种类繁多,且与日俱增。基本的网络设备有:计算机(无论其为个人电脑或服务器)、集线器、交换机、网桥、路由器、网关、网络接口卡、无线接入点、打印机和调制解调器、光纤收发器、光缆等。
示例性的,检测出的管理平台可以包括:OpenStack(OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合)、Docker(Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上)、Hyper-v、VMware等。
在检测出管理平台之后,可以确定上述管理平台的类型。示例性的,可以确定出OpenStack、Hyper-v、VMware对应的平台类型为虚拟机管理平台,Docker对应的平台类型为镜像管理平台。
在步骤S120中,根据环境配置信息确定网络数据报文的头部长度。
本步骤中,当管理平台为虚拟机管理平台时,可以参考图2,图2示出本示例性实施方式中根据环境配置信息确定网络数据报文的头部长度的流程示意图,包含步骤S201-步骤S203,以下结合图2对步骤S120进行解释:
在步骤S201中,若管理平台为虚拟机管理平台,则获取与虚拟机管理平台相关联的虚拟隧道协议。
若确定出管理平台为虚拟机管理平台,则可以获取与上述虚拟机管理平台相关联的虚拟隧道协议。其中,虚拟隧道协议可以包括VxLAN协议、GRE协议、IPsec协议等。
具体的,可以读取虚拟机管理平台的配置信息,以确定出虚拟机管理平台所采用的虚拟交换设备,进而,根据虚拟交换设备所支持的协议类型,确定上述虚拟机管理平台相关联的虚拟隧道协议。其中,虚拟交换设备可以包括OVS交换机(Open vSwitch)、Bridging桥接器、FD.io.VPP(Fast data–Input/Output)等,OVS交换机支持GRE、VxLAN、IPsec等协议,Bridging桥接器只支持VxLAN协议。
从而,当确定出虚拟交换设备为Bridging桥接器时,则可以直接确定出所采用的虚拟隧道协议为VxLAN协议,进而,可以读取预先存储的虚拟隧道协议的头部长度(表1),确定出VxLAN协议的头部长度为8。而当确定出虚拟交换设备为OVS交换机时,则使用的虚拟隧道协议可能是:GRE、VxLAN、IPsec等,此时可以从OVS交换机上抓取数据报文,并基于该数据报文的报头结构确定其数据封装所使用的虚拟隧道协议,进而,确定出该虚拟隧道协议所对应的头部长度。
在步骤S202中,接收第一数据报文并解析得到第一数据报文的头部长度。
本步骤中,在确定出数据封装所使用的虚拟隧道协议之后,可以通过抓包工具从局域网的网关设备抓取第一数据报文,其中,上述抓包工具可以是Wireshark、MiniSinffer、WSExplorer、iptool、sniffer pro等,可以根据实际情况自行设定,属于本公开的保护范围。
在抓取到第一数据报文之后,抓包工具可以将第一数据报文发送至上述MTU自适应器,以使上述MTU自适应器对第一数据报文进行解析,得到第一数据报文的头部长度。具体的,可以参考图3,图3示出本示例性实施方式中确定第一数据报文的头部长度的流程示意图,包含步骤S301-步骤S304,以下结合图3对步骤S202进行解释:
在步骤S301中,对第一数据报文进行解析,得到协议标识符。
本步骤中,可以上述第一数据报文进行解析,以获取到其中的协议标识符。其中,协议标识符的作用在于:指出以太网帧内所包含的上层协议。
此处对以太网帧格式进行说明,参考表6,以太网帧格式包括以太网首部(14字节)、IP首部(20字节)、TCP首部(20字节)、DATA(应用数据)和FCS(以太网尾部)。其中,参考表7,以太网首部为定长14字节,其帧格式包括DST_MAC(目的MAC地址)、SRC_MAC(源MAC地址)、TYPE(类型),TYPE(类型)确定了其后报文的协议类型,即本公开中的协议标识符。
表6
表7
DST_MAC | SRC_MAC | TYPE |
(6字节) | (6字节) | (2字节) |
从而,本公开中可以基于上述表6和表7所示的帧格式,对第一数据报文进行解析,得到上述第一数据报文中的协议标识符。
在步骤S302中,根据协议标识符、预先存储的多个外部封装协议与协议标识符的对应关系,确定第一数据报文的外部封装协议。
本步骤中,在确定出协议标识符之后,可以根据协议标识符以及预先存储的多个外部封装协议与其协议标识符的对应关系(表2),确定出上述第一数据报文的外部封装协议。
举例而言,参照表2,当协议标识符为0800时,可以确定出外部封装协议为IP协议;当协议标识符为0806时,可以确定出外部封装协议为ARP协议;当协议标识符为8035时,可以确定出外部封装协议为RARP协议。
在步骤S303中,根据第一数据报文的外部封装协议、预先存储的外部封装协议与头部长度的对应关系,确定外部封装协议的头部长度。
本步骤中,在确定出上述第一数据报文的外部封装协议之后,可以读取预先存储的外部封装协议与头部长度的对应关系(表2),以确定出外部封装协议的头部长度。
举例而言,若确定出外部封装协议IP协议,则可以读取预先存储的外部封装协议与头部长度的对应关系,确定出IP协议对应的头部长度为20字节,进而,可以读取预先存储的不同外部封装协议的协议结构,通过第一数据报文的具体报文内容,核实其头部长度是否为20字节,并根据核实后的结果确定IP协议的最终头部长度。若确定出外部封装协议为PPP协议,则可以读取预先存储的外部封装协议与头部长度的对应关系,确定出PPP协议对应的头部长度为4字节,进而,可以通过第一数据报文的具体报文内容,核实其头部长度是否为4字节,并根据核实后的结果确定PPP协议的最终头部长度。
在步骤S304中,根据多个外部封装协议的头部长度之和,确定第一数据报文的头部长度。
本步骤中,可以将多个外部封装协议的头部长度之和,确定第一数据报文的头部长度。示例性的,参照上述步骤S303的相关解释,当外部封装协议为IP协议和PPP协议的情况下,可以确定出第一数据报文的头部长度为20(IP_HEADER)+4(PPP_HEADER)=24字节。
在步骤S203中,根据虚拟隧道协议的头部长度与第一数据报文的头部长度之和,确定网络数据报文的头部长度。
本步骤中,可以计算虚拟隧道协议的头部长度和第一数据报文的头部长度之和,示例性的,参照上述步骤S201和步骤S304的相关解释,当虚拟隧道协议为VxLAN协议时,可以确定出虚拟隧道协议的头部长度为8字节,则虚拟隧道协议的头部长度和第一数据报文的头部长度之和为8(VxLAN_HEADER)+24=32字节。
当管理平台为镜像管理平台时,可以参考图4,图4示出本示例性实施方式中根据环境配置信息确定网络数据报文的头部长度的流程示意图,包含步骤S401-步骤S402,以下结合图4对步骤S120进行解释:
在步骤S401中,若管理平台为镜像管理平台,则接收第二数据报文并解析得到第二数据报文的头部长度。
本步骤中,若管理平台为镜像管理平台,则可以通过抓包工具从网关节点抓取第二数据报文,在抓取到第二数据报文之后,抓包工具可以将第二数据报文发送至上述MTU自适应器,以使上述MTU自适应器对第二数据报文进行解析,得到第二数据报文的头部长度。具体的,可以参照上述步骤S301-步骤S304的相关解释,确定出第二数据报文的头部长度,此处不再赘述。
在步骤S402中,将第二数据报文的头部长度确定为网络数据报文的头部长度。
本步骤中,可以将第二数据报文的头部长度确定为网络数据报文的头部长度,示例性的,网络数据报文的头部长度可以是8字节。
继续参考图1,在步骤S130中,根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元。
本步骤中,可以先确定以太网的数据字段的最大长度,以太网的最大帧长度为1518字节,参照上述表6和表7,以太网数据字段的最大长度为1518-18(6SRC_MAC+6DST_MAC+2TYPE+4FCS)=1500字节。
从而,参照上述步骤S203的相关解释,当网络数据报文的头部长度为32字节时,则确定出的最大传输单元为:1500-32=1468字节。
参照上述步骤S402的相关解释,当网络数据报文的头部长度为8字节时,则确定出的最大传输单元为:1500-8=1492字节。
在确定出最大传输单元之后,可以检测局域网中各个网络设备的操作***,若为Linux操作***,则生成与Linux操作***相对应的最大传输单元设置指令,若为Windows操作***,则生成与Windows操作***对应的最大传输单元设置指令,进而,可以将指令发送至控制器,通过控制器下发指令以重置各个网络设备的最大传输单元。从而,本公开能够及时针对变更的网络调整设备的MTU参数,有效地提高了数据传输效率和网络请求响应效率。
示例性的,参考图5,图5示出本示例性实施方式中确定最大传输单元的整体流程示意图,包含步骤S501-步骤S505,以下结合图5进行解释:
在步骤S501中,检测网络设备的管理平台(OpenStack、Docker、Hyper-v、VMware);
若管理平台为虚拟机管理平台,则执行步骤S502-步骤S505;若管理平台为镜像管理平台,则直接执行步骤S504-S505:
在步骤S502中,检测虚拟交换技术(OVS交换机、Bridging桥接器、FD.io.VPP);
在步骤S503中,检测数据封装所使用的虚拟隧道协议(VxLAN协议、GRE协议);
在步骤S504中,检测数据封装所使用的外部报文协议(PPTP、PPPoE、TCP overPPTP(承载在PPTP上的TCP协议)、TCP over PPPoE(承载在PPPoE上的TCP协议));
在步骤S505中,计算MTU,并根据计算结果设定网络服务网关的最佳传输单元。
示例性的,以OpenStack平台环境下KVM虚拟机(Kernel-based Virtual Machine,基于内核的虚拟机)承载虚拟化网关(vMSE),部署用户上网PPPoE(Point-to-PointProtocol Over Ethernet,基于以太网的点对点通讯协议)业务为例,对本公开的整体处理流程进行详细说明:
①通过检测管理平台得知,云环境采用OpenStack平台;
②通过检测虚拟交换技术得知,虚拟资源池交换采用OVS交换机;
③通过检测隧道协议得知,采用VxLAN;
④通过检测外部封装协议得知,外部封装协议采用PPPoE for Ethernet;
⑤MTU自适应器可以得出vMSE的MTU为:1500–20(IP_HEADER)–8(UDP_HEADER)–8(VxLAN_HEADER)–14(Ethernet_HEADER)-8(6PPPoE_SESSION+2PPP_HEADER)=1442Byte;
⑥通过控制器下发指令,ifconfig eth0 mtu 1442修订vMSE MTU;
⑦ICPM(Internet Control Message Protocol,因特网控制报文协议)确认是否成功重置MTU,若是,则完成MTU设置。
参考图6,图6示出本示例性实施方式中确定最大传输单元的整体架构图,以下结合图6进行解释:
本公开中的MTU自适应器可部署在虚拟化网络功能层;
从而,当检测出物理资源池层采用X86平台,虚拟化层采用OVS交换机,虚拟资源池层的VM虚拟机采用VxLAN隧道,网络应用层采用PPPoE拨号上网(即采用PPPoE协议)时,则MTU自适应器可以计算出最佳MTU为1442字节,进而,MTU自适应器可以设定虚拟化网络功能层的虚拟化网关(vMSE)的最佳MTU为1442字节;
当检测出物理资源池层采用X86平台,虚拟化层采用OVS交换机,虚拟资源池层的VM虚拟机采用NVGRE隧道,网络应用层采用LNS(L2TP Network Server,L2TP网络服务器,即采用L2TP协议)时,则MTU自适应器可以自动计算出最佳MTU为1401字节,从而,MTU自适应器可以设定虚拟化网络功能层的虚拟化网关(vXGW)的最佳MTU为1404字节。
基于以上技术方案,本公开不仅能够解决现有技术中需要人工测试MTU的技术问题,避免数据产生分片或被拒绝转发,无需人工测试最佳分片长度,提高数据通信效率。
本公开还提供了一种确定最大传输单元的装置,图7示出本公开示例性实施例中确定最大传输单元的装置的结构示意图;如图7所示,确定最大传输单元的装置700可以包括检测模块701、第一确定模块702和第二确定模块703。其中:
检测模块701,用于检测局域网的环境配置信息。
第一确定模块702,用于根据环境配置信息确定网络数据报文的头部长度。
在本公开的示例性实施例中,环境配置信息包括局域网的基础平台管理平台;第一确定模块用于若所述管理平台为虚拟机管理平台,则获取与所述虚拟机管理平台相关联的虚拟隧道协议;接收第一数据报文并解析得到所述第一数据报文的头部长度;根据所述虚拟隧道协议的头部长度与所述第一数据报文的头部长度之和,确定所述网络数据报文的头部长度。
在本公开的示例性实施例中,第一确定模块用于检测所述虚拟机管理平台所采用的虚拟交换设备;根据所述虚拟交换设备所支持的协议类型,确定所述虚拟隧道协议。
在本公开的示例性实施例中,第一确定模块用于对所述第一数据报文进行解析,得到协议标识符;根据所述协议标识符、预先存储的多个外部封装协议与协议标识符的对应关系,确定所述第一数据报文的外部封装协议;根据所述第一数据报文的外部封装协议、预先存储的外部封装协议与头部长度的对应关系,确定所述外部封装协议的头部长度;根据多个所述外部封装协议的头部长度之和,确定所述第一数据报文的头部长度。
在本公开的示例性实施例中,第一确定模块用于若所述管理平台为镜像管理平台,则接收第二数据报文并解析得到所述第二数据报文的头部长度;将所述第二数据报文的头部长度确定为所述网络数据报文的头部长度。
第二确定模块703,用于根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元。
在本公开的示例性实施例中,第二确定模块用于根据局域网的最大帧长度,确定局域网的数据字段的最大长度;获取局域网的数据字段的最大长度和网络数据报文的头部长度之间的差值;将差值确定为局域网的最大传输单元。
在本公开的示例性实施例中,第二确定模块用于检测局域网中各个网络设备的操作***;生成与操作***对应的最大传输单元设置指令;根据最大传输单元设置指令,重置各网络设备的最大传输单元。
上述确定最大传输单元的装置中各模块的具体细节已经在对应的确定最大传输单元的方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读存储介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的方法。
此外,在本公开实施例中还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830以及显示单元840。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的:步骤S110,检测局域网的环境配置信息;步骤S120,根据环境配置信息确定网络数据报文的头部长度;步骤S130,根据局域网的最大帧长度和网络数据报文的头部长度,确定局域网的最大传输单元。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (9)
1.一种确定最大传输单元的方法,其特征在于,包括:
检测局域网的环境配置信息;
根据所述环境配置信息确定网络数据报文的头部长度;
所述环境配置信息包括所述局域网的管理平台;
所述根据环境配置信息确定网络数据报文的头部长度,包括:
若所述管理平台为虚拟机管理平台,则获取与所述虚拟机管理平台相关联的虚拟隧道协议;
接收第一数据报文并解析得到所述第一数据报文的头部长度;
根据所述虚拟隧道协议的头部长度与所述第一数据报文的头部长度之和,确定所述网络数据报文的头部长度;
根据所述局域网的最大帧长度和所述网络数据报文的头部长度,确定所述局域网的最大传输单元。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述虚拟机管理平台相关联的虚拟隧道协议,包括:
检测所述虚拟机管理平台所采用的虚拟交换设备;
根据所述虚拟交换设备所支持的协议类型,确定所述虚拟隧道协议。
3.根据权利要求1所述的方法,其特征在于,所述第一数据报文的头部长度,通过以下方式确定:
对所述第一数据报文进行解析,得到协议标识符;
根据所述协议标识符、预先存储的多个外部封装协议与协议标识符的对应关系,确定所述第一数据报文的外部封装协议;
根据所述第一数据报文的外部封装协议、预先存储的外部封装协议与头部长度的对应关系,确定所述外部封装协议的头部长度;
根据多个所述外部封装协议的头部长度之和,确定所述第一数据报文的头部长度。
4.根据权利要求1所述的方法,其特征在于,所述根据环境配置信息确定网络数据报文的头部长度,还包括:
若所述管理平台为镜像管理平台,则接收第二数据报文并解析得到所述第二数据报文的头部长度;
将所述第二数据报文的头部长度确定为所述网络数据报文的头部长度。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述根据所述局域网的最大帧长度和所述网络数据报文的头部长度,确定所述局域网的最大传输单元,包括:
根据所述局域网的最大帧长度,确定所述局域网的数据字段的最大长度;
获取所述局域网的数据字段的最大长度和所述网络数据报文的头部长度之间的差值;
将所述差值确定为所述局域网的最大传输单元。
6.根据权利要求5所述的方法,其特征在于,在确定所述局域网的最大传输单元之后,所述方法还包括:
检测所述局域网中各个网络设备的操作***;
生成与所述操作***对应的最大传输单元设置指令;
根据所述最大传输单元设置指令,重置各所述网络设备的最大传输单元。
7.一种确定最大传输单元的装置,其特征在于,包括:
检测模块,用于检测局域网的环境配置信息;
第一确定模块,用于根据所述环境配置信息确定网络数据报文的头部长度;
所述环境配置信息包括所述局域网的管理平台;
所述根据环境配置信息确定网络数据报文的头部长度,包括:
若所述管理平台为虚拟机管理平台,则获取与所述虚拟机管理平台相关联的虚拟隧道协议;
接收第一数据报文并解析得到所述第一数据报文的头部长度;
根据所述虚拟隧道协议的头部长度与所述第一数据报文的头部长度之和,确定所述网络数据报文的头部长度;
第二确定模块,用于根据所述局域网的最大帧长度和所述网络数据报文的头部长度,确定所述局域网的最大传输单元。
8.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~6中任意一项所述的确定最大传输单元的方法。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~6中任意一项所述的确定最大传输单元的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110314698.4A CN115208780B (zh) | 2021-03-24 | 确定最大传输单元的方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110314698.4A CN115208780B (zh) | 2021-03-24 | 确定最大传输单元的方法及装置、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115208780A CN115208780A (zh) | 2022-10-18 |
CN115208780B true CN115208780B (zh) | 2024-06-28 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921440A (zh) * | 2006-09-15 | 2007-02-28 | 华为数字技术有限公司 | 检测路径最大传输单元的方法和*** |
CN107078936A (zh) * | 2014-08-19 | 2017-08-18 | 思杰***有限公司 | 用于提供对传输层连接的mss值的细粒度控制的***和方法 |
CN112118232A (zh) * | 2020-08-25 | 2020-12-22 | 通号城市轨道交通技术有限公司 | 报文协议解析方法及装置 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921440A (zh) * | 2006-09-15 | 2007-02-28 | 华为数字技术有限公司 | 检测路径最大传输单元的方法和*** |
CN107078936A (zh) * | 2014-08-19 | 2017-08-18 | 思杰***有限公司 | 用于提供对传输层连接的mss值的细粒度控制的***和方法 |
CN112118232A (zh) * | 2020-08-25 | 2020-12-22 | 通号城市轨道交通技术有限公司 | 报文协议解析方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种可编程的报文解析装置;陈钦树,卢华,段雪飞;电子世界;第2019卷(第21期);第1页第2章、图1 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10862732B2 (en) | Enhanced network virtualization using metadata in encapsulation header | |
US10684885B2 (en) | Port mirroring in a virtualized computing environment | |
US8634415B2 (en) | Method and system for routing network traffic for a blade server | |
CN107450966B (zh) | 减负装置和用于基于减负装置的数据包处理的框架 | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
US10341131B2 (en) | Avoiding unknown unicast floods resulting from MAC address table overflows | |
EP3418891A1 (en) | Synchronization between virtual network functions and host systems | |
CN110311860B (zh) | Vxlan下多链路负载均衡方法及装置 | |
EP4037267A1 (en) | Method, apparatus and system for sending message | |
US20230208721A1 (en) | Determining network topology based on packet traffic | |
US20170126507A1 (en) | Introducing Latency and Delay For Test or Debug Purposes in a SAN Environment | |
CN114629816B (zh) | 公网ip网络状态探测方法及*** | |
CN115208780B (zh) | 确定最大传输单元的方法及装置、存储介质、电子设备 | |
US9591025B2 (en) | IP-free end-point management appliance | |
Kawashima et al. | Performance evaluation of non-tunneling edge-overlay model on 40GbE environment | |
US20220217093A1 (en) | Sequence Number Synchronization Method and Apparatus | |
US7505418B1 (en) | Network loopback using a virtual address | |
WO2021109851A1 (zh) | 一种网络通信方法、装置、设备和存储介质 | |
CN114598675A (zh) | 基于arp实现主机阻断的控制方法、装置、设备及介质 | |
CN115208780A (zh) | 确定最大传输单元的方法及装置、存储介质、电子设备 | |
CN113890789B (zh) | 适用于数据中心的udp隧道流量的分流方法、流量转发方法 | |
Hu et al. | NVLAN: a novel VLAN technology for scalable multi-tenant datacenter networks | |
Diekmann | Software Defined Networking | |
CN118075228A (zh) | 虚拟机的通信方法、装置、设备和介质 | |
CN117793038A (zh) | 报文处理方法、装置、电子设备、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |