CN116418854A - 自适应修改最大分段大小的方法、装置、设备及存储介质 - Google Patents

自适应修改最大分段大小的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116418854A
CN116418854A CN202310255398.2A CN202310255398A CN116418854A CN 116418854 A CN116418854 A CN 116418854A CN 202310255398 A CN202310255398 A CN 202310255398A CN 116418854 A CN116418854 A CN 116418854A
Authority
CN
China
Prior art keywords
tcp
message
value
tunnel
mss
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.)
Pending
Application number
CN202310255398.2A
Other languages
English (en)
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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN202310255398.2A priority Critical patent/CN116418854A/zh
Publication of CN116418854A publication Critical patent/CN116418854A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

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

Abstract

本申请提出了一种自适应修改最大分段大小的方法、装置、设备及存储介质,用于解决无法自适应设置合理的TCP MSS值的技术问题。本申请转发设备在收到TCP SYN同步报文时,根据报文目的地址确定出端口MTU值,通过TCP协议栈获取报文将要进入的隧道类型,根据隧道类型自适应修改报文的TCP MSS字段的值,即比较报文携带的MSS和出端口MTU减去隧道协议头部开销后的值,选最小值替换同步报文中的MSS。本申请解决了IP报文通过隧道转发的场景下,设置固定TCP MSS值可能导致分片,不能平衡效率和可靠性的技术问题。

Description

