本技术涉及通信领域,并且更具体地,涉及一种通信方法和通信装置。
背景技术:
1、源主机作为数据报文的发送端,按照一定的速率发送数据报文。该数据报文到达中间节点之后,中间节点利用可用带宽向目的主机发送数据报文。一般来说,源主机与目的主机之间包括多条传输路径。当源主机采用多路径逐包发送数据报文时,同一数据流中的前序数据报文和后续数据报文很大可能在不同的路径上传输,因此会出现接收的数据包乱序的问题。
技术实现思路
1、本技术提供一种通信方法和通信装置,能够实现多路径传输场景下的数据包保序。
2、第一方面,提供了一种通信方法,该方法可以由第一网络设备执行,或者,也可以由配置于第一网络设备中的芯片或电路执行,本技术对此不作限定。
3、该方法可以包括:第一网络设备通过第一路径集合向第二网络设备发送n个探测报文。第一网络设备通过第二路径集合接收m个回程报文,该m个回程报文是n个探测报文中的m个探测报文的回程报文。第一网络设备确定m个回程报文的接收顺序。第一网络设备根据m个回程报文的接收顺序向第二网络设备发送m个数据报文。
4、具体地,上述第一网络设备与上述第二网络设备之间包括至少一条传输路径。
5、具体地,第一网络设备至第二网络设备的传输路径(即上述第一路径集合)与第二网络设备至第一网络设备的传输路径(即上述第二路径集合)可以相同,也可以不同。也就是说,上述第一网络设备至第二网络设备之间的中间网络设备(即下述第三网络设备)可以是相同的设备,也可以是不同的设备。
6、例如,第一网络设备至第二网络设备的传输路径与第二网络设备至第一网络设备的传输路径不同时,上述第一网络设备至第二网络设备之间的中间网络设备是不同的设备;第一网络设备至第二网络设备的传输路径与第二网络设备至第一网络设备的传输路径相同时,上述第一网络设备至第二网络设备之间的中间网络设备是相同的设备。或者,第二网络设备可以以最高优先级回传上述m个回程报文,或者使用数据报文的通道回传上述m个回程报文,此时可以认为上述第一路径集合与上述第二路径集合不同。
7、基于上述方案,通过探测报文的回程报文的到达顺序确定数据报文的发送,可以实现多传输路径场景下的数据包保序发送,从而可以解决多路径场景下的数据包乱序问题。
8、结合第一方面,在第一方面的某些实现方式中,上述第一网络设备根据m个回程报文的接收顺序向第二网络设备发送m个数据报文,包括:上述第一网络设备将m个回程报文中的第m个回程报文的报头添加在m个数据报文中的第m个数据报文中,m个回程报文与m个数据报文一一对应,第m个回程报文是第一网络设备第m个接收到的回程报文,1≤m≤m。第一网络设备根据上述报头确定第一传输路径,该第一传输路径是上述第m个回程报文对应的探测报文的传输路径。第一网络设备在上述第一传输路径上向第二网络设备发送上述第m个数据报文,第m个数据报文是第一网络设备第m个发送的数据报文。
9、或者,上述第一网络设备根据m个回程报文的接收顺序向第二网络设备发送m个数据报文,包括:上述第一网络设备确定m个回程报文中的第m个回程报文的第一传输路径,并在第一传输路径上传输上述第m个数据报文。
10、具体地,上述报头也可以称为“报文头”或“packet header”。
11、可选地,上述m个数据报文可以与探测报文同时域发送,从而节省时域资源。
12、基于上述方法,将接收到的第m个回程报文的报头添加至第m个数据报文中,可以使得第m个数据报文的传输路径与第m个回程报文对应的探测报文的传输路径保持一致,也即,可以使得m个数据报文尽量按照顺序到达第二网络设备,减少乱序。
13、结合第一方面,在第一方面的某些实现方式中,上述方法还包括:第一网络设备对上述n个探测报文中的每个探测报文依次进行编号,每个探测报文的报头包括对每个探测报文进行编号的信息。
14、示例性地,网络节点通过对每个探测报文报头中的信息进行哈希计算,可以计算每个探测报文的出端口。
15、通过上述方法,当n个探测报文报头中的信息除了编号信息不一致,其它信息都一致时,网络节点可以将n个探测报文均匀地散列在出端口上,实现负载分担。
16、结合第一方面,在第一方面的某些实现方式中,上述方法还包括:第一网络设备进行第一判定,该第一判定用于判断第一速率与第二速率的大小,该第一速率是第一网络设备第k次发送数据报文的速率,该第二速率是第一网络设备第k+1次发送数据报文的速率,第一网络设备在第k+1次发送上述n个探测报文的第五速率大于第一网络设备在第k次发送上述n个探测报文的第四速率,第一速率与第四速率具有对应关系,第二速率与第五速率具有对应关系。第一网络设备根据上述第一判定的结果确定上述n个探测报文的发送速率。
17、具体地,当上述第一判定的结果为第一速率大于或等于第二速率,上述第一网络设备根据第一判定的结果确定上述n个探测报文的发送速率为上述第四速率。
18、或者,当上述第一判定的结果为第一速率小于第二速率,上述方法还包括:第一网络设备将上述n个探测报文的发送速率从第五速率提升至第六速率,并进行第二判定,该第二判定用于判断第三速率与上述第二速率的大小,该第三速率是第一网络设备以第六速率发送上述n个探测报文时对应的数据报文的发送速率。第一网络设备根据上述第二判定的结果确定上述n个探测报文的发送速率。
19、通过上述方法,通过直接控制探测报文的传输,从而间接控制数据报文的传输速率,使得每条路径上数据报文的传输速率达到满通量。
20、第二方面,提供了一种通信方法,该方法可以由第二网络设备执行,或者,也可以由配置于第二网络设备中的芯片或电路执行,本技术对此不作限定。
21、该方法可以包括:第二网络设备通过第一路径集合接收来自第一网络设备的n个探测报文。第二网络设备通过第二路径集合发送m个回程报文,该m个回程报文是n个探测报文中的m个探测报文的回程报文。第二网络设备接收来自第一网络设备的m个数据报文,第一网络设备发送该m个数据报文的顺序是根据第一网络设备接收上述m个回程报文的顺序确定的。
22、具体地,上述第一网络设备与上述第二网络设备之间包括至少一条传输路径。
23、具体地,第一网络设备至第二网络设备的传输路径(即上述第一路径集合)与第二网络设备至第一网络设备的传输路径(即上述第二路径集合)可以相同,也可以不同。也就是说,上述第一网络设备至第二网络设备之间的中间网络设备(即下述第三网络设备)可以是相同的设备,也可以是不同的设备。
24、例如,第一网络设备至第二网络设备的传输路径与第二网络设备至第一网络设备的传输路径不同时,上述第一网络设备至第二网络设备之间的中间网络设备是不同的设备;第一网络设备至第二网络设备的传输路径与第二网络设备至第一网络设备的传输路径相同时,上述第一网络设备至第二网络设备之间的中间网络设备是相同的设备。
25、或者,第二网络设备可以以最高优先级回传上述m个回程报文,或者使用数据报文的通道回传上述m个回程报文,此时可以认为上述第一路径集合与上述第二路径集合不同。
26、基于上述方案,通过探测报文的回程报文的到达顺序确定数据报文的发送,可以实现多传输路径场景下的数据包保序发送,从而可以解决多路径场景下的数据包乱序问题。
27、结合第二方面,在第二方面的某些实现方式中,上述m个回程报文与上述m个数据报文一一对应,上述m个数据报文中的第m个数据报文包括上述m个回程报文中的第m个回程报文的报头,该报头用于确定第m个数据报文的第一传输路径,该第一传输路径是上述第m个回程报文对应的探测报文的传输路径,1≤m≤m。
28、具体地,上述报头也可以称为“报文头”或“packet header”。
29、可选地,上述m个数据报文可以与探测报文同时域接收,从而节省时域资源。
30、基于上述方法,可以使得第m个数据报文的传输路径与第m个探测报文的传输路径保持一致,也即,可以使得m个数据报文尽量按照顺序到达第二网络设备,减少乱序。
31、结合第二方面,在第二方面的某些实现方式中,上述n个探测报文中的每个探测报文的报头包括对每个探测报文进行编号的信息。
32、示例性地,网络节点通过对每个探测报文报头中的信息进行哈希计算,可以计算每个探测报文的出端口。
33、通过上述方法,当n个探测报文报头中的信息除了编号信息不一致,其它信息都一致时,网络节点可以将n个探测报文均匀地散列在出端口上,实现负载分担。
34、结合第二方面,在第二方面的某些实现方式中,上述方法还包括:第二网络设备接收上述m个数据报文中的第p个数据报文,该第p个数据报文的序号为q。第二网络设备确定序号q与序号p不相同。第二网络设备进行第三判定,该第三判定用于判断至少一条传输路径中的每条传输路径已接收数据报文的最大序号是否均大于序号p,该至少一条传输路径用于传输上述m个数据报文。第二网络设备根据第三判定的结果确定序号为p的数据报文是否丢包。
35、具体地,当第三判定的结果为上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号均大于序号p,上述第二网络设备根据第三判定的结果确定序号为p的数据报文丢包,此时第二网络设备请求第一网络设备重传序号为p的数据报文。
36、或者,当第三判定的结果为上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号并非均大于序号p,上述方法还包括:第二网络设备缓存上述第p个数据报文,并等待接收序号为p的数据报文。直到上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号均大于序号p,第二网络设备确定序号为p的数据报文是否丢包。
37、通过上述方法,可以判断出现错误的数据包是乱序还是丢包,当确定是丢包的情况下再去请求重传丢失的数据包,可以节省资源的浪费。
38、结合第二方面,在第二方面的某些实现方式中,当第二网络设备接收上述m个数据报文中的第p个数据报文后,该方法还包括:第二网络设备根据第p个数据报文确定该第p个数据报文的第二传输路径,该第二传输路径属于上述至少一条传输路径。第二网络设备更新上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号。
39、第三方面,提供了一种通信方法,该方法可以由第三网络设备执行,或者,也可以由配置于第三网络设备中的芯片或电路执行,本技术对此不作限定。
40、该方法可以包括:第三网络设备接收来自第一网络设备的n个探测报文,所述n个探测报文中的每个探测报文的报头包括对每个探测报文依次进行编号的信息。所述第三网络设备根据所述报头确定所述n个探测报文中的每个探测报文的传输路径。
41、具体地,上述第三网络设备可以包括至少一个网络设备。
42、示例性地,第三网络设备根据每个探测报文的报头进行哈希计算,可以计算每个探测报文的出端口。
43、可选地,上述n个探测报文的每个探测报文的报头可以包括五元组信息以及上述编号的信息。其中,上述n个探测报文中的每个探测报文的五元组信息可以保持一致。
44、通过上述方法,当n个探测报文报头中的信息除了编号信息不一致,其它信息都一致时,第三网络设备可以将n个探测报文均匀地散列在出端口上,实现负载分担。
45、第四方面,提供一种通信装置,该装置包括:发送单元,用于通过第一路径集合向第二网络设备发送n个探测报文;接收单元,用于通过第二路径集合接收m个回程报文,该m个回程报文是n个探测报文中的m个探测报文的回程报文;处理单元,用于确定m个回程报文的接收顺序;上述发送单元还用于根据m个回程报文的接收顺序向第二网络设备发送m个数据报文。
46、结合第四方面,在第四方面的某些实现方式中,上述发送单元还用于根据m个回程报文的接收顺序向第二网络设备发送m个数据报文包括:上述处理单元还用于将m个回程报文中的第m个回程报文的报头添加在m个数据报文中的第m个数据报文中,m个回程报文与m个数据报文一一对应,第m个回程报文是第一网络设备第m个接收到的回程报文,1≤m≤m;上述处理单元还用于根据上述报头确定第一传输路径,该第一传输路径是上述第m个回程报文对应的探测报文的传输路径;上述发送单元还用于在上述第一传输路径上向第二网络设备发送上述第m个数据报文,第m个数据报文是第一网络设备第m个发送的数据报文。
47、结合第四方面,在第四方面的某些实现方式中,上述处理单元还用于对上述n个探测报文中的每个探测报文依次进行编号,每个探测报文的报头包括对每个探测报文进行编号的信息。
48、结合第四方面,在第四方面的某些实现方式中,上述处理单元还用于进行第一判定,该第一判定用于判断第一速率与第二速率的大小,该第一速率是上述发送单元第k次发送数据报文的速率,该第二速率是上述发送单元第k+1次发送数据报文的速率,上述发送单元在第k+1次发送上述n个探测报文的第五速率大于上述发送单元在第k次发送上述n个探测报文的第四速率,第一速率与第四速率具有对应关系,第二速率与第五速率具有对应关系;上述处理单元还用于根据上述第一判定的结果确定上述n个探测报文的发送速率。
49、结合第四方面,在第四方面的某些实现方式中,当上述第一判定的结果为第一速率大于或等于第二速率,上述处理单元还用于根据第一判定的结果确定上述n个探测报文的发送速率为上述第四速率。
50、结合第四方面,在第四方面的某些实现方式中,当上述第一判定的结果为第一速率大于或等于第二速率,上述处理单元还用于将上述n个探测报文的发送速率从第五速率提升至第六速率,并进行第二判定,该第二判定用于判断第三速率与上述第二速率的大小,该第三速率是上述发送单元以第六速率发送上述n个探测报文时对应的数据报文的发送速率。上述处理单元还用于根据上述第二判定的结果确定上述n个探测报文的发送速率。
51、第四方面提供的通信装置相关内容的解释及有益效果均可参考第一方面所示的通信方法,此处不再赘述。
52、第五方面,提供一种通信装置,该装置包括:接收单元,用于接收来自第一网络设备的n个探测报文;发送单元,用于通过第二路径集合发送m个回程报文,该m个回程报文是n个探测报文中的m个探测报文的回程报文;上述接收单元还用于接收来自第一网络设备的m个数据报文,第一网络设备发送该m个数据报文的顺序是根据第一网络设备接收上述m个回程报文的顺序确定的。
53、结合第五方面,在第五方面的某些实现方式中,上述m个回程报文与上述m个数据报文一一对应,上述m个数据报文中的第m个数据报文包括上述m个回程报文中的第m个回程报文的报头,该报头用于确定第m个数据报文的第一传输路径,该第一传输路径是上述第m个回程报文对应的探测报文的传输路径,1≤m≤m。
54、结合第五方面,在第五方面的某些实现方式中,上述n个探测报文中的每个探测报文的报头包括对每个探测报文进行编号的信息
55、结合第五方面,在第五方面的某些实现方式中,上述接收单元还用于接收上述m个数据报文中的第p个数据报文,该第p个数据报文的序号为q;该装置还包括处理单元,该处理单元用于确定序号q与序号p不相同;该处理单元还用于进行第三判定,该第三判定用于判断至少一条传输路径中的每条传输路径已接收数据报文的最大序号是否均大于序号p,该至少一条传输路径用于传输上述m个数据报文;该处理单元还用于根据第三判定的结果确定序号为p的数据报文是否丢包。
56、结合第五方面,在第五方面的某些实现方式中,上述处理单元还用于确定该第p个数据报文的第二传输路径,该第二传输路径属于上述至少一条传输路径;该处理单元还用于更新上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号。
57、结合第五方面,在第五方面的某些实现方式中,当第三判定的结果为上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号均大于序号p,上述处理单元还用于确定序号为p的数据报文丢包。
58、结合第五方面,在第五方面的某些实现方式中,当第三判定的结果为上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号并非均大于序号p,上述处理单元还用于缓存上述第p个数据报文,并等待接收序号为p的数据报文。
59、结合第五方面,在第五方面的某些实现方式中,直到上述至少一条传输路径中的每条传输路径已接收数据报文的最大序号均大于序号p,上述处理单元用于确定序号为p的数据报文丢包。
60、第五方面提供的通信装置相关内容的解释及有益效果均可参考第二方面所示的通信方法,此处不再赘述。
61、第六方面,提供一种通信装置,该装置包括:接收单元,用于接收来自第一网络设备的n个探测报文,所述n个探测报文中的每个探测报文的报头包括对每个探测报文依次进行编号的信息;处理单元,用于根据所述报头确定所述n个探测报文中的每个探测报文的传输路径。
62、第六方面提供的通信装置相关内容的解释及有益效果均可参考第三方面所示的通信方法,此处不再赘述。
63、第七方面,提供一种通信装置,所述装置用于执行上述第一方面提供的方法。具体地,所述装置可以包括用于执行第一方面以及第一方面任一种可能实现方式的模块。
64、第八方面,提供一种通信装置,所述装置用于执行上述第二方面提供的方法。具体地,所述装置可以包括用于执行第二方面以及第二方面任一种可能实现方式的模块。
65、第九方面,提供一种通信装置,所述装置用于执行上述第三方面提供的方法。具体地,所述装置可以包括用于执行第三方面以及第三方面任一种可能实现方式的模块。
66、第十方面,提供一种通信装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面以及第一方面任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
67、在一种实现方式中,该装置为第一网络设备。当该装置为第一网络设备时,所述通信接口可以是收发器,或,输入/输出接口。
68、在另一种实现方式中,该装置为配置于第一网络设备中的芯片。当该装置为配置于第一网络设备中的芯片时,所述通信接口可以是输入/输出接口。
69、在另一种实现方式中,该装置为芯片或芯片系统。
70、可选地,所述收发器可以为收发电路。可选地,所述输入/输出接口可以为输入/输出电路。
71、第十一方面,提供一种通信装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第二方面以及第二方面任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
72、在一种实现方式中,该装置为第二网络设备。当该装置为第二网络设备时,所述通信接口可以是收发器,或,输入/输出接口。
73、在另一种实现方式中,该装置为配置于第二网络设备中的芯片。当该装置为配置于第二网络设备中的芯片时,所述通信接口可以是输入/输出接口。
74、在另一种实现方式中,该装置为芯片或芯片系统。
75、可选地,所述收发器可以为收发电路。可选地,所述输入/输出接口可以为输入/输出电路。
76、第十二方面,提供一种通信装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第三方面以及第三方面任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
77、在一种实现方式中,该装置为第三网络设备。当该装置为第三网络设备时,所述通信接口可以是收发器,或,输入/输出接口。
78、在另一种实现方式中,该装置为配置于第三网络设备中的芯片。当该装置为配置于第三网络设备中的芯片时,所述通信接口可以是输入/输出接口。
79、在另一种实现方式中,该装置为芯片或芯片系统。
80、可选地,所述收发器可以为收发电路。可选地,所述输入/输出接口可以为输入/输出电路。
81、第十三方面,提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被装置执行时,使得所述装置实现第一方面以及第一方面任一种可能实现方式中的方法。
82、第十四方面,提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被装置执行时,使得所述装置实现第二方面以及第二方面任一种可能实现方式中的方法。
83、第十五方面,提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被装置执行时,使得所述装置实现第三方面以及第三方面任一种可能实现方式中的方法。
84、第十六方面,提供一种包含指令的计算机程序产品,其上包含计算机程序,所述计算机程序被装置执行时,使得装置实现第一方面以及第一方面任一种可能实现方式中提供的方法。
85、第十七方面,提供一种包含指令的计算机程序产品,其上包含计算机程序,所述计算机程序被装置执行时,使得装置实现第二方面以及第二方面任一种可能实现方式中提供的方法。
86、第十八方面,提供一种包含指令的计算机程序产品,其上包含计算机程序,所述计算机程序被装置执行时,使得装置实现第三方面以及第三方面任一种可能实现方式中提供的方法。
87、第十九方面,提供一种通信系统,包括如前所述的第一网络设备和/或第二网络设备和/或第三网络设备。
1.一种通信方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述m个回程报文的接收顺序发送所述m个数据报文,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,当所述第一判定的结果为所述第一速率大于或等于所述第二速率,所述根据所述第一判定的结果确定所述n个探测报文的发送速率,包括:
6.根据权利要求4所述的方法,其特征在于,当所述第一判定的结果为所述第一速率小于所述第二速率,所述方法还包括:
7.一种通信方法,其特征在于,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,所述m个回程报文与所述m个数据报文一一对应,所述m个数据报文中的第m个数据报文包括所述m个回程报文中的第m个回程报文的报头,所述报头用于确定所述第m个数据报文的第一传输路径,所述第一传输路径是所述第m个回程报文对应的探测报文的传输路径,1≤m≤m。
9.根据权利要求7或8所述的方法,其特征在于,所述n个探测报文中的每个探测报文的报头包括对每个探测报文依次进行编号的信息。
10.根据权利要求7至9中任一项所述的方法,其特征在于,所述方法还包括:
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
12.根据权利要求10或11所述的方法,其特征在于,当所述第三判定的结果为所述至少一条传输路径中的每条传输路径已接收数据报文的最大序号均大于序号p,所述方法还包括:
13.根据权利要求10或11所述的方法,其特征在于,当所述第三判定的结果为所述至少一条传输路径中的每条传输路径已接收数据报文的最大序号并非均大于p,所述方法还包括:
14.根据权利要求13所述的方法,其特征在于,当所述至少一条传输路径中的每条传输路径已接收数据报文的最大序号均大于p时,所述方法还包括:
15.一种通信方法,其特征在于,所述方法包括:
16.一种通信装置,其特征在于,包括用于执行权利要求1至15中任一项所述的方法的模块或单元。
17.一种通信装置,其特征在于,包括:处理器,用于执行存储器中存储的计算机指令,使得所述装置执行如权利要求1至6中任一项所述的方法,或,使得所述装置执行如权利要求7至14中任一项所述的方法,或,使得所述装置执行如权利要求15所述的方法。
18.一种通信装置,其特征在于,所述装置包括逻辑电路和输入输出接口,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1至6中任一项所述的方法,或者,以执行如权利要求7至14中任一项所述的方法,或者,以执行如权利要求15所述的方法。
19.一种计算机可读存储介质,其特征在于,其上中存储有计算机指令,当所述计算机指令在计算机上运行时,如权利要求1至6中任一项所述的方法被执行,或,如权利要求7至14中任一项所述的方法被执行,或,如权利要求15所述的方法被执行。
20.一种芯片,其特征在于,所述芯片包括处理器与通信接口,所述处理器通过所述通信接口读取存储器上存储的指令,执行如权利要求1至6中任一项所述的方法,或,执行如权利要求7至14中任一项所述的方法,或,执行如权利要求15所述的方法。
