CN114363234A - 数据处理方法及系统、电子设备、路由器 - Google Patents

数据处理方法及系统、电子设备、路由器 Download PDF

Info

Publication number
CN114363234A
CN114363234A CN202011097934.3A CN202011097934A CN114363234A CN 114363234 A CN114363234 A CN 114363234A CN 202011097934 A CN202011097934 A CN 202011097934A CN 114363234 A CN114363234 A CN 114363234A
Authority
CN
China
Prior art keywords
data packet
transmission unit
router
data
sub
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
CN202011097934.3A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202011097934.3A priority Critical patent/CN114363234A/zh
Publication of CN114363234A publication Critical patent/CN114363234A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种数据处理方法及系统、电子设备、路由器,该数据处理方法包括:接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包分片处理获得;确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元进行数据传输。本申请实施例提高了最大传输单元的获取效率。

Description

数据处理方法及系统、电子设备、路由器
技术领域
本申请涉及电子设备技术领域,尤其涉及一种数据处理方法及系统、电子设备、路由器。
背景技术
不同硬件、操作系统之间的通信需要依赖于传输协议,例如常用的传输协议可以包括TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议),TCP/IP协议是互联网的一系列协议族的总称,TCP、UDP(User DatagramProtocol,用户数据报协议)、IP、FTP(File Transfer Protocol,文件传输协议)、HTTP(HyperText Transfer Protocol,超文本传输协议)、ICMP(Internet Control MessageProtocol,因特网控制报文协议)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)等都属于TCP/IP族内的协议。在数据传输时,发送端可以发出数据包,数据包经由多个路由器的转发之后,由接收端接收。发送端、多个路由器以及接收端即可以形成一条通信链路。为了确保数据传输的可靠性,在一条通信链路中传输的数据包需要小于该通信链路的最大传输单元(Maximum Transmission Unit,MTU),特别是对于不存在MSS(MaximumSegment Size,最大报文段长度)的UDP协议而言,获得链路的MTU对提升传输效率尤为重要。
现有技术中,在采用UDP协议的通信传输链路中,为了获得通信链路的MTU,可以采用PMTUD(Path Maximum Transmission Unit,路径最大传输单元)方法。PMTUD方法对ICMP消息进行了修改,主要是发送端生成一个数据量较大的数据包。该数据包由链路的路由器转发时,如果一个路由器的MTU大于数据包的数据量,即可以正常转发该数据包,但是如果链路中任一个路由器R1记载的MTU值小于数据包的数据量时,可以反馈ICMP差错消息,该差错消息中可以将R1记载的MTU反馈给发送端。发送端获得路由器R1反馈的差错消息中的MTU之后,即可以按照该MTU重新生成数据包以完成数据传输。
由以上描述可知,采用PMTUD方法获取链路MTU时,一旦路由器R1的MTU小于数据包的数据量时,该数据包的传输即被终止,若该链路中位于该路由器R1之后,还存在MTU小于R1记载的MTU的路由器R2时,发送端获得的MTU就不够准确,需要再次发送数据包,以获得R2的MTU,若后续类似R2的路由器较多,需要多次发送数据包,导致链路MTU的获取效率较低。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法及系统、电子设备、路由器,用以解决现有技术中链路MTU的获取效率较低的技术问题。
第一方面,本申请实施例提供一种数据处理方法,包括:
接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包进行分片处理获得;
确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;
根据所述至少一个候选传输单元,确定最大传输单元;
提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元进行数据传输。
第二方面,本申请实施例提供一种数据处理方法,包括:
生成分片标识为可分片的初始数据包;
通过至少一个路由器提供所述初始数据包对应的至少一个子数据包至接收端,以供所述接收端确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据所述至少一个候选传输单元确定最大传输单元;
获取所述接收端提供的所述最大传输单元;
根据所述最大传输单元与所述接收端进行数据传输。
第三方面,本申请实施例提供一种数据处理方法,该方法可以应用于至少一个路由器中的任一个路由器,所述至少一个路由器包括与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于所述第一路由器以及所述第二路由器之间的至少一个中间路由器;该方法包括:
确定至少一个第一数据包;
在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包;
将所述至少一个待转发数据包转发至后一个路由器或者接收端,以供所述第二路由器将获得的至少一个待转发数据包作为至少一个子数据包转发至所述接收端,以供所述接收端获取至少一个子数据包,并确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元与所述接收端进行数据传输。
第四方面,本申请实施例提供一种电子设备,包括:存储组件与处理组件;所述存储组件用于存储一条或多条计算机指令;所述一条或多条计算机指令供所述处理组件调用;
所述处理组件用于:
接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包分片处理获得;确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元进行数据传输。
第五方面,本申请实施例提供一种电子设备,包括:存储组件与处理组件;所述存储组件用于存储一条或多条计算机指令;所述一条或多条计算机指令供所述处理组件调用;
所述处理组件用于:
生成分片标识为可分片的初始数据包;通过至少一个路由器提供所述初始数据包对应的至少一个子数据包至接收端,以供所述接收端确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据所述至少一个候选传输单元确定最大传输单元;获取所述接收端提供的所述最大传输单元;根据所述最大传输单元与所述接收端进行数据传输。
第六方面,本申请实施例提供一种路由器,所述路由器为至少一个路由器中的任一个路由器,其中,所述至少一个路由器包括:与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于所述第一路由器以及所述第二路由器之间的至少一个中间路由器;
所述路由器包括:存储组件与处理组件;所述存储组件用于存储一条或多条计算机指令;所述一条或多条计算机指令供所述处理组件调用;
所述处理组件用于:
接收前一个路由器转发的至少一个第一数据包;在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将所述至少一个待转发数据包转发至后一个路由器,以供所述第二路由器将获得的至少一个待转发数据包作为至少一个子数据包转发至所述接收端,以供所述接收端获取至少一个子数据包,并确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元与所述接收端进行数据传输。
第七方面,本申请实施例提供一种数据处理系统,包括:发送端、接收端以及至少一个路由器;
所述发送端用于:生成分片标识为可分片的初始数据包;通过所述至少一个路由器提供所述初始数据包对应的至少一个子数据包至所述接收端;获取所述接收端提供的最大传输单元;根据所述最大传输单元与所述接收端进行数据传输;其中,所述至少一个子数据包由所述至少一个路由器对所述初始数据包进行分片处理获得;
所述接收端用于:接收分片标识为可分片的所述初始数据包对应的所述至少一个子数据包;确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端。
本申请实施例,发送端可以发送初始数据包,该初始数据包可以由通信链路中的至少一个路由器转发至接收端。在转发过程中,由于初始数据包的分片标识为可分片,至少一个路由器可以针对接收到的数据包进行分片处理,以确保分片后的数据包能够被传输至接收端。接收端可以接收分别标识为可分片的初始数据包对应的至少一个子数据包,其中,该至少一个子数据包即为通过至少一个路由器对发送端发出的初始数据包分片处理获得。接收端可以确定该至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据至少一个候选传输单元,确定最大传输单元。该至少一个子数据包是由整个通信链路的至少一个路由器转发获得,说明此时通信链路中的至少一个路由器能够完成至少一个子数据包的转发,而至少一个候选传输单元分别为对应的子数据包的数据长度,至少一个子数据包又可以通过至少一个路由器传输至接收端,此时所有子数据包的数据长度均小于发送端、至少一个路由器以及接收端构成的通信链路的最大传输单元,因此,通过至少一个候选传输单元确定通信链路最大传输单元可以确保通信链路的正常数据传输。在接收端提供最大传输单元至发送端之后,发送端可以根据最大传输单元通过至少一个路由器向接收端发送目标数据。通过发送数据包并通过数据包的分片转发,以利用数据包的一次实质性传输,快速获取最大传输单元,例如,在UDP协议中该最大传输单元即为链路MTU,实现一次发送即获取,提高数据链路中传输数据的长度获取效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的一个实施例的流程图;
图2为本申请实施例提供的一种数据处理方法的又一个实施例的流程图;
图3为本申请实施例提供的一种数据处理方法的又一个实施例的流程图;
图4为本申请实施例提供的一种数据处理方法的示例图;
图5为本申请实施例提供的一种电子设备的一个实施例的结构示意图;
图6为本申请实施例提供的一种电子设备的又一个实施例的结构示意图;
图7为本申请实施例提供的一种路由器的一个实施例的结构示意图;
图8为本申请实施例提供的一种数据处理系统的一个实施例的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
本申请实施例的技术方案可以应用于UDP协议的MTU获取场景中。通过在路由链路中发出数据量较大的数据包并进行数据包分片,以根据获得的数据包长度来确定链路中的MTU,实现一次发送即可获取准确的MTU。
现有技术中,在采用UDP协议的通信链路中,为了获得通信链路的MTU,多采用PMTUD方法获取。该方法主要是发送一数据包并将该数据包设置为不可分片,并将该数据包与ICMP消息绑定。当该数据包被传输至一个路由器时,如果该路由器中记载的MTU大于数据包的数据量,路由器可以直接转发数据包,如果路由器中记载的MTU小于数据包的数据量,但是数据包又设置为不可分片,此时数据包即不被转发,此时,路由器可以更改ICMP消息,以使得ICMP消息中携带路由器的MTU,此时发送端即可以获知链路中的MTU,并基于该MTU正式发送数据。但是,在实际应用中,通信链路中的路由器数量较多,有时需要发送多次数据包才能获得准确的MTU,导致MTU的获取效率较低。
本申请实施例中,发送端可以发送初始数据包,该初始数据包可以由通信链路中的至少一个路由器转发至接收端。在转发过程中,由于初始数据包的分片标识为可分片,至少一个路由器可以针对接收到的数据包进行分片处理,以确保分片后的数据包能够被传输至接收端。接收端可以接收分别标识为可分片的初始数据包对应的至少一个子数据包,其中,该至少一个子数据包即为通过至少一个路由器对发送端发出的初始数据包分片处理获得。接收端可以确定该至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据至少一个候选传输单元,确定最大传输单元。该至少一个子数据包是由整个通信链路的至少一个路由器转发获得,说明此时通信链路中的至少一个路由器能够完成至少一个子数据包的转发,而至少一个候选传输单元分别为对应的子数据包的数据长度,至少一个子数据包又可以通过至少一个路由器传输至接收端,此时所有子数据包的数据长度均小于发送端、至少一个路由器以及接收端构成的通信链路的最大传输单元,因此,通过至少一个候选传输单元确定通信链路最大传输单元可以确保通信链路的正常数据传输。
通过至少一个候选传输单元确定的最大传输单元也即可以为通信链路中的MTU,在提供最大传输单元至发送端之后,发送端可以根据最大传输单元通过至少一个路由器向接收端发送目标数据。通过发送数据包并通过数据包的分片转发,以利用数据包的一次实质性传输,快速获取最大传输单元,例如,在UDP协议中该最大传输单元即为链路MTU,实现一次发送即获取,提高数据链路中传输数据的长度获取效率。
下面将结合附图对本申请实施例进行详细描述。
如图1所示,为本申请实施例提供的一种数据处理方法的一个实施例的流程图,方法可以包括以下几个步骤:
101:接收分片标识为可分片的初始数据包对应的至少一个子数据包。
其中,至少一个子数据包由至少一个路由器对发送端发出的初始数据包分片处理获得。
本申请实施例的技术方案可以应用于接收端,其中接收端、发送端以及至少一个路由器可以构成数据处理系统,至少一个路由器可以为数据处理系统中的第一通信链路。接收端或者发送端具体可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、笔记本电脑、超级个人计算机、上网本、等电子设备,本申请实施例对电子设备的具体类型并不作出过多限定。
可选地,为了确保数据包能够被正常分片,以确定通信链路中的最大传输单元,初始数据包的数据长度可以大于一定的第一阈值。例如,该第一阈值可以是6000字节,初始数据包的数据阈值可以为8000字8500字节或者9000字节等。当然,为了减少非必要数据传输,在大于第一阈值的基础上,初始数据包的数据长度也可以小于一定的第二阈值。例如,该第二数据阈值可以为20000字节。例如,该初始数据包可以为10000字节。
在本实施例中,初始数据包可以由发送端生成。初始数据包的分片标识可以设置为可分片。在一种可能的设计中,分片标识可以为初始数据包的不分片标志位,不分片标志位(DF,Don’t Fragment)设置为0时,分片标识代表设置为可分片;不分片标志位设置为1时,分片标识代表设置为不可分片。
在一种可能的设计中,至少一个路由器可以构成发送端至接收端之间的通信链路,发送端发送的数据可以通过至少一个路由器发送至接收端。至少一个路由器可以分别对接收数据包,并对接收的数据包进行多跳转发至接收端。在转发过程中,任一个路由器若判断接收到的数据包大于自身记载的MTU时,可以将接收到的数据包分成若干子数据包,以实现确保数据包在链路中正常传输。在传输过程中,初始数据包被至少一个路由器划分为至少一个子数据包。
102:确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元。
可选地,任一个数据包的数据长度可以作为一个候选传输单元。至少一个子数据包被接收端接收之后,可以确定每个子数据包分别对应的数据长度,以获得该子数据包对应的候选传输单元。至少一个候选传输单元分别为对应的子数据包的数据长度。
本实施例中,任一个数据包的数据长度可以为该数据包实际的数据量大小。数据包具体可以为UDP数据包,UDP数据包可以由数据头以及实际的数据对象构成。数据长度是指数据头的数据量与数据对象的数据量的和所构成的实际数据量。数据长度的数据单位可以为字节。例如,假设一个子数据包的数据量的实际大小为1492字节,该子数据包的数据长度为1492字节。
可选地,确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元具体可以包括:分别确定至少一个子数据包分别对应的数据大小,以获得至少一个子数据包分别对应的数据长度;确定至少一个数据长度分别为至少一个候选传输单元。
由于至少一个子数据包是通过至少一个路由器转发至接收端的,则说明此至少一个路由器均可以对接收到的数据包进行转发,其中,可以包括对接收到的数据包进行分片的操作,也即,接收端接收到的至少一个子数据包分别对应的数据长度小于发送端、至少一个路由器以及接收端构成的通信链路的最大传输单元,以实现数据的正常传输。因此,至少一个子数据包分别对应的数据长度,也即至少一个候选传输单元可以用于确定至少一个路由器中的最大传输单元。
103:根据至少一个候选传输单元,确定最大传输单元。
本实施例中,最大传输单元可以根据至少一个候选传输单元获得。
可选地,根据至少一个候选传输单元,确定最大传输单元可以包括将至少一个候选传输单元中的最大候选数据单元直接作为最大传输单元。以使得基于最大传输单元获得的待传输数据包可以在至少一个路由器中正常转发。
104:提供最大传输单元至发送端,以供发送端根据最大传输单元进行数据传输。
本实施例中,发送端提供最大传输单元至发送端具体可以通过至少一个路由器将最大传输单元转发至发送端。但是,在一些实施例中,发送端提供最大传输单元至接收端还可以包括多种方式,例如可以通过短消息、即时通讯消息或者电话等多种通知形式由接收端对应的接收用户提供给发送端对应的发送用户。此外,在一些实施例中,还可以接后端与发送端之间另外的一条通信链路,通过该新确定的通信链路发送最大传输单元至接收端。
发送端根据最大传输单元进行数据传输时具体可以通过第一通信链路中的至少一个路由器,以该最大传输单元作为待传输数据包的最大数据长度进行数据传输。
本申请实施例中,发送端可以发送初始数据包,该初始数据包可以由通信链路中的至少一个路由器转发至接收端。在转发过程中,由于初始数据包的分片标识为可分片,至少一个路由器可以针对接收到的数据包进行分片处理,以确保分片后的数据包能够被传输至接收端。接收端可以接收分别标识为可分片的初始数据包对应的至少一个子数据包,其中,该至少一个子数据包即为通过至少一个路由器对发送端发出的初始数据包分片处理获得。接收端可以确定该至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据至少一个候选传输单元,确定最大传输单元。该至少一个子数据包是由整个通信链路的至少一个路由器转发获得,说明此时通信链路中的至少一个路由器能够完成至少一个子数据包的转发,至少一个候选传输单元均可以小于至少一个路由器构成的通信链路的最大传输单元,实现数据的正常传输。通过至少一个候选传输单元确定的最大传输单元也即可以为通信链路中的MTU,在提供最大传输单元至发送端之后,发送端可以根据最大传输单元通过至少一个路由器向接收端进行数据传输。通过发送数据包并通过数据包的分片转发,以利用数据包的一次实质性传输,快速获取最大传输单元,例如,在UDP协议中该最大传输单元即为链路MTU,实现一次发送即获取,提高数据链路中传输数据的长度获取效率。
在利用至少一个候选传输单元,确定最大传输单元时,如果直接将其中的最大数据长度直接作为最大传输单元,可能会因接收端的最大传输单元的限制,而导致该最大传输单元不够准确。为了确保获取更精确的最大传输单元,作为一个实施例,根据至少一个候选传输单元,确定最大传输单元可以包括:
确定至少一个候选传输单元中的最大数据长度,获得第一传输单元;
获取本地的最大数据长度,获得第二传输单元;
选择第一传输单元以及第二传输单元中最小的传输单元作为最大传输单元。
其中,选择第一传输单元以及第二传输单元中最小的传输单元作为最大传输单元具体可以是:如果第一传输单元大于第二传输单元,确定第二传输单元为最大传输单元;如果第一传输单元小于第二传输单元,确定第一传输单元为最大传输单元。
将候选传输单元中的最大数据长度与接收端存储的最大数据长度进行比较,以从中选择较小的数据长度作为最大传输单元,可以确保数据从发送端到接收端均能够按照该最大传输单元发送,且不被分片。如果数据量较大,可以将待传输的数据包的大小最大设置为最大传输单元,以确保每个数据包能够包含能够满足最大传输单元的数据,确保每次数据传输的有效性,提高数据的传输效率。
作为又一个实施例,确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元可以包括:
读取至少一个子数据包分别对应的分片信息;
根据至少一个子数据包分别对应的分片信息,确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元。
可选地,至少一个子数据包分别对应的分片信息可以被设置于数据头中,可以在网络层读取至少一个子数据包分别对应的分片信息。具体是读取至少一个子数据包各自的数据头中的分片信息。
该分片信息中可以包括子数据包中的具体的有效的数据对象在初始数据包中的偏移量,具体可以包括初始偏移量以及终止偏移量。通过任一个数据包的分片信息可以确定该数据包的数据长度。
初始数据包可以是由发送端检测用户发起的数据发送请求之后生成的,初始数据包中可以包括数据以及头文件。在OSI(Open System Interconnection Reference Model,开放式系统互联通信参考模型)、TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)四层模型或者TCP/IP五层模型中,数据包主要在网络层中传输,本申请实施例中所涉及的数据包可以为网络层中的数据包。作为一个实施例,接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包进行分片处理获得包括:
在网络层接收所述初始数据包对应的至少一个子数据包;
其中,所述至少一个子数据包由所述至少一个路由器在网络层对发送端发出的所述初始数据包进行分片处理获得。
作为一种可能的实现方式,初始数据包可以在网络层利用网络层协议对初始数据报文以及网络层数据头封装获得。该初始数据报文在传输层利用UDP协议对初始数据以及UDP头封装获得。
其中,初始数据加UDP头封装可以获得初始数据报文;初始数据报文加网络层数据头封装可以获得初始数据包。网络层数据头可以基于采用的网络层协议的不同而不同,网络层协议可以包括:IPV4协议、IPV6协议、ICMP协议或者Ipsec协议(Internet ProtocolSecurity,网际安全协议)等,本申请实施例对网络层协议并不作出过多限定。
如图2所示,为本申请实施例提供的一种数据处理方法的又一个实施例的流程图,该方法可以包括以下几个步骤:
201:生成分片标识为可分片的初始数据包。
本申请实施例的技术方案可以应用于发送端,其中,发送端可以与接收端以及至少一个路由器构成数据处理系统。至少一个路由器可以为数据处理系统的第一通信链路。接收端或者发送端具体可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、笔记本电脑、超级个人计算机、上网本、等电子设备,本申请实施例对电子设备的具体类型并不作出过多限定。
本申请实施例中发送端与图1所示实施例中发送端相同,发送端所执行的具体内容已在图1所示实施例中详细描述,从描述简洁性考虑,在此不再赘述。
202:通过至少一个路由器提供初始数据包对应的至少一个子数据包至接收端,以供接收端确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据至少一个候选传输单元确定最大传输单元。
203:获取接收端提供的最大传输单元。
204:根据最大传输单元与接收端进行数据传输。
可选地,根据最大传输单元与接收端进行数据传输可以包括:按照最大传输单元生成待传输数据包,通过第一通信链路的至少一个路由器将待传输数据包多跳转发至接收端。其中,待传输数据包的数据对象的数据长度与数据头的数据长度的和,也即待传输数据包的数据总长度与最大传输单元的比值可以大于预定比值。例如该比值可以为90%或者95%。该预定比值小于1,也即待传输数据包的数据对象的数据长度与数据头的数据长度的和小于最大传输单元,但是在实际应用中,可以无限接近与该最大传输单元。例如,假设最大传输单元为1500,此时可以设置待传输数据包的数据总长度为1492。
当然,在实际应用中,待传输数据包的数据长度可能并不能大于预定比值,例如,数据尾对应的待传输数据的数据总长度与最大传输单元的比值可能就不大于该预定比值,在这种情况下,在待传输数据包满足一定的传输条件时,待传输数据包的数据总长度与最大传输单元的比值可以小于预定比值。
本实施例中,发送端可以生成分片标识为可分片的初始数据包。该初始数据包通过至少一个路由器提供对应的至少一个子数据包至接收端。此时接收端可以确定该至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并通过至少一个候选传输单元确定最大传输单元,以提供该最大传输单元至发送端。此时发送端可以获取该接收端提供的最大传输单元,并根据该最大传输单元与接收端进行数据传输。该至少一个子数据包是由整个通信链路的至少一个路由器转发获得,说明此时通信链路中的至少一个路由器能够完成至少一个子数据包的转发,至少一个候选传输单元均可以满足至少一个路由器构成的通信链路的最大传输单元的传输限制。通过至少一个候选传输单元确定的最大传输单元也即可以为通信链路中的MTU,在提供最大传输单元至发送端之后,发送端可以根据最大传输单元通过至少一个路由器向接收端发送目标数据。通过发送数据包并通过数据包的分片转发,以利用数据包的一次实质性传输,快速获取最大传输单元,例如,在UDP协议中该最大传输单元即为链路MTU,实现一次发送即获取,提高数据链路中传输数据的长度获取效率。
作为一个实施例,根据最大传输单元与接收端进行数据传输包括:
将待传输数据转换为数据长度与最大传输单元相对应的待传输数据包;
将待传输数据包通过至少一个路由器转发至接收端。
其中,可以通过第一通信链路的至少一个路由器将待传输数据包多跳转发至接收端。
在发送待传输数据包之前,获知了最大传输单元。最大传输单元为第一通信链路包括的至少一个路由器对应的最大传输单元,也即MTU。在生成待传输数据包时,可以将数据包的大小设置为接近于最大传输单元。
例如,当接收端获取到最大传输单元为1500时,接收端可以写入的最大数据是1500-20-8=1472。其中,20为IP头的大小、8为UDP头的大小,此时的传输效率为14872/(1500+18)=96.6%,其中,18为链路层的头部以及尾部大小。通过确认MTU可以有效提高传输效率。
作为又一个实施例,生成分片标识为可分片的初始数据包可以包括:
在传输层利用UDP协议将初始数据以及UDP头封装获得初始数据报文;
在网络层利用网络层协议将初始数据报文以及网络层数据头封装获得网络数据包;
将网络数据包的分片标识位设置为可分片,以获得初始数据包。
如图3所示,为本申请实施例提供的一种数据处理方法的又一个实施例的流程图,该方法可以应用于至少一个路由器中的任一个路由器,至少一个路由器包括与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于第一路由器以及第二路由器之间的至少一个中间路由器;该方法包括:
301:确定至少一个第一数据包。
可选地,至少一个第一数据包可以由通信链路中与执行图3所示实施例的路由器相邻且位于该路由器之前的路由器发送获得。
302:在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包。
至少一个第一数据包满足分片条件可以包括至少一个第一数据包中存在数据长度大于记录的MTU的第一数据包,将数据长度大于记录的MTU的第一数据包进行分片处理,获得处理后的至少一个第二数据包,以确定数据长度小于等于MTU的第一数据包以及至少一个第二数据包构成的至少一个待转发数据包。
303:将至少一个待转发数据包转发至后一个路由器或者接收端,以供第二路由器将获得的至少一个待转发数据包作为至少一个子数据包转发至接收端,以供接收端获取至少一个子数据包,并确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据至少一个候选传输单元,确定最大传输单元;提供最大传输单元至发送端,以供发送端根据最大传输单元与接收端进行数据传输。
本申请实施例可以应用于路由器中,任一个路由器可以对接收的数据包进行分片条件检测,以判断是否需要分片,如果是,此时可以对接收到的数据包进行分片。经由发送端与接收端之间的第一通信链路对应的至少一个路由器的分片以及转发之后,可以将至少一个子数据包传输至接收端。
作为一个实施例,在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包可以包括:
获取预存储的第一传输单元;
判断至少一个第一数据包中是否存在数据长度大于第一传输单元的目标数据包;
如果存在,将目标数据包进行分片处理,获得至少一个第二数据包;确定至少一个第一数据包中数据长度不大于第一传输单元的第三数据包;确定至少一个第二数据包以及第三数据包构成的至少一个待转发数据包;
如果不存在,确定至少一个第一数据包构成的至少一个待转发数据包。
在分片是可以判断是否需要分片,以确保有效分片。
在某些实施例中,该方法还可以包括:
接收前一个路由器的至少一个待转发数据包,获得至少一个第一数据包;
或者,接收发送端发送的初始数据包,获得至少一个第一数据包。
需要说明的是,本申请实施例中的路由器可以为图1~图2所示实施例中详细描述的路由器,为了描述简洁性,在此不再赘述。
为了便于理解,以发送端为计算机,接收端为平板电脑为例,详细介绍本申请实施例的技术方案。
参考图4,计算机M1需要向平板电脑M2发送数据。为了尽量提高数据传输效率,需要获知计算机M1与平板电脑M2之间的通信链路中的至少一个路由器M3的最大传输单元MTU。
计算机M1可以生成一个分片标识为可分片的初始数据包。该初始数据包可以通过至少一个路由器M3。
其中,任一个路由器M3可以对接收到的至少一个第一数据包进行分片检测,在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,以获得至少一个待转发的数据包。经过至少一个路由器M3的分片处理以及转发之后,最终可以传输至少一个子数据包至平板电脑M2。
此时,平板电脑M2可以该至少一个子数据包,并确定该至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,之后,根据至少一个候选传输单元,确定最大传输单元;提供最大传输单元至计算机M1。
计算机M1获取到最大传输单元之后,可以按照最大传输单元生成待传输数据包,以使得待传输数据包的数据以及数据头的长度无限接近于最大传输单元,从而提高数据传输效率,减少数据包的无效传输。计算机M1可以将生成的待传输数据通过至少一个路由器M3多跳转发至平板电脑M2。此时,平板电脑M2即可以接收计算机M1经由至少一个路由器M3多跳转发的待传输数据包。
需要说明的是,图4所示示例中,至少一个路由器M3中包括了无线路由器以及有线路由器,图4所示的至少一个路由器M3的类型、数量以及连接关系均是示例性的,并不应构成对本申请实施例中的路由器的类型以及至少一个路由器的数量以及至少一个路由器之间的连接关系的具体限定,本申请实施例中对至少一个路由器的类型、数量以及连接关系并不作出过多限定。
如图5所示,为本申请实施例提供的一种电子设备的一个实施例的结构示意图,该电子设备可以配置为前述实施例中的接收端,该电子设备可以包括:存储组件501与处理组件502;存储组件501用于存储一条或多条计算机指令;一条或多条计算机指令供处理组件502调用;
处理组件502可以用于:
接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,至少一个子数据包由至少一个路由器对发送端发出的初始数据包分片处理获得;确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据至少一个候选传输单元,确定最大传输单元;提供最大传输单元至发送端,以供发送端根据最大传输单元进行数据传输。
作为一个实施例,处理组件根据至少一个候选传输单元,确定最大传输单元具体可以包括:
确定至少一个候选传输单元中的最大数据长度,获得第一传输单元;
确定本地的最大数据长度,获得第二传输单元;
选择第一传输单元以及第二传输单元中最小的传输单元作为最大传输单元。其中,选择第一传输单元以及第二传输单元中最小的传输单元作为最大传输单元可以包括:如果第一传输单元大于第二传输单元,确定第二传输单元为最大传输单元;如果第一传输单元小于第二传输单元,确定第一传输单元为最大传输单元。
作为又一个实施例,处理组件确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元具体可以包括:
读取至少一个子数据包分别对应的分片信息;
根据至少一个子数据包分别对应的分片信息,确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元。
在某些实施例中,处理组件接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包进行分片处理获得具体可以包括:
在网络层接收初始数据包对应的至少一个子数据包;
其中,至少一个子数据包由至少一个路由器在网络层对发送端发出的初始数据包进行分片处理获得。
在一种可能的设计中,初始数据包在网络层利用网络层协议对初始数据报文以及网络层数据头封装获得;初始数据报文在传输层利用UDP协议对初始数据以及UDP头封装获得。
本申请实施例中涉及的电子设备具体可以为接收端,与发送端有关的内容已在图1所示实施例中详细描述,在此不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,该存储介质用于存储计算机程序,计算机程序执行时可以执行如图1实施例中数据处理方法。
如图6所示,为本申请实施例提供的一种电子设备的一个实施例的结构示意图,该电子设备可以配置为前述实施例中的发送端,该电子设备可以包括:存储组件601与处理组件602;存储组件601用于存储一条或多条计算机指令;一条或多条计算机指令供处理组件602调用;
处理组件602可以用于:
生成分片标识为可分片的初始数据包;通过至少一个路由器提供初始数据包对应的至少一个子数据包至接收端,以供接收端确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据至少一个候选传输单元确定最大传输单元;获取接收端提供的最大传输单元;根据最大传输单元与接收端进行数据传输。
作为一个实施例,处理组件根据最大传输单元与接收端进行数据传输具体可以包括:
将待传输数据转换为数据长度与最大传输单元相对应的待传输数据包;
将待传输数据包通过至少一个路由器转发至接收端。
作为又一个实施例,处理组件生成分片标识为可分片的初始数据包具体可以包括:
在传输层利用UDP协议将初始数据以及UDP头封装获得初始数据报文;
在网络层利用网络层协议将初始数据报文以及网络层数据头封装获得网络数据包;
将网络数据包的分片标识位设置为可分片,以获得初始数据包。
本申请实施例中涉及的电子设备具体可以为发送端,与发送端有关的内容已在图2所示实施例中详细描述,在此不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,该存储介质用于存储计算机程序,计算机程序执行时可以执行如图2实施例中数据处理方法。
如图7所示,为本申请实施例提供的一种路由器的一个实施例的结构示意图,该路由器为至少一个路由器中的任一个路由器,其中,至少一个路由器包括:与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于第一路由器以及第二路由器之间的至少一个中间路由器;路由器可以包括:存储组件701与处理组件702;存储组件701用于存储一条或多条计算机指令;一条或多条计算机指令供处理组件702调用;
处理组件702可以用于:
接收前一个路由器转发的至少一个第一数据包;在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将至少一个待转发数据包转发至后一个路由器,以供第二路由器将获得的至少一个待转发数据包作为至少一个子数据包转发至接收端,以供接收端获取至少一个子数据包,并确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据至少一个候选传输单元,确定最大传输单元;提供最大传输单元至发送端,以供发送端根据最大传输单元与接收端进行数据传输。
作为一个实施例,处理组件在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包具体可以包括:
获取预存储的第一传输单元;
判断至少一个第一数据包中是否存在数据长度大于第一传输单元的目标数据包;
如果存在,将目标数据包进行分片处理,获得至少一个第二数据包;确定至少一个第一数据包中数据长度不大于第一传输单元的第三数据包;确定至少一个第二数据包以及第三数据包构成的至少一个待转发数据包;
如果不存在,确定至少一个第一数据包构成的至少一个待转发数据包。
作为又一个实施例,处理组件还可以用于:
接收前一个路由器的至少一个待转发数据包,获得至少一个第一数据包;
或者,接收发送端发送的初始数据包,获得至少一个第一数据包。
本申请实施例中涉及的路由器,已在图3所示实施例中详细描述,在此不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,该存储介质用于存储计算机程序,计算机程序执行时可以执行如图3实施例中数据处理方法。
如图8所示,为本申请实施例提供的一种数据处理系统的又一个实施例的结构示意图,该系统可以包括:发送端801、至少一个路由器802以及接收端803;
发送端801用于:生成分片标识为可分片的初始数据包;通过至少一个路由器802提供初始数据包对应的至少一个子数据包至接收端。获取接收端803提供的最大传输单元;根据最大传输单元与接收端803进行数据传输;其中,至少一个子数据包由至少一个路由器802对初始数据包进行分片处理获得。
接收端803用于:接收分片标识为可分片的初始数据包对应的至少一个子数据包;确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据至少一个候选传输单元,确定最大传输单元;提供最大传输单元至发送端。
需要说明的是,图8所示的至少一个路由器802的数量以及连接关系均是示例性的,并不应构成对本申请实施例中至少一个路由器的数量以及至少一个路由器之间的连接关系的具体限定,本申请实施例中对至少一个路由器的数量以及连接关系并不作出过多限定。
作为一个实施例,参考图8,至少一个路由器802可以包括:与发送端连接的第一路由器8021、与接收端连接的第二路由器8022,以及位于第一路由器以及第二路由器之间的至少一个中间路由器8023;
发送端801通过至少一个路由器提供初始数据包对应的至少一个子数据包至接收端具体包括:
发送初始数据包至第一路由器8021;
第一路由器8021可以用于:
接收发送端发送的初始数据包;在初始数据包满足分片条件时,将初始数据包进行分片处理,获得至少一个待转发数据包;将至少一个待转发数据包转发至第一路由器对应的后一个中间路由器8023;
任一个中间路由器8023用于:接收前一个路由器发送的至少一个待转发数据包获得至少一个第一数据包;在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将至少一个待转发数据包转发至对应的后一个中间路由器8023或者第二路由器8022;
第二路由器8022用于:接收对应的前一个中间路由器8023转发的至少一个待转发数据包获得至少一个第一数据包;在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将至少一个待转发数据包作为至少一个子数据包转发至接收端;
接收端803接收分片标识为可分片的初始数据包对应的至少一个子数据包具体包括:
确定接收获得的第二路由器8023转发的至少一个待转发数据包为至少一个子数据包。
作为一个实施例,发送端根据至少一个候选传输单元,确定最大传输单元具体可以包括:
确定至少一个候选传输单元中的最大数据长度,获得第一传输单元;
确定本地的最大数据长度,获得第二传输单元;
选择第一传输单元以及第二传输单元中最小的传输单元作为最大传输单元。其中,处理组件选择第一传输单元以及第二传输单元中最小的传输单元作为最大传输单元具体可以包括如果第一传输单元大于第二传输单元,确定第二传输单元为最大传输单元;如果第一传输单元小于第二传输单元,确定第一传输单元为最大传输单元。
作为又一个实施例,发送端确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元具体可以包括:
读取至少一个子数据包分别对应的分片信息;
根据至少一个子数据包分别对应的分片信息,确定至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元。
在某些实施例中,发送端接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包进行分片处理获得具体可以包括:
在网络层接收初始数据包对应的至少一个子数据包;
其中,至少一个子数据包由至少一个路由器在网络层对发送端发出的初始数据包进行分片处理获得。
在某些实施例中,初始数据包在网络层利用网络层协议对初始数据报文以及网络层数据头封装获得;初始数据报文在传输层利用UDP协议对初始数据以及UDP头封装获得。
作为又一个实施例,接收端根据最大传输单元与接收端进行数据传输具体可以包括:
将待传输数据转换为数据长度与最大传输单元相对应的待传输数据包;
将待传输数据包通过至少一个路由器转发至接收端。
作为又一个实施例,接收端生成分片标识为可分片的初始数据包具体可以包括:
在传输层利用UDP协议将初始数据以及UDP头封装获得初始数据报文;
在网络层利用网络层协议将初始数据报文以及网络层数据头封装获得网络数据包;
将网络数据包的分片标识位设置为可分片,以获得初始数据包。
其中,任一个路由器在至少一个第一数据包满足分片条件时,将至少一个第一数据包进行分片处理,获得至少一个待转发数据包具体可以包括:
获取预存储的第一传输单元;
判断至少一个第一数据包中是否存在数据长度大于第一传输单元的目标数据包;
如果存在,将目标数据包进行分片处理,获得至少一个第二数据包;确定至少一个第一数据包中数据长度不大于第一传输单元的第三数据包;确定至少一个第二数据包以及第三数据包构成的至少一个待转发数据包;
如果不存在,确定至少一个第一数据包构成的至少一个待转发数据包。
以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种数据处理方法,其特征在于,包括:
接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包进行分片处理获得;
确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;
根据所述至少一个候选传输单元,确定最大传输单元;
提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元进行数据传输。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个候选传输单元,确定最大传输单元包括:
确定所述至少一个候选传输单元中的最大数据长度,获得第一传输单元;
确定本地的最大数据长度,获得第二传输单元;
选择所述第一传输单元以及所述第二传输单元中最小的传输单元作为所述最大传输单元。
3.根据权利要求1所述的方法,其特征在于,所述确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元包括:
读取所述至少一个子数据包分别对应的分片信息;
根据所述至少一个子数据包分别对应的分片信息,确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元。
4.根据权利要求1所述的方法,其特征在于,所述接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包进行分片处理获得包括:
在网络层接收所述初始数据包对应的至少一个子数据包;
其中,所述至少一个子数据包由所述至少一个路由器在网络层对发送端发出的所述初始数据包进行分片处理获得。
5.根据权利要求1所述的方法,其特征在于,所述初始数据包在网络层利用网络层协议对初始数据报文以及网络层数据头封装获得;所述初始数据报文在传输层利用UDP协议对初始数据以及UDP头封装获得。
6.一种数据处理方法,其特征在于,包括:
生成分片标识为可分片的初始数据包;
通过至少一个路由器提供所述初始数据包对应的至少一个子数据包至接收端,以供所述接收端确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据所述至少一个候选传输单元确定最大传输单元;
获取所述接收端提供的所述最大传输单元;
根据所述最大传输单元与所述接收端进行数据传输。
7.根据权利要求6所述的方法,其特征在于,所述根据所述最大传输单元与所述接收端进行数据传输包括:
将待传输数据转换为数据长度与所述最大传输单元相对应的待传输数据包;
将所述待传输数据包通过所述至少一个路由器转发至所述接收端。
8.根据权利要求6所述的方法,其特征在于,所述生成分片标识为可分片的初始数据包包括:
在传输层利用UDP协议将初始数据以及UDP头封装获得初始数据报文;
在网络层利用网络层协议将所述初始数据报文以及网络层数据头封装获得所述网络数据包;
将所述网络数据包的分片标识位设置为可分片,以获得所述初始数据包。
9.一种数据处理方法,其特征在于,应用于至少一个路由器中的任一个路由器,所述至少一个路由器包括与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于所述第一路由器以及所述第二路由器之间的至少一个中间路由器;该方法包括:
确定至少一个第一数据包;
在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包;
将所述至少一个待转发数据包转发至后一个路由器或者接收端,以供所述第二路由器将获得的至少一个待转发数据包作为至少一个子数据包转发至所述接收端,以供所述接收端获取至少一个子数据包,并确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元与所述接收端进行数据传输。
10.根据权利要求9所述的方法,其特征在于,所述在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包包括:
获取预存储的第一传输单元;
判断所述至少一个第一数据包中是否存在数据长度大于所述第一传输单元的目标数据包;
如果存在,将所述目标数据包进行分片处理,获得至少一个第二数据包;确定所述至少一个第一数据包中数据长度不大于所述第一传输单元的第三数据包;确定所述至少一个第二数据包以及所述第三数据包构成的至少一个待转发数据包;
如果不存在,确定所述至少一个第一数据包构成的所述至少一个待转发数据包。
11.根据权利要求9所述的方法,其特征在于,还包括:
接收前一个路由器的至少一个待转发数据包,获得所述至少一个第一数据包;
或者,接收所述发送端发送的所述初始数据包,获得至少一个第一数据包。
12.一种电子设备,其特征在于,包括:存储组件与处理组件;所述存储组件用于存储一条或多条计算机指令;所述一条或多条计算机指令供所述处理组件调用;
所述处理组件用于:
接收分片标识为可分片的初始数据包对应的至少一个子数据包;其中,所述至少一个子数据包由至少一个路由器对发送端发出的所述初始数据包分片处理获得;确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元进行数据传输。
13.一种电子设备,其特征在于,包括:存储组件与处理组件;所述存储组件用于存储一条或多条计算机指令;所述一条或多条计算机指令供所述处理组件调用;
所述处理组件用于:
生成分片标识为可分片的初始数据包;通过至少一个路由器提供所述初始数据包对应的至少一个子数据包至接收端,以供所述接收端确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元,并根据所述至少一个候选传输单元确定最大传输单元;获取所述接收端提供的所述最大传输单元;根据所述最大传输单元与所述接收端进行数据传输。
14.一种路由器,其特征在于,所述路由器为至少一个路由器中的任一个路由器,其中,所述至少一个路由器包括:与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于所述第一路由器以及所述第二路由器之间的至少一个中间路由器;
所述路由器包括:存储组件与处理组件;所述存储组件用于存储一条或多条计算机指令;所述一条或多条计算机指令供所述处理组件调用;
所述处理组件用于:
接收前一个路由器转发的至少一个第一数据包;在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将所述至少一个待转发数据包转发至后一个路由器,以供所述第二路由器将获得的至少一个待转发数据包作为至少一个子数据包转发至所述接收端,以供所述接收端获取至少一个子数据包,并确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端,以供所述发送端根据所述最大传输单元与所述接收端进行数据传输。
15.一种数据处理系统,其特征在于,包括:发送端、至少一个路由器以及接收端;
所述发送端用于:生成分片标识为可分片的初始数据包;通过所述至少一个路由器提供所述初始数据包对应的至少一个子数据包至所述接收端;获取所述接收端提供的最大传输单元;根据所述最大传输单元与所述接收端进行数据传输;其中,所述至少一个子数据包由所述至少一个路由器对所述初始数据包进行分片处理获得;
所述接收端用于:接收分片标识为可分片的所述初始数据包对应的所述至少一个子数据包;确定所述至少一个子数据包分别对应的数据长度,以获得至少一个候选传输单元;根据所述至少一个候选传输单元,确定最大传输单元;提供所述最大传输单元至所述发送端。
16.根据权利要求15所述的系统,其特征在于,所述至少一个路由器包括:与发送端连接的第一路由器、与接收端连接的第二路由器,以及位于所述第一路由器以及所述第二路由器之间的至少一个中间路由器;
所述发送端通过所述至少一个路由器提供所述初始数据包对应的至少一个子数据包至所述接收端具体包括:
发送所述初始数据包至所述第一路由器;
所述第一路由器用于:
接收所述发送端发送的所述初始数据包;在所述初始数据包满足分片条件时,将所述初始数据包进行分片处理,获得至少一个待转发数据包;将所述至少一个待转发数据包转发至所述第一路由器对应的后一个中间路由器;
任一个所述中间路由器用于:接收前一个路由器发送的至少一个待转发数据包获得至少一个第一数据包;在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将所述至少一个待转发数据包转发至对应的后一个中间路由器或所述第二路由器;
所述第二路由器用于:接收对应的前一个中间路由器转发的至少一个待转发数据包获得所述至少一个第一数据包;在所述至少一个第一数据包满足分片条件时,将所述至少一个第一数据包进行分片处理,获得至少一个待转发数据包;将所述至少一个待转发数据包作为至少一个子数据包转发至所述接收端;
所述接收端接收分片标识为可分片的初始数据包对应的至少一个子数据包具体包括:
确定接收获得的所述第二路由器转发的至少一个待转发数据包为所述至少一个子数据包。
CN202011097934.3A 2020-10-14 2020-10-14 数据处理方法及系统、电子设备、路由器 Pending CN114363234A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011097934.3A CN114363234A (zh) 2020-10-14 2020-10-14 数据处理方法及系统、电子设备、路由器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011097934.3A CN114363234A (zh) 2020-10-14 2020-10-14 数据处理方法及系统、电子设备、路由器

