CN112866133B - 用于获取共用最大分段大小mss的方法及装置 - Google Patents
用于获取共用最大分段大小mss的方法及装置 Download PDFInfo
- Publication number
- CN112866133B CN112866133B CN201911177102.XA CN201911177102A CN112866133B CN 112866133 B CN112866133 B CN 112866133B CN 201911177102 A CN201911177102 A CN 201911177102A CN 112866133 B CN112866133 B CN 112866133B
- Authority
- CN
- China
- Prior art keywords
- mss
- mtu
- parameter
- tcp connection
- interface
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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]
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Abstract
本申请公开了一种用于获取共用最大分段大小MSS的方法、装置及存储介质,属于通信技术领域。在本申请中,第一设备可以在传输控制协议TCP连接建立后获取第一参数,根据第一参数来获得第一MSS,进而根据第一MSS和第二MSS来获得第一共用MSS。在TCP连接建立之后,当该TCP连接的参数发生变化时,第一设备根据变化的参数对共用MSS进行更新,第一设备可采用更新后的共用MSS来进行报文传输,有助于节省网络资源和提高传输可靠性。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种用于获取共用最大分段大小(maximumsegment size,MSS)的方法及装置。
背景技术
在传输控制协议(transmission control protocol,TCP)中规定了TCP报文的最大长度不允许超过MSS,在传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)中规定了IP报文的最大长度不允许超过最大传输单元(maximum transmission unit,MTU)。基于此,在发送设备和接收设备建立TCP连接的过程中,发送设备可以向接收设备发送建立联机(synchronous,SYN)报文。该SYN报文中可以携带发送设备的MSS。接收设备在接收到SYN报文之后,可以向发送设备发送建立联机确认(synchronous_acknowledgement,SYN_ACK)报文。该SYN_ACK报文中携带接收设备的MSS。接收设备可以将发送设备的MSS和自身的MSS进行比较,将其中的最小值作为与发送设备的共用MSS。发送设备在接收到SYN_ACK报文之后,可以将接收设备的MSS和自身的MSS进行比较,同样将其中的最小值作为与接收设备的共用MSS。在两个设备协商确定出共用MSS后,发送设备和接收设备将根据该共用MSS进行报文传输,可导致资源浪费或者丢包等问题。
发明内容
本申请提供了一种用于获取共用MSS的报文的方法、装置及计算机可读存储介质,有助于节省网络资源和提高传输可靠性。所述技术方案如下:
第一方面,提供了一种用于获取共用MSS的方法,所述方法包括:第一设备在建立传输控制协议TCP连接后获取第一参数,所述第一参数与所述TCP连接对应;所述第一设备根据所述第一参数获得第一MSS;所述第一设备根据第一MSS和第二MSS,获得第一共用MSS,所述第二MSS是第二设备发送的MSS。
第一设备可以在TCP连接建立后获取第一参数,根据第一参数来获得第一MSS,进而根据第一MSS和第二MSS来获得第一共用MSS。也即,在TCP连接建立之后,当该TCP连接的参数发生变化时可以触发设备进行MSS更新,这样,后续采用更新后的共用MSS来进行报文传输,可以避免一直采用建立TCP连接时协商确定的MSS进行报文传输所导致的资源浪费、丢包或TCP吞吐量下降等问题。
可选地,所述第一参数包括接口对应的最大传输单元MTU,所述接口为所述TCP连接对应的接口。在此基础上,所述第一设备可以根据第二参数和所述接口对应的MTU,获得所述第一MSS,所述第二参数为建立所述TCP连接时获取的缓冲区的长度,所述第一MSS为所述第二参数和所述MTU对应的数据长度中的最小值。
可选地,所述第一参数包括接口对应的MTU和缓冲区的长度,所述接口为所述TCP连接对应的接口。在此基础上,所述第一设备根据所述接口对应的MTU和所述缓冲区的长度,获得所述第一MSS,所述第一MSS为所述缓冲区的长度和所述MTU对应的数据长度中的最小值。
可选地,所述第一参数包括第一标识,所述第一标识用于标识所述TCP连接对应的接口。在此基础上,所述第一设备根据第三参数和所述第一标识所标识的接口对应的MTU,获得所述第一MSS,所述第三参数为建立所述TCP连接时获取的缓冲区的长度,所述第一MSS为所述第三参数和所述MTU对应的数据长度中的最小值。
可选地,所述第一参数包括缓冲区的长度。在此基础上,所述第一设备根据第四参数和所述缓冲区的长度,获得所述第一MSS,所述第四参数为建立所述TCP连接时获取的接口的MTU,所述接口为所述TCP连接对应的接口,所述第一MSS为所述第四参数和所述缓冲区的长度中的最小值。
可选地,所述第一参数包括第一标识和缓冲区的长度,所述第一标识用于标识所述TCP连接对应的接口。在此基础上,所述第一设备根据所述缓冲区的长度和所述第一标识所标识的接口对应的MTU,获得所述第一MSS,所述第一MSS为所述缓冲区的长度和所述MTU对应的数据长度中的最小值。
可选地,第一设备在获得第一MSS之后,还可以根据所述第一MSS,获得更新报文,所述更新报文包括所述第一MSS;向所述第二设备发送所述更新报文,以使第二设备可以根据该更新报文中的第一MSS,同步更新共用MSS。
可选地,当第一设备和第二设备之间还存在用于转发报文的转发设备,也即第三设备时,在第一设备获得第一共用MSS之后,第一设备可以根据第一共用MSS获得数据报文,进而向第三设备发送该数据报文。相应地,第三设备在接收到该数据报文之后,如果该数据报文的长度大于第三设备的MTU,则第三设备可以向第一设备发送第三设备的MTU。此时,所述第一设备接收第三设备发送的第三设备的MTU,根据第三设备的MTU获得第三MSS,并根据所述第三MSS和所述第一共用MSS,获得第二共用MSS。其中,所述第二共用MSS为所述第三MSS和所述第一共用MSS中的最小值。所述第三设备为所述第一设备与所述第二设备所在路径上的设备,所述第三设备的MTU为所述第三设备上与所述TCP连接对应的接口的MTU。这样,可以保证最终的第二共用MSS与第三设备的MTU相适配。
可选地,第一设备在获得第二共用MSS之后,可以根据第二共用MSS通过第三设备向第二设备再次发送数据报文,该数据报文可以按照第二共用MSS分段。此时,第三设备即可以成功向第二设备转发该数据报文之后。
第二方面,提供了一种用于获取共用MSS的方法,所述方法包括:第二设备根据第一MSS和第二MSS,获得第一共用MSS,所述第一MSS为第一设备建立传输控制协议TCP连接后获得的MSS,所述第二MSS为所述第二设备建立所述TCP连接时获得的MSS。
也即,第一设备在根据发生变化的参数确定出第一MSS之后,可以将该第一MSS发送至第二设备,第二设备可以根据第一MSS和第二MSS进行共用MSS的更新,以解决相关技术中一直采用建立TCP连接时协商确定的MSS进行报文传输所导致的资源浪费、丢包或TCP吞吐量下降等问题。
可选地,所述第二设备可以通过接收所述第一设备发送的更新报文来获得第一MSS,其中,所述更新报文包括所述第一MSS。
可选地,在第二设备获得第一共用MSS之后,所述第二设备还可以接收第三设备发送的多个分片报文,所述第三设备为所述第一设备与所述第二设备所在路径上的设备,所述多个分片报文为根据所述第三设备的MTU对第一设备发送的报文进行分片得到,所述第三设备的MTU为所述第三设备上与所述TCP连接对应的接口的MTU;根据所述多个分片报文,获得第三MSS,向第一设备发送所述第三MSS,以使所述第一设备根据所述第三MSS和所述第一共用MSS,获得第二共用MSS,所述第二共用MSS为所述第三MSS和所述第一共用MSS中的最小值。
第三方面,提供了一种用于获取共用MSS的装置,所述用于获取共用MSS的装置具有实现上述第一方面或第二方面中的用于获取共用MSS的方法行为的功能。所述用于获取共用MSS的装置包括至少一个模块,该至少一个模块用于实现上述第一方面或第二方面所提供的用于获取共用MSS的方法。
第四方面,提供了一种用于获取共用MSS的装置,所述用于获取共用MSS的装置的结构中包括处理器和存储器,所述存储器用于存储支持该装置执行上述第一方面或第二方面所提供的用于获取共用MSS的方法的程序,以及存储用于实现上述第一方面或第二方面所提供的用于获取共用MSS的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的用于获取共用MSS的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的用于获取共用MSS的方法。
上述第二方面、第三方面、第四方面、第五方面和第六方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果至少包括:第一设备可以在TCP连接建立后根据变化后的连接参数,比如第一参数,更新共用MSS,比如第一共用MSS。这样,能够利用更新后的共用MSS来进行报文传输,有助于避免资源浪费、丢包或TCP吞吐量下降等。
附图说明
图1是本申请实施例提供的用于获取共用MSS的方法所涉及的系统架构图;
图2是本申请实施例提供的一种计算机设备的结构示意图;
图3是本申请实施例提供的一种用于获取共用MSS的方法流程图;
图4是本申请实施例提供的另一种用于获取共用MSS的方法流程图;
图5是本申请实施例提供的另一种用于获取共用MSS的方法流程图;
图6是本申请实施例提供的一种用于获取共用MSS的装置结构示意图;
图7是本申请实施例提供的另一种用于获取共用MSS的装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例所涉及的系统架构进行介绍。
图1是本申请实施例提供的用于获取共用MSS的方法所涉及的系统架构图。如图1中所示,该系统包括第一终端设备101和第二终端设备102。其中,第一终端设备101可以通过有线网络或无线网络与第二终端设备102进行通信。第一终端设备101和第二终端设备102可以建立TCP连接。在建立TCP连接的阶段,第一终端设备101和第二终端设备102可以根据该TCP连接的参数,来协商确定初始的共用MSS。在建立TCP连接之后,当第一终端设备101的该TCP连接的参数发生变化时,第一终端设备101可以采用本申请实施例提供的用于获取共用MSS的方法,根据变化后的连接参数来更新共用MSS。相应地,第一终端设备101也可以通知第二终端设备102更新共用MSS。同理,如果第二终端设备102的该TCP连接的参数发生变化,同样可以采用本申请实施例提供的方法来用于获取共用MSS,并通知第一终端设备101进行共用MSS的更新。其中,第一终端设备101和第二终端设备102可以为平板电脑、台式电脑、手机等智能终端。
举例说明,该系统中还可以包括转发设备103。第一终端设备101和第二终端设备102可以通过该转发设备103进行通信。该转发设备103可以将来自第一终端设备101的报文转发至第二终端设备102,该转发设备103还将来自第二终端设备102的报文转发至第一终端设备101。其中,该转发设备103可以为交换机、路由器等具有转发能力的网络设备。
图2是本申请实施例提供的一种计算机设备的结构示意图。图1中的第一终端设备和第二终端设备均可以通过图2所示的计算机设备来实现。参见图2,该计算机设备包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线202可包括一通路,在上述组件之间传送信息。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
通信接口204,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
作为一种实施例,计算机设备可以包括多个处理器,例如图2中所示的处理器201和处理器205。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。处理器201可以包括一个或多个CPU,例如图2中所示的CPU0和CPU1。
作为一种实施例,计算机设备还可以包括输出设备206和输入设备207。输出设备206和处理器201通信,可以以多种方式来显示信息。例如,输出设备206可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备207和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备207可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、通信设备或者嵌入式设备。本发明实施例不限定计算机设备的类型。
其中,存储器203用于存储执行本申请方案的程序代码,并由处理器201来控制执行。处理器201用于执行存储器203中存储的程序代码208。程序代码208中可以包括一个或多个软件模块。图1中所示的第一终端设备或第二终端设备可以通过处理器201以及存储器203中的程序代码208中的一个或多个软件模块,来实现MSS的更新。
接下来对本申请实施例提供的用于获取共用MSS的方法进行详细的解释说明。
图3是本申请实施例提供的一种用于获取共用MSS的方法的流程图。该用于获取共用MSS的方法可以应用于第一设备和第二设备。第一设备可以为图1所示的系统中的第一终端设备。第二设备可以为图1所示的系统中的第二终端设备。参见图3,该方法包括:
步骤301:第一设备在建立TCP连接后获取第一参数,第一参数与TCP连接对应。
举例说明,第一设备在与第二设备建立TCP连接时,可以获得与第二设备建立TCP连接的接口对应的MTU、该接口的接口标识以及该TCP连接所分配的缓冲区的长度。第一设备可以根据该接口的MTU计算得到第一数值,将第一数值和缓冲区的长度中的最小值作为第一设备的初始MSS。同理,第二设备也可以参考上述方法,获得自身的初始MSS。第一设备可以向第二设备发送第一设备的初始MSS。第二设备可以向第一设备发送第二设备的初始MSS。两个设备中的任一设备均可从自身的初始MSS和对方发送的初始MSS中取最小值,得到初始共用MSS。该初始共用MSS即为第一设备和第二设备在建立TCP连接时协商得到的共用MSS。该TCP连接所分配的缓冲区是指用于缓存通过该TCP连接接收到的数据的区域,也即接收缓冲区。不同的TCP连接对应不同的缓冲区。
举例说明,第一设备与第二设备建立TCP连接之后,第一设备上的该TCP连接的参数可能会发生变化,例如,第一设备上与第二设备建立TCP连接的接口发生变化,或者该TCP连接所分配的缓冲区的长度发生变化。建立该TCP连接的接口发生变化包括:该接口的标识发生变化,和/或该接口的MTU发生变化。第一设备可以获取发生变化的参数(也即第一参数)。
在一种实现方式中,第一设备可以通过接收事件通知的方式(订阅上报的方式)来获取该TCP连接的发生变化的参数。当该TCP连接的参数发生变化时,可以触发发送事件通知给第一设备。第一设备在接收到该事件通知之后,可以获取变化后的参数(第一参数)。其中,该事件通知包括第一参数,第一设备可以从该事件通知中获取第一参数。
在另一种实现方式中,第一设备也可以监测该TCP连接的参数是否发生变化。第一设备可以通过轮询方式来检测该TCP连接的参数是否发生变化。当第一设备检测到该TCP连接的参数发生变化时,第一设备可以获取变化后的参数(第一参数)。
步骤302:第一设备根据第一参数获得第一MSS。
由前述步骤301可知,TCP连接的参数可以包括该TCP连接的接口的标识、该接口的MTU以及该TCP连接所分配的缓冲区的长度。发生变化的参数可能是上述参数中的一种或多种。第一参数可能包括发生变化的接口的MTU,发生变化的缓冲区的长度和发生变化的接口的标识中的一个或多个。
第一种情况:第一参数包括接口对应的MTU,第一设备可以根据第二参数和该MTU,获得第一MSS。其中,第二参数为建立TCP连接时获取的缓冲区的长度,第一MSS为第二参数和第一参数(接口对应的MTU)对应的数据长度的最小值。其中,TCP连接建立后,接口对应的MTU发生变化,该TCP连接的接口和缓冲区的长度并未发生变化。第一设备在获取到变化后的MTU之后,可以将变化后的MTU减去头部的长度,比如TCP头部的长度和IP头部的长度,得到该变化后的MTU对应的数据长度。第一设备还可以获取缓冲区的长度(建立TCP连接时获取的缓冲区的长度)。其中,第一设备可以实时获取缓冲区的长度(建立TCP连接时获取的缓冲区的长度),也可以获取存储的缓冲区的长度。该存储的缓冲区的长度是指在建立TCP连接时获取并存储的缓冲区的长度。第一设备可以从第一参数(接口对应的MTU)对应的数据长度和建立TCP连接时获取的缓冲区的长度中取最小值,将该最小值作为第一MSS。
其中,建立TCP连接后获取的接口的MTU不等于建立TCP连接时获取的接口的MTU。如果建立TCP连接后获取的接口的MTU大于建立TCP连接时获取的接口的MTU,建立TCP连接后获取的接口的MTU对应的数据长度小于建立TCP连接时获取的缓冲区的长度,则建立TCP连接时获取的接口的MTU对应的数据长度小于建立TCP连接时获取的缓冲区的长度,即建立TCP连接时确定的第一设备的初始MSS等于初始的MTU对应的数据长度。而建立TCP连接后获取的接口的MTU小于建立TCP连接时获取的缓冲区的长度,因此,第一MSS将等于建立TCP连接后获取的接口的MTU对应的数据长度,第一MSS相较于建立TCP连接时第一设备的初始MSS增大了。
如果建立TCP连接后获取的接口的MTU小于建立TCP连接时获取的接口的MTU,且建立TCP连接后获取的接口的MTU小于建立TCP连接时获取的缓冲区的长度,则第一MSS等于建立TCP连接后获取的接口的MTU对应的数据长度。由于在建立TCP连接时确定的第一设备的初始MSS可能等于建立TCP连接时获取的接口的MTU对应的数据长度或建立TCP连接时获取的缓冲区的长度,而建立TCP连接后获取的接口的MTU对应的数据长度小于建立TCP连接时获取的接口的MTU对应的数据长度或建立TCP连接时获取的缓冲区的长度,因此,第一MSS小于第一设备的初始MSS。
如果建立TCP连接后获取的接口的MTU大于建立TCP连接时获取的接口的MTU,且建立TCP连接后获取的接口的MTU对应的数据长度大于建立TCP连接时获取的缓冲区的长度,则第一MSS等于建立TCP连接时获取的缓冲区的长度。由于在建立TCP连接时确定的第一设备的初始MSS可能等于建立TCP连接时获取的MTU对应的数据长度,也可能等于建立TCP连接时获取的缓冲区的长度,因此,第一MSS大于第一设备的初始MSS。
如果建立TCP连接后获取的接口的MTU小于建立TCP连接时获取的接口的MTU,且建立TCP连接后获取的接口的MTU对应的数据长度大于建立TCP连接时获取的缓冲区的长度,则建立TCP连接时获取的接口的MTU对应的数据长度大于建立TCP连接时获取的缓冲区的长度,第一设备的初始MSS等于建立TCP连接时获取的缓冲区的长度。而建立TCP连接后获取的接口的MTU对应的数据长度大于建立TCP连接时获取的缓冲区的长度,因此,第一MSS等于建立TCP连接时获取的缓冲区的长度,第一MSS相较于第一设备的初始MSS没有变化。
综上可知,在接口的MTU变化的情况下,第一MSS可能等于第一设备的初始MSS,或者,第一MSS将会由于接口的MTU的增大而增大,或者由于接口的MTU的减小而减小。
第二种情况:第一参数包括接口对应的MTU和缓冲区的长度,第一设备可以根据接口对应的MTU和缓冲区的长度,获得第一MSS。其中,第一MSS为缓冲区的长度和接口对应的MTU所对应的数据长度中的最小值。其中,TCP连接建立后,接口对应的MTU和缓冲区的长度均发生变化。第一设备在获取到变化后的MTU和变化后的缓冲区的长度之后,可以将变化后的MTU减去头部的长度,比如TCP头部的长度和IP头部的长度,得到变换后的MTU对应的数据长度。之后,第一设备可以从变化后的MTU对应的数据长度和变化后的缓冲区的长度这两个值中取最小值,将该最小值作为第一MSS。其中,建立TCP连接后获取的接口的MTU(第一参数包括的接口对应的MTU)不等于建立TCP连接时获取的接口的MTU,且建立TCP连接后获取的缓冲区的长度(第一参数包括的缓冲区的长度)不等于建立TCP连接时获取的缓冲区的长度。
举例说明,在接口对应的MTU和缓冲区的长度均发生变化的情况下,第一MSS相较于第一设备的初始MSS可能会由于接口的MTU的增大而增大,也可能由于接口的MTU的减小而减小,或者,也可能由于缓冲区的长度的增大而增大,也可能由于缓冲区的长度的减小而减小。
第三种情况:第一参数包括第一标识,第一标识用于标识TCP连接对应的接口。第一设备可以根据第三参数和第一标识所标识的接口对应的MTU,获得第一MSS。其中,第三参数为建立TCP连接时获取的缓冲区的长度。第一MSS为第三参数和第一标识所标识的接口对应的MTU对应的数据长度中的最小值。其中,TCP连接建立后,TCP连接的接口发生变化,缓冲区的长度未发生变化。由于TCP连接的接口发生了变化,因此,接口对应的MTU可能与建立TCP连接时的接口对应的MTU不同,也可能相同。第一设备可以获取到变化后的接口(第一标识所标识的接口)的MTU,将变化后的接口对应的MTU减去头部的长度,例如,减去TCP头部的长度和IP头部的长度,得到变化后的接口的MTU所对应的数据长度。第一设备还可以获取缓冲区的长度(TCP连接建立时获取的缓冲区的长度)。第一设备可以从第一标识所标识的接口的MTU所对应的数据长度和建立TCP连接时获取的缓冲区的长度中取最小值,将该最小值作为第一MSS。其中,建立TCP连接后获取的第一标识与建立TCP连接时获取的TCP连接的接口的标识不同。
举例说明,在接口变化的情况下,由于接口的变化引起的是接口对应的MTU的变化,而缓冲区的长度未发生变化,因此,参见第一种情况中的说明可知,第一MSS相较于第一设备的初始MSS可能并未发生变化,或者,第一MSS可能会由于变化后的接口的MTU的增大而增大,也可能会由于变化后的接口的MTU的减小而减小。
第四种情况:第一参数包括缓冲区的长度。第一设备可以根据第四参数和该缓冲区的长度,获得第一MSS。其中,第四参数为建立TCP连接时获取的接口的MTU,第一MSS为第四参数对应的数据长度和缓冲区的长度中的最小值。其中,TCP连接建立后,缓冲区的长度发生变化,该TCP连接的接口以及接口对应的MTU均未发生变化。第一设备可以获取变化后的缓冲区的长度。第一设备还可以获取接口的MTU(建立TCP连接时获取的接口的MTU),将建立TCP连接时获取的MTU减去头部的长度,比如TCP头部的长度和IP头部的长度,得到建立TCP连接时获取的MTU对应的数据长度。从建立TCP连接时获取的MTU对应的数据长度和建立TCP连接后获取的缓冲区的长度这两个值中取最小值,将该最小值作为第一MSS。其中,建立TCP连接后获取的缓冲区的长度(第一参数)不等于建立TCP连接时获取的缓冲区的长度。
举例说明,在缓冲区长度发生变化的情况下,由于TCP连接的接口和接口的MTU未发生变化,所以,第一MSS相较于第一设备的初始MSS可能并未发生变化,也可能由于缓冲区的长度的增大而增大,也可能由于缓冲区的长度的减小而减小。
第五种情况:第一参数包括第一标识和缓冲区的长度。第一设备可以根据缓冲区的长度和第一标识所标识的接口对应的MTU,获得第一MSS。其中,第一MSS为第一参数包括的缓冲区的长度和第一标识所标识的接口的MTU对应的数据长度中的最小值。其中,TCP连接建立后,该TCP连接的接口和缓冲区的长度均发生了变化。由于TCP连接的接口发生了变化,因此,变化后的接口的MTU可能与建立TCP连接时获取接口的MTU不同,也可能相同。第一设备可以获取变化后的接口(第一标识所标识的接口)的MTU,将变化后的接口的MTU减去头部长度,比如TCP头部的长度和IP头部的长度,得到变化后的接口的MTU对应的数据长度。从变化后的接口的MTU对应的数据长度和变化后的缓冲区的长度(第一参数中包括的缓冲区的长度)中取最小值,将该最小值作为第一MSS。其中,建立TCP连接后获取的第一标识与建立TCP连接时获取的TCP连接的接口的标识不同。并且,建立TCP连接后获取的缓冲区的长度(第一参数包括的缓冲区的长度)不等于建立TCP连接时获取的缓冲区的长度。
举例说明,TCP连接的接口发生变化可能会引起MTU的变化,也可能不会引起MTU的变化,也就是说,虽然TCP连接的接口发生了变化,但是变化后的接口对应的MTU可能与之前的接口的MTU相同,也可能不同。
如果接口的变化引起了接口的MTU的变化,则由于接口的MTU和缓冲区的长度均发生了变化,第一MSS相较于第一设备的初始MSS,可能会由于接口的MTU的增大而增大,也可能由于接口的MTU的减小而减小,或者,可能由于缓冲区的长度的增大而增大,也可能由于缓冲区的长度的减小而减小。
如果接口的变化未引起MTU的变化,则在缓冲区的长度发生变化的情况下,第一MSS相较于第一设备的初始MSS可能并未发生变化,也可能由于缓冲区的长度的增大而增大,或者可能由于缓冲区的长度的减小而减小。
步骤303:第一设备根据第一MSS和第二MSS,获得第一共用MSS。
由前述步骤301可知,在建立TCP连接的阶段,第一设备可以将自身的初始MSS发送至第二设备,第二设备可以将自身的初始MSS发给第一设备。第一设备在接收到第二设备发送的初始MSS后,可以存储该初始MSS,该初始MSS即为第二MSS。
在本步骤中,在获得第一MSS之后,第一设备可以从第一MSS和第二MSS中取最小值,将该最小值作为第一共用MSS。之后,第一设备可以用该第一共用MSS来替换当前存储的共用MSS,从而完成共用MSS的更新。其中,第一共用MSS即为后续第一设备用来向第二设备发送数据报文所采用的MSS。
由前述步骤302可知,第一MSS可能会由于第一参数相较于在建立TCP连接时的参数增大而增大,也可能会由于第一参数相较于在建立TCP连接时的参数减小而减小,因此,如果第一MSS小于第二MSS,则第一共用MSS的取值为第一MSS的值,即第一共用MSS与第一MSS的变化趋势相同。其中,如果第一MSS大于第一设备的初始MSS,且第一MSS小于第二MSS,则第一共用MSS大于协商确定的初始共用MSS。相较于相关技术中一直使用初始共用MSS对报文进行分段,本申请实施例提供的方法所获取的第一共用MSS可用于对报文进行分段,能够有效减少报文数量和提高网络带宽的利用率。
如果第一MSS小于第一设备的初始MSS,且第一MSS小于第二MSS,则第一共用MSS小于协商确定的初始共用MSS。相较于相关技术中一直使用初始共用MSS对报文进行分段,本申请实施例提供的方法所获取的第一共用MSS可用于对报文进行分段,能够避免过大的报文产生IP分片或者被接收端,比如第二设备,丢弃。
另外,如果第一MSS由于缓冲区的长度的减小而导致其小于第一设备的初始MSS,且第一MSS小于第二MSS,则第一共用MSS小于协商确定的初始共用MSS。由于缓冲区的长度减小,第一设备将会向第二设备发送携带有减小后的缓冲区的长度的通知消息。第二设备在接收到减小后的缓冲区的长度之后,会将减小后的缓冲区的长度与初始共用MSS进行比较。由于减小后的缓冲区的长度小于第一设备的初始MSS,也小于第二设备的初始MSS,因此,减小后的缓冲区的长度小于初始共用MSS。第二设备在发现减小后的缓冲区的长度小于初始共用MSS之后,如果不对该初始共用MSS进行更新,则第二设备会认为第一设备只是暂时没有能力接收并处理太多的数据报文。在这种情况下,第二设备将会暂停发送数据报文,以等待第一设备通知其缓冲区的长度恢复。如果第二设备未接收到第一设备通知缓冲区的长度恢复的消息,且等待时长超过预设时长,第二设备会继续发送下一个数据报文,在发送下一个数据报文之后,第二设备依然会按照上述方式等待第一设备的通知。由此可见,在第二设备发现第一设备的缓冲区的长度减小且小于初始共用MSS时,如果不对该初始共用MSS进行更新,第二设备将会每隔预设时长才会向第一设备发送一次数据报文,而不是连续的发送数据报文,这样,将会导致TCP吞吐量急剧下降。而如果采用本申请的方法将初始共用MSS更新为第一共用MSS,并通过后续步骤触发第二设备也将该初始共用MSS更新为第一共用MSS,则第二设备在比较减小后的缓冲区的长度与第一共用MSS时,将会发现二者相等,此时,第二设备将不会再通过上述方法等待第一设备通知缓冲区的长度恢复的消息,第二设备也就不会每隔预设时长才向第一设备返回一次数据,避免了TCP吞吐量的下降。
步骤304:第一设备根据第一MSS,获得更新报文,该更新报文包括第一MSS。
在得到第一MSS之后,第一设备可以根据第一MSS,获得更新报文。
其中,该更新报文可以为不携带数据而是携带第一MSS的报文,也即,该更新报文是专门用于通知第二设备进行MSS更新的报文。
可选地,该更新报文也可以是第一设备将要发送的数据报文,也即,可以在将要发送的数据报文中添加第一MSS。在这种情况下,该第一MSS可以携带在该数据报文的报文头中。该数据报文可以是按照第一共用MSS分段得到的第一个数据报文。
步骤305:第一设备向第二设备发送更新报文。
在本申请实施例中,第一设备可以直接和第二设备进行通信,也即,第一设备可以直接将该更新报文发送至第二设备,中间无需经过其他转发设备。
步骤306:第二设备根据第二MSS和更新报文中的第一MSS,获得第一共用MSS。
由前述步骤301可知,在建立TCP连接的阶段,第二设备根据该TCP连接的参数计算得到了一个自身的初始MSS,也即第二MSS。基于此,在本步骤中,第二设备在接收到该更新报文之后,可以从该更新报文中获得第一MSS,并获取在建立TCP连接时获得的第二MSS。之后,第二设备可以从第一MSS和第二MSS中取最小值,将该最小值作为第一共用MSS,将当前存储的共用MSS替换为该第一共用MSS,从而完成MSS的更新。其中,第一共用MSS即为后续第二设备用来向第一设备发送数据报文的MSS。
在本申请实施例中,第一设备可以在TCP连接建立后获取第一参数,根据第一参数来获得第一MSS,进而根据第一MSS和第二MSS来获得第一共用MSS。也即,在TCP连接建立之后,当该TCP连接的参数发生变化时可以触发设备进行MSS更新,这样,后续采用更新后的共用MSS来进行报文传输,可以避免一直采用建立TCP连接时协商确定的MSS进行报文传输所导致的资源浪费、丢包或TCP吞吐量下降等问题。
上述实施例中主要介绍了第一设备和第二设备对共用MSS进行更新的过程。在一些可能的场景中,第一设备和第二设备的路径上还存在转发设备,将该转发设备称为第三设备。也即,第一设备和第二设备之间的传输的报文要经过第三设备来转发。在这种情况下,第一设备和第二设备还可以通过图4所示的实施例中的步骤来进行MSS的更新,以使更新后的MSS同时适配转发设备的MTU。
图4是本申请实施例提供的另一种用于获取共用MSS的方法的流程图。如图4所示,该方法包括如下步骤:
步骤401:第一设备在建立TCP连接后获取第一参数,第一参数与TCP连接对应。
步骤402:第一设备根据第一参数获得第一MSS。
步骤403:第一设备根据第一MSS和第二MSS,获得第一共用MSS。
步骤404:第一设备根据第一MSS,获得更新报文,该更新报文包括第一MSS。
其中,上述步骤401-404的实现方式可以参考前述实施例中的步骤301-304,本申请实施例在此不再赘述。
步骤405:第一设备通过第三设备向第二设备发送该更新报文。
在本申请实施例中,第一设备在得到更新报文之后,可以向第三设备发送该更新报文,第三设备可以将该更新报文转发至第二设备。
步骤406:第二设备根据第二MSS和更新报文中的第一MSS,获得第一共用MSS。
本步骤的实现方式可以参考前述实施例中的步骤306。
步骤407:第一设备根据第一共用MSS获得第一数据报文。
在将初始共用MSS更新为第一共用MSS之后,第一设备接下来可以采用该第一共用MSS来进行数据分段得到第一数据报文。
步骤408:第一设备向第三设备发送该第一数据报文。
步骤409:如果第三设备确定该第一数据报文的长度大于第三设备的MTU,则向第一设备发送第三设备的MTU。
其中,第三设备的MTU是指第三设备上与该TCP连接对应的出接口的MTU。也即,第三设备上与第二设备建立有TCP连接的出接口的MTU。
第三设备在接收到第一数据报文之后,可以判断第一数据报文的长度是否大于第三设备的MTU,也即,判断按照第一共用MSS分段的报文的长度是否与第三设备的MTU适配。
如果第一数据报文的长度大于第三设备的MTU,则说明当前第一设备获得第一共用MSS较大,不适配第三设备的MTU。此时,第三设备可以将该第一数据报文丢弃,并向第一设备发送网际控制报文协议(internet control message protocol,ICMP)报文,该ICMP报文中可以携带第三设备的MTU。
当然,在另一种情况中,如果该第一数据报文的长度不大于第三设备的MTU,则第三设备可以直接将该第一数据报文转发至第二设备。
步骤410:第一设备根据第三设备的MTU和第一共用MSS,获得第二共用MSS。
第一设备在接收到第三设备的MTU之后,可以将第三设备的MTU减去头部的长度,例如TCP头部的长度和IP头部的长度,得到第三MSS。之后,第一设备可以在第三MSS和第一共用MSS中选择最小值,将该最小值作为第二共用MSS。
步骤411:第一设备根据第二共用MSS获得第二数据报文。
举例说明,由于第一设备在发送前述第一数据报文之后,并未收到第二设备返回的确认报文,而是收到了第三设备的ICMP报文,因此,第一设备可以获悉该第一数据报文已被丢弃。在此基础上,在获得第二共用MSS之后,第一设备可以通过该第二共用MSS重新对该第一数据报文进行分段,得到第二数据报文。
步骤412:第一设备通过第三设备向第二设备发送第二数据报文。
举例说明,第一设备可以将第二数据报文发送至第三设备。由于第二数据报文是按照第二共用MSS进行分段得到的,因此,此时的第二共用MSS与第三设备的MTU适配,这样,第三设备会将重新发送的第二数据报文转发至第二设备。
在本申请实施例中,第一设备可以在TCP连接建立后获取第一参数,根据第一参数来获得第一MSS,进而根据第一MSS和第二MSS来获得第一共用MSS。也即,在TCP连接建立之后,当该TCP连接的参数发生变化时,设备可对其自身的MSS进行更新,进而根据更新后的自身的MSS对共用MSS进行更新。后续第一设备可以采用更新后的共用MSS来进行数据报文传输,在采用该更新后的共用MSS进行数据报文传输时,位于第一设备和第二设备之间的用于转发报文的第三设备可以根据该数据报文的长度来确定更新后的共用MSS是否与第三设备的MTU适配,如果不适配,则可以向第一设备发送报文以触发第一设备重新对第一共用MSS进行调整,从而使得调整后的第二共用MSS与第三设备的MTU适配。
举例说明,在一些可能的场景中,当第三设备发现第一数据报文的长度大于第三设备的MTU之后,第三设备也可以不丢弃该第一数据报文,而是根据第三设备的MTU对第一数据报文进行分片,将分片后的报文转发至第二设备,第二设备在接收到分片报文之后,可以根据分片报文确定出第三MSS,进而将第三MSS发送至第一设备,以便第一设备根据该第三MSS和第一共用MSS获得第二共用MSS。也即,参见图5,上述步骤409-412还可以替换为下述步骤413-416:
步骤413:如果第三设备确定该第一数据报文的长度大于第三设备的MTU,则根据第三设备的MTU对第一数据报文进行分片,得到多个分片报文。
其中,第三设备的MTU是指第三设备上与该TCP连接对应的出接口的MTU。也即,第三设备上与第二设备建立有TCP连接的出接口的MTU。
举例说明,如果第一数据报文的长度大于第三设备的MTU,则说明第一数据报文的长度与第三设备的MTU不适配,此时,第三设备可以根据第三设备的MTU对第一数据报文进行IP报文分片,得到多个分片报文,其中,该多个分片报文中长度最大的分片报文的长度等于第三设备的MTU。
步骤414:第三设备向第二设备发送多个分片报文。
步骤415:第二设备根据接收到的多个分片报文,获得第三MSS。
举例说明,第二设备在接收到分片报文之后,根据分片报文的最大长度可以得到第三设备的MTU。第二设备可以将根据第三设备的MTU分片的报文中的TCP头部的长度和IP头部的长度去除之后,获得的报文长度作为第三MSS。
步骤416:第二设备向第一设备发送第三MSS。
举例说明,第二设备可以将第三MSS发送至第三设备,由第三设备将第三MSS转发至第一设备。其中,第二设备可以将第三MSS携带在MSS协商报文中发送至第三设备,第三设备可以将该MSS协商报文转发至第一设备。
可选地,第二设备也可以经由其他转发设备(与第三设备不同)将第三MSS发送至第一设备。或者,第二设备也可能直接将第三MSS发送至第一设备。
步骤417:第一设备根据第三MSS和第一共用MSS,获得第二共用MSS。
举例说明,第一设备可以在第三MSS和第一共用MSS中选择最小值,将该最小值作为第二共用MSS,用第二共用MSS替换第一共用MSS。
参见图6,本申请实施例提供了一种用于获取共用MSS的装置600,该装置600可以集成于前述实施例中的第一设备中,该装置600包括:处理模块601,用于执行前述实施例中的步骤301-303或步骤401-403。
可选地,第一参数包括接口对应的MTU,接口为TCP连接对应的接口,处理模块601具体用于:根据第二参数和接口对应的MTU,获得第一MSS,第二参数为建立TCP连接时获取的缓冲区的长度,第一MSS为第二参数和MTU对应的数据长度中的最小值。
可选地,第一参数包括接口对应的MTU和缓冲区的长度,接口为TCP连接对应的接口,处理模块601具体用于:根据接口对应的MTU和缓冲区的长度,获得第一MSS,第一MSS为缓冲区的长度和MTU对应的数据长度中的最小值。
可选地,第一参数包括第一标识,第一标识用于标识TCP连接对应的接口,处理模块具体用于:根据第三参数和第一标识所标识的接口对应的MTU,获得第一MSS,第三参数为建立TCP连接时获取的缓冲区的长度,第一MSS为第三参数和MTU对应的数据长度中的最小值。
可选地,第一参数包括缓冲区的长度,处理模块601具体用于:根据第四参数和缓冲区的长度,获得第一MSS,第四参数为建立TCP连接时获取的接口的MTU,接口为TCP连接对应的接口,第一MSS为第四参数和缓冲区的长度中的最小值。
可选地,第一参数包括第一标识和缓冲区的长度,第一标识用于标识TCP连接对应的接口,处理模块601具体用于:根据缓冲区的长度和第一标识所标识的接口对应的MTU,获得第一MSS,第一MSS为缓冲区的长度和MTU对应的数据长度中的最小值。
可选地,参见图6,该装置还包括发送模块602;处理模块601还用于根据第一MSS,获得更新报文,更新报文包括第一MSS;发送模块602用于向第二设备发送更新报文。
可选地,参见图6,该装置还包括接收模块603;接收模块603用于接收第三设备发送的第三设备的MTU,第三设备为第一设备与第二设备所在路径上的设备,第三设备的MTU为第三设备上与TCP连接对应的接口的MTU;处理模块601还用于根据第三设备的MTU,获得第三MSS,根据第三MSS和第一共用MSS,获得第二共用MSS,第二共用MSS为第三MSS和第一共用MSS中的最小值。
综上所述,本申请实施例可以在第一设备建立TCP连接后根据变化后的连接参数,比如第一参数,更新共用MSS,比如第一共用MSS。这样,能够利用更新后的共用MSS来进行报文传输,有助于避免资源浪费、丢包或TCP吞吐量下降等。
图7是本申请实施例提供的另一种用于获取共用MSS的装置700,该装置700可以集成于前述实施例中的第二设备中,该装置700包括:处理模块701,用于执行前述实施例中的步骤306或者前述实施例中的步骤406。
可选地,参见图7,该装置还包括第一接收模块702。第一接收模块702用于接收第一设备发送的更新报文,该更新报文包括所述第一MSS。
可选地,参见图7,该装置还包括发送模块703和第二接收模块704;第二接收模块704用于接收第三设备发送的多个分片报文,第三设备为第一设备与第二设备所在路径上的设备,多个分片报文为根据第三设备的MTU对第一设备发送的报文进行分片得到,第三设备的MTU为第三设备上与TCP连接对应的接口的MTU;处理模块701,用于根据多个分片报文,获得第三MSS;发送模块703,用于向第一设备发送第三MSS,以使第一设备根据第三MSS和第一共用MSS,获得第二共用MSS,第二共用MSS为第三MSS和第一共用MSS中的最小值。
在本申请实施例中,第二设备可以根据第一设备在TCP连接建立后获取的第一MSS和自身的第二MSS来获得第一共用MSS。也即,在TCP连接建立之后,当该TCP连接的参数发生变化时可以触发第二设备进行共用MSS的更新,这样,后续采用更新后的共用MSS来进行报文传输,可以避免一直采用建立TCP连接时协商确定的共用MSS进行报文传输所导致的资源浪费、丢包或TCP吞吐量下降等问题。
举例说明:上述实施例提供的用于获取共用MSS的装置在获取共用MSS时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用于获取共用MSS的装置与用于获取共用MSS的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (22)
1.一种用于获取共用最大分段大小MSS的方法,其特征在于,所述方法包括:
第一设备在与第二设备建立传输控制协议TCP连接后获取第一参数,所述第一参数与所述TCP连接对应,且所述第一参数为所述TCP连接的参数中发生变化的参数;
所述第一设备根据所述第一参数获得第一最大分段大小MSS;
所述第一设备根据第一MSS和第二MSS,获得第一共用MSS,所述第二MSS是建立所述TCP连接时所述第二设备发送的自身的MSS。
2.根据权利要求1所述的方法,其特征在于,所述第一参数包括接口对应的最大传输单元MTU,所述接口为所述TCP连接对应的接口,所述第一设备根据所述第一参数获得第一MSS包括:
所述第一设备根据第二参数和所述接口对应的MTU,获得所述第一MSS,所述第二参数为建立所述TCP连接时获取的缓冲区的长度,所述第一MSS为所述第二参数和所述MTU对应的数据长度中的最小值。
3.根据权利要求1所述的方法,其特征在于,所述第一参数包括接口对应的MTU和缓冲区的长度,所述接口为所述TCP连接对应的接口,所述第一设备根据所述第一参数获得第一MSS包括:
所述第一设备根据所述接口对应的MTU和所述缓冲区的长度,获得所述第一MSS,所述第一MSS为所述缓冲区的长度和所述MTU对应的数据长度中的最小值。
4.根据权利要求1所述的方法,其特征在于,所述第一参数包括第一标识,所述第一标识用于标识所述TCP连接对应的接口,所述第一设备根据所述第一参数获得第一MSS包括:
所述第一设备根据第三参数和所述第一标识所标识的接口对应的MTU,获得所述第一MSS,所述第三参数为建立所述TCP连接时获取的缓冲区的长度,所述第一MSS为所述第三参数和所述MTU对应的数据长度中的最小值。
5.根据权利要求1所述的方法,其特征在于,所述第一参数包括缓冲区的长度,所述第一设备根据所述第一参数获得第一MSS包括:
所述第一设备根据第四参数和所述缓冲区的长度,获得所述第一MSS,所述第四参数为建立所述TCP连接时获取的接口的MTU,所述接口为所述TCP连接对应的接口,所述第一MSS为所述第四参数和所述缓冲区的长度中的最小值。
6.根据权利要求1所述的方法,其特征在于,所述第一参数包括第一标识和缓冲区的长度,所述第一标识用于标识所述TCP连接对应的接口,所述第一设备根据所述第一参数获得第一MSS包括:
所述第一设备根据所述缓冲区的长度和所述第一标识所标识的接口对应的MTU,获得所述第一MSS,所述第一MSS为所述缓冲区的长度和所述MTU对应的数据长度中的最小值。
7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
所述第一设备根据所述第一MSS,获得更新报文,所述更新报文包括所述第一MSS;
所述第一设备向所述第二设备发送所述更新报文。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一设备接收第三设备发送的第三设备的MTU,所述第三设备为所述第一设备与所述第二设备所在路径上的设备,所述第三设备的MTU为所述第三设备上与所述TCP连接对应的接口的MTU;
所述第一设备根据所述第三设备的MTU获得第三MSS;
所述第一设备根据所述第三MSS和所述第一共用MSS,获得第二共用MSS,所述第二共用MSS为所述第三MSS和所述第一共用MSS中的最小值。
9.一种用于获取共用最大分段大小MSS的方法,其特征在于,所述方法包括:
第二设备根据第一MSS和第二MSS,获得第一共用MSS,所述第一MSS为第一设备与所述第二设备建立传输控制协议TCP连接后,根据所述TCP连接对应的第一参数确定的MSS,所述第一参数为所述TCP连接的参数中发生变化的参数,所述第二MSS为所述第二设备建立所述TCP连接时确定的自身的MSS。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第二设备接收所述第一设备发送的更新报文,所述更新报文包括所述第一MSS。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
所述第二设备接收第三设备发送的多个分片报文,所述第三设备为所述第一设备与所述第二设备所在路径上的设备,所述多个分片报文为根据所述第三设备的MTU对第一设备发送的报文进行分片得到,所述第三设备的MTU为所述第三设备上与所述TCP连接对应的接口的MTU;
所述第二设备根据所述多个分片报文,获得第三MSS;
所述第二设备向所述第一设备发送所述第三MSS,以使所述第一设备根据所述第三MSS和所述第一共用MSS,获得第二共用MSS,所述第二共用MSS为所述第三MSS和所述第一共用MSS中的最小值。
12.一种用于获取共用最大分段大小MSS的装置,其特征在于,应用于第一设备,所述装置包括处理模块,所述处理模块用于:
在与第二设备建立传输控制协议TCP连接后获取第一参数,所述第一参数与所述TCP连接对应,且所述第一参数为所述TCP连接的参数中发生变化的参数;
根据所述第一参数获得第一MSS;
根据第一MSS和第二MSS,获得第一共用MSS,所述第二MSS是建立所述TCP连接时所述第二设备发送的自身的MSS。
13.根据权利要求12所述的装置,其特征在于,所述第一参数包括接口对应的MTU,所述接口为所述TCP连接对应的接口,所述处理模块具体用于:
根据第二参数和所述接口对应的MTU,获得所述第一MSS,所述第二参数为建立所述TCP连接时获取的缓冲区的长度,所述第一MSS为所述第二参数和所述MTU对应的数据长度中的最小值。
14.根据权利要求12所述的装置,其特征在于,所述第一参数包括接口对应的MTU和缓冲区的长度,所述接口为所述TCP连接对应的接口,所述处理模块具体用于:
根据所述接口对应的MTU和所述缓冲区的长度,获得所述第一MSS,所述第一MSS为所述缓冲区的长度和所述MTU对应的数据长度中的最小值。
15.根据权利要求12所述的装置,其特征在于,所述第一参数包括第一标识,所述第一标识用于标识所述TCP连接对应的接口,所述处理模块具体用于:
根据第三参数和所述第一标识所标识的接口对应的MTU,获得所述第一MSS,所述第三参数为建立所述TCP连接时获取的缓冲区的长度,所述第一MSS为所述第三参数和所述MTU对应的数据长度中的最小值。
16.根据权利要求12所述的装置,其特征在于,所述第一参数包括缓冲区的长度,所述处理模块具体用于:
根据第四参数和所述缓冲区的长度,获得所述第一MSS,所述第四参数为建立所述TCP连接时获取的接口的MTU,所述接口为所述TCP连接对应的接口,所述第一MSS为所述第四参数和所述缓冲区的长度中的最小值。
17.根据权利要求12所述的装置,其特征在于,所述第一参数包括第一标识和缓冲区的长度,所述第一标识用于标识所述TCP连接对应的接口,所述处理模块具体用于:
根据所述缓冲区的长度和所述第一标识所标识的接口对应的MTU,获得所述第一MSS,所述第一MSS为所述缓冲区的长度和所述MTU对应的数据长度中的最小值。
18.根据权利要求12-17任一所述的装置,其特征在于,所述装置还包括发送模块;
所述处理模块还用于根据所述第一MSS,获得更新报文,所述更新报文包括所述第一MSS;
所述发送模块用于向所述第二设备发送所述更新报文。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括接收模块;
所述接收模块用于接收第三设备发送的第三设备的MTU,所述第三设备为所述第一设备与所述第二设备所在路径上的设备,所述第三设备的MTU为所述第三设备上与所述TCP连接对应的接口的MTU;
所述处理模块还用于根据所述第三设备的MTU获得第三MSS,根据所述第三MSS和所述第一共用MSS,获得第二共用MSS,所述第二共用MSS为所述第三MSS和所述第一共用MSS中的最小值。
20.一种用于获取共用最大分段大小MSS的装置,其特征在于,应用于第二设备,所述装置包括:
处理模块,用于根据第一MSS和第二MSS,获得第一共用MSS,所述第一MSS为第一设备与所述第二设备建立传输控制协议TCP连接后,根据所述TCP连接对应的第一参数确定的MSS,所述第一参数为所述TCP连接的参数中发生变化的参数,所述第二MSS为所述第二设备建立所述TCP连接时确定的自身的MSS。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括第一接收模块;
所述第一接收模块,用于接收所述第一设备发送的更新报文,所述更新报文包括所述第一MSS。
22.根据权利要求20或21所述的装置,其特征在于,所述装置还包括第二接收模块和发送模块;
所述第二接收模块,用于接收第三设备发送的多个分片报文,所述第三设备为所述第一设备与所述第二设备所在路径上的设备,所述多个分片报文为根据所述第三设备的MTU对所述第一设备发送的报文进行分片得到,所述第三设备的MTU为所述第三设备上与所述TCP连接对应的接口的MTU;
所述处理模块,用于根据所述多个分片报文,获得第三MSS;
所述发送模块,用于向所述第一设备发送所述第三MSS,以使得所述第一设备根据所述第三MSS和所述第一共用MSS,获得第二共用MSS,所述第二共用MSS为所述第三MSS和所述第一共用MSS中的最小值。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177102.XA CN112866133B (zh) | 2019-11-26 | 2019-11-26 | 用于获取共用最大分段大小mss的方法及装置 |
PCT/CN2020/119851 WO2021103822A1 (zh) | 2019-11-26 | 2020-10-07 | 用于获取共用最大分段大小mss的方法及装置 |
EP20892815.0A EP4044535A4 (en) | 2019-11-26 | 2020-10-07 | METHOD OF DETECTING A COMMON MAXIMUM SEGMENT SIZE AND DEVICE |
US17/751,961 US20220286532A1 (en) | 2019-11-26 | 2022-05-24 | Method and apparatus for obtaining shared maximum segment size mss |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177102.XA CN112866133B (zh) | 2019-11-26 | 2019-11-26 | 用于获取共用最大分段大小mss的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866133A CN112866133A (zh) | 2021-05-28 |
CN112866133B true CN112866133B (zh) | 2023-07-28 |
Family
ID=75985894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911177102.XA Active CN112866133B (zh) | 2019-11-26 | 2019-11-26 | 用于获取共用最大分段大小mss的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220286532A1 (zh) |
EP (1) | EP4044535A4 (zh) |
CN (1) | CN112866133B (zh) |
WO (1) | WO2021103822A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022419B (zh) * | 2022-06-30 | 2024-02-20 | 武汉思普崚技术有限公司 | 一种自动调整mss的方法、装置和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000124950A (ja) * | 1998-10-12 | 2000-04-28 | Nec Corp | 送受信パラメータ設定方法および送受信パラメータ設定装置 |
CN103647759A (zh) * | 2013-11-26 | 2014-03-19 | 华为技术有限公司 | 一种mss的协商方法及装置 |
CN106789717A (zh) * | 2016-12-26 | 2017-05-31 | 广东欧珀移动通信有限公司 | 动态调整通信协议传输数据报文的mtu的方法、装置和终端 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000067433A1 (en) * | 1999-05-03 | 2000-11-09 | Motorola Inc. | Method and apparatus for optimizing a buffer |
JP2001237882A (ja) * | 2000-02-23 | 2001-08-31 | Nec Corp | パケットデータ転送におけるパケットサイズ制御装置及びその制御方法 |
US7474619B2 (en) * | 2004-07-22 | 2009-01-06 | International Business Machines Corporation | Method and apparatus for providing fragmentation at a transport level along a transmission path |
US20070136481A1 (en) * | 2005-12-13 | 2007-06-14 | Dierks Herman D Jr | Method for improved network performance using smart maximum segment size |
CN100486225C (zh) * | 2006-01-24 | 2009-05-06 | 华为技术有限公司 | 分组域网络中减少数据ip分片数量的方法 |
US7633917B2 (en) * | 2006-03-10 | 2009-12-15 | Cisco Technology, Inc. | Mobile network device multi-link optimizations |
US20080101382A1 (en) * | 2006-10-26 | 2008-05-01 | Bannerjee Dwip N | Efficient method for discovering path mtu for tcp connections |
JP5573709B2 (ja) * | 2011-01-31 | 2014-08-20 | ブラザー工業株式会社 | 通信装置 |
US8537710B2 (en) * | 2011-05-06 | 2013-09-17 | Verizon Patent And Licensing Inc. | Maximum transfer unit (MTU) optimization for advanced wireless networks |
CN102594677A (zh) * | 2012-02-15 | 2012-07-18 | 杭州华三通信技术有限公司 | 用于pmtu学习的方法和装置 |
TWI580226B (zh) * | 2014-06-12 | 2017-04-21 | 智邦科技股份有限公司 | 決定最大分段大小値之方法 |
US9584427B2 (en) * | 2014-08-19 | 2017-02-28 | Citrix Systems, Inc. | Systems and methods for providing fine grained control over MSS values of transport layer connections |
US9912600B1 (en) * | 2014-11-06 | 2018-03-06 | vIPtela Inc. | Dynamic discovery of network packet size |
CN105763474B (zh) * | 2014-12-19 | 2019-10-25 | 华为技术有限公司 | 数据传输方法和装置 |
CN107528792A (zh) * | 2016-06-21 | 2017-12-29 | 中兴通讯股份有限公司 | Mss的修改方法、装置及系统 |
US11444882B2 (en) * | 2019-04-18 | 2022-09-13 | F5, Inc. | Methods for dynamically controlling transmission control protocol push functionality and devices thereof |
US11394582B2 (en) * | 2020-02-04 | 2022-07-19 | 360 It, Uab | Multi-part TCP connection over VPN |
US11424958B2 (en) * | 2020-03-05 | 2022-08-23 | Vmware, Inc. | Managing transmission control protocol (TCP) maximum segment size (MSS) values for multiple tunnels supported by a computing site gateway |
JP2022039045A (ja) * | 2020-08-27 | 2022-03-10 | キヤノン株式会社 | 通信装置、制御方法、プログラム |
-
2019
- 2019-11-26 CN CN201911177102.XA patent/CN112866133B/zh active Active
-
2020
- 2020-10-07 WO PCT/CN2020/119851 patent/WO2021103822A1/zh unknown
- 2020-10-07 EP EP20892815.0A patent/EP4044535A4/en active Pending
-
2022
- 2022-05-24 US US17/751,961 patent/US20220286532A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000124950A (ja) * | 1998-10-12 | 2000-04-28 | Nec Corp | 送受信パラメータ設定方法および送受信パラメータ設定装置 |
CN103647759A (zh) * | 2013-11-26 | 2014-03-19 | 华为技术有限公司 | 一种mss的协商方法及装置 |
CN106789717A (zh) * | 2016-12-26 | 2017-05-31 | 广东欧珀移动通信有限公司 | 动态调整通信协议传输数据报文的mtu的方法、装置和终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2021103822A1 (zh) | 2021-06-03 |
EP4044535A1 (en) | 2022-08-17 |
EP4044535A4 (en) | 2022-11-23 |
CN112866133A (zh) | 2021-05-28 |
US20220286532A1 (en) | 2022-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10367922B2 (en) | Method and apparatus for sending transmission control protocol TCP data packet and system | |
JP7154399B2 (ja) | データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイス | |
KR101457241B1 (ko) | 네트워크에서의 완전 메시 레이트 트랜잭션 | |
US10560382B2 (en) | Data transmission method and apparatus | |
US10461986B2 (en) | Data transmission method, apparatus, and system | |
CN106034084B (zh) | 一种数据传输方法及装置 | |
CN105847168B (zh) | 一种数据传输的方法、网络服务器、用户终端及系统 | |
US10594844B2 (en) | Method and system for wireless network bilateral accelerated transmission | |
KR20160071832A (ko) | 무선 통신 시스템에서 자원 분배 방법 및 장치 | |
US9042244B2 (en) | TCP transmission control device and method of control of TCP transmission | |
CN112866133B (zh) | 用于获取共用最大分段大小mss的方法及装置 | |
US20220217093A1 (en) | Sequence Number Synchronization Method and Apparatus | |
CN112994848B (zh) | Mcs的调整方法、装置、存储介质及无线节点 | |
CN113259490B (zh) | 基于udp传输协议的多级节点网络数据传输方法 | |
JP2017034627A (ja) | 通信制御システムおよび通信制御方法 | |
JP6640065B2 (ja) | 通信装置、通信制御装置、通信方法、通信制御方法、及びプログラム | |
CN115022419B (zh) | 一种自动调整mss的方法、装置和存储介质 | |
WO2021199162A1 (ja) | 監視装置、通信システム、通信制御方法、及び監視プログラム | |
JP3693968B2 (ja) | 全銀協tcp/ip手順によるファイル転送におけるフロー制御方式及びそのプログラム | |
US20230137775A1 (en) | Base station, wireless communication system, and wireless communication method | |
JP6568571B2 (ja) | データ転送装置、データ転送方法および通信装置 | |
KR20230124249A (ko) | 전송 제어 프로토콜 연결 처리 장치 및 방법 | |
CN114337971A (zh) | 通信信道的管理方法、装置、电子设备和可读介质 | |
CN117376256A (zh) | 连接请求处理方法、装置、介质及电子设备 | |
JP2015204466A (ja) | データ転送装置、データ転送方法および通信装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |