CN113411260B - 一种IPv6网络中数据报文的发送方法及装置 - Google Patents
一种IPv6网络中数据报文的发送方法及装置 Download PDFInfo
- Publication number
- CN113411260B CN113411260B CN202110543462.8A CN202110543462A CN113411260B CN 113411260 B CN113411260 B CN 113411260B CN 202110543462 A CN202110543462 A CN 202110543462A CN 113411260 B CN113411260 B CN 113411260B
- Authority
- CN
- China
- Prior art keywords
- message
- path
- pmtu
- mtu
- detection
- 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
Images
Classifications
-
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- 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
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- 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]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,尤其涉及互联网协议IP版本v6网络中数据报文的发送方法及装置,用以解决目前IPv6网络中未探测到路径的PMTU之前数据报文可能一直被丢弃的问题。本发明实施例提供的一种方法包括:在未探测到路径的PMTU之前,按照IPv6协议规定的最小MTU发送数据报文;在探测到所述路径的PMTU后,按照探测到所述路径的PMTU在所述路径上发送后续数据报文。由于在探测到路径PMTU之前,使用IPv6协议规定的最小MTU发送后续数据报文,保证数据报文能通过路径上的具有任意MTU的网络设备,保证数据报文可被目的接收端收到。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种IPv6网络中数据报文的发送方法及装置。
背景技术
在互联网协议版本6(Internet Protocol version 6,IPv6)网络中,为了提高网络设备的转发效率,诸如路由器等的中间设备,不再具有分片功能,对于超过本设备接口最大传输单元(Maximum Transmission,MTU)长度的数据报文直接丢弃,数据报文的分片重组功能只能在发送端的主机(HOST)节点完成。换言之,只有发送端的HOST节点才能对数据报文进行分片。因此,发送端的HOST节点需要进行路径的路径最大传输单元(Path MaxTransmission Unit,PMTU)探测,以确定发送的数据报文的长度。
目前的一种数据报文发送过程如图1所示。其中,发送端的HOST节点发送数据报文使用一个出接口,该出接口预先配置的MTU=1500字节。发送端的HOST节点在发送数据报文时,按照该预先配置的MTU=1500字节发送该数据报文。
路由器A在收到发送端发送的该数据报文后,确定自身发送该数据报文的接口所配置的MTU=1400字节,因此,路由器A在收到MTU=1500字节的数据报文后,丢弃该数据报文,并向发送端发送互联网控制报文协议(internet control message protocol,ICMP)版本(version,v)6(类型=2)的消息,指示收到的数据报文过长,并在消息中携带指示MTU=1400字节的信息。
发送端在收到该消息后,根据消息中携带的指示MTU=1400信息,后续在该路径上发送MTU=1400字节的数据报文。
后续的数据报文通过路由器A后到达路由器B,由于路由器B收到MTU=1400字节的数据报文后,确定自身发送该数据报文使用的接口所配置的MTU=1300字节,因此路由器B丢弃收到的该MTU=1400字节的数据报文,并向发送端返回ICMPv6(类型=2)的消息,指示收到的数据报文过长,并在消息中携带指示MTU=1300字节的信息。
发送端在收到该消息后,根据消息中携带的MTU=1300字节的信息,后续发送MTU=1300字节的数据报文。MTU=1300字节的数据报文可分别经过路由器A和路由器B,到达目的节点。
从图1所示的过程可见,发送端发送的MTU=1500字节的数据报文和MTU=1400字节的数据报文,分别被路由器A和路由器B丢弃,即发送端在探测到路径的PMTU=1300字节之前,发送的数据报文均会被丢弃。
综上,在目前的IPv6网络中,可能由于发送的数据报文的长度超过路径上的网络设备的接口所支持的MTU的长度,在数据报文发送端未探测到路径的PMTU之前数据报文一直被丢弃。
发明内容
有鉴于此,本发明实施例提供一种IPv6网络中的数据报文的发送方法及装置,用于解决目前的IPv6网络中,在数据报文的发送端未探测到路径的PMTU之前数据报文可能一直被丢弃的问题。
第一方面,本发明实施例提供一种互联网协议版本6,IPv6,网络中数据报文的发送方法,包括:
在未探测到所述路径的PMTU之前,按照IPv6协议规定的最小MTU在所述路径上发送数据报文;
在探测到所述路径的PMTU后,按照探测到所述路径的PMTU在所述路径上发送后续数据报文。
可选地,在按照IPv6协议规定的最小MTU在所述路径上发送数据报文之前,还包括:
确定待发送的数据报文使用的路径的路径最大传输单元PMTU未知;
按照IPv6协议规定的最小的最大传输单元MTU发送所述待发送的数据报文,并进行所述路径的PMTU探测。
结合第一方面,在第一种可能的实现方式中,在满足下列条件中的至少一项时,确定所述路径的PMTU未知:
所述待发送的数据报文是当前主机HOST在所述路径上首次发送的数据报文;
当前HOST上的所述路径的PMTU表项已被删除;
当前HOST正在探测所述路径的PMTU;
当前HOST收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长。
结合第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,进行所述路径的PMTU探测,包括:
以所述待发送的数据报文的源IP地址和目的IP地址构造探测报文,并在所述路径上发送所述探测报文;
判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到;
若确定所述探测报文被所述目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大MTU作为探测到的所述路径的PMTU。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到之后,还包括:
若确定所述探测报文未被所述目的接收端收到,则
判断是否收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长;
若收到所述指示消息,则重复执行第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送N次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,N为正整数;
其中,所述第一操作包括:从所述指示消息中获取用于该网络设备所支持的MTU,按照获取的该MTU再次发送所述探测报文;
若所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大MTU作为探测到的所述路径的PMTU。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,进行所述路径的PMTU探测,还包括:
若连续发送N次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,则重复执行第二操作,直至收到所述指示消息或所述探测报文被所述目的接收端收到;
所述第二操作包括:设置第一MTU,并以设置的所述第一MTU发送所述探测报文,其中,
所述第一MTU的长度不小于IPv6协议规定的最小MTU的长度,且
若收到所述指示消息,则所述第一MTU的长度不大于第二MTU的长度和第三MTU的长度,以及收到的所述指示消息中所指示的MTU三者中的最小值;或者
若未收到所述指示消息,则所述第一MTU的长度不大于第二MTU的长度和第三MTU的长度中的较小值;
所述第二MTU为当前HOST上的特定接口配置的MTU;所述第三MTU为当前HOST从所述特定接口上收到的路由通告RA报文中指示的MTU;所述特定接口为当前HOST上发送所述待发送的数据报文所使用的出接口;
若重复执行所述第二操作过程中确定所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大MTU作为探测到的所述路径的PMTU;
若重复执行所述第二操作过程中收到所述指示消息,则返回重复执行所述第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送N次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到的步骤。
结合第一方面的第二种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,
所述探测报文为传输层协议报文,所述探测报文的目的端口号为所述目的接收端未使用的端口号;进行所述路径的PMTU探测,包括:在所述路径上发送所述探测报文之后,若收到对端不可达报文,则确定所述探测报文被所述目的接收端收到;或
所述探测报文为ping报文,进行所述路径的PMTU探测,包括:在所述路径上发送所述探测报文之后,若收到所述目的接收端的响应,则确定所述探测报文被所述目的接收端收到;或
所述探测报文为跟踪路由trace route报文,进行所述路径的PMTU探测,包括:在所述路径上发送所述探测报文之后,若收到所述接收端的响应,则确定所述探测报文被所述目的接收端收到;或
所述探测报文为传输层之上的协议报文,进行所述路径的PMTU探测,包括:在所述路径上发送所述探测报文之后,若收到所述目的接收端返回的与当前HOST预先约定的响应于所述探测报文的响应报文,则确定所述探测报文被所述目的接收端收到。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述待发送的数据报文是当前主机HOST在所述路径上首次发送的数据报文时,或在当前HOST上的所述路径的PMTU表项已被删除时,确定所述路径的PMTU未知;
进行所述路径的PMTU探测,包括:按照第二MTU和第三MTU中长度较小的MTU发送第一个所述探测报文;
其中,所述第二MTU为当前HOST上的特定接口的配置的MTU;所述第三MTU为当前HOST从所述特定接口上收到的路由通告RA报文中指示的MTU;所述特定接口为当前HOST上发送所述待发送的数据报文所使用的出接口。
结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,在当前HOST正在探测所述路径的PMTU时,确定所述路径的PMTU未知;
进行所述路径的PMTU探测,包括:继续已经进行的所述路径的PMTU探测。
结合第一方面的第五种可能的实现方式,在第八种可能的实现方式中,在收到所述路径上的网络设备发送的所述指示消息时,确定所述路径的PMTU未知;
进行所述路径的PMTU探测,包括:从该指示消息中获取的该网络设备所支持的MTU,按照获取的该MTU发送进行的所述路径的PMTU探测过程中的第一个所述探测报文。
第二方面,本发明实施例提供一种互联网协议版本6,IPv6,网络中的数据报文的发送装置,包括:处理单元和收发单元;
所述处理单元,用于在未探测到所述路径的PMTU之前,按照IPv6协议规定的最小MTU,通过所述收发单元在所述路径上发送数据报文;
在探测到所述路径的PMTU后,按照探测到所述路径的PMTU,通过所述收发单元在所述路径上发送后续数据报文。
可选地,所述处理单元还用于:在按照IPv6协议规定的最小MTU,通过所述收发单元在所述路径上发送数据报文之前,确定待发送的数据报文使用的路径的路径最大传输单元PMTU未知;按照IPv6协议规定的最小的最大传输单元MTU,通过所述收发单元发送所述待发送的数据报文,并进行所述路径的PMTU探测。
结合第二方面,在第一种可能的实现方式中,所述处理单元具体用于在满足下列条件中的至少一项时,确定所述路径的PMTU未知:
所述待发送的数据报文是所述HOST在所述路径上首次发送的数据报文;
所述HOST上的所述路径的PMTU表项已被删除;
所述HOST正在探测所述路径的PMTU;
所述收发单元收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长。
结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元具体用于:
以所述待发送的数据报文的源IP地址和目的IP地址构造探测报文,并通过所述收发单元在所述路径上发送所述探测报文;
判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到;
若确定所述探测报文被所述目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大MTU作为探测到的所述路径的PMTU。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理单元还用于:在判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到之后,
若确定所述探测报文未被所述目的接收端收到,则
判断是否收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长;
若收到所述指示消息,则重复执行第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送N次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,N为正整数;
其中,所述第一操作包括:从所述指示消息中获取用于该网络设备所支持的MTU,按照获取的该MTU通过所述收发单元再次发送所述探测报文;
若所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大MTU作为探测到的所述路径的PMTU。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理单元具体用于:
若通过所述收发单元连续发送N次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,则重复执行第二操作,直至所述收发单元收到所述指示消息或所述探测报文被所述目的接收端收到;
所述第二操作包括:设置第一MTU,并以设置的所述第一MTU通过所述收发单元发送所述探测报文,其中所述第一MTU的长度不小于IPv6协议规定的最小MTU的长度,且
若收到所述指示消息,则所述第一MTU的长度不大于第二MTU的长度和第三MTU的长度,以及收到的所述指示消息中所指示的MTU三者中的最小值;或者
若未收到所述指示消息,则所述第一MTU的长度不大于第二MTU的长度和第三MTU的长度中的较小值;
所述第二MTU为当前HOST上的特定接口配置的MTU;所述第三MTU为所述收发单元从所述特定接口上收到的路由通告RA报文中指示的MTU;所述特定接口为所述收发单元发送所述待发送的数据报文所使用的出接口;
若重复执行所述第二操作过程中确定所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大MTU作为探测到的所述路径的PMTU;
若重复执行所述第二操作过程中收到所述指示消息,则返回重复执行所述第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送N次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到的步骤。
结合第二方面的第二种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,
所述探测报文为传输层协议报文,所述探测报文的目的端口号为所述目的接收端未使用的端口号;所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若所述收发单元收到对端不可达报文,则确定所述探测报文被所述目的接收端收到;或
所述探测报文为ping报文,所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若收到所述目的接收端的响应,则确定所述探测报文被所述目的接收端收到;或
所述探测报文为跟踪路由trace route报文,所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若所述收发单元收到所述接收端的响应,则确定所述探测报文被所述目的接收端收到;或
所述探测报文为传输层之上的协议报文,所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若所述收发单元收到所述目的接收端返回的与当前HOST预先约定的响应于所述探测报文的响应报文,则确定所述探测报文被所述目的接收端收到。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述待发送的数据报文是当前主机HOST在所述路径上首次发送的数据报文时,或在当前HOST上的所述路径的PMTU表项已被删除时,确定所述路径的PMTU未知;
所述收发单元具体用于:按照第二MTU和第三MTU中长度较小的MTU通过所述收发单元发送第一个所述探测报文;
其中,所述第二MTU为所述HOST上的特定接口的配置的MTU;所述第三MTU为所述收发单元从所述特定接口上收到的路由通告RA报文中指示的MTU;所述特定接口为所述收发单元发送所述待发送的数据报文所使用的出接口。
结合第二方面的第五种可能的实现方式,在第七种可能的实现方式中,所述处理单元具体用于:在正在探测所述路径的PMTU时,确定所述路径的PMTU未知;
所述处理单元具体用于:继续已经进行的所述路径的PMTU探测。
结合第二方面的第五种可能的实现方式,在第八种可能的实现方式中,所述处理单元具体用于:在所述收发单元收到所述路径上的网络设备发送的所述指示消息时,确定所述路径的PMTU未知;
所述处理单元具体用于:从该指示消息中获取的该网络设备所支持的MTU,按照获取的该MTU通过所述收发单元发送进行的所述路径的PMTU探测过程中的第一个所述探测报文。
第三方面,本发明实施例提供一种IPv6网络中的主机HOST,包括第二方面,或第二方面的任一种可能的实现方式提供的装置。
第四方面,本发明实施例提供一种互联网协议版本6,IPv6,网络中的数据报文的发送装置,包括:处理器和收发器;
所述处理器,用于实现如第一方面,或第一方面的任一种可能的实现方式提供的方法,所述收发器用于在所述处理器的控制下实现所述方法中的接收和/或发送。
第五方面,本发明实施例提供一种IPv6网络中的主机HOST,包括第四方面提供的装置。
在本发明实施例中,IPv6网络中的发送端的HOST节点在未探测到路径的PMTU之前,按照IPv6协议规定的最小MTU在该路径上发送数据报文;在探测到该路径的PMTU后,按照探测到该路径的PMTU在该路径上发送后续数据报文。
由于在探测到路径的PMTU之前,使用IPv6协议规定的最小MTU发送数据报文,最小MTU可保证数据报文能通过路径上的具有任意MTU的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
附图说明
图1为目前IPv6网络中的PMTU探测的方法的示意图;
图2A为IPv6网络中一种可能的数据报文的传输路径的示意图;
图2B为本发明实施例提供的一种数据报文的发送方法的流程图;
图3为本发明实施例提供的一种可选的PMTU探测过程的示意图;
图4为本发明实施例提供的HOST节点内部实现的一种可能实现方式的示意图;
图5A为IPv6的一种简单的组网场景的示意图;
图5B和图5C为路径中存在层二交换机的场景的示意图;
图6为本发明实施例提供的一种数据报文的发送装置的结构示意图;
图7为本发明实施例提供的另一种数据报文的发送装置的结构示意图。
具体实施方式
本发明实施例提供一种IPv6网络中的数据报文的发送方法及装置,用于解决目前的IPv6网络中,在数据报文的发送端未探测到路径的PMTU之前数据报文可能一直被丢弃的问题。
在本发明实施例中,IPv6网络中的发送端的HOST节点在未探测到路径的PMTU之前,按照IPv6协议规定的最小MTU在该路径上发送数据报文;在探测到该路径的PMTU后,按照探测到该路径的PMTU在该路径上发送后续数据报文。
由于在探测到路径的PMTU之前,使用IPv6协议规定的最小MTU发送数据报文,最小MTU可保证数据报文能通过路径上的具有任意MTU的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
下面,结合附图对本发明实施例进行详细说明。
如图2A示出了IPv6网络中数据报文的传输路径,数据报文从发送端的HOST节点201发出,经过中间的网络设备202a、网络设备202b等,最终到达目的接收端的HOST节点203。虽然图2A中示出了两个以上的中间的网络设备,但实际上可能仅存在一个、中间的网络设备,或者不存在中间的网络设备。
下面,首先介绍本发明实施例提供的数据报文的发送方法。
参见图2B本发明实施例提供的数据报文的发送方法包括如下步骤:
S1:在未探测到路径的PMTU之前,按照IPv6协议规定的最小MTU在该路径上发送数据报文;
可选地,还包括S2:在探测到该路径的PMTU后,按照探测到该路径的PMTU在该路径上发送后续数据报文。
可选地,在按照IPv6协议规定的最小MTU在路径上发送数据报文之前,还包括:
确定待发送的数据报文使用的路径的PMTU未知;
按照IPv6协议规定的最小的MTU,比如:1280bytes,发送待发送的数据报文,并进行图3所示的该路径的PMTU探测。
由于在探测到路径的PMTU之前,使用IPv6协议规定的最小MTU发送数据报文,最小MTU可保证数据报文能通过路径上的具有任意MTU的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
其中,HOST节点201和HOST节点203可为个人电脑(Personal Computer)、基站、核心网、手机终端等所有可在IPv6网络中发送和接收数据报文的设备。
【确定路径的PMTU未知的条件】
其中,HOST节点201可在满足下列条件中的至少一个时,确定该路径的PMTU未知:
条件一、HOST节点201上的该路径的PMTU表项已被删除(如图4中的Final状态),比如:PMTU表项在老化后长时间不使用被删除;
条件二、HOST节点201正在探测该路径的PMTU(如图4中的Probe状态);
条件三、HOST节点201收到该路径上的网络设备(比如:网络设备202a)发送的指示消息,该指示消息用于指示该网络设备在该路径上收到的报文过长,比如:前述的ICMPv6(类型=2)的消息,可选地,HOST节点201在收到该消息后,进入图4所示的Probe状态。
【PMTU探测过程】
可选地,参见图3,HOST节点201在进行路径的PMTU探测时,可具体通过如下步骤实现:
S301:HOST节点201以待发送的数据报文的源IP地址和目的IP地址构造探测报文,并在路径上发送探测报文;
可选地,HOST节点201设置探测报文的长度,设置的长度可为下述两个长度中的较小值:
HOST节点201上的特定接口配置的MTU;
HOST节点201从该特定接口上收到的路由通告(Router Advertisement,RA)报文中指示的MTU;
上述特定接口为HOST节点201上发送上述待发送的数据报文所使用的出接口。
由于探测报文用于探测待发送的数据报文的路径的PMTU,因此这里以待发送的数据报文的目的IP地址构造探测报文;为了能够接收后续的用于指示报文过长的指示消息,以及后续确定目的接收端的HOST节点203收到探测报文,这里以待发送的数据报文的源IP地址构造探测报文。
其中,数据报文用于承载待发送的数据,探测报文用于探测路径的PMTU,探测报文与数据报文的使用的协议的类型和目的端口号的组合不同。比如:探测报文与数据报文使用不同的协议类型,相同的目的端口号进行发送;或者,探测报文与数据报文使用相同的协议类型,不同的目的端口号进行发送;再或者,探测报文与数据报文使用不同的协议类型,不同的目的端口号进行发送。
S302:判断发送的探测报文是否被HOST节点203收到,若收到,则执行步骤S303,否则执行步骤S304;其中,判断发送的探测报文是否被HOST节点203收到的方法,可参考后面的“【几种可选的探测报文】”中的描述。
S303:将HOST节点203收到的探测报文所使用的最大的MTU作为探测到的路径的PMTU;
S304:判断是否收到该路径上的网络设备发送的报文过长的指示消息,该指示消息用于指示该网络设备在该路径上收到的报文过长;若收到,则执行步骤S305,否则执行步骤S309;
S305:从收到的指示消息中获取用于该网络设备所支持的MTU,按照获取的该MTU再次发送探测报文;
S306:判断发送的探测报文是否被HOST节点203收到,若是,则执行步骤S303,否则执行步骤S307;
S307:判断是否收到该路径上的网络设备发送的报文过长的指示消息;若是,则返回执行步骤S305,否则执行步骤S308;
S308:不改变探测报文的MTU,重新发送探测报文,之后返回步骤S304;
S309:确定连续N次发送探测报文均未收到报文过长的指示消息,N为正整数;
其中,步骤S308和步骤S309是针对路径上可能存在层二交换机的情形而设置的,当层二交换机收到的报文过长时,直接丢弃,不会向HOST节点201回复报文过长的指示消息,这样HOST节点201无法获知报文的接收情况。通过连续发送N次探测报文,若均未收到报文过长的指示消息,则HOST节点201可确定该路径上存在层二交换机,且发送的报文超过了层二交换机可接受的报文长度,则执行步骤S310等后续步骤。
并且考虑到探测报文在传输时可能出现丢包的情况,所以连续发送N次探测报文,这样会更准确地确定该路径上存在层二交换机。该N值可根据网络实际情况设置,比如:设置为较佳地1、2、3,……,较佳地,可设置为3~5。
S310:设置第一MTU,并以设置的第一MTU发送探测报文;
其中,可选地,第一MTU的长度不小于IPv6协议规定的最小MTU的长度,且不大于第二MTU的长度、第三MTU的长度,以及前面步骤收到的用于指示报文过程的指示消息中所指示的MTU三者中的最小值;若前面步骤没有收到上述指示信息,则第一MTU的长度不小于IPv6协议规定的最小MTU的长度,且不大于第二MTU的长度和第三MTU的长度中的较小值;或者
若前面步骤收到多个上述指示消息,则第一MTU长度设置时,使用收到的多个指示消息中指示的最小MTU。
第二MTU为HOST节点201上的特定接口配置的MTU;
第三MTU为HOST节点201从该特定接口上收到的路由通告(RouterAdvertisement,RA)报文中指示的MTU;
比如:在步骤S301中,若将探测报文的长度设置为下述两个长度中的较小值:HOST节点201上的特定接口配置的MTU;HOST节点201从该特定接口上收到的RA报文中指示的MTU;则步骤S310中,可从IPv6协议规定的最小MTU的长度与步骤S301设置的探测报文的长度构成的区间中,选择一个值作为第一MTU,按照第一MTU发送探测报文。
上述特定接口为HOST节点201上发送上述待发送的数据报文所使用的出接口。可选地,该出接口为层三接口,此接口可配置在HOST节点201上的物理接口上,也可配置在HOST节点201上的物理接口上进行虚拟局域网(Virtual Local Area Network,VLAN)划分的VLAN子接口。
可选地,在步骤S310中,可多次设置第一MTU进行探测,以获得较精确的路径PMTU。比如:可采用二分法进行探测。这里,以IPv6协议规定的最小MTU的长度为1280字节,第二MTU的长度和第三MTU的长度中的较小值为1600字节为例,则在采用二分法探测时,将1280字节作为初始的最小值(min),将1600字节作为初始的最大值(max)进行多次探测。
在采用二分法探测过程中,若确定探测报文被HOST节点203收到,则将本次发送的探测报文使用的MTU作为新的最小值继续探测,若无法确定探测报文被HOST节点203收到,则将本次发送的探测报文使用的MTU作为新的最大值继续探测,直至最小值不小于最大值。
则将上述采用二分法多次探测过程中,被HOST节点203收到的探测报文所使用的最大MTU作为探测得到的路径PMTU。
下面,以图5B和图5C所示的路径中存在层二交换机的场景为例加以说明。
如图5B所示,HOST节点201的MTU为1800字节,初始发送探测报文的MTU为1800字节,经过N次没有收到前述的用于指示报文过长的指示消息,也无法确定HOST节点203收到探测报文,则确定路径上存在层二交换机,则执行步骤S310进行层二探测,比如:采用前述的二分法进行探测,则将1280字节作为初始的最小值(min),将1800字节作为初始的最大值(max)进行多次探测。
如图5C所示,探测报文通过层二交换机1后,会收到路由器发送的用于指示报文过长的指示消息,然后使用该指示消息中指示的MTU=1450字节继续探测,连续N次没有用于指示报文过长的指示消息,也无法确定HOST节点203收到探测报文,则执行步骤S310进行层二探测,比如:采用前述的二分法进行探测,则将1280字节作为初始的最小值(min),将1450字节作为初始的最大值(max)进行多次探测。
S311:判断发送的探测报文是否被HOST节点203收到;若是则执行步骤S303,否则执行步骤S312;
S312:判断是否收到该路径上的网络设备发送的报文过长的指示消息,若是,则执行步骤S305,否则返回执行步骤S310。
以上介绍了HOST节点201探测路径PMTU的方法。下面结合图4介绍HOST节点201内部实现的一种可选方式。
【HOST节点201的内部实现】
如图4所示,HOST节点201在进行PMTU探测时的模式可分为主动模式和被动模式,该模式可通过人机操作进行设置和修改,使得HOST节点201的使用者能够灵活选择探测模式。
1、主动模式
在主动模式下,HOST节点201通过发送探测报文,进行路径的PMTU探测。
通过该主动模式,实现了探测报文和数据报文的分离,在路径的PMTU未知的情况下,与目前通过改变数据报文的MTU长度的方式相比,减小了数据报文的丢失率。
2、被动模式
在数据报文的发送过程中,若收到诸如ICMP(类型=2)的报文过大的指示消息,则HOST节点201调整数据报文的MTU的长度,知道不再收到报文过大的指示消息为止。
采用被动模式,在探测到路径的PMTU之前,数据报文会丢失。
参见图4,在主动模式下,PMTU探测过程中的状态包括:
1、探测(Probe)状态
该状态为主动模式的子状态。
在该状态下,HOST节点201发送探测报文,若确定探测到路径的PMTU,状态迁移到可达(Reachable)状态;
探测状态包含2个子状态:路由器探测状态(L3 Probe)和层二交换机探测状态(L2Probe),初始进入路由器探测状态(L3 Probe)。
在路由器探测状态(L3 Probe)下:当连续N次发送探测报文后没有收到Too Big报文也没有收到对端不可达报文时,在进入层二交换机探测状态(L2 Probe);如果收到TooBig报文,则使用Too Big报文中的MTU进行探测;如果收到对端不可达报文,则进入可达(Reachable)状态。
在层二交换机探测状态(L2 Probe)状态下:执行S310操作,探测最优的PMTU。探测结束后,如果收到不可达报文则迁移到可达(Reachable)状态;如果收到Too Big报文则迁移到路由器探测状态(L3 Probe)状态;如果仍然没有收到Too Big报文也没有收到对端不可达报文时则退出。
2、可达(Reachable)状态
此时,HOST节点201在发送数据报文时,使用探测到的MTU。在预设的老化时间超时后,则迁移到老化(Stale)状态;
3、老化(Stale)状态
该状态为主动模式的子状态。
在该状态下,HOST节点201仍使用之前探测得到的PMTU发送数据报文。
处于该状态时,若没有数据报文发送,则在预设的垃圾回收定时器超时后,进入退出(Final)状态。
处于该状态时,若有数据报文发送,则进入Probe状态,继续探测,在Probe状态下发送数据报文时,仍使用最近一次进入Reachable状态时探测得到的PMTU,以保证数据报文的发送效率。
在被动模式下,初始将状态设置为可达(Reachable)状态,在收到ICMP(类型=2)的消息,或称之为过大(Too Big)报文后,不改变状态,调整发送的数据报文的MTU直至数据报文被HOST节点203收到。
以上介绍了HOST节点201内部实现的可选方式,下面,介绍HOST节点201构造探测报文的几种可选方案。
【几种可选的探测报文】
1、探测报文为传输层协议报文
比如:用户数据报协议(user datagram protocol,UDP)报文、传输控制协议(Transmission Control Protocol,TCP)报文、流控制传输协议(Stream ControlTransmission Protocol,SCTP)报文,网络基本输入输出系统(Net Basic Input/OutputSystem,NetBIOS)报文、NetBIOS增强用户接口(NetBIOS Enhanced User Interface,NetBEUI)报文等。
该探测报文的目的端口号为HOST节点203未使用的端口号,该端口号可为知名端口号,或非知名端口号。此情况下,在路径上发送探测报文之后若收到对端不可达报文(notreachable)时,确定探测报文被HOST节点203收到。这样设置的目的是:若是HOST节点203使用的端口号,则HOST节点203不会返回对端不可达报文。
知名端口号为协议规定的传输层以上的上层协议所使用的传输层协议的端口号,这些端口号不能由用户的应用程序使用。比如:远程登录(telnet)服务器使用的传输层协议TCP端口号为23。
非知名端口号为除了知名端口号之外的传输层协议的端口号。
可选地,HOST节点201可预先进行端口扫描确定HOST节点203的哪些端口未使用;若HOST节点203的端口是预先配置的,则HOST节点201通过获取HOST节点203的配置数据,可确定HOST节点203的哪些端口未使用。
2、探测报文为ping报文
HOST节点201在路径上发送探测报文之后,若收到HOST节点203的响应,则确定探测报文被HOST节点203收到。
3、探测报文为跟踪路由(trace route)报文
HOST节点201在路径上发送探测报文之后收到HOST节点203的响应后,确定探测报文被HOST节点203收到。
4、探测报文为传输层之上的协议报文
HOST节点201与HOST节点203预先约定,HOST节点201发送探测报文时,若HOST节点203收到,则HOST节点203响应该收到的探测报文,返回预先约定的响应报文,则HOST节点201在路径上发送探测报文之后,若收到预先约定的响应报文,则确定探测报文被HOST节点203收到。
以上介绍了探测报文的几种可选的实现方式,下面介绍针对不同的探测触发条件,探测报文的长度的设置。
【探测报文长度设置】
1、待发送的数据报文是HOST节点201在路径上首次发送的数据报文,或在HOST节点201的该路径的PMTU表项已被删除时,HOST节点201确定该路径的PMTU未知;
在此情况下,按照前述的第二MTU和第三MTU中长度较小的MTU发送第一个探测报文。
2、在HOST节点201正在探测路径的PMTU时,确定该路径的PMTU未知;
在此情况下,HOST节点201可继续已经进行的该路径的PMTU探测。
3、在收到该路径上的网络设备,比如网络设备202a发送的报文过长的指示消息时,HOST节点201确定该路径的PMTU未知;
在此情况下,HOST节点201从该指示消息中获取的MTU,按照获取的该MTU发送进行的该路径的PMTU探测过程中的第一个探测报文。
下面,以一个具体的IPv6的组网环境,举例说明本发明实施例适用的各种场景。
【本发明实施例适用场景】
图5A示出了IPv6的一种简单的组网场景,其中图2A中的HOST节点201可为图5A中的PC、智能手机或基站。图2A中的HOST节点203为图5A中的服务器。图5A中各设备上标的数字为该设备支持的MTU的字节数。
下面,区分场景举例说明。
1、新建网的场景
基站在发送数据报文时,由于数据报文是基站在路径上首次发送的数据报文,因此,采用IPv6协议规定的最小MTU,比如:1280bytes发送该数据报文,并进行该路径的PMTU探测。
由于该数据报文是以IPv6协议规定的最小MTU发送的,因此其可通过路径上的任意路由器,即路由器2和路由器3,到达服务器。
在进行路径的PMTU探测时,由于发送数据报文的出接口的配置的MTU为1800bytes,假设HOST节点201从上述发送数据报文的出接口收到的RA报文中指示MTU为1600bytes,则HOST节点201以两者中较小的1600bytes发送探测报文,发送的该探测报文可通过路由器2,到达路由器3。
由于路由器3支持的MTU为1300bytes,因此路由器3向基站返回ICMP(类型=2)的消息,并指示支持的MTU为1300bytes。
基站在发送下一个探测报文时,以MTU=1300bytes发送,则该探测报文可到达服务器,基站根据从服务器收到的响应,比如该探测报文为ping报文,则基站在收到服务器发送的响应后,确定服务器收到探测报文,基站则以1300bytes作为探测到的路径的PMTU。
2、网络改造的场景
仍以基站作为HOST节点201为例,基站探测到路径的PMTU=1300bytes,以1300bytes在该路径上发送后续的数据报文。
若在路由器3的MTU改成1280bytes,则HOST节点201发送的数据报文会被路由器3丢弃,路由器3向基站返回ICMP(类型=2)的消息,并指示支持的MTU=1280bytes。
HOST节点201在收到ICMP(类型=2)的消息后,以IPv6协议规定的最小MTU发送数据报文,并进行PMTU探测,最终探测得到该路径的新的PMTU=1280bytes。
在此情况下,HOST节点201一旦收到ICMP(类型=2)的消息,则以IPv6协议规定的最小MTU发送数据报文,因此可能被路由器3丢弃的数据报文仅为路由器3的MTU改成1280bytes到基站收到ICMP(类型=2)的消息之前,基站在该路径上发送的数据报文。与目前的PMTU探测方法相比,避免了探测过程中由于数据报文的长度过长导致数据报文的丢失。
3、PMTU老化
PMTU老化后,若长时间在一个路径上没有数据报文发送,则HOST节点201会删除自身记录的该路径的PMTU表项,进入图4所示的Final状态。在Stale状态下,若此时该路径上再次有待发送的数据报文,则HOST节点201可进行PMTU的再次探测,同时数据报文使用之前学习到的PMTU进行发送,提高可靠性。
以上,介绍了本发明实施例提供的数据报文的发送方法,下面介绍本发明实施例提供的两种数据报文发送装置。
图6示出了本发明实施例提供的第一种数据报文的发送装置。如图6所示,该装置包括:处理单元601和收发单元602;
处理单元601,用于在未探测到路径的PMTU之前,按照IPv6协议规定的最小MTU,通过收发单元602在路径上发送数据报文;
在探测到路径的PMTU后,按照探测到路径的PMTU,通过收发单元602在路径上发送后续数据报文。
可选地,处理单元601还用于:在按照IPv6协议规定的最小MTU,通过收发单元602在路径上发送数据报文之前,确定待发送的数据报文使用的路径的PMTU未知;按照IPv6协议规定的最小的MTU,通过收发单元602发送待发送的数据报文,并进行路径的PMTU探测。可选地,处理单元601具体用于在满足下列条件中的至少一项时,确定路径的PMTU未知:
待发送的数据报文是HOST在路径上首次发送的数据报文;
HOST上的路径的PMTU表项已被删除;
HOST正在探测路径的PMTU;
收发单元602收到路径上的网络设备发送的指示消息,指示消息用于指示该网络设备在路径上收到的报文过长。
可选地,处理单元601具体用于:
以待发送的数据报文的源IP地址和目的IP地址构造探测报文,并通过收发单元602在路径上发送探测报文;
判断发送的探测报文是否被待发送的数据报文的目的接收端收到;
若确定探测报文被目的接收端收到,则将目的接收端收到的探测报文中使用的最大MTU作为探测到的路径的PMTU。
可选地,处理单元601还用于:在判断发送的探测报文是否被待发送的数据报文的目的接收端收到之后,
若确定探测报文未被目的接收端收到,则
判断是否收到路径上的网络设备发送的指示消息,指示消息用于指示该网络设备在路径上收到的报文过长;
若收到指示消息,则重复执行第一操作,直至探测报文被待发送的数据报文的目的接收端收到,或者连续发送N次探测报文均未收到指示消息且无法确定探测报文被目的接收端收到,N为正整数;
其中,第一操作包括:从指示消息中获取用于该网络设备所支持的MTU,按照获取的该MTU通过收发单元602再次发送探测报文;
若探测报文被待发送的数据报文的目的接收端收到,则将目的接收端收到的探测报文中使用的最大MTU作为探测到的路径的PMTU。
可选地,处理单元601具体用于:
若通过收发单元602连续发送N次探测报文均未收到指示消息且无法确定探测报文被目的接收端收到,则重复执行第二操作,直至收发单元602收到指示消息或探测报文被目的接收端收到;
第二操作包括:设置第一MTU,并以设置的第一MTU通过收发单元602发送探测报文,其中第一MTU的长度不小于IPv6协议规定的最小MTU的长度,且第一MTU的长度不大于第二MTU的长度和第三MTU的长度中的较小值;第二MTU为当前HOST上的特定接口配置的MTU;第三MTU为收发单元602从特定接口上收到的路由通告RA报文中指示的MTU;特定接口为收发单元602发送待发送的数据报文所使用的出接口;
若重复执行第二操作过程中确定探测报文被待发送的数据报文的目的接收端收到,则将目的接收端收到的探测报文中使用的最大MTU作为探测到的路径的PMTU;
若重复执行第二操作过程中收到指示消息,则返回重复执行第一操作,直至探测报文被待发送的数据报文的目的接收端收到,或者连续发送N次探测报文均未收到指示消息且无法确定探测报文被目的接收端收到的步骤。
可选地,探测报文为传输层协议报文,探测报文的目的端口号为目的接收端未使用的端口号;处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收发单元602收到对端不可达报文,则确定探测报文被目的接收端收到;或
探测报文为ping报文,处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收到目的接收端的响应,则确定探测报文被目的接收端收到;或
探测报文为跟踪路由trace route报文,处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收发单元602收到接收端的响应,则确定探测报文被目的接收端收到;或
探测报文为传输层之上的协议报文,处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收发单元602收到目的接收端返回的与当前HOST预先约定的响应于探测报文的响应报文,则确定探测报文被目的接收端收到。
可选地,在待发送的数据报文是当前主机HOST在路径上首次发送的数据报文时,或在当前HOST上的路径的PMTU表项已被删除时,确定路径的PMTU未知;
收发单元602具体用于:按照第二MTU和第三MTU中长度较小的MTU通过收发单元602发送第一个探测报文;
其中,第二MTU为HOST上的特定接口的配置的MTU;第三MTU为收发单元602从特定接口上收到的路由通告RA报文中指示的MTU;特定接口为收发单元602发送待发送的数据报文所使用的出接口。
可选地,处理单元601具体用于:在正在探测路径的PMTU时,确定路径的PMTU未知;
处理单元601具体用于:继续已经进行的路径的PMTU探测。
可选地,处理单元601具体用于:在收发单元602收到路径上的网络设备发送的指示消息时,确定路径的PMTU未知;
处理单元601具体用于:从该指示消息中获取的该网络设备所支持的MTU,按照获取的该MTU通过收发单元602发送进行的路径的PMTU探测过程中的第一个探测报文。
本发明实施例提供的上述数据报文的发送装置中,数据报文的传输路径可参考图2A及前面的相关描述。该装置中,处理单元601在控制数据报文发送时的方法,可参考前面的描述的数据报文的发送方法。该装置中,处理单元601确定路径的PMTU未知的条件可参考前述的“【确定路径的PMTU未知的条件】”。该装置中,处理单元601控制收发单元602进行PMTU探测的过程可参考前述的“【PMTU探测过程】”。该装置内部的实现可参考前述的“【HOST节点201的内部实现】”。该装置中,探测报文的类型及对应的探测报文长度的设置以及探测方案,可参考前述的“【几种可选的探测报文】”和“【探测报文长度设置】”中的描述。该装置可适用于前述的“【本发明实施例适用场景】”。
本发明实施例提供的上述数据报文的发送装置中,处理单元601可由处理器实现,收发单元602可由收发器实现,或由发射器和接收器实现,其中,发射器用于发送数据报文和消息等,接收器用于接收数据报文和消息等。实现该装置的处理器和收发器,或处理器和发射器以及接收器可集成在一个芯片或多个芯片上实现。
本发明实施例还提供一种主机,包括图6所示的数据报文发送装置。其中,图6所示的装置发送数据报文使用的出接口以及接收消息的接口,均为该主机上的接口。
图7为本发明实施例提供的另一种数据报文的发送装置,如图7所示,该装置包括:处理器701和收发器702,其中,
处理器701,用于本发明实施例提供的数据报文的发送方法;收发器702,用于在处理器701的控制下实现本发明实施例提供的数据报文的发送方法中的接收和发送。
其中,处理器701可由一个或多个处理器实现,收发器702可由收发器实现,或由发射器和接收器实现,其中,发射器用于发送数据报文和消息等,接收器用于接收数据报文和消息等。处理器701和收发器702可集成在一个芯片或多个芯片上实现。
综上,在本发明实施例中,IPv6网络中的发送端的HOST节点在未探测到路径的PMTU之前,按照IPv6协议规定的最小MTU在该路径上发送数据报文;在探测到该路径的PMTU后,按照探测到该路径的PMTU在该路径上发送后续数据报文。
由于在探测到路径的PMTU之前,使用IPv6协议规定的最小MTU发送后续数据报文,最小MTU可保证数据报文能通过路径上的具有任意MTU的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种互联网协议版本6 IPv6网络中数据报文的发送方法,其特征在于,包括:
探测第一路径的最大传输单元PMTU;
在未探测到所述第一路径的PMTU之前,按照IPv6协议规定的最小最大传输单元,MTU,在所述第一路径上发送数据报文;
在探测到所述第一路径的PMTU后,按照探测到的所述PMTU在所述第一路径上发送后续数据报文;
所述探测第一路径的最大传输单元PMTU包括:
在所述第一路径上发送一个或多个探测报文,所述探测报文的报文长度大于所述IPv6协议规定的最小MTU,所述数据报文与所述探测报文的协议类型和目的端口号不同;
所述探测报文为传输层协议报文,所述探测报文的目的端口号为所述目的接收端未使用的端口号;在所述路径上发送所述探测报文之后,若收到对端不可达报文,则确定所述探测报文被所述目的接收端收到;
当至少一个所述探测报文被所述数据报文的目的接收端收到,确定所述第一路径的PMTU为所述接收端收到的所述探测报文所使用的最大MTU。
2.根据权利要求1所述的方法,所述探测第一路径的最大传输单元PMTU还包括:
以所述数据报文的源IP地址和目的IP地址构造探测报文。
3.根据权利要求1或2所述的方法,所述第一路径上存在层二交换机。
4.根据权利要求3所述的方法,还包括:当连续N次发送所述探测报文之后,均未收到报文过长的指示信息,所述N为正整数,或者不能确定所述接收端是否接收到所述探测报文时,确定所述第一路径上存在所述层二交换机。
5.根据权利要求1或2所述的方法,所述在所述第一路径上发送一个或多个探测报文,所述探测报文的报文长度大于所述IPv6协议规定的最小MTU包括:
采用二分法设置所述一个或多个所述探测报文的报文长度。
6.根据权利要求1或2所述的方法,还包括:
进入老化状态之后,若有数据报文需要发送,按照所述第一路径的所述PMTU在所述第一路径上发送所述数据报文;
进入老化状态之后,若预设的时间内没有数据报文发送,删除记录的所述第一路径的PMTU。
7.根据权利要求1或2所述的方法,所述探测第一路径的最大传输单元PMTU之前,还包括:
确定所述第一路径的PMTU未知。
8.根据权利要求7所述的方法,在满足下列条件中的至少一项时,确定所述第一路径的PMTU未知:
待发送的所述数据报文是当前主机HOST在所述第一路径上首次发送的数据报文;
当前HOST上的所述第一路径的PMTU表项已被删除。
9.根据权利要求7所述的方法,在满足下列条件中的至少一项时,确定所述第一路径的PMTU未知:
当前HOST正在探测所述路径的PMTU;
所述HOST收到所述第一路径上的中间节点发送的指示消息,所述指示消息用于指示所述中间节点在所述第一路径上收到的报文过长。
10.如权利要求8所述的方法,所述在所述第一路径上发送一个或多个探测报文,所述探测报文的报文长度大于所述IPv6协议规定的最小MTU包括:
按照第二MTU和第三MTU中长度较小的MTU在所述第一路径上发送第一个所述探测报文;
其中,所述第二MTU为所述HOST的接口的MTU;所述第三MTU为所述HOST收到的路由通告,RA,报文中指示的MTU;所述接口为所述HOST上发送所述数据报文所使用的出接口。
11.根据权利要求1所述的方法,还包括:
接收来自第一中间节点的第一指示信息,所述第一指示信息用于指示所述第一中间节点接收的数据报文过大,所述第一指示信息包括所述第一中间节点支持的MTU;
按照所述IPv6协议规定的所述最小MTU在所述第一路径上发送第三数据报文;
在所述第一路径上发送第二探测报文,以探测所述第一路径的改变后的PMTU,所述第二探测报文的报文长度为所述第一中间节点支持的MTU。
12.根据权利要求11所述的方法,还包括:
以所述第三数据报文的源IP地址和目的IP地址构造所述第二探测报文。
13.根据权利要求11或12所述的方法,所述第三数据报文与所述第二探测报文的协议类型或者目的端口号不同。
14.一种互联网协议版本6 IPv6网络中的数据报文发送装置,其特征在于,包括:处理器和收发器;
所述处理器,用于实现如权利要求1~13任一项所述的方法,所述收发器用于在所述处理器的控制下实现所述方法中的接收和/或发送。
15.一种互联网协议版本6 IPv6网络中的主机HOST,其特征在于,包括:如权利要求14所述的装置。
16.一种计算机可读存储介质,包括程序指令,其特征在于,当所述程序指令在通信装置上执行时,使得所述通信装置实现如权利要求1-13任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110543462.8A CN113411260B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/088693 WO2017035763A1 (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
CN202110543462.8A CN113411260B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
CN201580082763.8A CN107925629B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580082763.8A Division CN107925629B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113411260A CN113411260A (zh) | 2021-09-17 |
CN113411260B true CN113411260B (zh) | 2023-04-18 |
Family
ID=58186511
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110543462.8A Active CN113411260B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
CN201580082763.8A Active CN107925629B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580082763.8A Active CN107925629B (zh) | 2015-08-31 | 2015-08-31 | 一种IPv6网络中数据报文的发送方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10541899B2 (zh) |
EP (2) | EP3331205B1 (zh) |
JP (1) | JP6918784B2 (zh) |
KR (1) | KR102063231B1 (zh) |
CN (2) | CN113411260B (zh) |
WO (1) | WO2017035763A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10594618B1 (en) | 2017-06-06 | 2020-03-17 | Juniper Networks, Inc | Apparatus, system, and method for fragmenting packets into segments that comply with the maximum transmission unit of egress interfaces |
US10523575B2 (en) * | 2017-07-06 | 2019-12-31 | T-Mobile Usa, Inc. | Feedback loop for frame maximization |
CN109120547A (zh) * | 2018-08-16 | 2019-01-01 | 新华三技术有限公司 | 一种报文长度确定方法及装置 |
CN109379301A (zh) * | 2018-12-19 | 2019-02-22 | 安徽皖通邮电股份有限公司 | 一种利用cfm检测通信路径mtu的方法 |
CN110191066B (zh) * | 2019-06-14 | 2022-05-20 | 迈普通信技术股份有限公司 | 一种确定最大传输单元pmtu的方法、设备及系统 |
US11463371B2 (en) | 2019-12-02 | 2022-10-04 | Citrix Systems, Inc. | Discovery and adjustment of path maximum transmission unit |
CN111654354B (zh) * | 2020-05-28 | 2023-08-08 | 北京小米移动软件有限公司 | 最大传输单元mtu的探测方法、装置及存储介质 |
CN114006846B (zh) * | 2020-07-13 | 2023-07-21 | 中国移动通信有限公司研究院 | IPv6数据包的传输方法及装置 |
CN113055305B (zh) * | 2021-02-28 | 2022-09-02 | 北京华三通信技术有限公司 | 报文处理方法及装置 |
CN113660198B (zh) * | 2021-07-05 | 2023-05-16 | 广州鲁邦通物联网科技股份有限公司 | 一种网关安全通道自适应方法、管理单元和系统 |
CN113660167A (zh) * | 2021-09-18 | 2021-11-16 | 中国电信股份有限公司 | 防止无效报文转发方法、装置以及存储介质 |
US11863515B2 (en) * | 2021-12-10 | 2024-01-02 | Cisco Technology, Inc. | Systems and methods for translating IPV6 packets for DIA in an SD-WAN environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616078A (zh) * | 2009-07-16 | 2009-12-30 | 杭州华三通信技术有限公司 | 一种路径最大传输单元的发现方法、路由器及节点设备 |
CN103647724A (zh) * | 2013-12-30 | 2014-03-19 | 大唐移动通信设备有限公司 | 一种mtu适配方法及装置 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3511969B2 (ja) * | 2000-03-07 | 2004-03-29 | 日本電気株式会社 | Ipネットワークにおけるpmtu見積もり値検出の方法およびそのシステム |
US20030117959A1 (en) * | 2001-12-10 | 2003-06-26 | Igor Taranov | Methods and apparatus for placement of test packets onto a data communication network |
KR100453056B1 (ko) * | 2002-03-29 | 2004-10-15 | 삼성전자주식회사 | 동적 ip 네트워크 상에서의 pmtu 변경 방법 및 그장치 |
GB2398699A (en) * | 2003-02-18 | 2004-08-25 | Motorola Inc | Determining a maximum transmission unit which may be transmitted over a particular route through a network |
KR100506529B1 (ko) | 2003-08-06 | 2005-08-03 | 삼성전자주식회사 | 데이터 통신 네트워크에서의 경로 엠티유 발견 네트워크장치, 시스템 및 그 방법 |
CN100486241C (zh) * | 2004-06-28 | 2009-05-06 | 杭州华三通信技术有限公司 | 获取隧道网关环境中路径最大传输长度的方法及系统 |
CN1716944A (zh) * | 2004-06-28 | 2006-01-04 | 杭州华为三康技术有限公司 | 网络路径最大传输长度发现方法 |
CN100459576C (zh) * | 2005-08-05 | 2009-02-04 | 华为技术有限公司 | 一种探测路径最大传输单元的方法 |
CN101022419B (zh) * | 2007-03-27 | 2011-04-06 | 杭州华三通信技术有限公司 | 路径最大传输单元表项建立方法及报文发送方法和装置 |
US7995478B2 (en) * | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
CN101150520A (zh) * | 2007-11-02 | 2008-03-26 | 杭州华三通信技术有限公司 | 调整路径最大传输单元的方法及装置 |
CN101197783A (zh) * | 2007-12-28 | 2008-06-11 | 华为技术有限公司 | 一种传输数据报文的方法和转换器 |
CN101252524A (zh) * | 2008-04-08 | 2008-08-27 | 华为技术有限公司 | 一种报文传输的方法、系统和装置 |
US8908540B2 (en) * | 2009-02-13 | 2014-12-09 | Toshiba America Research, Inc. | Efficient and loss tolerant method and mechanism for measuring available bandwidth |
JP5454318B2 (ja) * | 2010-04-07 | 2014-03-26 | 富士通株式会社 | 帯域測定装置、帯域測定システム、帯域測定プログラム及び通信装置 |
US8576847B2 (en) * | 2010-08-26 | 2013-11-05 | International Business Machines Corporation | Mechanisms for discovering path maximum transmission unit |
CN102469016B (zh) * | 2010-11-16 | 2014-11-05 | 杭州华三通信技术有限公司 | 反向确定路径最大传输单元的方法和装置 |
CN102325076B (zh) * | 2011-05-24 | 2017-04-12 | 中兴通讯股份有限公司 | 一种路径最大传输单元发现方法和节点 |
JP5657505B2 (ja) * | 2011-11-24 | 2015-01-21 | 日本電信電話株式会社 | ネットワークシステム、中継装置、通信方法、中継方法及び中継プログラム |
CN102594677A (zh) * | 2012-02-15 | 2012-07-18 | 杭州华三通信技术有限公司 | 用于pmtu学习的方法和装置 |
JP5805575B2 (ja) * | 2012-04-06 | 2015-11-04 | 日本電信電話株式会社 | 中継装置、中継方法及び中継プログラム |
KR20150093219A (ko) * | 2012-12-18 | 2015-08-17 | 코닌클리즈케 케이피엔 엔.브이. | 네트워크 프로빙 |
US9413652B2 (en) * | 2013-02-19 | 2016-08-09 | Dell Products L.P. | Systems and methods for path maximum transmission unit discovery |
JP2015109544A (ja) * | 2013-12-04 | 2015-06-11 | 株式会社日立製作所 | 無線通信システム |
US9641430B2 (en) * | 2014-01-22 | 2017-05-02 | Cisco Technology, Inc. | Verifying data plane paths based on a validated secure control plane |
US9722919B2 (en) * | 2014-01-22 | 2017-08-01 | Cisco Technology, Inc. | Tying data plane paths to a secure control plane |
US9419889B2 (en) * | 2014-03-07 | 2016-08-16 | Nicira, Inc. | Method and system for discovering a path of network traffic |
US9877144B2 (en) * | 2014-07-04 | 2018-01-23 | Electronics And Telecommunications Research Institute | Method for transmission of IPv6 packets over near field communication (NFC) and device operating the same |
CN105634977B (zh) * | 2014-10-29 | 2019-06-04 | 新华三技术有限公司 | 发现路径最大传输单元的方法和装置 |
US9544240B1 (en) * | 2015-07-13 | 2017-01-10 | Telefonaktiebolaget L M Ericsson (Publ) | MTU discovery over multicast path using bit indexed explicit replication |
-
2015
- 2015-08-31 CN CN202110543462.8A patent/CN113411260B/zh active Active
- 2015-08-31 JP JP2018510989A patent/JP6918784B2/ja active Active
- 2015-08-31 CN CN201580082763.8A patent/CN107925629B/zh active Active
- 2015-08-31 KR KR1020187008348A patent/KR102063231B1/ko active IP Right Grant
- 2015-08-31 EP EP15902570.9A patent/EP3331205B1/en active Active
- 2015-08-31 EP EP21164782.1A patent/EP3905618A3/en not_active Withdrawn
- 2015-08-31 WO PCT/CN2015/088693 patent/WO2017035763A1/zh active Application Filing
-
2018
- 2018-02-27 US US15/906,680 patent/US10541899B2/en active Active
-
2019
- 2019-12-20 US US16/723,581 patent/US11477106B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616078A (zh) * | 2009-07-16 | 2009-12-30 | 杭州华三通信技术有限公司 | 一种路径最大传输单元的发现方法、路由器及节点设备 |
CN103647724A (zh) * | 2013-12-30 | 2014-03-19 | 大唐移动通信设备有限公司 | 一种mtu适配方法及装置 |
Non-Patent Citations (1)
Title |
---|
孟选军 ; 汤小春 ; .PMTU探测算法分析与研究.科学技术与工程.2009,(第24期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN107925629A (zh) | 2018-04-17 |
EP3331205A4 (en) | 2018-06-27 |
EP3905618A3 (en) | 2022-02-16 |
KR20180048767A (ko) | 2018-05-10 |
JP6918784B2 (ja) | 2021-08-11 |
US10541899B2 (en) | 2020-01-21 |
WO2017035763A1 (zh) | 2017-03-09 |
US20200204472A1 (en) | 2020-06-25 |
JP2018525949A (ja) | 2018-09-06 |
KR102063231B1 (ko) | 2020-02-11 |
EP3331205A1 (en) | 2018-06-06 |
EP3905618A2 (en) | 2021-11-03 |
CN107925629B (zh) | 2021-05-18 |
US20180205629A1 (en) | 2018-07-19 |
EP3331205B1 (en) | 2021-03-31 |
US11477106B2 (en) | 2022-10-18 |
CN113411260A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113411260B (zh) | 一种IPv6网络中数据报文的发送方法及装置 | |
CN108234235B (zh) | 用于数据监控的方法、网络设备以及计算机可读存储介质 | |
US10148573B2 (en) | Packet processing method, node, and system | |
CN105723657B (zh) | 交换机、控制器、系统及链路质量检测方法 | |
WO2016082588A1 (zh) | 链路连通性检测方法及装置 | |
CN104170353B (zh) | Tcp链路配置方法、装置及设备 | |
CN106817264B (zh) | 一种链路故障检测的方法、装置和系统 | |
CN106789625B (zh) | 一种环路检测方法及装置 | |
CN102177681A (zh) | 检测故障的方法和系统 | |
JP2014530548A (ja) | レイヤ2ネットワーク・ループを処理するための方法、装置、およびネットワーク装置 | |
CN104486361A (zh) | 建立网游连接的方法、游戏终端及系统 | |
CN107222403A (zh) | 一种数据传输方法、系统和电子设备 | |
CN103516599A (zh) | 发现主机的方法、网络设备及主机 | |
CN102739462B (zh) | 一种测试报文的发送方法以及装置 | |
US20060280133A1 (en) | Full duplex/half duplex mismatch detecting method and full duplex/half duplex mismatch detecting apparatus applicable with the method | |
CN102469016B (zh) | 反向确定路径最大传输单元的方法和装置 | |
US12034638B2 (en) | Multi-hop physical layer data collection protocol | |
CN102118773B (zh) | 检测网络节点间链路连接状态的方法及相关设备 | |
JP6063826B2 (ja) | 経路確認装置、経路確認システム、経路確認方法、及びプログラム | |
CN109951397B (zh) | 报文处理的方法和设备 | |
KR101411782B1 (ko) | 멀티 통신 인터페이스를 구비한 단말장치 및 이의 통신 제어 방법 | |
JP2010050670A (ja) | データ通信システム、データ通信方法およびデータ通信システムを構成する情報処理装置 | |
CN102594653A (zh) | 一种IPv6主机节点发现的方法、装置和系统 | |
JP2014171017A (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 |