CN112333094B - 数据传输处理方法、装置、网络设备及可读存储介质 - Google Patents

数据传输处理方法、装置、网络设备及可读存储介质 Download PDF

Info

Publication number
CN112333094B
CN112333094B CN202011368156.7A CN202011368156A CN112333094B CN 112333094 B CN112333094 B CN 112333094B CN 202011368156 A CN202011368156 A CN 202011368156A CN 112333094 B CN112333094 B CN 112333094B
Authority
CN
China
Prior art keywords
message
forwarded
intermediate node
mtu value
node device
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
Application number
CN202011368156.7A
Other languages
English (en)
Other versions
CN112333094A (zh
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.)
Maipu Communication Technology Co Ltd
Original Assignee
Maipu Communication Technology 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 Maipu Communication Technology Co Ltd filed Critical Maipu Communication Technology Co Ltd
Priority to CN202011368156.7A priority Critical patent/CN112333094B/zh
Publication of CN112333094A publication Critical patent/CN112333094A/zh
Application granted granted Critical
Publication of CN112333094B publication Critical patent/CN112333094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data

Landscapes

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

Abstract

本申请提供一种数据传输处理方法、装置、网络设备及可读存储介质。方法包括:接收转发路径中任一中间节点设备发送的数据包过大报文,数据包过大报文为中间节点设备在接收的探测报文或待转发报文待转发报文的长度超过中间节点设备自身的MTU值时发送的报文;根据数据包过大报文携带的中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值;根据目标MTU值对入节点设备接收的待转发报文进行分片,以使分片后的待转发报文在封装报文头部后的长度小于MTU值,如此,中间节点设备便不会丢弃分片后的待转发报文,从而有利于提高报文传输的质量。

Description

