一种IPv6网络中数据报文的发送方法及装置与流程

文档序号:26695755发布日期:2021-09-18 02:18阅读:220来源:国知局
一种IPv6网络中数据报文的发送方法及装置与流程
一种ipv6网络中数据报文的发送方法及装置
技术领域
1.本发明涉及通信技术领域,尤其涉及一种ipv6网络中数据报文的发送方法及装置。


背景技术:

2.在互联网协议版本6(internet protocol version 6,ipv6)网络中,为了提高网络设备的转发效率,诸如路由器等的中间设备,不再具有分片功能,对于超过本设备接口最大传输单元(maximum transmission,mtu)长度的数据报文直接丢弃,数据报文的分片重组功能只能在发送端的主机(host)节点完成。换言之,只有发送端的host节点才能对数据报文进行分片。因此,发送端的host节点需要进行路径的路径最大传输单元(path max transmission unit,pmtu)探测,以确定发送的数据报文的长度。
3.目前的一种数据报文发送过程如图1所示。其中,发送端的host节点发送数据报文使用一个出接口,该出接口预先配置的mtu=1500字节。发送端的host节点在发送数据报文时,按照该预先配置的mtu=1500字节发送该数据报文。
4.路由器a在收到发送端发送的该数据报文后,确定自身发送该数据报文的接口所配置的mtu=1400字节,因此,路由器a在收到mtu=1500字节的数据报文后,丢弃该数据报文,并向发送端发送互联网控制报文协议(internet control message protocol,icmp)版本(version,v)6(类型=2)的消息,指示收到的数据报文过长,并在消息中携带指示mtu=1400字节的信息。
5.发送端在收到该消息后,根据消息中携带的指示mtu=1400信息,后续在该路径上发送mtu=1400字节的数据报文。
6.后续的数据报文通过路由器a后到达路由器b,由于路由器b收到mtu=1400字节的数据报文后,确定自身发送该数据报文使用的接口所配置的mtu=1300字节,因此路由器b丢弃收到的该mtu=1400字节的数据报文,并向发送端返回icmpv6(类型=2)的消息,指示收到的数据报文过长,并在消息中携带指示mtu=1300字节的信息。
7.发送端在收到该消息后,根据消息中携带的mtu=1300字节的信息,后续发送mtu=1300字节的数据报文。mtu=1300字节的数据报文可分别经过路由器a和路由器b,到达目的节点。
8.从图1所示的过程可见,发送端发送的mtu=1500字节的数据报文和mtu=1400字节的数据报文,分别被路由器a和路由器b丢弃,即发送端在探测到路径的pmtu=1300字节之前,发送的数据报文均会被丢弃。
9.综上,在目前的ipv6网络中,可能由于发送的数据报文的长度超过路径上的网络设备的接口所支持的mtu的长度,在数据报文发送端未探测到路径的pmtu之前数据报文一直被丢弃。


技术实现要素:

10.有鉴于此,本发明实施例提供一种ipv6网络中的数据报文的发送方法及装置,用于解决目前的ipv6网络中,在数据报文的发送端未探测到路径的pmtu之前数据报文可能一直被丢弃的问题。
11.第一方面,本发明实施例提供一种互联网协议版本6,ipv6,网络中数据报文的发送方法,包括:
12.在未探测到所述路径的pmtu之前,按照ipv6协议规定的最小mtu在所述路径上发送数据报文;
13.在探测到所述路径的pmtu后,按照探测到所述路径的pmtu在所述路径上发送后续数据报文。
14.可选地,在按照ipv6协议规定的最小mtu在所述路径上发送数据报文之前,还包括:
15.确定待发送的数据报文使用的路径的路径最大传输单元pmtu未知;
16.按照ipv6协议规定的最小的最大传输单元mtu发送所述待发送的数据报文,并进行所述路径的pmtu探测。
17.结合第一方面,在第一种可能的实现方式中,在满足下列条件中的至少一项时,确定所述路径的pmtu未知:
18.所述待发送的数据报文是当前主机host在所述路径上首次发送的数据报文;
19.当前host上的所述路径的pmtu表项已被删除;
20.当前host正在探测所述路径的pmtu;
21.当前host收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长。
22.结合第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,进行所述路径的pmtu探测,包括:
23.以所述待发送的数据报文的源ip地址和目的ip地址构造探测报文,并在所述路径上发送所述探测报文;
24.判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到;
25.若确定所述探测报文被所述目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大mtu作为探测到的所述路径的pmtu。
26.结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到之后,还包括:
27.若确定所述探测报文未被所述目的接收端收到,则
28.判断是否收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长;
29.若收到所述指示消息,则重复执行第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送n次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,n为正整数;
30.其中,所述第一操作包括:从所述指示消息中获取用于该网络设备所支持的mtu,按照获取的该mtu再次发送所述探测报文;
31.若所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大mtu作为探测到的所述路径的pmtu。
32.结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,进行所述路径的pmtu探测,还包括:
33.若连续发送n次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,则重复执行第二操作,直至收到所述指示消息或所述探测报文被所述目的接收端收到;
34.所述第二操作包括:设置第一mtu,并以设置的所述第一mtu发送所述探测报文,其中,
35.所述第一mtu的长度不小于ipv6协议规定的最小mtu的长度,且
36.若收到所述指示消息,则所述第一mtu的长度不大于第二mtu的长度和第三mtu的长度,以及收到的所述指示消息中所指示的mtu三者中的最小值;或者
37.若未收到所述指示消息,则所述第一mtu的长度不大于第二mtu的长度和第三mtu的长度中的较小值;
38.所述第二mtu为当前host上的特定接口配置的mtu;所述第三mtu为当前host从所述特定接口上收到的路由通告ra报文中指示的mtu;所述特定接口为当前host上发送所述待发送的数据报文所使用的出接口;
39.若重复执行所述第二操作过程中确定所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大mtu作为探测到的所述路径的pmtu;
40.若重复执行所述第二操作过程中收到所述指示消息,则返回重复执行所述第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送n次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到的步骤。
41.结合第一方面的第二种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,
42.所述探测报文为传输层协议报文,所述探测报文的目的端口号为所述目的接收端未使用的端口号;进行所述路径的pmtu探测,包括:在所述路径上发送所述探测报文之后,若收到对端不可达报文,则确定所述探测报文被所述目的接收端收到;或
43.所述探测报文为ping报文,进行所述路径的pmtu探测,包括:在所述路径上发送所述探测报文之后,若收到所述目的接收端的响应,则确定所述探测报文被所述目的接收端收到;或
44.所述探测报文为跟踪路由trace route报文,进行所述路径的pmtu探测,包括:在所述路径上发送所述探测报文之后,若收到所述接收端的响应,则确定所述探测报文被所述目的接收端收到;或
45.所述探测报文为传输层之上的协议报文,进行所述路径的pmtu探测,包括:在所述路径上发送所述探测报文之后,若收到所述目的接收端返回的与当前host预先约定的响应于所述探测报文的响应报文,则确定所述探测报文被所述目的接收端收到。
46.结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述待发送的数据报文是当前主机host在所述路径上首次发送的数据报文时,或在当前host上的
所述路径的pmtu表项已被删除时,确定所述路径的pmtu未知;
47.进行所述路径的pmtu探测,包括:按照第二mtu和第三mtu中长度较小的mtu发送第一个所述探测报文;
48.其中,所述第二mtu为当前host上的特定接口的配置的mtu;所述第三mtu为当前host从所述特定接口上收到的路由通告ra报文中指示的mtu;所述特定接口为当前host上发送所述待发送的数据报文所使用的出接口。
49.结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,在当前host正在探测所述路径的pmtu时,确定所述路径的pmtu未知;
50.进行所述路径的pmtu探测,包括:继续已经进行的所述路径的pmtu探测。
51.结合第一方面的第五种可能的实现方式,在第八种可能的实现方式中,在收到所述路径上的网络设备发送的所述指示消息时,确定所述路径的pmtu未知;
52.进行所述路径的pmtu探测,包括:从该指示消息中获取的该网络设备所支持的mtu,按照获取的该mtu发送进行的所述路径的pmtu探测过程中的第一个所述探测报文。
53.第二方面,本发明实施例提供一种互联网协议版本6,ipv6,网络中的数据报文的发送装置,包括:处理单元和收发单元;
54.所述处理单元,用于在未探测到所述路径的pmtu之前,按照ipv6协议规定的最小mtu,通过所述收发单元在所述路径上发送数据报文;
55.在探测到所述路径的pmtu后,按照探测到所述路径的pmtu,通过所述收发单元在所述路径上发送后续数据报文。
56.可选地,所述处理单元还用于:在按照ipv6协议规定的最小mtu,通过所述收发单元在所述路径上发送数据报文之前,确定待发送的数据报文使用的路径的路径最大传输单元pmtu未知;按照ipv6协议规定的最小的最大传输单元mtu,通过所述收发单元发送所述待发送的数据报文,并进行所述路径的pmtu探测。
57.结合第二方面,在第一种可能的实现方式中,所述处理单元具体用于在满足下列条件中的至少一项时,确定所述路径的pmtu未知:
58.所述待发送的数据报文是所述host在所述路径上首次发送的数据报文;
59.所述host上的所述路径的pmtu表项已被删除;
60.所述host正在探测所述路径的pmtu;
61.所述收发单元收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长。
62.结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元具体用于:
63.以所述待发送的数据报文的源ip地址和目的ip地址构造探测报文,并通过所述收发单元在所述路径上发送所述探测报文;
64.判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到;
65.若确定所述探测报文被所述目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大mtu作为探测到的所述路径的pmtu。
66.结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理单元还用于:在判断发送的所述探测报文是否被所述待发送的数据报文的目的接收端收到
之后,
67.若确定所述探测报文未被所述目的接收端收到,则
68.判断是否收到所述路径上的网络设备发送的指示消息,所述指示消息用于指示该网络设备在所述路径上收到的报文过长;
69.若收到所述指示消息,则重复执行第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送n次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,n为正整数;
70.其中,所述第一操作包括:从所述指示消息中获取用于该网络设备所支持的mtu,按照获取的该mtu通过所述收发单元再次发送所述探测报文;
71.若所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大mtu作为探测到的所述路径的pmtu。
72.结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理单元具体用于:
73.若通过所述收发单元连续发送n次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到,则重复执行第二操作,直至所述收发单元收到所述指示消息或所述探测报文被所述目的接收端收到;
74.所述第二操作包括:设置第一mtu,并以设置的所述第一mtu通过所述收发单元发送所述探测报文,其中所述第一mtu的长度不小于ipv6协议规定的最小mtu的长度,且
75.若收到所述指示消息,则所述第一mtu的长度不大于第二mtu的长度和第三mtu的长度,以及收到的所述指示消息中所指示的mtu三者中的最小值;或者
76.若未收到所述指示消息,则所述第一mtu的长度不大于第二mtu的长度和第三mtu的长度中的较小值;
77.所述第二mtu为当前host上的特定接口配置的mtu;所述第三mtu为所述收发单元从所述特定接口上收到的路由通告ra报文中指示的mtu;所述特定接口为所述收发单元发送所述待发送的数据报文所使用的出接口;
78.若重复执行所述第二操作过程中确定所述探测报文被所述待发送的数据报文的目的接收端收到,则将所述目的接收端收到的所述探测报文中使用的最大mtu作为探测到的所述路径的pmtu;
79.若重复执行所述第二操作过程中收到所述指示消息,则返回重复执行所述第一操作,直至所述探测报文被所述待发送的数据报文的目的接收端收到,或者连续发送n次探测报文均未收到所述指示消息且无法确定所述探测报文被所述目的接收端收到的步骤。
80.结合第二方面的第二种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,
81.所述探测报文为传输层协议报文,所述探测报文的目的端口号为所述目的接收端未使用的端口号;所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若所述收发单元收到对端不可达报文,则确定所述探测报文被所述目的接收端收到;或
82.所述探测报文为ping报文,所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若收到所述目的接收端的响应,则确定所述探测报文被所述目
的接收端收到;或
83.所述探测报文为跟踪路由trace route报文,所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若所述收发单元收到所述接收端的响应,则确定所述探测报文被所述目的接收端收到;或
84.所述探测报文为传输层之上的协议报文,所述处理单元具体用于:在所述收发单元在所述路径上发送所述探测报文之后,若所述收发单元收到所述目的接收端返回的与当前host预先约定的响应于所述探测报文的响应报文,则确定所述探测报文被所述目的接收端收到。
85.结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述待发送的数据报文是当前主机host在所述路径上首次发送的数据报文时,或在当前host上的所述路径的pmtu表项已被删除时,确定所述路径的pmtu未知;
86.所述收发单元具体用于:按照第二mtu和第三mtu中长度较小的mtu通过所述收发单元发送第一个所述探测报文;
87.其中,所述第二mtu为所述host上的特定接口的配置的mtu;所述第三mtu为所述收发单元从所述特定接口上收到的路由通告ra报文中指示的mtu;所述特定接口为所述收发单元发送所述待发送的数据报文所使用的出接口。
88.结合第二方面的第五种可能的实现方式,在第七种可能的实现方式中,所述处理单元具体用于:在正在探测所述路径的pmtu时,确定所述路径的pmtu未知;
89.所述处理单元具体用于:继续已经进行的所述路径的pmtu探测。
90.结合第二方面的第五种可能的实现方式,在第八种可能的实现方式中,所述处理单元具体用于:在所述收发单元收到所述路径上的网络设备发送的所述指示消息时,确定所述路径的pmtu未知;
91.所述处理单元具体用于:从该指示消息中获取的该网络设备所支持的mtu,按照获取的该mtu通过所述收发单元发送进行的所述路径的pmtu探测过程中的第一个所述探测报文。
92.第三方面,本发明实施例提供一种ipv6网络中的主机host,包括第二方面,或第二方面的任一种可能的实现方式提供的装置。
93.第四方面,本发明实施例提供一种互联网协议版本6,ipv6,网络中的数据报文的发送装置,包括:处理器和收发器;
94.所述处理器,用于实现如第一方面,或第一方面的任一种可能的实现方式提供的方法,所述收发器用于在所述处理器的控制下实现所述方法中的接收和/或发送。
95.第五方面,本发明实施例提供一种ipv6网络中的主机host,包括第四方面提供的装置。
96.在本发明实施例中,ipv6网络中的发送端的host节点在未探测到路径的pmtu之前,按照ipv6协议规定的最小mtu在该路径上发送数据报文;在探测到该路径的pmtu后,按照探测到该路径的pmtu在该路径上发送后续数据报文。
97.由于在探测到路径的pmtu之前,使用ipv6协议规定的最小mtu发送数据报文,最小mtu可保证数据报文能通过路径上的具有任意mtu的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
附图说明
98.图1为目前ipv6网络中的pmtu探测的方法的示意图;
99.图2a为ipv6网络中一种可能的数据报文的传输路径的示意图;
100.图2b为本发明实施例提供的一种数据报文的发送方法的流程图;
101.图3为本发明实施例提供的一种可选的pmtu探测过程的示意图;
102.图4为本发明实施例提供的host节点内部实现的一种可能实现方式的示意图;
103.图5a为ipv6的一种简单的组网场景的示意图;
104.图5b和图5c为路径中存在层二交换机的场景的示意图;
105.图6为本发明实施例提供的一种数据报文的发送装置的结构示意图;
106.图7为本发明实施例提供的另一种数据报文的发送装置的结构示意图。
具体实施方式
107.本发明实施例提供一种ipv6网络中的数据报文的发送方法及装置,用于解决目前的ipv6网络中,在数据报文的发送端未探测到路径的pmtu之前数据报文可能一直被丢弃的问题。
108.在本发明实施例中,ipv6网络中的发送端的host节点在未探测到路径的pmtu之前,按照ipv6协议规定的最小mtu在该路径上发送数据报文;在探测到该路径的pmtu后,按照探测到该路径的pmtu在该路径上发送后续数据报文。
109.由于在探测到路径的pmtu之前,使用ipv6协议规定的最小mtu发送数据报文,最小mtu可保证数据报文能通过路径上的具有任意mtu的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
110.下面,结合附图对本发明实施例进行详细说明。
111.如图2a示出了ipv6网络中数据报文的传输路径,数据报文从发送端的host节点201发出,经过中间的网络设备202a、网络设备202b等,最终到达目的接收端的host节点203。虽然图2a中示出了两个以上的中间的网络设备,但实际上可能仅存在一个、中间的网络设备,或者不存在中间的网络设备。
112.下面,首先介绍本发明实施例提供的数据报文的发送方法。
113.参见图2b本发明实施例提供的数据报文的发送方法包括如下步骤:
114.s1:在未探测到路径的pmtu之前,按照ipv6协议规定的最小mtu在该路径上发送数据报文;
115.可选地,还包括s2:在探测到该路径的pmtu后,按照探测到该路径的pmtu在该路径上发送后续数据报文。
116.可选地,在按照ipv6协议规定的最小mtu在路径上发送数据报文之前,还包括:
117.确定待发送的数据报文使用的路径的pmtu未知;
118.按照ipv6协议规定的最小的mtu,比如:1280bytes,发送待发送的数据报文,并进行图3所示的该路径的pmtu探测。
119.由于在探测到路径的pmtu之前,使用ipv6协议规定的最小mtu发送数据报文,最小mtu可保证数据报文能通过路径上的具有任意mtu的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
120.其中,host节点201和host节点203可为个人电脑(personal computer)、基站、核心网、手机终端等所有可在ipv6网络中发送和接收数据报文的设备。
121.【确定路径的pmtu未知的条件】
122.其中,host节点201可在满足下列条件中的至少一个时,确定该路径的pmtu未知:
123.条件一、host节点201上的该路径的pmtu表项已被删除(如图4中的final状态),比如:pmtu表项在老化后长时间不使用被删除;
124.条件二、host节点201正在探测该路径的pmtu(如图4中的probe状态);
125.条件三、host节点201收到该路径上的网络设备(比如:网络设备202a)发送的指示消息,该指示消息用于指示该网络设备在该路径上收到的报文过长,比如:前述的icmpv6(类型=2)的消息,可选地,host节点201在收到该消息后,进入图4所示的probe状态。
126.【pmtu探测过程】
127.可选地,参见图3,host节点201在进行路径的pmtu探测时,可具体通过如下步骤实现:
128.s301:host节点201以待发送的数据报文的源ip地址和目的ip地址构造探测报文,并在路径上发送探测报文;
129.可选地,host节点201设置探测报文的长度,设置的长度可为下述两个长度中的较小值:
130.host节点201上的特定接口配置的mtu;
131.host节点201从该特定接口上收到的路由通告(router advertisement,ra)报文中指示的mtu;
132.上述特定接口为host节点201上发送上述待发送的数据报文所使用的出接口。
133.由于探测报文用于探测待发送的数据报文的路径的pmtu,因此这里以待发送的数据报文的目的ip地址构造探测报文;为了能够接收后续的用于指示报文过长的指示消息,以及后续确定目的接收端的host节点203收到探测报文,这里以待发送的数据报文的源ip地址构造探测报文。
134.其中,数据报文用于承载待发送的数据,探测报文用于探测路径的pmtu,探测报文与数据报文的使用的协议的类型和目的端口号的组合不同。比如:探测报文与数据报文使用不同的协议类型,相同的目的端口号进行发送;或者,探测报文与数据报文使用相同的协议类型,不同的目的端口号进行发送;再或者,探测报文与数据报文使用不同的协议类型,不同的目的端口号进行发送。
135.s302:判断发送的探测报文是否被host节点203收到,若收到,则执行步骤s303,否则执行步骤s304;其中,判断发送的探测报文是否被host节点203收到的方法,可参考后面的“【几种可选的探测报文】”中的描述。
136.s303:将host节点203收到的探测报文所使用的最大的mtu作为探测到的路径的pmtu;
137.s304:判断是否收到该路径上的网络设备发送的报文过长的指示消息,该指示消息用于指示该网络设备在该路径上收到的报文过长;若收到,则执行步骤s305,否则执行步骤s309;
138.s305:从收到的指示消息中获取用于该网络设备所支持的mtu,按照获取的该mtu
再次发送探测报文;
139.s306:判断发送的探测报文是否被host节点203收到,若是,则执行步骤s303,否则执行步骤s307;
140.s307:判断是否收到该路径上的网络设备发送的报文过长的指示消息;若是,则返回执行步骤s305,否则执行步骤s308;
141.s308:不改变探测报文的mtu,重新发送探测报文,之后返回步骤s304;
142.s309:确定连续n次发送探测报文均未收到报文过长的指示消息,n为正整数;
143.其中,步骤s308和步骤s309是针对路径上可能存在层二交换机的情形而设置的,当层二交换机收到的报文过长时,直接丢弃,不会向host节点201回复报文过长的指示消息,这样host节点201无法获知报文的接收情况。通过连续发送n次探测报文,若均未收到报文过长的指示消息,则host节点201可确定该路径上存在层二交换机,且发送的报文超过了层二交换机可接受的报文长度,则执行步骤s310等后续步骤。
144.并且考虑到探测报文在传输时可能出现丢包的情况,所以连续发送n次探测报文,这样会更准确地确定该路径上存在层二交换机。该n值可根据网络实际情况设置,比如:设置为较佳地1、2、3,
……
,较佳地,可设置为3~5。
145.s310:设置第一mtu,并以设置的第一mtu发送探测报文;
146.其中,可选地,第一mtu的长度不小于ipv6协议规定的最小mtu的长度,且不大于第二mtu的长度、第三mtu的长度,以及前面步骤收到的用于指示报文过程的指示消息中所指示的mtu三者中的最小值;若前面步骤没有收到上述指示信息,则第一mtu的长度不小于ipv6协议规定的最小mtu的长度,且不大于第二mtu的长度和第三mtu的长度中的较小值;或者
147.若前面步骤收到多个上述指示消息,则第一mtu长度设置时,使用收到的多个指示消息中指示的最小mtu。
148.第二mtu为host节点201上的特定接口配置的mtu;
149.第三mtu为host节点201从该特定接口上收到的路由通告(router advertisement,ra)报文中指示的mtu;
150.比如:在步骤s301中,若将探测报文的长度设置为下述两个长度中的较小值:host节点201上的特定接口配置的mtu;host节点201从该特定接口上收到的ra报文中指示的mtu;则步骤s310中,可从ipv6协议规定的最小mtu的长度与步骤s301设置的探测报文的长度构成的区间中,选择一个值作为第一mtu,按照第一mtu发送探测报文。
151.上述特定接口为host节点201上发送上述待发送的数据报文所使用的出接口。可选地,该出接口为层三接口,此接口可配置在host节点201上的物理接口上,也可配置在host节点201上的物理接口上进行虚拟局域网(virtual local area network,vlan)划分的vlan子接口。
152.可选地,在步骤s310中,可多次设置第一mtu进行探测,以获得较精确的路径pmtu。比如:可采用二分法进行探测。这里,以ipv6协议规定的最小mtu的长度为1280字节,第二mtu的长度和第三mtu的长度中的较小值为1600字节为例,则在采用二分法探测时,将1280字节作为初始的最小值(min),将1600字节作为初始的最大值(max)进行多次探测。
153.在采用二分法探测过程中,若确定探测报文被host节点203收到,则将本次发送的
探测报文使用的mtu作为新的最小值继续探测,若无法确定探测报文被host节点203收到,则将本次发送的探测报文使用的mtu作为新的最大值继续探测,直至最小值不小于最大值。
154.则将上述采用二分法多次探测过程中,被host节点203收到的探测报文所使用的最大mtu作为探测得到的路径pmtu。
155.下面,以图5b和图5c所示的路径中存在层二交换机的场景为例加以说明。
156.如图5b所示,host节点201的mtu为1800字节,初始发送探测报文的mtu为1800字节,经过n次没有收到前述的用于指示报文过长的指示消息,也无法确定host节点203收到探测报文,则确定路径上存在层二交换机,则执行步骤s310进行层二探测,比如:采用前述的二分法进行探测,则将1280字节作为初始的最小值(min),将1800字节作为初始的最大值(max)进行多次探测。
157.如图5c所示,探测报文通过层二交换机1后,会收到路由器发送的用于指示报文过长的指示消息,然后使用该指示消息中指示的mtu=1450字节继续探测,连续n次没有用于指示报文过长的指示消息,也无法确定host节点203收到探测报文,则执行步骤s310进行层二探测,比如:采用前述的二分法进行探测,则将1280字节作为初始的最小值(min),将1450字节作为初始的最大值(max)进行多次探测。
158.s311:判断发送的探测报文是否被host节点203收到;若是则执行步骤s303,否则执行步骤s312;
159.s312:判断是否收到该路径上的网络设备发送的报文过长的指示消息,若是,则执行步骤s305,否则返回执行步骤s310。
160.以上介绍了host节点201探测路径pmtu的方法。下面结合图4介绍host节点201内部实现的一种可选方式。
161.【host节点201的内部实现】
162.如图4所示,host节点201在进行pmtu探测时的模式可分为主动模式和被动模式,该模式可通过人机操作进行设置和修改,使得host节点201的使用者能够灵活选择探测模式。
163.1、主动模式
164.在主动模式下,host节点201通过发送探测报文,进行路径的pmtu探测。
165.通过该主动模式,实现了探测报文和数据报文的分离,在路径的pmtu未知的情况下,与目前通过改变数据报文的mtu长度的方式相比,减小了数据报文的丢失率。
166.2、被动模式
167.在数据报文的发送过程中,若收到诸如icmp(类型=2)的报文过大的指示消息,则host节点201调整数据报文的mtu的长度,知道不再收到报文过大的指示消息为止。
168.采用被动模式,在探测到路径的pmtu之前,数据报文会丢失。
169.参见图4,在主动模式下,pmtu探测过程中的状态包括:
170.1、探测(probe)状态
171.该状态为主动模式的子状态。
172.在该状态下,host节点201发送探测报文,若确定探测到路径的pmtu,状态迁移到可达(reachable)状态;
173.探测状态包含2个子状态:路由器探测状态(l3 probe)和层二交换机探测状态
(l2probe),初始进入路由器探测状态(l3 probe)。
174.在路由器探测状态(l3 probe)下:当连续n次发送探测报文后没有收到too big报文也没有收到对端不可达报文时,在进入层二交换机探测状态(l2 probe);如果收到too big报文,则使用too big报文中的mtu进行探测;如果收到对端不可达报文,则进入可达(reachable)状态。
175.在层二交换机探测状态(l2 probe)状态下:执行s310操作,探测最优的pmtu。探测结束后,如果收到不可达报文则迁移到可达(reachable)状态;如果收到too big报文则迁移到路由器探测状态(l3 probe)状态;如果仍然没有收到too big报文也没有收到对端不可达报文时则退出。
176.2、可达(reachable)状态
177.此时,host节点201在发送数据报文时,使用探测到的mtu。在预设的老化时间超时后,则迁移到老化(stale)状态;
178.3、老化(stale)状态
179.该状态为主动模式的子状态。
180.在该状态下,host节点201仍使用之前探测得到的pmtu发送数据报文。
181.处于该状态时,若没有数据报文发送,则在预设的垃圾回收定时器超时后,进入退出(final)状态。
182.处于该状态时,若有数据报文发送,则进入probe状态,继续探测,在probe状态下发送数据报文时,仍使用最近一次进入reachable状态时探测得到的pmtu,以保证数据报文的发送效率。
183.在被动模式下,初始将状态设置为可达(reachable)状态,在收到icmp(类型=2)的消息,或称之为过大(too big)报文后,不改变状态,调整发送的数据报文的mtu直至数据报文被host节点203收到。
184.以上介绍了host节点201内部实现的可选方式,下面,介绍host节点201构造探测报文的几种可选方案。
185.【几种可选的探测报文】
186.1、探测报文为传输层协议报文
187.比如:用户数据报协议(user datagram protocol,udp)报文、传输控制协议(transmission control protocol,tcp)报文、流控制传输协议(stream control transmission protocol,sctp)报文,网络基本输入输出系统(net basic input/output system,netbios)报文、netbios增强用户接口(netbios enhanced user interface,netbeui)报文等。
188.该探测报文的目的端口号为host节点203未使用的端口号,该端口号可为知名端口号,或非知名端口号。此情况下,在路径上发送探测报文之后若收到对端不可达报文(not reachable)时,确定探测报文被host节点203收到。这样设置的目的是:若是host节点203使用的端口号,则host节点203不会返回对端不可达报文。
189.知名端口号为协议规定的传输层以上的上层协议所使用的传输层协议的端口号,这些端口号不能由用户的应用程序使用。比如:远程登录(telnet)服务器使用的传输层协议tcp端口号为23。
190.非知名端口号为除了知名端口号之外的传输层协议的端口号。
191.可选地,host节点201可预先进行端口扫描确定host节点203的哪些端口未使用;若host节点203的端口是预先配置的,则host节点201通过获取host节点203的配置数据,可确定host节点203的哪些端口未使用。
192.2、探测报文为ping报文
193.host节点201在路径上发送探测报文之后,若收到host节点203的响应,则确定探测报文被host节点203收到。
194.3、探测报文为跟踪路由(trace route)报文
195.host节点201在路径上发送探测报文之后收到host节点203的响应后,确定探测报文被host节点203收到。
196.4、探测报文为传输层之上的协议报文
197.host节点201与host节点203预先约定,host节点201发送探测报文时,若host节点203收到,则host节点203响应该收到的探测报文,返回预先约定的响应报文,则host节点201在路径上发送探测报文之后,若收到预先约定的响应报文,则确定探测报文被host节点203收到。
198.以上介绍了探测报文的几种可选的实现方式,下面介绍针对不同的探测触发条件,探测报文的长度的设置。
199.【探测报文长度设置】
200.1、待发送的数据报文是host节点201在路径上首次发送的数据报文,或在host节点201的该路径的pmtu表项已被删除时,host节点201确定该路径的pmtu未知;
201.在此情况下,按照前述的第二mtu和第三mtu中长度较小的mtu发送第一个探测报文。
202.2、在host节点201正在探测路径的pmtu时,确定该路径的pmtu未知;
203.在此情况下,host节点201可继续已经进行的该路径的pmtu探测。
204.3、在收到该路径上的网络设备,比如网络设备202a发送的报文过长的指示消息时,host节点201确定该路径的pmtu未知;
205.在此情况下,host节点201从该指示消息中获取的mtu,按照获取的该mtu发送进行的该路径的pmtu探测过程中的第一个探测报文。
206.下面,以一个具体的ipv6的组网环境,举例说明本发明实施例适用的各种场景。
207.【本发明实施例适用场景】
208.图5a示出了ipv6的一种简单的组网场景,其中图2a中的host节点201可为图5a中的pc、智能手机或基站。图2a中的host节点203为图5a中的服务器。图5a中各设备上标的数字为该设备支持的mtu的字节数。
209.下面,区分场景举例说明。
210.1、新建网的场景
211.基站在发送数据报文时,由于数据报文是基站在路径上首次发送的数据报文,因此,采用ipv6协议规定的最小mtu,比如:1280bytes发送该数据报文,并进行该路径的pmtu探测。
212.由于该数据报文是以ipv6协议规定的最小mtu发送的,因此其可通过路径上的任
意路由器,即路由器2和路由器3,到达服务器。
213.在进行路径的pmtu探测时,由于发送数据报文的出接口的配置的mtu为1800bytes,假设host节点201从上述发送数据报文的出接口收到的ra报文中指示mtu为1600bytes,则host节点201以两者中较小的1600bytes发送探测报文,发送的该探测报文可通过路由器2,到达路由器3。
214.由于路由器3支持的mtu为1300bytes,因此路由器3向基站返回icmp(类型=2)的消息,并指示支持的mtu为1300bytes。
215.基站在发送下一个探测报文时,以mtu=1300bytes发送,则该探测报文可到达服务器,基站根据从服务器收到的响应,比如该探测报文为ping报文,则基站在收到服务器发送的响应后,确定服务器收到探测报文,基站则以1300bytes作为探测到的路径的pmtu。
216.2、网络改造的场景
217.仍以基站作为host节点201为例,基站探测到路径的pmtu=1300bytes,以1300bytes在该路径上发送后续的数据报文。
218.若在路由器3的mtu改成1280bytes,则host节点201发送的数据报文会被路由器3丢弃,路由器3向基站返回icmp(类型=2)的消息,并指示支持的mtu=1280bytes。
219.host节点201在收到icmp(类型=2)的消息后,以ipv6协议规定的最小mtu发送数据报文,并进行pmtu探测,最终探测得到该路径的新的pmtu=1280bytes。
220.在此情况下,host节点201一旦收到icmp(类型=2)的消息,则以ipv6协议规定的最小mtu发送数据报文,因此可能被路由器3丢弃的数据报文仅为路由器3的mtu改成1280bytes到基站收到icmp(类型=2)的消息之前,基站在该路径上发送的数据报文。与目前的pmtu探测方法相比,避免了探测过程中由于数据报文的长度过长导致数据报文的丢失。
221.3、pmtu老化
222.pmtu老化后,若长时间在一个路径上没有数据报文发送,则host节点201会删除自身记录的该路径的pmtu表项,进入图4所示的final状态。在stale状态下,若此时该路径上再次有待发送的数据报文,则host节点201可进行pmtu的再次探测,同时数据报文使用之前学习到的pmtu进行发送,提高可靠性。
223.以上,介绍了本发明实施例提供的数据报文的发送方法,下面介绍本发明实施例提供的两种数据报文发送装置。
224.图6示出了本发明实施例提供的第一种数据报文的发送装置。如图6所示,该装置包括:处理单元601和收发单元602;
225.处理单元601,用于在未探测到路径的pmtu之前,按照ipv6协议规定的最小mtu,通过收发单元602在路径上发送数据报文;
226.在探测到路径的pmtu后,按照探测到路径的pmtu,通过收发单元602在路径上发送后续数据报文。
227.可选地,处理单元601还用于:在按照ipv6协议规定的最小mtu,通过收发单元602在路径上发送数据报文之前,确定待发送的数据报文使用的路径的pmtu未知;按照ipv6协议规定的最小的mtu,通过收发单元602发送待发送的数据报文,并进行路径的pmtu探测。可选地,处理单元601具体用于在满足下列条件中的至少一项时,确定路径的pmtu未知:
228.待发送的数据报文是host在路径上首次发送的数据报文;
229.host上的路径的pmtu表项已被删除;
230.host正在探测路径的pmtu;
231.收发单元602收到路径上的网络设备发送的指示消息,指示消息用于指示该网络设备在路径上收到的报文过长。
232.可选地,处理单元601具体用于:
233.以待发送的数据报文的源ip地址和目的ip地址构造探测报文,并通过收发单元602在路径上发送探测报文;
234.判断发送的探测报文是否被待发送的数据报文的目的接收端收到;
235.若确定探测报文被目的接收端收到,则将目的接收端收到的探测报文中使用的最大mtu作为探测到的路径的pmtu。
236.可选地,处理单元601还用于:在判断发送的探测报文是否被待发送的数据报文的目的接收端收到之后,
237.若确定探测报文未被目的接收端收到,则
238.判断是否收到路径上的网络设备发送的指示消息,指示消息用于指示该网络设备在路径上收到的报文过长;
239.若收到指示消息,则重复执行第一操作,直至探测报文被待发送的数据报文的目的接收端收到,或者连续发送n次探测报文均未收到指示消息且无法确定探测报文被目的接收端收到,n为正整数;
240.其中,第一操作包括:从指示消息中获取用于该网络设备所支持的mtu,按照获取的该mtu通过收发单元602再次发送探测报文;
241.若探测报文被待发送的数据报文的目的接收端收到,则将目的接收端收到的探测报文中使用的最大mtu作为探测到的路径的pmtu。
242.可选地,处理单元601具体用于:
243.若通过收发单元602连续发送n次探测报文均未收到指示消息且无法确定探测报文被目的接收端收到,则重复执行第二操作,直至收发单元602收到指示消息或探测报文被目的接收端收到;
244.第二操作包括:设置第一mtu,并以设置的第一mtu通过收发单元602发送探测报文,其中第一mtu的长度不小于ipv6协议规定的最小mtu的长度,且第一mtu的长度不大于第二mtu的长度和第三mtu的长度中的较小值;第二mtu为当前host上的特定接口配置的mtu;第三mtu为收发单元602从特定接口上收到的路由通告ra报文中指示的mtu;特定接口为收发单元602发送待发送的数据报文所使用的出接口;
245.若重复执行第二操作过程中确定探测报文被待发送的数据报文的目的接收端收到,则将目的接收端收到的探测报文中使用的最大mtu作为探测到的路径的pmtu;
246.若重复执行第二操作过程中收到指示消息,则返回重复执行第一操作,直至探测报文被待发送的数据报文的目的接收端收到,或者连续发送n次探测报文均未收到指示消息且无法确定探测报文被目的接收端收到的步骤。
247.可选地,探测报文为传输层协议报文,探测报文的目的端口号为目的接收端未使用的端口号;处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收发单
元602收到对端不可达报文,则确定探测报文被目的接收端收到;或
248.探测报文为ping报文,处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收到目的接收端的响应,则确定探测报文被目的接收端收到;或
249.探测报文为跟踪路由trace route报文,处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收发单元602收到接收端的响应,则确定探测报文被目的接收端收到;或
250.探测报文为传输层之上的协议报文,处理单元601具体用于:在收发单元602在路径上发送探测报文之后,若收发单元602收到目的接收端返回的与当前host预先约定的响应于探测报文的响应报文,则确定探测报文被目的接收端收到。
251.可选地,在待发送的数据报文是当前主机host在路径上首次发送的数据报文时,或在当前host上的路径的pmtu表项已被删除时,确定路径的pmtu未知;
252.收发单元602具体用于:按照第二mtu和第三mtu中长度较小的mtu通过收发单元602发送第一个探测报文;
253.其中,第二mtu为host上的特定接口的配置的mtu;第三mtu为收发单元602从特定接口上收到的路由通告ra报文中指示的mtu;特定接口为收发单元602发送待发送的数据报文所使用的出接口。
254.可选地,处理单元601具体用于:在正在探测路径的pmtu时,确定路径的pmtu未知;
255.处理单元601具体用于:继续已经进行的路径的pmtu探测。
256.可选地,处理单元601具体用于:在收发单元602收到路径上的网络设备发送的指示消息时,确定路径的pmtu未知;
257.处理单元601具体用于:从该指示消息中获取的该网络设备所支持的mtu,按照获取的该mtu通过收发单元602发送进行的路径的pmtu探测过程中的第一个探测报文。
258.本发明实施例提供的上述数据报文的发送装置中,数据报文的传输路径可参考图2a及前面的相关描述。该装置中,处理单元601在控制数据报文发送时的方法,可参考前面的描述的数据报文的发送方法。该装置中,处理单元601确定路径的pmtu未知的条件可参考前述的“【确定路径的pmtu未知的条件】”。该装置中,处理单元601控制收发单元602进行pmtu探测的过程可参考前述的“【pmtu探测过程】”。该装置内部的实现可参考前述的“【host节点201的内部实现】”。该装置中,探测报文的类型及对应的探测报文长度的设置以及探测方案,可参考前述的“【几种可选的探测报文】”和“【探测报文长度设置】”中的描述。该装置可适用于前述的“【本发明实施例适用场景】”。
259.本发明实施例提供的上述数据报文的发送装置中,处理单元601可由处理器实现,收发单元602可由收发器实现,或由发射器和接收器实现,其中,发射器用于发送数据报文和消息等,接收器用于接收数据报文和消息等。实现该装置的处理器和收发器,或处理器和发射器以及接收器可集成在一个芯片或多个芯片上实现。
260.本发明实施例还提供一种主机,包括图6所示的数据报文发送装置。其中,图6所示的装置发送数据报文使用的出接口以及接收消息的接口,均为该主机上的接口。
261.图7为本发明实施例提供的另一种数据报文的发送装置,如图7所示,该装置包括:处理器701和收发器702,其中,
262.处理器701,用于本发明实施例提供的数据报文的发送方法;收发器702,用于在处
理器701的控制下实现本发明实施例提供的数据报文的发送方法中的接收和发送。
263.其中,处理器701可由一个或多个处理器实现,收发器702可由收发器实现,或由发射器和接收器实现,其中,发射器用于发送数据报文和消息等,接收器用于接收数据报文和消息等。处理器701和收发器702可集成在一个芯片或多个芯片上实现。
264.综上,在本发明实施例中,ipv6网络中的发送端的host节点在未探测到路径的pmtu之前,按照ipv6协议规定的最小mtu在该路径上发送数据报文;在探测到该路径的pmtu后,按照探测到该路径的pmtu在该路径上发送后续数据报文。
265.由于在探测到路径的pmtu之前,使用ipv6协议规定的最小mtu发送后续数据报文,最小mtu可保证数据报文能通过路径上的具有任意mtu的网络设备,比如:路由器,因此保证了该路径上发送的数据报文可被目的接收端收到。
266.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
267.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
268.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
269.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
270.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
271.显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1