Publications (1)

Publication Number Publication Date
CN114363234A true CN114363234A (zh) 2022-04-15

Family

ID=81089508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011097934.3A Pending CN114363234A (zh) 2020-10-14 2020-10-14 数据处理方法及系统、电子设备、路由器

Country Status (1)

Country Link
CN (1) CN114363234A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716944A (zh) * 2004-06-28 2006-01-04 杭州华为三康技术有限公司 网络路径最大传输长度发现方法
CN1905456A (zh) * 2005-07-27 2007-01-31 华为技术有限公司 一种数据帧的传输处理方法
CN1909503A (zh) * 2005-08-05 2007-02-07 华为技术有限公司 一种探测路径最大传输单元的方法
CN101616160A (zh) * 2009-07-24 2009-12-30 中兴通讯股份有限公司 一种具有通告最大传输单元功能的主机及相应的通告方法
CN101931588A (zh) * 2009-06-23 2010-12-29 丛林网络公司 发现路径最大传输单元尺寸
WO2018121257A1 (zh) * 2016-12-30 2018-07-05 中兴通讯股份有限公司 报文发送方法、装置、系统以及存储介质
CN110035016A (zh) * 2019-02-26 2019-07-19 北京钰安信息科技有限公司 一种数据传输方法及装置
CN110177045A (zh) * 2019-05-15 2019-08-27 浙江启程电子科技股份有限公司 一种基于mtu值的传输数据配置方法
CN111654354A (zh) * 2020-05-28 2020-09-11 北京小米移动软件有限公司 最大传输单元mtu的探测方法、装置及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716944A (zh) * 2004-06-28 2006-01-04 杭州华为三康技术有限公司 网络路径最大传输长度发现方法
CN1905456A (zh) * 2005-07-27 2007-01-31 华为技术有限公司 一种数据帧的传输处理方法
CN101156396A (zh) * 2005-07-27 2008-04-02 华为技术有限公司 一种数据帧的传输处理方法和系统
CN1909503A (zh) * 2005-08-05 2007-02-07 华为技术有限公司 一种探测路径最大传输单元的方法
CN101931588A (zh) * 2009-06-23 2010-12-29 丛林网络公司 发现路径最大传输单元尺寸
CN101616160A (zh) * 2009-07-24 2009-12-30 中兴通讯股份有限公司 一种具有通告最大传输单元功能的主机及相应的通告方法
WO2018121257A1 (zh) * 2016-12-30 2018-07-05 中兴通讯股份有限公司 报文发送方法、装置、系统以及存储介质
CN110035016A (zh) * 2019-02-26 2019-07-19 北京钰安信息科技有限公司 一种数据传输方法及装置
CN110177045A (zh) * 2019-05-15 2019-08-27 浙江启程电子科技股份有限公司 一种基于mtu值的传输数据配置方法
CN111654354A (zh) * 2020-05-28 2020-09-11 北京小米移动软件有限公司 最大传输单元mtu的探测方法、装置及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张禄林、雷春娟等: "蓝牙协议及其实现", 31 October 2001, 人民邮电出版社, pages: 109 - 110 *
王悦悦;胡曦明;马苗;李鹏;: "IPv6 PMTU探测技术及仿真实验", 现代计算机(专业版), no. 17 *