自适应修改最大分段大小的方法、装置、设备及存储介质
技术领域
本申请涉及通信及云计算技术领域,尤其涉及一种自适应修改最大分段大小的方法、装置、设备及存储介质。
背景技术
互联网协议(Internet Protocol,IP)数据报在互联网上传输时,可能要经过多个物理网络才能从源端传输到目的端。不同的网络由于链路层和介质的物理特性不同,因此在进行数据传输时,对数据帧的最大长度都有一个限制,这个限制值即最大传输单元MTU(Maximum Transmission Unit)。
同一个网络上的两台主机之间通信时,该网络的MTU值是确定的,不存在分片问题。分片问题一般只存在于具有不同MTU值的互联网中或者IP报文因进某些协议封装隧道(例如通用路由封装GRE隧道、虚拟扩展局域网WxLAN隧道等)导致长度变化的情况下。由于现在互联网主要使用路由器进行网络连接,因此分片工作通常由路由器负责。IP包在路由过程中,如果其长度大于路由器发送接口的MTU,则这个IP包需要被分成多个长度均不大于MTU的IP包进行发送。被分片的IP包在目的接收端根据标识被重新拼装成一个长的IP包,这个过程被称为重组。
TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层。TCP层位于IP层以上,其能够提供面向连接的、可靠的、保证顺序的流服务。
用户在使用路由器访问Internet时,经常会出现不能访问网页(或部分网页)以及使用Outlook收发邮件(基于TCP的应用)的问题,但进行Ping包时没有问题,这时候检查配置时也没有错误。尤其在经过隧道的时候,这种情况更容易发生。出现这种情况的时候,多半是因为报文进隧道后报文长度增长,超过了接口的MTU,设备对报文进行了分片。如果该应用的DF位置1也就是说该应用不允许分片,那么此时就会出现TCP建立连接失败,导致应用无法访问;还有一种情况是,报文要进行分片时,只有第一片报文带有IP的五元组信息(源目的IP位址、源目的端口号和协议号),后续的分片不会保留TCP报文所有的标识信息,如端口号信息等,这种情况下,如果设备又实现了NAT转换操作并且应用又是基于TCP的,这就导致报文不能正确重组,也会出现上述的问题现象。所以,在实际使用TCP协议建立连接的场景中,避免分片是非常重要的。
最大分段大小/最大传输段大小(Maxitum Segment Size,MSS)是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),通讯双方会根据双方提供的MSS值的最小值确定为这次连接的最大MSS值。
目前,为了设置合适的TCP MSS值防止报文进隧道后分片,通常采用的方式是,先在接口下配置固定的TCP MSS值,然后再根据网络情况手工修改TCP MSS协商的值以防止分片,这种方式无法设置合理的TCP MSS值,如果TCP MSS值设置的过小,报文数量明显增多又导致效率下降。
发明内容
有鉴于此,本申请提供一种自适应修改最大分段大小的方法、装置、设备及存储介质,用于解决无法自适应设置合理的TCP MSS值的技术问题。
基于本申请实施例的一方面,本申请提供了一种自适应修改最大分段大小的方法,该方法应用于转发设备上,该方法包括:
在接收到TCP握手报文时,通过TCP协议栈获取报文下一跳出端口对应的隧道类型;
对所述TCP握手报文中的最大分段大小MSS值做自适应修改:即比较所述出端口的最大传输单元MTU值减去隧道头部开销后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值;
将经隧道封装后的所述TCP握手报文通过隧道转发。
进一步地,所述方法还包括:若所述TCP握手报文下一跳出端口不对应隧道接口,则对所述TCP握手报文中的最大分段大小MSS值做自适应修改的方法为:比较所述出端口的最大传输单元MTU值减去TCP头大小和IP头大小后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值。
进一步地,所述隧道头部开销包括隧道协议头部开销和外层IP头部开销;
所述隧道类型为通用路由封装GRE隧道,虚拟扩展局域网VXLAN隧道或IPIP隧道。
进一步地,所述TCP握手报文中TCP SYN报文携带的MSS值为发起TCP连接的源端(客户端Client)的MSS值;所述TCP握手报文中TCP SYN ACK报文携带的MSS值为TCP连接的目的端(服务端Server)从TCP SYN报文携带的MSS值和本地MSS值中选择的最小值;所述TCP握手报文中的TCP ACK报文中携带的MSS值为协商成功的整个链路的最小MSS值。
基于本申请实施例的另一方面,本申请还提供一种自适应修改最大分段大小的装置,该装置应用于转发设备上,该装置包括:
接收获取模块,用于接收TCP握手报文,并通过TCP协议栈获取报文下一跳出端口对应的隧道类型;
自适应修改模块,用于对所述TCP握手报文中的最大分段大小MSS值做自适应修改:即比较所述出端口的最大传输单元MTU值减去隧道头部开销后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值;
转发模块,用于将经隧道封装后的所述TCP握手报文通过隧道转发。
进一步地,所述自适应修改模块还用于在所述TCP握手报文下一跳出端口不对应隧道接口时,比较所述出端口的最大传输单元MTU值减去TCP头大小和IP头大小后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值。
本申请提供的装置可以软件、硬件或软硬结合的方式实现。当以软件模块方式实现时,该软件模块的程序代码被加载到设备的存储介质中,由处理器读取存储介质中的程序代码并执行,从而实现该装置中各组成模块的功能。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请一实施例提供的应用本申请技术方案的网络场景示例图;
图2为本申请一实施例提供的TCP原始报文经隧道协议封装的报文结构示意图;
图3为本申请一实施例提供的支持自适应修改最大分段大小MSS的路由装置的模块结构示意图;
图4为本申请一实施例中实现TCP MSS自适应修改的过程示意图;
图5为本申请一实施例提供的用于实现本申请提供的自适应修改最大分段大小的方法的电子设备结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请实施例。本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用于区别类似的信息、实体或步骤,而不是用于描述特定的顺序或先后次序。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
TCP/IP协议在建立连接的过程中会协商很多参数,其中最大分段大小MSS参数就是用于协商TCP报文大小的,如果报文需经过某种协议隧道传输,隧道两端协商出来的TCPMSS的参数值再加上隧道协议封装的头部开销后小于转发设备上的IP协议的最大传输单元MTU值时,则TCP报文在该设备上就不会被分片,否则就会出现报文被分片并可能导致报文不能被正确重组影响业务的情况的发生,因此,为了避免上述情况的发生,就需要保证两端协商的TCP MSS参数在加上隧道协议的头部开销后小于报文转发设备的MTU值。
目前常用的配置TCP MSS的方法是在接口下配置固定的TCP MSS值,手工修改TCPMSS的值防止分片,这样做的缺点是无法设置合理的TCP MSS值。如果TCP MSS值设置的过小,报文数量明显增多又导致效率下降。
为了解决上述问题,本申请提出了一种自适应修改最大分段大小的方法及相关软硬件装置和设备,本申请基本思想为:转发设备在收到TCP SYN同步报文时,根据报文目的地址确定出端口MTU值,通过TCP协议栈获取报文将要进入的隧道类型,根据隧道类型自适应修改报文的TCP MSS字段的值,即比较报文携带的MSS和出端口MTU减去隧道协议头部开销后的值,选最小值替换同步报文中的MSS。本申请解决了IP报文通过隧道转发的场景下,设置固定TCP MSS值可能导致分片,不能平衡效率和可靠性的技术问题。
基于本申请的基本思想,以下结合附图和具体实施例来描述本申请的具体实现过程。
图1为本申请一实施例提供的应用本申请技术方案的网络场景示例图。客户端Client可位于私网内,转发设备A(如路由器/交换机等)和转发设备B(如路由器/交换机等)之间建立有某种协议类型的隧道,客户端Client与另一端的服务端Server之间通过转发设备A和转发设备B之间的隧道传输报文,Client与Server之间建立TCP连接。
图2为本申请一实施例提供的TCP原始报文经隧道协议封装的报文结构示意图。Client发送给Server的原始报文的源地址为Client-IP,目的地址为Server-IP,原始报文在发送到路由装置A后,由路由装置A对原始报文进行隧道协议封装,通过隧道Tunnel将报文传送给路由装置B,路由装置B对报文解封装后,再将原始报文转发给Server。路由器A在对报文进行隧道协议封装时,会在原始报文外层封装隧道头Tunnel Header,然后再封装IP头即封装隧道源IP地址IPA和隧道目的IP地址IPB。原始报文经封装后的报文长度变为原始报文长度+隧道协议头部开销+外层IP头部开销,可见当原始报文经隧道封装后的报文长度大于转发接口的IP协议MTU值后,就会导致报文被分片传送。
以下以几种常用的隧道协议类型为例说明原始报文在封装后报文长度的变化,由于不同的协议类型或协议版本隧道头的长度可能有变化,因此,本申请此处所给示例仅用于解释说明,不应理解为是对本申请保护范围的限制。
(1)通用路由封装(Generic Routing Encapsulated,GRE)隧道,GRE头是4到20字节(Byte,B)长度,外层IP头是20B长度,因此在GRE隧道封装后报文整体长度最多增加40B,即GRE隧道头部开销最大值为40字节。
(2)虚拟扩展局域网(Virtual eXtensible Local Area Network,VXLAN)隧道,封装在VXLAN头里面的MAC地址是14B,VXLAN头是8B,UDP头是8B,外层IP头是20B,因此在隧道封装后报文整体长度最多增加50B,即VXLAN隧道头部开销最大值为50字节。
(3)IPIP隧道即IP隧道(IP tunneling),外层IP头是20B,因此在隧道封装后报文整体长度最多增加20B,即IPIP隧道头部开销最大值为20字节。
图3为本申请一实施例提供的支持自适应修改最大分段大小MSS的路由装置的模块结构示意图。该路由装置中负责控制平面功能的模块包括TCP协议栈模块和路由模块等,TCP协议栈负责处理控制平面的协议报文,路由模块负责将路由下发给数据平面,数据平面根据转发表项进行报文转发。
图4为本申请一实施例中实现TCP MSS自适应修改的过程示意图。该示例中,客户端和服务端之间的链路上可能会经过多个转发设备,转发设备可以是路由装置/路由器或交换装置/交换机,为描述方便,图中仅示例了链路上的两个转发设备1和转发设备2,转发设备1和转发设备2之间可建立或也可不建立隧道,转发设备根据自适应地修改TCP协议握手报文中的MSS值以确保双方协商的MSS值为双向路径上的最小MSS,从而保证双方双向发送的报文在链路上不会被分片。
TCP协议建立连接的三次握手协商过程中,会进行MSS协商,在握手报文中携带MSS选项,其选项值表示发送端最大能接受的分段大小。
结合图1的示例网络场景,图4中的客户端Client和服务端Server可能通过运营商提供的公网实现私有网络的互联互通,转发设备1和转发设备2之间建立某种协议隧道(例如GRE、VxLAN等),在运营商网络与私网侧路由装置之间可能还部署有网络地址转换(Network Address Translation,NAT)设备以执行端口地址转换等操作,为简化描述,图4仅示例出隧道两端的转发设备即转发设备1和转发设备2,由于是协商整个链路的MSS,因此客户端和服务端上的任意一台转发设备都需要执行本申请提供的自适应修改MSS的操作,本文不做过于繁杂的描述。
以下结合图4对建立TCP连接握手协商过程及转发设备自适应修改MSS值的方法步骤进行详细描述:
S401.客户端向服务端发送TCP SYN报文,报文中携带MSS值为客户端MSS值MSS-C1;
本申请将TCP协议为建立连接发送的TCP同步(TCP SYN)报文、TCP同步响应(TCPSYN ACK)报文以及TCP确认(TCP ACK)报文称为三次握手报文。客户端向服务端发送的TCPSYN报文的源目的地址为客户端和服务端的私网地址,如图2的示例,源地址为Client-IP,目的地址为Server-IP。
客户端Client发出的TCP SYN报文中Option选项字段填充的MSS字段值为客户端最大能接收的分段大小MSS-C1,该值通常为客户端配置的最大传输单元MTU值减去IP头和TCP头的长度即:
MSS-C1=客户端MTU值-IP头大小-TCP头大小。
S402.转发设备1根据TCP SYN报文中的目的IP地址查询转发表获得下一跳出端口对应的隧道类型,自适应修改TCP SYN报文中的MSS值为MSS-C2;
图4的示例中,转发设备1与转发设备2之间建立有隧道,转发设备1通过出端口P2将TCP SYN报文通过隧道转发给转发设备2。本申请对转发设备的TCP协议栈进行了改进,转发设备1在接收到TCP SYN原始报文后,判断接收到的IP原始报文是否为TCP报文,如果是则进一步再判断是否为TCP SYN报文,在转发设备判定报文为TCP SYN报文后,通过TCP协议栈根据报文目的IP地址查询转发表获得下一跳的出端口,如果出端口对应隧道接口则进一步获取隧道类型,然后转发设备1根据出端口P2及隧道类型对TCP SYN报文中的MSS值进行自适应修改,所述自适应修改是指转发设备根据报文出端口的MTU值及隧道类型将TCP SYN报文中的MSS修改为除去隧道头部开销,所述的隧道头部开销包括隧道协议头部开销和外层IP头部开销。
以下以几种常见的隧道协议为例,说明转发设备自适应修改TCP SYN报文中Option选项字段中的MSS值的方法,假设在报文进入几种典型的隧道类型之前,转发设备自适应修改后的MSS值为MSS-C2,则几种典型的隧道类型对应的MSS-C2为:
(1)GRE隧道:
MSS-C2=Min(MSS-C1,出端口MTU–GRE协议头长度–外层IP头长度);
其中,Min为取最小值函数,转发设备1会首先计算GRE隧道头部开销,然后比较出端口P2上的GRE隧道头部开销和TCP SYN报文中的MSS值MSS-C1的大小,取最小值替换TCPSYN报文中MSS值,替换后的MSS值以MSS-C2表示。由于GRE协议头长度最大值为20字节,外层IP头开销为20字节,因此GRE隧道头部开销最大值为40字节。
(2)VXLAN隧道:
MSS-C2=Min(MSS-C1,出端口MTU–VXLAN协议头长度–外层IP头长度);
VXLAN隧道协议头部开销最大值为30字节,外层IP头开销为20字节,因此VXLAN隧道头部开销最大值为50字节。
(3)IPIP隧道:
MSS-C2=Min(MSS-C1,出端口MTU–IPIP协议头长度);
IPIP隧道协议头部开销为20字节,因此IPIP隧道头部开销最大值为20字节。
对于其他类型隧道,对应地减去相应的隧道协议头部开销即可。
S403.转发设备1通过隧道将封装后的TCP SYN报文转发给转发设备2,携带的MSS值为MSS-C2;
S404.转发设备2进行隧道解封装,自适应修改TCP SYN报文MSS值为MSS-C3;
图4的示例中,转发设备2为隧道端点,转发设备2对报文解封装后得到TCP SYN报文,假设通过端口P4将报文转发给服务端,则转发设备2基于出端口P4的MTU对TCP SYN报文中的MSS值进行自适应修改,将MSS值修改为MSS-C3,MSS-C3为P4端口的MTU值与MSS-C2中的最小值即:
MSS-C3=Min(MSS-C2,出端口MTU-TCP头长度-IP头长度);
S405.转发设备2通过出端口将TCP SYN报文转发给服务端,携带的MSS值为MSS-C3;
S406.服务端比较接收到的TCP SYN报文中的MSS值MSS-C3和服务端本地的MSS值,选择最小的MSS值向客户端发送TCP SYN ACK报文;
服务端Server收到客户端Client发送的TCP SYN报文后,会回送TCP SYN ACK应答报文。服务端从TCP SYN报文中获取MSS-C2,然后比较服务端本地的MSS值与MSS-C2值,取其中的最小值作为TCP SYN ACK报文中携带的MSS值即MSS-min1。
服务端本地的MSS值MSS-S=服务端出端口MTU值-IP头大小-TCP头大小。若MSS-C2值小于等于MSS-S值,则服务端将MSS-C2确定为MSS-min1,反之则将MSS-S确定为MSS-min1。
S407.服务端向客户端发送TCP SYN ACK报文,其中携带MSS-min1。
S408~S411的处理步骤是S401~S404的相反过程,原理类似。
转发设备2在通过出端口P3对应的隧道转发TCP SYN ACK报文前,根据出端口的MTU值和隧道类型自适应修改报文中MSS值为MSS-min2:
MSS-min2=Min(MSS-min1,出端口MTU–隧道协议头部开销)
转发设备1进行隧道解封装后,在通过出端口P1转发TCP SYN ACK报文前,根据出端口的MTU值自适应修改报文中MSS值为MSS-min3:
MSS-min3=Min(MSS-min2,出端口MTU-TCP头长度-IP头长度);
S412.客户端接收到TCP SYN ACK报文后,从报文中获取MSS值即MSS-min3,向服务端发送TCP ACK报文,在TCP ACK报文中携带MSS-min3;
由于MSS-min3已经是探明的整个链路的最小MSS值,因此MSS-min3在原路再次经过转发设备1和转发设备2时,TCP ACK报文中的MSS不会被修改。为了提高报文转发效率,转发设备可不对TCP ACK报文中的MSS进行自适应修改。
在服务端接收到TCP ACK报文后,两端的TCP握手协商过程就结束了,两端即可使用TCP ACK报文中的MSS-min3值作为协商成功的MSS值进行双向的报文传输。
图5为本申请一实施例提供的用于实现本申请提供的自适应修改最大分段大小的方法的电子设备结构示意图,该设备500包括:诸如中央处理单元(CPU)的处理器510、通信总线520、通信接口540以及存储器530。其中,处理器510与存储器530可以通过通信总线520相互通信。存储器530内存储有计算机程序,当该计算机程序被处理器510执行时即可实现本申请提供的自适应修改最大分段大小方法中的一个或多个步骤的功能。
存储器是指基于某种存储介质用于存储计算机程序和/或数据的装置,它可以是易失性存储器(Volatile Memory,VM,常称为内存),也可以是非易失性存储器(Non-Volatile Memory,NVM)。内存是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统和其它运行程序的临时数据的存储介质。内存可以是同步动态随机存取内存(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存取内存(Dynamic Random Access Memory,DRAM)等。非易失性存储器是指采用持久化存储介质的存储器,具有容量大和可持久保存数据的特性,可以是存储级存储器(StorageClass Memory,SCM)、固态硬盘(Solid State Disk,SSD)、NAND闪存、磁盘等。SCM是业界对介于内存与闪存之间的新存储介质的统称,是一种同时结合持久化存储特性与内存特性的复合型储存技术,存取速度慢于DRAM快于SSD硬盘。
处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
应当认识到,本申请的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性(或称为非持久性)存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本申请描述的过程的操作,除非本申请另外指示或以其他方式明显地与上下文矛盾。本申请描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本申请的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本申请所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本申请所述的方法和技术编程时,本申请还包括计算机本身。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种自适应修改最大分段大小的方法,其特征在于,该方法应用于转发设备上,该方法包括:
在接收到TCP握手报文时,通过TCP协议栈获取报文下一跳出端口对应的隧道类型;
对所述TCP握手报文中的最大分段大小MSS值做自适应修改:即比较所述出端口的最大传输单元MTU值减去隧道头部开销后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值;
将经隧道封装后的所述TCP握手报文通过隧道转发。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述TCP握手报文下一跳出端口不对应隧道接口,则对所述TCP握手报文中的最大分段大小MSS值做自适应修改的方法为:
比较所述出端口的最大传输单元MTU值减去TCP头大小和IP头大小后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值。
3.根据权利要求1所述的方法,其特征在于,
所述隧道头部开销包括隧道协议头部开销和外层IP头部开销;
所述隧道类型为通用路由封装GRE隧道,虚拟扩展局域网VXLAN隧道或IPIP隧道。
4.根据权利要求1所述的方法,其特征在于,
所述TCP握手报文中TCP SYN报文携带的MSS值为发起TCP连接的源端的MSS值;
所述TCP握手报文中TCP SYN ACK报文携带的MSS值为TCP连接的目的端从TCP SYN报文携带的MSS值和本地MSS值中选择的最小值;
所述TCP握手报文中的TCP ACK报文中携带的MSS值为协商成功的整个链路的最小MSS值。
5.一种自适应修改最大分段大小的装置,其特征在于,该装置应用于转发设备上,该装置包括:
接收获取模块,用于接收TCP握手报文,并通过TCP协议栈获取报文下一跳出端口对应的隧道类型;
自适应修改模块,用于对所述TCP握手报文中的最大分段大小MSS值做自适应修改:即比较所述出端口的最大传输单元MTU值减去隧道头部开销后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值;
转发模块,用于将经隧道封装后的所述TCP握手报文通过隧道转发。
6.根据权利要求5所述的装置,其特征在于,
所述自适应修改模块还用于在所述TCP握手报文下一跳出端口不对应隧道接口时,比较所述出端口的最大传输单元MTU值减去TCP头大小和IP头大小后的值与报文携带的MSS值的大小,选择最小值替换所述TCP握手报文中的MSS值。
7.根据权利要求5所述的装置,其特征在于,
所述隧道头部开销包括隧道协议头部开销和外层IP头部开销;
所述隧道类型为通用路由封装GRE隧道,虚拟扩展局域网VXLAN隧道或IPIP隧道。
8.根据权利要求5所述的装置,其特征在于,
所述TCP握手报文中TCP SYN报文携带的MSS值为发起TCP连接的源端的MSS值;
所述TCP握手报文中TCP SYN ACK报文携带的MSS值为TCP连接的目的端从TCP SYN报文携带的MSS值和本地MSS值中选择的最小值;
所述TCP握手报文中的TCP ACK报文中携带的MSS值为协商成功的整个链路的最小MSS值。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
存储介质,用于存放计算机程序;
处理器,用于执行存储介质上所存放的计算机程序时,实施权利要求1-4中任一项所述的方法步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实施如权利要求1至4中任一项所述的方法。
CN202310255398.2A 2023-03-09 2023-03-09 自适应修改最大分段大小的方法、装置、设备及存储介质 Pending CN116418854A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310255398.2A CN116418854A (zh) 2023-03-09 2023-03-09 自适应修改最大分段大小的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310255398.2A CN116418854A (zh) 2023-03-09 2023-03-09 自适应修改最大分段大小的方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116418854A true CN116418854A (zh) 2023-07-11

Family

ID=87054152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310255398.2A Pending CN116418854A (zh) 2023-03-09 2023-03-09 自适应修改最大分段大小的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116418854A (zh)

Similar Documents

Publication Publication Date Title
US10694005B2 (en) Hardware-based packet forwarding for the transport layer
US8521812B2 (en) Accessing local network resources in a multi-interface system
CN107534605B (zh) 用于选择网络连接集中器的方法
US9923835B1 (en) Computing path maximum transmission unit size
US11824685B2 (en) Method for implementing GRE tunnel, access point and gateway
US9445384B2 (en) Mobile device to generate multiple maximum transfer units and data transfer method
WO2016162501A1 (en) Method and system for the scheduling of packets in a bundling scenario based on tcp tunnels and native tcp information
CN108282391B (zh) 一种vxlan报文分片方法和装置
WO2017213745A1 (en) Self-protecting computer network router with queue resource manager
Tilli et al. Data plane protocols and fragmentation for 5G
US10819617B1 (en) Loop-back packet for determining operational capabilities of border relay device
US11165893B2 (en) Techniques for packet data conversion
CN113055294A (zh) 报文封装、解封装方法、装置、存储介质及电子装置
CN113965518A (zh) 一种报文处理的方法及设备
CN115514828A (zh) 数据传输方法及电子设备
CN116418854A (zh) 自适应修改最大分段大小的方法、装置、设备及存储介质
US20190097920A1 (en) Quality of service for data transmission
US11870685B2 (en) Packet capsulation method and packet capsulation device
WO2020048622A1 (en) A method, apparatus & computer program
CN114424599B (zh) 用于传输基于会话的包的方法和系统
WO2023108492A1 (zh) 通信的方法和装置
CN117081990B (zh) 一种mpls流量代理方法、系统、设备及存储介质
CN110601948B (zh) 网络带宽叠加的方法、装置及网关设备
CN116366591A (zh) 通用路由封装报文端口地址转换传输方法、装置和设备
CN116939033A (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