数据传输处理方法、装置、网络设备及可读存储介质
技术领域
本申请涉及数据通信领域,具体而言,涉及一种数据传输处理方法、装置、网络设备及可读存储介质。
背景技术
SRv6的全称为Segment Routing IPv6,指基于IPv6转发平面的段路由。其中,IPv6的全称为Internet Protocol Version 6,指互联网协议第6版。SRv6技术是指IPv6 网络中使用SR(Segment Routing,分段路由)、将 IPv6 地址作为SID对报文进行转发的一种技术,SID指SRv6段标识。目前,IPv6标准协议规定,IPv6报文通常在源端设备进行分片,在中间节点设备中不能对IPv6报文进行分片,如果中间节点设备所接收的待转发报文的长度超过自身接口的MTU(Maximun Transmission Unit,最大传输单元)值,则会丢弃该报文,影响报文的传输。其中,中间节点设备的MTU值表示该中间节点设备支持传输的单个报文的最大长度。由于原始报文在入节点需要进行SRv6头部封装会增加报文长度,同时同一条连接的报文在SRv6网络中的传输路径不固定,因此无法在源端确定PMTU(Path MaximunTransmission Unit,路径传输单元),也无法在源端根据设定的MTU保证报文在传输过程中不会超过最小MTU,其中,若设定的MTU越小,处理数据所需要的网络资源的越多,PMTU指一条路径中的最小MTU。
发明内容
本申请实施例的目的在于提供一种数据传输处理方法、装置、网络设备及可读存储介质,能够改善中间节点设备所接收的待转发报文的长度超过自身的MTU值时丢弃该报文,影响报文的传输的问题。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种数据传输处理方法,应用于SRv6中的入节点设备,所述方法包括:
接收转发路径中任一中间节点设备发送的数据包过大报文,所述数据包过大报文为所述任一中间节点设备在接收的待转发报文的长度超过所述中间节点设备自身的MTU值时发送的报文,所述待转发报文为经过封装后的报文;
根据所述数据包过大报文携带的所述中间节点设备的所述MTU值,确定用于对所述待转发报文进行分片的目标MTU值;
根据所述目标MTU值对所述入节点设备接收的所述待转发报文进行分片,以使分片后的待转发报文在封装报文头部后的长度小于所述MTU值。
在上述的实施方式中,当中间节点设备接收的探测报文或待转发报文的长度大于中间设备自身的MTU值时,可以通过入节点设备将重新确定的目标MTU值作为报文分片的阈值,然后由入节点设备利用目标MTU值对待转发报文进行分片,以使分片后的待转发报文在封装报文头部后的长度小于中间节点的MTU值,如此,中间节点设备便不会丢弃分片后的待转发报文,从而有利于提高报文传输的质量。
结合第一方面,在一些可选的实施方式中,所述在接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述方法还包括:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达所述转发路径的出节点设备。
结合第一方面,在一些可选的实施方式中,根据所述数据包过大报文携带的所述任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值,包括:
根据所述转发路径中所有MTU值中的最小MTU值,确定用于对待转发报文进行分片的最终目标MTU值。
在上述的实施方式中,通过确保最终目标MTU值为根据转发路径中的最小MTU值所确定的MTU值,入节点设备后续再根据最终目标MTU值对报文进行分片后,分片封装后的报文的长度便会小于或等于转发路径中任一节点设备的MTU值。如此,转发路径中的任一节点设备不会存在所接收的待转发报文的长度大于自身MTU值的情况,也就不会因此而丢弃待转发报文。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
当所述待转发报文的传输协议类型为表征可靠传输的协议类型时,对所述待转发报文进行分片重传。
结合第一方面,在一些可选的实施方式中,在接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述方法还包括:
接收源端设备发送的原始报文,所述原始报文包括ipv4报文、ipv6报文中的一种;
对所述原始报文进行SRv6封装,得到所述待转发报文;
根据所述转发路径转发所述待转发报文。
在上述的实施方式中,原始报文为ipv4报文或ipv6报文,也可以被入节点设备封装为ipv6报文,从而能够兼容ipv4报文、ipv6报文的转发。
结合第一方面,在一些可选的实施方式中,根据所述数据包过大报文携带的所述中间节点设备的所述MTU值,确定用于对待转发报文进行分片的目标MTU值,包括:
将所述数据包过大报文携带的所述中间节点设备的所述MTU值与预设封装长度相减,得到所述目标MTU值。
结合第一方面,在一些可选的实施方式中,在接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述方法还包括:
根据预先存储的段列表确定与所述入节点设备对应的所述转发路径。
第二方面,本申请实施例还提供一种数据传输处理方法,应用于SRv6中的网络系统,所述网络系统包括入节点设备及与所述入节点设备对应的中间节点设备,所述方法包括:
当转发路径中任一中间节点设备自身的MTU值小于所接收的探测报文或待转发报文的长度时,所述任一中间节点设备向所述入节点设备发送数据包过大报文;
所述入节点设备接收所述任一中间节点设备发送的所述数据包过大报文;
所述入节点设备根据所述任一中间节点设备发送的数据包过大报文携带的MTU值,确定用于对待转发报文进行分片的目标MTU值;
所述入节点设备根据所述目标MTU值对所述入节点设备接收的所述待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于所述任一中间节点设备的MTU值。
结合第二方面,在一些可选的实施方式中,在所述任一中间节点设备向所述入节点设备发送数据包过大报文之前,所述方法还包括:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达转发路径的出节点设备。
第三方面,本申请实施例还提供一种数据传输处理装置,包括:
接收单元,用于接收转发路径中任一中间节点设备发送的数据包过大报文,所述数据包过大报文为所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文;
计算单元,用于根据所述数据包过大报文携带的所述任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值;
分片单元,用于根据所述目标MTU值对所述待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于所述任一中间节点设备的MTU值。
结合第三方面,在一些可选的实施方式中,所述装置还包括发送单元,在所述接收单元接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述发送单元用于:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达所述转发路径的出节点设备。
第四方面,本申请实施例还提供一种网络设备,所述网络设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述网络设备执行上述的方法。
第五方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的网络系统的通信连接示意图。
图2为本申请实施例提供的数据传输处理方法的流程示意图之一。
图3为本申请实施例提供的数据传输处理方法的流程示意图之二。
图4为本申请实施例提供的数据传输处理装置的框图。
图标:10-网络系统;11-源端设备;12-入节点设备;13-中间节点设备;14-出节点设备;15-目的端设备;200-数据传输处理装置;210-接收单元;220-计算单元;230-分片单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
SRv6是通过在IPv6报文中插入一个路由扩展头(Segment Routing Header,SRH),在SRH中压入一个显式的IPv6地址栈,存储的是IPv6的Segment List信息,其作用与SR-MPLS(Segment Routing-Multi Protocol Label Switching,分段路由多协议标签交换)里的Segment List类似。在SRv6中,Segment List指SID段列表,通常可以包括多个SID,以形成一个列表,用于指导报文的整个转发路径。SID表示SRv6段ID,为IPv6地址形式,用于定义某种网络功能,代表网络指令。在SRv6中通过中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发。转发的IPv6报文在插入扩展头后,IPv6报文是由IPv6标准头+扩展头(0...m)+负载Payload组成,m为大于0的整数,可以根据实际情况进行确定。
SRv6报文的转发路径不固定,由具体的Segment List决定。另外,即便选定Segment List,进行封装后的报文的目的地址只是转发路径的某一段,而不一定是最终目的地。
申请人发现,在SRv6的网络系统中,SRv6隧道的入节点设备会对报文进行封装,封装后的报文的长度不固定,且报文的转发路径的不固定。因此报文在源端设备无法保证封装后的报文长度一定能符合最终转发路径中的节点设备的最小MTU,因此报文在转发过程中会因为报文长度超过转发的MTU而被丢弃,且无法控制。
鉴于上述问题,申请人提出以下实施例以改善上述技术问题。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,本申请实施例提供一种网络系统10,可以应用于基于SRv6的VPN(Virtual Private Network,虚拟专用网络)。网络系统10可以包括入节点设备12、中间节点设备13及出节点设备14。其中,入节点设备12可以与源端设备11通信连接,用于将源端设备11发送的报文转发至中间节点设备13。出节点设备14可以与目的端设备15通信连接,用于将中间节点设备13转发的报文发送至目的端设备15。可理解地,源端设备11、入节点设备12、中间节点设备13、出节点设备14及目的端设备15可以形成一条转发路径,用于待转发报文。中间节点的数量可以为一个或多个,这里不作具体限定。
源端设备11与目的端设备15可理解为用户边缘路由器(Customer Edge,CE)。入节点设备12及出节点设备14设备可理解为运营商边缘路由器(Provider Edge,PE)。中间点设备可理解为运营商骨干路由器(Provider,P)。
在本实施例中,入节点设备12与中间节点设备13可以相互配合,用于实现下述的数据传输处理方法中的各步骤。
本申请实施例还提供一种网络设备,该网络设备可以为路由器,可以作为上述的入节点设备12。网络设备可以包括处理模块及存储模块。存储模块内存储计算机程序,当计算机程序被所述处理模块执行时,使得网络设备能够执行下述方法中入节点设备12所执行的各步骤。
请参照图2,本申请实施例还提供一种数据传输处理方法,可以应用于上述的网络系统10,由网络系统10中的入节点设备12与中间节点设备13相互配合,实现方法的各步骤。方法可以包括如下步骤:
步骤S110,当转发路径中任一中间节点设备自身的MTU值小于所接收的待转发报文的长度时,所述任一中间节点设备向所述入节点设备发送数据包过大报文,所述数据包过大报文为所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文;
步骤S120,所述入节点设备接收所述任一中间节点设备发送的所述数据包过大报文;
步骤S130,所述入节点设备根据所述数据包过大报文携带的所述任一中间节点设备的所述MTU值,确定用于对待转发报文进行分片的目标MTU值;
步骤S140,所述入节点设备根据所述目标MTU值对所述入节点设备接收的所述待转发报文进行分片,以使分片后的待转发报文在封装报文头部后的长度小于所述MTU值。
在上述的实施方式中,当任一中间节点设备接收的待转发报文的长度大于中间设备自身的MTU值时,可以通过入节点设备将重新确定的目标MTU值作为报文分片的阈值,然后由入节点设备利用目标MTU值对待转发报文进行分片,以使分片后的待转发报文在封装报文头部后的长度小于中间节点的MTU值。如此,中间节点设备便不会丢弃分片后的待转发报文,从而有利于提高报文传输的质量。
下面将对方法的各步骤进行详细阐述,如下:
在步骤S110中,发送数据包过大报文的中间节点设备,可以根据实际情况进行确定。其中,为便于区分,发送数据包过大报文的中间节点设备可以称为目标中间节点设备。数据包过大报文为中间节点设备在接收的探测报文/待转发报文的长度超过自身的MTU值时,向入节点设备发送的报文。数据包过大报文可以为基于因特网数据包过大报文协议(Internet Control Message Protocol)Internet,ICMP)的报文。
可理解地,在网络系统10中,每个中间节点设备的转发接口具有MTU值,该MTU值根据中间节点设备的硬件性能而确定,为本领域技术人员所熟知。中间节点设备接收的待转发报文为上一节点转发的报文。上一节点可以为网络系统10中的其他中间节点,或者为网络系统10中的入节点设备,可以根据实际情况进行确定。中间节点设备所接收的待转发报文为经过封装后的报文。数据包过大报文中,可以携带中间节点设备自身的MTU值。
在步骤S120中,入节点设备在接收到数据包过大报文后,便可以对数据包过大报文进行解析,从数据包过大报文中获取到任一中间节点设备的MTU值,以及确定任一中间节点设备所接收的待转发报文的长度超过任一中间节点设备自身的MTU值。
需要说明的是,虽然SRv6报文的转发路径不固定,但SRv6报文在路径中的源地址不会被修改,入节点设备会维持不变,因此,中间节点发送的数据包过大报文能发送到入节点设备。
在步骤S130中,入节点设备在获取到任一中间节点设备的MTU值后,可以基于预设的计算策略,确定目标MTU值。其中,目标MTU值小于任一中间节点设备的MTU值。
可理解地,报文在基于目标MTU值分片后,还需要进行封装报文头部,因此,需要保证封装报文头部后的分片报文的长度小于或等于任一中间节点设备的MTU值。
预设的计算策略可以根据实际情况进行设置。例如,步骤S130可以包括:
将所述数据包过大报文携带的所述中间节点设备的所述MTU值与预设封装长度相减,得到所述目标MTU值。
由于在入节点的分片报文所封装的报文头部的长度不固定,但通常小于一个阈值。该阈值既可以作为预设封装长度,可以根据实际情况进行确定。
例如,中间节点设备自身的MUT值记为T1,预设封装长度记为Len,则目标MTU值记为T0,则T0=T1-Len。
即,入节点以T0作为分片的MTU,以使分片的报文长度小于或等于T0,基于此,分片报文在封装报文头部结构后,其长度仍然小于或等于T1,因此,分片后的经过封装的报文,在传输至目标中间节点时,便不会被丢弃。
在步骤S140中,入节点设备可以将目标MTU值作为分片的尺码,然后对超过目标MTU值的报文进行分片,以使分片后的报文的长度小于或等于目标MTU值。
在本实施例中,入节点设备可以设置有一个默认的MTU值。在执行步骤S110之前,入节点设备可以在接收的待转发报文的长度超过默认的MTU值时,对待转发报文以默认的MTU值进行分片。然后,由入节点设备对分片后的待转发报文进行封装,并转发至中间节点。若入节点设备接收的待转发报文的长度小于或等于默认的MTU值,则无需对该待转发报文进行分片。
作为一种可选的实施方式,在步骤S120之前,方法还可以包括:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达所述转发路径的出节点设备。
可理解地,段列表的MTU值可理解为默认的MTU值。其中,段列表的MTU值不一定为转发路径中所有节点设备中的最小MTU。封装后的探测报文和待转发报文的长度通常小于段列表的MTU值,但可能超过转发路径中的最小MTU,此时,探测报文或待转发报文便会被丢弃。
探测报文可以根据实际情况进行构造,用于探测转发路径中的中间节点设备的MTU值或探测中间节点设备中的最小MTU值。待转发报文即为发送端传输的报文。发送端即为发送待转发报文至入节点设备的终端,这里对发送端的设备类型不作具体限定。其中,通过发送探测报文,可以主动探测得到转发路径的最小MTU值,无需等到入节点设备接收来自发送端的待转发报文便能检测到转发路径的最小MTU值。
作为一种可选的实施方式,步骤S130可以包括:
根据所述转发路径中所有MTU值中的最小MTU值,确定用于对待转发报文进行分片的最终目标MTU值。
在本实施例中,封装后的探测报文/待转发报文在转发路径的各个节点设备传输的过程中,若封装后的探测报文/待转发报文的长度大于任一中间节点设备的MTU值,则该中间节点便会丢弃该探测报文/待转发报文,并向入节点设备发送数据包过大报文,并在该数据包过大报文中添加该中间节点的MTU。然后由入节点设备基于该中间节点的MTU值修改段列表的MTU值,然后重新构造探测报文或重新对待转发报文进行分片,以使重新发送的探测报文/待转发报文的长度小于上次丢弃探测报文/待转发报文的中间节点设备的MTU,该中间节点设备也就不会丢弃重新发送的探测报文/待转发报文。若转发路径中,还存在中间节点设备的MTU值小于重新发送的探测报文/待转发报文的长度,则再重复上述步骤,直至确定出转发路径所有中间节点设备的最小MTU值,然后利用最小MUT值确定最终目标MTU值,使得最后构造的探测报文或分片后的待转发报文能够发送至转发路径的出节点设备。即,最后构造的探测报文或分片后的待转发报文在封装后,其报文长度小于转发路径中的任意中间节点的MTU值。
可理解地,若入节点发送至中间节点的探测报文/待转发报文的长度超过中间节点的MTU值,便会触发步骤S110,然后利用所确定的目标MTU值,更新入节点设备自身默认的MTU值(目标MTU值小于默认的MTU值),后续分片便以目标MTU值为依据进行报文的分片。例如,入节点设备将自身的MTU至更新为目标MTU后,便会在接收的待转发报文的长度大于目标MTU时,对待转发报文进行分片。目的端设备在接收到分片后的报文后,可以解除报文的封装并进行重组,重组方式为本领域技术人员所熟知,这里不再赘述。
请再次参照图1,下面将举例阐述数据传输处理方法的实现过程,如下:
假设网络系统包括源端设备CE1,入节点设备PE1、中间节点设备P1至Pn,出节点设备PE2及目的端设备CE2。当然,网络系统还可以包括其他节点设备。假设,当前所确定的一条转发路径为“CE1- PE1-P1-P2-P3-PE2-CE2”。
PE1在接收到原始报文时,若原始报文的长度未超过PE1当前的MTU值,则对原始报文进行SRv6封装,以作为待转发报文;然后将待转发报文发送至P1。若P1的MTU值(记为TP1)小于待转发报文的长度,则向PE1发送数据包过大报文,比如“ICMP Too Big”,此时,P1会丢弃该待转发报文。然后PE1根据TP1确定当前的目标MTU值(记为T0), T0=T P1-Len,其中,Len为入节点设备对待转发报文进行SRv6封装的预设封装长度。此时,PE1便根据T0对待转发报文进行分片,以使封装后的待转发报文的长度小于或等于TP1。入节点设备后续发送的待转发报文,便不会存在报文的长度大于TP1的情况,也就不会因此而丢弃报文。
P1在接收到分片后的待转发报文后,可以基于转发路径,将报文转发至P2,然后由P2判断报文的长度是否超过P2自身的MTU(记为TP2),若P2接收的待转发报文的长度超过TP2,便会向PE1发送数据包过大报文,然后PE1根据TP2确定一个新的目标MTU,以更新T0的值,更新后的T0的值为“T P2-Len”。此时,PE1便根据更新后的T0对待转发报文进行分片,以使封装后的待转发报文的长度小于或等于TP2。在转发路径中,针对每个中间节点,便会如P1、P2的处理方式,对接收的报文长度长度进行判断。直至入节点设备被更新后的T0为根据转发路径中的最小MTU值所确定的MTU,一条转发路径的最小MTU即为PMTU。如此,可以保障分片后的报文在封装报文头部后,报文的长度小于任一节点设备的MTU,以改善因报文长度超过节点设备自身的MTU而丢弃报文的问题。
基于上述设计,报文在转发过程中,不会因为分段路由中的其中某一段路由的MTU值较小而导致报文被丢弃,提高数据传输的稳定性,改善源端设备因无法感知报文被丢弃而导致业务中断的问题。另外,基于上述设计,目标MUT值为基于转发路径确定的,可以随着转发路径的改变而重新确定,为转发路径传输单个报文所支持的最大长度,有利于减少入节点的分片次数,同时减少对端出接口对分片报文的重组,从而降低报文转发中的开销。
作为一种可选的实施方式,若分片后的待转发报文在转发过程中,仍然存在分片后的待转发报文的长度大于中间节点的MTU值的情况,则需要再次对入节点设备的MTU值进行更新。即,在步骤S140之后,方法还可以包括:
入节点设备对所述分片后的待转发报文封装报文头部,得到第一待转发报文;
入节点设备将所述第一待转发报文按照所述转发路径进行转发;
入节点设备重复执行步骤接收所述转发路径中其他中间节点设备发送的数据包过大报文,以及根据所述数据包过大报文携带的所述其他中间节点设备的MTU值,确定用于对待转发报文进行分片的新目标MTU值,直至新目标MTU值为根据所述转发路径中的最小MTU值所确定的MTU值,所述其他中间节点设备为所述转发路径中的MTU值小于所述第一待转发报文的长度的节点设备。
可理解地,由于入节点设备是以目标MTU值进行的分片,因此,报文分片后,封装得到的第一待转发报文的长度小于或等于MTU值。在第一待转发报文转发过程中,若网络系统10中,仍然存在其他中间节点设备的MTU值小于第一待转发报文的长度时,其他中间节点便会在接收的待转发报文的长度超过自身MTU值时,向入节点设备发送数据包过大报文,然后,入节点设备类似于重复执行步骤S120至步骤S140,直至入节点设备的MTU值被更新为转发路径中的最小MTU值。
在上述的实施方式中,通过确保新目标MTU值为根据转发路径中的最小MTU值所确定的MTU值,入节点设备后续在根据新目标MTU值对报文进行分片后,分片封装后的报文的长度便会小于或等于转发路径中任一节点设备的MTU值。如此,转发路径中的任一节点设备不会存在所接收的待转发报文的长度大于自身MTU值的情况,也就不会因此而丢弃待转发报文。
在本实施例中,在步骤S110之前,方法还可以包括以下步骤:
接收源端设备11发送的原始报文,所述原始报文包括ipv4报文、ipv6报文中的一种;
对所述原始报文进行SRv6封装,得到所述待转发报文;
根据所述转发路径转发所述待转发报文。
可理解地,源端设备11发送的原始报文可以为ipv4报文、ipv6报文中的任意一种,这里不作具体限定。入节点设备在接收到原始报文后,若原始报文的长度未超过入节点设备当前的MTU值,便会对原始报文进行SRv6封装,得到待转发报文。
若原始报文的长度超过入节点设备当前的MTU值,则需要对原始报文进行分片,得到分片后的报文。然后,针对分片后的每个报文,进行SRv6封装,得到待转发报文。其中,一个分片后的报文可以封装得到一个待转发报文。
需要说明的是,无论原始报文为ipv4报文,或ipv6报文,封装后的原始报文便为ipv6报文。如此,有利于兼容转发ipv4报文、ipv6报文。另外,入节点设备当前的MTU值可以为默认的MTU值,或者为更新后的MTU值,这里不作具体限定。
作为一种可选的实施方式,在步骤S110之前,方法还可以包括:根据预先存储的段列表确定与所述入节点设备对应的所述转发路径。
Network,软件定义网络)控制器利用段列表,来确定经过入节点设备的转发路径。SDN控制器,是软件定义网络中的应用程序。段列表可以为上述的Segment List,包括多个SID。其中,根据Segment 在本实施例中,入节点设备可以通过SDN(Software Defined List确定转发路径的方式为本领域技术人员所熟知,这里不再赘述。
请参照图3,本申请实施例提供的方法还可以包括步骤S150,如下:
步骤S150,当所述待转发报文的传输协议类型为表征可靠传输的协议类型时,所述入节点设备对所述待转发报文进行分片重传。
在本实施例中,表征可靠传输的协议类型及表征非可靠传输的协议类型,均可以根据实际情况进行设置。例如,表征可靠传输的协议类型包括传输控制协议(TransmissionControl Protocol,TCP),表征非可靠传输的协议类型可以包括用户数据报协议(UserDatagram Protocol,UDP)。
示例性地,假设待转发报文为基于TCP协议传输的,若待转发报文的长度大于目标中间节点的MTU值,则该中间节点会丢弃该待转发报文,然后向入节点设备发送数据包过大报文。另外,入节点设备会根据数据包过大报文中的MTU值,确定目标MTU值,然后,针对丢弃的待转发报文,重新进行分片并在封装后进行重传。其中,中间节点所丢弃的待转发报文在未抵达目的端设备之前,可以临时缓存在入节点设备,或者由源端设备11重发一个待转发报文,如此,在待转发报文被中间节点丢弃后,入节点设备可以重新再传与待转发报文对应的报文。
若待转发报文为基于UDP传输的,在转发过程中,通常准许一定的丢包率。在中间节点丢弃待转发报文后,入节点无需进行待转发报文的重传。
请参照图4,本申请实施例还提供一种数据传输处理装置200,可以应用于上述的网络设备中,用于执行方法相应的步骤。数据传输处理装置200包括至少一个可以软件或固件(Firmware)的形式存储于存储模块中或固化在网络设备操作系统(Operating System,OS)中的软件功能模块。处理模块用于执行存储模块中存储的可执行模块,例如数据传输处理装置200所包括的软件功能模块及计算机程序等。
数据传输处理装置200可以包括接收单元210、计算单元220及分片单元230,执行的操作步骤可以如下:
接收单元210,用于接收转发路径中任一中间节点设备发送的数据包过大报文,所述数据包过大报文为所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文;
计算单元220,用于根据所述数据包过大报文携带的所述任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值;
分片单元230,用于根据所述目标MTU值对所述待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于所述任一中间节点设备的MTU值。
可选地,数据传输处理装置200还可以包括发送单元。在所述接收单元接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述发送单元用于:按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达所述转发路径的出节点设备。
可选地,计算单元用于根据所述转发路径中所有MTU值中的最小MTU值,确定用于对待转发报文进行分片的最终目标MTU值。
可选地,数据传输处理装置200可以包括重传单元,用于当所述待转发报文的传输协议类型为表征可靠传输的协议类型时,对所述待转发报文进行分片重传。
可选地,在接收单元210接收转发路径中任一中间节点设备发送的数据包过大报文之前,接收单元210还用于接收源端设备11发送的原始报文,所述原始报文包括ipv4报文、ipv6报文中的一种;封装单元用于对所述原始报文进行SRv6封装,得到所述待转发报文;转发单元用于根据所述转发路径转发所述待转发报文。
可选地,计算单元220用于:将所述数据包过大报文携带的所述中间节点设备的所述MTU值与预设封装长度相减,得到所述目标MTU值。
可选地,数据传输处理装置200还可以包括路径确定单元。在接收单元210接收转发路径中任一中间节点设备发送的数据包过大报文之前,路径确定单元用于根据预先存储的段列表确定与所述入节点设备对应的所述转发路径。
需要说明的是,网络设备中的处理模块、存储模块以及数据传输处理装置200各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
在本实施例中,处理模块可以是一种集成电路芯片,具有信号的处理能力。上述处理模块可以是通用处理器。例如,该处理器可以是中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
存储模块可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块可以用于存储MTU值、Segment List等。当然,存储模块还可以用于存储程序,处理模块在接收到执行指令后,执行该程序。
网络设备还可以包括其他模块。例如,网络设备还可以包括通信模块。通信模块用于通过网络建立网络设备与源端设备11、中间节点设备13的通信连接,并通过网络收发数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网络设备、入节点设备12、数据传输处理装置200的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
本申请实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的数据传输处理方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,本申请实施例提供一种数据传输处理方法、装置、网络设备及可读存储介质。方法包括:接收转发路径中任一中间节点设备发送的数据包过大报文,数据包过大报文为任一中间节点设备在接收到入节点设备发送的探测报文的长度或待转发报文的长度超过任一中间节点设备自身的MTU值时发送的报文;根据数据包过大报文携带的任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值;根据目标MTU值对待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于任一中间节点设备的MTU值。在本方案中,当中间节点设备接收的探测报文或待转发报文的长度大于中间设备自身的MTU值时,可以通过入节点设备将重新确定的目标MTU值作为报文分片的阈值,然后由入节点设备利用目标MTU值对待转发报文进行分片,以使分片后的待转发报文在封装报文头部后的长度小于中间节点的MTU值,如此,中间节点设备便不会丢弃分片后的待转发报文,从而有利于提高报文传输的质量。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据传输处理方法,其特征在于,应用于SRv6中的入节点设备,所述方法包括:
接收转发路径中任一中间节点设备发送的数据包过大报文,所述数据包过大报文为所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文;
根据所述数据包过大报文携带的所述任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值;
根据所述目标MTU值对所述待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于所述任一中间节点设备的MTU值;
其中,若所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文,该中间节点丢弃所述探测报文或所述待转发报文;
所述任一中间节点设备丢弃所述探测报文后,所述入节点设备基于该中间节点的MTU值修改段列表的MTU值,重新构造所述探测报文;
所述任一中间节点所丢弃的所述待转发报文在未抵达目的端设备之前,所述入节点设备临时缓存所述待转发报文。
2.根据权利要求1所述的方法,其特征在于,在所述接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述方法还包括:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达所述转发路径的出节点设备。
3.根据权利要求1或2所述的方法,其特征在于,根据所述数据包过大报文携带的所述任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值,包括:
根据所述转发路径中所有MTU值中的最小MTU值,确定用于对待转发报文进行分片的最终目标MTU值。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述待转发报文的传输协议类型为表征可靠传输的协议类型时,对所述待转发报文进行分片重传。
5.一种数据传输处理方法,其特征在于,应用于SRv6中的网络系统,所述网络系统包括入节点设备及与所述入节点设备连接的中间节点设备,所述方法包括:
当转发路径中任一中间节点设备自身的MTU值小于所接收的探测报文或待转发报文的长度时,所述任一中间节点设备向所述入节点设备发送数据包过大报文;
所述入节点设备接收所述任一中间节点设备发送的所述数据包过大报文;
所述入节点设备根据所述任一中间节点设备发送的数据包过大报文携带的MTU值,确定用于对待转发报文进行分片的目标MTU值;
所述入节点设备根据所述目标MTU值对所述入节点设备接收的所述待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于所述任一中间节点设备的MTU值;
若所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文,该中间节点丢弃所述探测报文或所述待转发报文;
所述任一中间节点设备丢弃所述探测报文后,所述入节点设备基于该中间节点的MTU值修改段列表的MTU值,重新构造所述探测报文;
所述任一中间节点所丢弃的所述待转发报文在未抵达目的端设备之前,所述入节点设备临时缓存所述待转发报文。
6.根据权利要求5所述的方法,其特征在于,在所述任一中间节点设备向所述入节点设备发送数据包过大报文之前,所述方法还包括:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达转发路径的出节点设备。
7.一种数据传输处理装置,其特征在于,应用于SRv6中的入节点设备,所述装置包括:
接收单元,用于接收转发路径中任一中间节点设备发送的数据包过大报文,所述数据包过大报文为所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文;
计算单元,用于根据所述数据包过大报文携带的所述任一中间节点设备的MTU值,确定用于对待转发报文进行分片的目标MTU值;
分片单元,用于根据所述目标MTU值对所述待转发报文进行分片,以使分片后的待转发报文在封装隧道报文头部后的长度小于所述任一中间节点设备的MTU值;
其中,若所述任一中间节点设备在接收到所述入节点设备发送的探测报文的长度或待转发报文的长度超过所述任一中间节点设备自身的MTU值时发送的报文,该中间节点丢弃所述探测报文或所述待转发报文;
所述装置还用于:
所述任一中间节点设备丢弃所述探测报文后,所述入节点设备基于该中间节点的MTU值修改段列表的MTU值,重新构造所述探测报文;
所述任一中间节点所丢弃的所述待转发报文在未抵达目的端设备之前,所述入节点设备临时缓存所述待转发报文。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括发送单元,在所述接收单元接收转发路径中任一中间节点设备发送的数据包过大报文之前,所述发送单元用于:
按照预先配置的段列表的MTU值发送探测报文或者发送来自发送端的待转发报文,直至该探测报文或者来自发送端的待转发报文到达所述转发路径的出节点设备。
9.一种网络设备,其特征在于,所述网络设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述网络设备执行如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-4中任一项所述的方法。
CN202011368156.7A 2020-11-27 2020-11-27 数据传输处理方法、装置、网络设备及可读存储介质 Active CN112333094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011368156.7A CN112333094B (zh) 2020-11-27 2020-11-27 数据传输处理方法、装置、网络设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011368156.7A CN112333094B (zh) 2020-11-27 2020-11-27 数据传输处理方法、装置、网络设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112333094A CN112333094A (zh) 2021-02-05
CN112333094B true CN112333094B (zh) 2022-10-18

Family

ID=74309277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011368156.7A Active CN112333094B (zh) 2020-11-27 2020-11-27 数据传输处理方法、装置、网络设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112333094B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055305B (zh) * 2021-02-28 2022-09-02 北京华三通信技术有限公司 报文处理方法及装置
CN113271556B (zh) * 2021-04-07 2023-04-11 维沃移动通信有限公司 会话消息发送方法、装置及电子设备
CN113259490B (zh) * 2021-06-29 2021-09-24 北京华云安信息技术有限公司 基于udp传输协议的多级节点网络数据传输方法
CN114006872B (zh) * 2021-09-29 2023-08-04 苏州浪潮智能科技有限公司 数据包的传输方法、装置、电子设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325076A (zh) * 2011-05-24 2012-01-18 中兴通讯股份有限公司 一种路径最大传输单元发现方法和节点
CN103067278A (zh) * 2013-01-30 2013-04-24 杭州华三通信技术有限公司 一种数据帧的传输处理方法、设备及系统
CN103262606A (zh) * 2010-12-21 2013-08-21 瑞典爱立信有限公司 对gtp隧道中的ip分片的改进
CN104253759A (zh) * 2013-06-30 2014-12-31 华为技术有限公司 报文转发方法、装置及系统
CN105871722A (zh) * 2015-01-19 2016-08-17 中兴通讯股份有限公司 标签构造以及标签报文转发方法及装置
CN107104898A (zh) * 2016-02-22 2017-08-29 华为技术有限公司 报文传输的方法、设备及系统
CN108270673A (zh) * 2016-12-30 2018-07-10 中兴通讯股份有限公司 报文发送方法、装置以及系统
CN111355657A (zh) * 2018-12-24 2020-06-30 中兴通讯股份有限公司 一种流量工程路径建立方法及装置和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207571B (zh) * 2007-12-12 2011-04-20 华为技术有限公司 转发报文的方法和设备
CN108965122B (zh) * 2017-05-19 2022-03-11 中兴通讯股份有限公司 路由选路方法、设备及计算机可读存储介质
CN108683606B (zh) * 2018-05-11 2021-10-08 迈普通信技术股份有限公司 IPsec防重放的方法、装置、网络设备及可读存储介质
CN110636551B (zh) * 2018-06-25 2022-05-17 上海华为技术有限公司 避免报文分片的方法和装置
CN111181848B (zh) * 2018-11-09 2022-02-15 中国电信股份有限公司 网络分片方法、系统、路由器和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103262606A (zh) * 2010-12-21 2013-08-21 瑞典爱立信有限公司 对gtp隧道中的ip分片的改进
CN102325076A (zh) * 2011-05-24 2012-01-18 中兴通讯股份有限公司 一种路径最大传输单元发现方法和节点
CN103067278A (zh) * 2013-01-30 2013-04-24 杭州华三通信技术有限公司 一种数据帧的传输处理方法、设备及系统
CN104253759A (zh) * 2013-06-30 2014-12-31 华为技术有限公司 报文转发方法、装置及系统
CN105871722A (zh) * 2015-01-19 2016-08-17 中兴通讯股份有限公司 标签构造以及标签报文转发方法及装置
CN107104898A (zh) * 2016-02-22 2017-08-29 华为技术有限公司 报文传输的方法、设备及系统
CN108270673A (zh) * 2016-12-30 2018-07-10 中兴通讯股份有限公司 报文发送方法、装置以及系统
CN111355657A (zh) * 2018-12-24 2020-06-30 中兴通讯股份有限公司 一种流量工程路径建立方法及装置和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
6rd Tunnel MTU;Network Working Group;《百度学术》;20140130;全文 *
Flexible failure detection and fast reroute using eBPF and SRv6;Mathieu Xhonneux;《百度学术》;20181223;全文 *

Also Published As

Publication number Publication date
CN112333094A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
CN112333094B (zh) 数据传输处理方法、装置、网络设备及可读存储介质
US20230069502A1 (en) Packet Processing Method, Related Device, and Computer Storage Medium
EP3920480A1 (en) Message forwarding path determination method, network node, and system
JP5005003B2 (ja) トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法、対応するトンネル終点及びコンピュータ読み取り可能な記憶媒体
US9450867B2 (en) Apparatus and method for controlling transmission between relay devices
US11489945B2 (en) TCP packet processing method, toe component, and network device
TWI530123B (zh) Communication devices and communication methods
CN113709057A (zh) 网络拥塞的通告方法、代理节点、网络节点及计算机设备
CN111935009B (zh) 数据包路由方法、装置、设备、系统及存储介质
WO2022001287A1 (zh) 一种报文处理的方法及设备
EP3985941A2 (en) Path switching method, device, and system
CN112737914A (zh) 报文处理方法、装置、网络设备及可读存储介质
CN111740939A (zh) 报文传输装置、设备、方法及存储介质
US20240073128A1 (en) Message encapsulation and de-encapsulation method and device, storage medium, and electronic device
CN110784436B (zh) 用于维持互联网协议安全隧道的方法和设备
JP2008118281A (ja) 通信装置
CN111130982A (zh) 报文转发方法、装置、网关设备及可读存储介质
JP4434019B2 (ja) データ配信管理装置およびデータ配信管理方法
CN113965518A (zh) 一种报文处理的方法及设备
US11196792B2 (en) Method, device and system for transmitting data
US10257087B2 (en) Communication device and communication method
CN115714991A (zh) 时间明晰网络数据包的传输方法、设备及存储介质
CN113839894A (zh) 报文处理方法及系统
CN102821051B (zh) 通用路由封装隧道中路径最大传输单元更改方法
CN114301737B (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
GR01 Patent grant
GR01 Patent grant