Similar Documents

Publication Publication Date Title
EP3338396B1 (en) Device and method for establishing connection in load-balancing system
WO2018054397A1 (zh) 业务功能链检测路径的方法和装置
CN107231269B (zh) 一种集群精确限速方法和装置
US20220393908A1 (en) Message Encapsulation Method and Apparatus, and Message Decapsulation Method and Apparatus
WO2021088629A1 (zh) DetNet数据包处理方法及装置
CN114006953A (zh) 一种处理报文的方法及装置
JP2016508682A (ja) ドメインにまたがるvpnトラフィックのqosによる区別のための方法および配置構成
CN107517225B (zh) 一种协议转换方法、网关设备及存储介质
CN111371887B (zh) 物联网日志传输方法、客户端、服务端、设备及存储介质
CN112436998A (zh) 一种数据传输方法及电子设备
CN108282391A (zh) 一种vxlan报文分片方法和装置
CN107154917A (zh) 数据传输方法及服务器
CN110996346A (zh) 一种下行报文轨迹追踪方法、装置及计算机可读存储介质
EP2157727A1 (en) Path connection
CN117395195A (zh) 通信方法、装置、设备及存储介质
CN113055294A (zh) 报文封装、解封装方法、装置、存储介质及电子装置
CN114363234A (zh) 数据处理方法及系统、电子设备、路由器
CN108848202B (zh) 电子装置、数据传输方法及相关产品
CN115052049A (zh) 一种基于IPsec隧道的报文转发方法及系统
CN115733898A (zh) 一种传输数据的方法以及相关设备
CN114125080A (zh) 一种报文链终端协议栈构建方法和解析方法、装置及终端
CN107483334B (zh) 一种报文转发的方法及装置
CN106850386B (zh) 报文处理方法和设备
US10917502B2 (en) Method for using metadata in internet protocol packets
CN117081990B (zh) 一种mpls流量代理方法、系统、设备及存储介质

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