CN117461289A - 一种报文传输方法和装置 - Google Patents
一种报文传输方法和装置 Download PDFInfo
- Publication number
- CN117461289A CN117461289A CN202180099252.2A CN202180099252A CN117461289A CN 117461289 A CN117461289 A CN 117461289A CN 202180099252 A CN202180099252 A CN 202180099252A CN 117461289 A CN117461289 A CN 117461289A
- Authority
- CN
- China
- Prior art keywords
- receiving
- message
- interface
- interfaces
- sending
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 154
- 230000005540 biological transmission Effects 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 claims abstract description 45
- 230000004044 response Effects 0.000 claims description 135
- 230000008569 process Effects 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 66
- 238000013461 design Methods 0.000 description 28
- 230000015654 memory Effects 0.000 description 24
- 230000007246 mechanism Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000007417 hierarchical cluster analysis Methods 0.000 description 11
- 230000027455 binding Effects 0.000 description 9
- 238000009739 binding Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文传输方法和装置,涉及芯片技术领域,能够通过发送端的多接口协同工作和接收端的多接口协同工作,提升发送端和接收端通信的带宽需求,提升传输效率。其方法为:发送端确定发送第一报文时,根据发送端的多个发送接口的负载确定发送第一报文的第一发送接口,并根据接收端的多个接收接口的拥塞信息确定接收第一报文的第一接收接口;发送端通过第一发送接口发送第一报文,第一报文包括第一发送接口的标识和第一接收接口的标识。本申请实施例用于发送侧和接收侧多接口协同。
Description
本申请涉及芯片技术领域,尤其涉及一种报文传输方法和装置。
随着算力需求的提升,计算集群的网络带宽变得尤为敏感。在现有的超算集群场景下,事务处理延迟的一个主要原因是网络带宽不足。目前,为了提升网络设备处理性能,常见的手段是提供多套物理接口,并配合多路径技术提升通信带宽。
例如,传统的传输控制协议(Transmission Control Protocol,TCP)是基于绑定网际协议(Internet Protocol,IP)进行连接的。随着多网卡主机数量的增多,数据从一个主机到达另一个主机,往往有多条链路可以选择。这种情况下,如何利用这多条链路进行并行的传输或者将这多条链路作为链路备份就变得很有意义。目前,多路径(Multiple Path,MP)TCP在原有的TCP协议的基础上增加了一层协议:MultiPath TCP,用户层的单一套接口(socket)输出的TCP流可以被MultiPath TCP拆分成多个TCP子流进行通信。每个TCP子流都是通过一条单独的路径进行传递,与一个独立的TCP连接类似。而且,MPTCP的本质还是TCP,接收端需要对接收到的TCP子流先重组后再处理。
但是,对于每个TCP子流来说,发送侧和接收端都需要为每个TCP子流维护一套状态,例如发送端与接收端要针对TCP子流进行3次握手和4次挥手等过程,发送端和接收端的软硬件资源开销较大。而且,每个TCP子流需要分别绑定一个物理接口进行通信,每个物理接口所在的单路径上的带宽依然有限,传输效率较低。
发明内容
本申请实施例提供一种报文传输方法和装置,能够通过发送端的多接口协同工作和接收端的多接口协同工作,提升发送端和接收端通信的带宽需求,提升传输效率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种报文传输方法,包括:发送端确定发送第一报文时,根据发送端的多个发送接口的负载确定发送第一报文的第一发送接口,并根据接收端的多个接收接口的拥塞信息确定接收第一报文的第一接收接口;发送端通过第一发送接口发送第一报文,第一报文包括第一发送接口的标识和第一接收接口的标识。
本申请中的发送接口和接收接口可以理解为设备的网口。多个发送接口的负载例如可以是发送接口的资源占用率,或报文的丢包率等。多个接收接口的拥塞信息例如可以是接收接口的资源占用率,或报文的丢包率等。
本申请中,每个发送接口的资源占用率例如为发送接口的报文处理的队列长度。发送接口的报文处理的队列长度可以理解为发送接口的发送队列中当前处理的报文数量,该发送队列为待发送报文的队列;
每个接收接口的资源占用率例如为接收接口的报文处理的队列长度。接收接口的报文处理的队列长度可以理解为接收接口的接收队列中当前处理的报文数量,该接收队列为接收到的待处理报文的队列。
由此,在本申请中,发送端无需将同一条流或同一个连接与接口进行绑定,包括无需将同一条流或同一个连接与发送端的某个发送接口进行绑定,也无需将同一条流或同一个连接与接收端的某个接收接口进行绑定。本申请中,一条流或单个连接的多次报文传输过程中,发送端每次发送报文的发送接口可能不同,同时,接收端每次接收报文的接收接口可能不同。具体将一条流或单个连接中的某个报文通过哪个发送接口发送,以及通过哪个接收接口接收,取决于多个发送接口的负载状态和多个接收接口的拥塞信息。这样,对于发送端和接收端,发送端发送报文的消息速率可以理解为多个发送接口的消息速率总和,接收端接收报文的消息速率可以理解为多个接收接口的消息速率总和。对于发送端,本申请可以赋予发送端灵活选择报文的发送接口以及接收接口的能力,可充分利用发送端和接收端进行多接口协同,提升带宽。
在一种可能的设计中,该方法还包括:发送端接收来自接收端发送的多个接收接口的拥塞信息,多个接收接口包括第一接收接口。即发送端可以确定每个报文发送至接收端时,接收端接收该报文的接收接口。即接收接口是发送端根据多个接收接口的拥塞信息灵活确定的,可使得接收端的多接口协同,提升接收端的带宽。
在一种可能的设计中,该方法还包括:发送端确定发送第一报文失败时,根据多个接收接口的拥塞信息确定接收端接收第一重传报文的第二接收接口,第一重传报文为第一报文的重复报文;发送端通过第一发送接口发送第一重传报文,第一重传报文包括第一发送接口的标识、第二接收接口的标识以及重复报文的标记。
也就是说,发送端在发送同一报文的原始报文和重传报文时,接收该原始报文的接收接口和接收重传报文的接收接口也可能不同,具体根据接收接口的拥塞信息确定。同样的,发送端发送同一报文的原始报文的发送接口和重传报文的发送接口也可能不同。
在一种可能的设计中,第一重传报文晚于第一报文到达接收端时,该方法还包括:发送端通过第二发送接口接收第一报文的第一响应报文,第一响应报文包括第一发送接口的标识;第二发送接口与第一发送接口不同时,发送端控制第二发送接口向第一发送接口发送第一响应报文;发送端控制第一发送接口向第一接收接口发送第一通知消息,第一通知消息用于指示第一接收接口释放第一报文的上下文信息。
也就是说,对于发送端,如果发送第一报文的发送接口和接收第一响应报文的发送接口不同,接收第一响应报文的发送接口还需将第一响应报文转发给发送第一报文的发送接口,即第一发送接口,以便第一发送接口指示第一接收接口释放第一报文的上下文信息。
在一种可能的设计中,第一报文晚于第一重传报文到达接收端时,该方法还包括:发送端通过第三发送接口接收第一重传报文的第一重传响应报文,第一重传响应报文包括第一发送接口的标识;第三发送接口与第一发送接口不同时,发送端控制第三发送接口向第一发送接口发送第一重传响应报文;发送端控制第一发送接口向第二接收接口发送第二通知消息,第二通知消息用于指示第二接收接口释放第一重传报文的上下文信息。
也就是说,对于发送端,如果发送第一重传报文的发送接口和接收第一重传响应报文的发送接口不同,接收第一重传响应报文的发送接口还需将第一重传响应报文转 发给发送第一重传报文的发送接口,即第一发送接口,以便第一发送接口指示第二接收接口释放第一重传报文的上下文信息。
第二方面,提供一种报文传输方法,该方法包括:接收端向发送端发送多个接收接口的拥塞信息,多个接收接口的拥塞信息用于发送端确定接收端接收第一报文的第一接收接口;接收端通过第一接收接口接收第一报文,第一报文包括发送端发送第一报文的第一发送接口的标识和第一接收接口的标识。
由此,在本申请中,对于接收端,多次报文传输过程中,每次接收报文的接收接口可能不同,可由发送端根据多个接收接口的拥塞信息确定由哪个接收接口来接收报文。这样,接收端的多个接收接口可协同工作,接收端接收报文的消息速率可以理解为多个接收接口的消息率总和,提升接收端的带宽接收报文的效率。
在一种可能的设计中,该方法还包括:接收端确定从第一接收接口接收到第一报文时,确定多个接收接口除第一接收接口以外的其他接收接口是否已接收到第一报文的重复报文;接收端确定其他接收接口均未接收到第一报文的重复报文时,接收端控制第一接收接口对第一报文进行处理;接收端确定其他接收接口中的至少一个接收接口已接收到第一报文的重复报文时,接收端控制第一接收接口丢弃第一报文。
这是由于,接收端的多个接收接口都有可能是同一报文的原始报文和重传报文的接收接口,当多个不同的接收接口接收到同一报文的重复报文时,为了避免同一报文在不同的接收接口被重复处理,在一个第一接收接口接收到第一报文时,需先确定其他接收接口是否已经接收到第一报文的重复报文,如果其他接收接口都没接收到,第一接收接口可以处理第一报文。但是,只要有其他接收接口中的一个接收接口已经接收到的第一报文的重复报文,即对第一报文已经注册了,第一接收接口便不能处理第一报文,以避免报文被重复处理。
在一种可能的设计中,第一报文为原始报文时:
确定多个接收接口除第一接收接口以外的其他接收接口是否已接收到第一报文的重复报文包括:接收端确定第一接收接口是否接收到其他接收接口的第一注册请求,第一注册请求用于请求对第一重传报文进行处理,第一重传报文为第一报文的重传报文;接收端确定其他接收接口均未接收到第一报文的重复报文包括:接收端确定第一接收接口未接收到其他接收接口发送的第一注册请求;接收端确定其他接收接口中的至少一个接收接口已接收到第一报文的重复报文包括:接收端确定第一接收接口已接收到其他接收接口中的至少一个接收接口发送的第一注册请求。与上一种可能的设计类似的,如果一个第一接收接口要对作为原始报文的第一报文进行处理,第一接收接口需要确定是否接收针对第一重传报文的第一注册请求。如果已经接收到一个第一注册请求,第一报文便是晚于第一重传报文到达的;如果并未接收到过第一注册请求,认为第一报文是最先到达的,第一接收接口可以对第一报文进行处理。
在一种可能的设计中,该方法还包括:接收端确定第一接收接口在接收到第一报文后,接收到其他接收接口中的第二接收接口发送的第一注册请求时,接收端控制第一接收接口向第二接收接口发送第一注册响应,第一注册响应用于指示第二接收接口注册失败。也就是说,如果第一接收接口正在处理第一报文时,接收到第二接收接口针对第一重传报文的第一注册请求,为了防止报文被重复处理,第一接收接口需指示 第二接收接口注册失败,以避免同一报文被重复处理。
在一种可能的设计中,第一报文为重传报文时:确定多个接收接口除第一接收接口以外的其他接收接口是否已接收到第一报文的重复报文包括:接收端控制第一接收接口向其他接收接口中的每个接收接口发送第一注册请求,第一注册请求用于请求对第一报文进行处理;接收端确定其他接收接口均未接收到第一报文的重复报文包括:接收端确定第一接收接口接收到的其他接收接口发送的多个注册响应,多个注册响应均指示第一接收接口注册成功;接收端确定其他接收接口中的至少一个接收接口已接收到第一报文的重复报文包括:接收端确定第一接收接口已接收到其他接收接口中的一个接收接口发送的指示第一接收接口注册失败的注册响应。
也就是说,如果第一报文是一个重传报文,第一接收接口并不确定第一报文是否是晚于原始报文到达的一个重复报文,第一接收接口需要向其他接收接口请求处理第一报文的权限,如果每个注册响应都指示第一接收接口可以处理第一报文,第一接收接口处理第一报文。如果有一个返回的注册响应指示第一接收接口注册失败,便说明第一接收接口接收到的第一报文是晚于原始报文到达接收端的,第一接收接口不能处理该第一报文。
在一种可能的设计中,该方法还包括:接收端确定其他接收接口中的第二接收接口已接收到一个第一注册请求后,又接收到第一报文的原始报文,接收端控制第二接收接口丢弃第一报文的原始报文。这就是说,如果第二接收接口已经接收到的一个第一注册请求,请求对第一报文的同一报文进行处理,说明已经有接收接口先于第二接收接口接收到的同一报文。当第二接收接口又接收到第一报文的原始报文时,第二接收接口就没有权限处理第一报文的原始报文了,避免同一报文在不同的接收接口重复处理。
在一种可能的设计中,第一报文为重传报文时:接收端确定第一接收接口在接收到第一报文后,第一接收接口还接收到第二接收接口发送的第一注册请求,第一注册请求用于请求对第一报文的重复报文进行处理时,若第一接收接口的编号小于第二接收接口的编号,则接收端控制第一接收接口拒绝第一注册请求。这种可能的设计需与下一个可能的设计同时执行,具体参照下面一种可能的设计中的说明。
在一种可能的设计中,第一报文为重传报文时:接收端确定第一接收接口在接收到第一报文后,如果第一接收接口的编号不是接收端的所有接收接口的编号中的最小编号,接收端控制第一接收接口收集第一接收接口以外的其他所有接收接口关于第一报文的多个注册响应;接收端控制第一接收接口向编号小于第一接收接口的编号的接收接口发送多个注册响应中的第一注册响应,第一注册响应用于指示第二接收接口对第一报文的重复报文注册成功。
与上一个可能的设计结合执行时,换句话说,对于多个接收接口接收到同一报文的多个重复报文时,如果一个接收接口已经接收到一个重传报文,编号小的接收接口可以直接拒绝编号大的接收接口关于同一重传报文的注册请求;同时,如果一个接收接口已经得到一个重传报文时,编号大的接收接口需确定其他所有接收接口关于该重传报文的注册情况。而且,编号大的接收接口需要将接收到的有效的注册结果,例如一个接收接口注册成功,部分接收接口虽然注册成功,但是并未接收到该重复报文, 以及部分接收接口注册失败等,这样,编号小的接收接口可以确定处理该重复报文的接收接口,以避免多个接收接口在接收到同一报文的多个重复报文时重复处理的情况出现。
第三方面,提供一种通信设备,包括:处理器,用于确定发送第一报文时,根据发送端的多个发送接口的负载确定发送第一报文的第一发送接口,并根据接收端的多个接收接口的拥塞信息确定接收第一报文的第一接收接口;收发器,包括第一发送接口,第一发送接口用于发送第一报文,第一报文包括第一发送接口的标识和第一接收接口的标识。
在一种可能的设计中,收发器还用于:接收来自接收端发送的多个接收接口的拥塞信息,多个接收接口包括第一接收接口。
在一种可能的设计中,处理器还用于:确定发送第一报文失败时,根据多个接收接口的拥塞信息确定接收端接收第一重传报文的第二接收接口,第一重传报文为第一报文的重复报文;第一发送接口,还用于发送第一重传报文,第一重传报文包括第一发送接口的标识、第二接收接口的标识以及重复报文的标记。
在一种可能的设计中,第一重传报文晚于第一报文到达接收端时,收发器还包括第二发送接口,第二发送接口还用于接收第一报文的第一响应报文,第一响应报文包括第一发送接口的标识;第二发送接口与第一发送接口不同时,第二发送接口还用于,向第一发送接口发送第一响应报文;第一发送接口,还用于向第一接收接口发送第一通知消息,第一通知消息用于指示第一接收接口释放第一报文的上下文信息。
在一种可能的设计中,第一报文晚于第一重传报文到达接收端时,收发器还包括第三发送接口,第三发送接口用于接收第一重传报文的第一重传响应报文,第一重传响应报文包括第一发送接口的标识;第三发送接口与第一发送接口不同时,第三发送接口还用于向第一发送接口发送第一重传响应报文;第一发送接口,还用于向第二接收接口发送第二通知消息,第二通知消息用于指示第二接收接口释放第一重传报文的上下文信息。
第四方面,提供一种通信设备,包括:收发器,用于向发送端发送多个接收接口的拥塞信息,多个接收接口的拥塞信息用于发送端确定接收端接收第一报文的第一接收接口;收发器包括第一接收接口,第一接收接口用于接收第一报文,第一报文包括发送端发送第一报文的第一发送接口的标识和第一接收接口的标识。
在一种可能的设计中,还包括处理器,用于:确定从第一接收接口接收到第一报文时,确定多个接收接口除第一接收接口以外的其他接收接口是否已接收到第一报文的重复报文;确定其他接收接口均未接收到第一报文的重复报文时,控制第一接收接口对第一报文进行处理;确定其他接收接口中的至少一个接收接口已接收到第一报文的重复报文时,控制第一接收接口丢弃第一报文。
在一种可能的设计中,第一报文为原始报文时:第一接收接口,用于确定是否接收到其他接收接口的第一注册请求,第一注册请求用于请求对第一重传报文进行处理,第一重传报文为第一报文的重传报文;确定第一接收接口未接收到其他接收接口发送的第一注册请求,第一接收接口,用于对第一报文进行处理;或,确定第一接收接口已接收到其他接收接口中的至少一个接收接口发送的第一注册请求,第一接收接口, 用于丢弃第一报文。
在一种可能的设计中,在接收到第一报文后,接收到其他接收接口中的第二接收接口发送的第一注册请求时,第一接收接口,还用于向第二接收接口发送第一注册响应,第一注册响应用于指示第二接收接口注册失败。
在一种可能的设计中,第一报文为重传报文时:第一接收接口,用于向其他接收接口中的每个接收接口发送第一注册请求,第一注册请求用于请求对第一报文进行处理;确定第一接收接口接收到的其他接收接口发送的多个注册响应,多个注册响应均指示第一接收接口注册成功,对第一报文进行处理;确定第一接收接口已接收到其他接收接口中的一个接收接口发送的指示第一接收接口注册失败的注册响应,控制第一接收接口丢弃第一报文。
在一种可能的设计中,其他接收接口中的第二接收接口已接收到一个第一注册请求后,又接收到第一报文的原始报文,第二接收接口,用于丢弃第一报文的原始报文。
在一种可能的设计中,第一报文为重传报文时:第一接收接口在接收到第一报文后,第一接收接口还接收到第二接收接口发送的第一注册请求,第一注册请求用于请求对第一报文的重复报文进行处理时,若第一接收接口的编号小于第二接收接口的编号,则第一接收接口,用于拒绝第一注册请求。
在一种可能的设计中,第一报文为重传报文时:第一接收接口在接收到第一报文后,如果第一接收接口的编号不是接收端的所有接收接口的编号中的最小编号,第一接收接口,用于收集第一接收接口以外的其他所有接收接口关于第一报文的多个注册响应;第一接收接口还用于向编号小于第一接收接口的编号的接收接口发送多个注册响应中的第一注册响应,第一注册响应用于指示第二接收接口对第一报文的重复报文注册成功。
第五方面,提供一种通信装置,包括至少一个处理器、多个发送接口和多个接收接口,至少一个处理器与存储器、多个发送接口和多个接收接口通过系统总线相连,至少一个处理器用于读取并执行存储器中存储的程序,该程序可作用于多个发送接口和多个接收接口,以使得装置执行如上述第一方面或第一方面的任一项的方法。
第六方面,提供一种芯片,芯片与存储器耦合,芯片包括多个与发送接口和多个接收接口耦合的管脚,该芯片用于读取并执行存储器中存储的程序指令,以实现如上述第一方面或第一方面的任一项的方法。
第七方面,提供一种电子设备,包括多个发送接口、多个接收接口、一个或多个处理器以及一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述任一方面及任一项可能的实现方式中的报文传输方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述任一方面及任一项可能的实现方式中的报文传输方法。
第九方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一方面及任一项可能的实现方 式中的报文传输方法。
第十方面,本申请实施例提供了一种系统,该系统可以包括以上任一方面的任一项可能的实现方式中的发送端和接收端。该发送端和接收端可以执行上述任一方面及任一项可能的实现方式中的报文传输方法。
可以理解的是,上述提供的任一种发送端、接收端、芯片系统、计算机可读存储介质或计算机程序产品等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
图1为本申请实施例提供的一种MPTCP技术中的TCP子流处理架构示意图;
图2为本申请实施例提供的一种RDMA bonding中的带宽聚合架构示意图;
图3为本申请实施例提供的一种多路径传输技术架构示意图;
图4为本申请实施例提供的一种多路径传输技术中多接口协同的架构示意图;
图5为本申请实施例提供的一种网络设备中网络硬件接口结构示意图;
图6为本申请实施例提供的一种发送端执行报文拆分与接口调度的架构示意图;
图7为本申请实施例提供的一种接收端执行报文拆分与接口调度的架构示意图;
图8为本申请实施例提供的一种报文传输方法流程示意图;
图9为本申请实施例提供的一种报文传输方法流程示意图;
图10为本申请实施例提供的一种报文传输方法中的信号交互示意图;
图11为本申请实施例提供的一种报文传输方法中的信号交互示意图;
图12为本申请实施例提供的一种报文传输方法中的信号交互示意图;
图13为本申请实施例提供的一种报文传输方法中的信号交互示意图;
图14为本申请实施例提供的一种电子设备的结构示意图;
图15为本申请实施例提供的一种通信设备的结构示意图;
图16为本申请实施例提供的一种通信设备的结构示意图。
为了便于理解,示例的给出了部分与本申请实施例相关概念的说明以供参考。如下所示:
MPTCP:建立TCP连接时,一直以来都是只能绑定一个IP地址,但是随着多网卡主机越来越多,数据从一个主机到另一个主机往往都会有多条链路可以到达,其目的是允许TCP连接使用多个路径来最大化信道资源使用。
远程直接数据存取(Remote Direct Memory Access,RDMA):是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。这样只需要很少的计算机的处理功能,也消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和中央处理单元(Central Processing Unit,CPU)周期用于改进应用系统性能。
队列对(Queue Pair,QP):硬件和软件之间的一个虚拟接口。QP是队列结构,按顺序存储着软件给硬件下发的任务,任务中包含所取的数据的来源和长度,并且包 括数据的发送目的地等。
主通道适配器(Host Channel Adapter,HCA):可应用于企业数据中心、高性能计算和嵌入式环境等领域,为服务器/存储的集群应用提供了高带宽、低延迟的解决方案。在集群数据库、并行应用、处理服务和高性能嵌入式输入/输出(Input/Out,I/O)等应用中,该HCA卡可使应用的性能实现最大程度的提高,缩短了操作周期,降低了资源损耗。
无限带宽(InfiniBand,IB):用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,为了提升网络设备处理性能,常见的手段是提供多套物理接口,并配合多路径传输技术提升通信带宽。
一种多路径技术MPTCP中,如图1中的(a)所示,原有的TCP协议包括网际协议(Internet Protocol,IP)层、TCP层和应用层(application)。在该基础上增加了一层MPTCP后,TCP协议可如图1中的(b)所示,用户层的单一socket的TCP流可在MPTCP层拆分成多个TCP子流(subflow)。这里的每个TCP子流都是通过一条单独的路径传输,每个TCP子流对应存在一个TCP连接。在接收端,需要对接收到的多个TCP子流进行重组后再处理。
但是,发送端和接收端对于每个TCP子流都需要维护一套状态,即每个TCP子流都要经过发送端和接收端经过三次握手和四次挥手后再传输,对于发送端和接收端来说,软硬件的资源开销较大。
具体地,TCP位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略。三次握手策略包括:1)发送端先发送一个带有同步(synchronize,SYN)标志地数据包给接收端。2)接收端接收后,向发送端回传一个带有SYN/确认(Acknowledgement,ACK)标志的数据包,以向发送端传递已接收到数据包的确认信息。3)发送端再向接收端回传一个带有ACK标志的数据包,以表示发送端已接收到确认信息,三次握手结束。
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后,可发送一个FIN(FinNet)来终止这个方向的连接。但收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方(主动方)将执行主动关闭,而另一方(被动方) 执行被动关闭。当被动方收到主动方的FIN报文通知时,它仅仅表示主动方没有数据再发送给被动方了。这个过程可以称为四次挥手,具体包括:1)主动方向被动方发送一个FIN,用于指示要关闭主动方到被动方的数据传输。2)被动方收到FIN,被动方向主动方发送ACK。3)被动放关闭与主动方的连接,并发送一个FIN给主动方。4)主动方在接收到3)中的FIN后,主动方向被动放发回ACK,表示已收到3)中的FIN
由此看来,如果每个TCP子流都维护有一个连接下的状态,包括三次握手和四次挥手这样的状态,资源开销较大。而且,每个TCP子流在传输时,发送端要为一个TCP子流绑定一个物理接口,接收端也要为TCP子流绑定一个物理接口。在这种接口绑定容易发生流量阻塞,而且设备的处理带宽会受到限制。
另一种多路径技术RDMA bonding(绑定)中,可以将一个发送端或接收端中的RDMA聚合成一套逻辑资源,实现带宽聚合。如图2所示,发送端或接收端中,当用户的应用层(Application)的数据要传输时,RDMA HAL(hardware abstraction layer,硬件抽象层)and services可以为Application提供调用HCA的API。图2中示出的无线带宽(InfiniBand,IB)HCA和RDMA融合以太网(RDMA over Converged Ethernet,RoCE)HCA,RDMA bonding可以通过绑定这两种HCA中的一个屏蔽HCA的硬件差异,实现多个RDMA资源池化,用户可以不感知RDMA的设备差异。RDMA HAL and services可以根据一些规则将Application要处理的QP分配到具体的HCA去处理。其中,绑定HCA驱动(Bonding HAC driver)可以驱动RDMA HAL and services为QP分配的HAC去处理该QP。
可以理解,RDMA bonding中,可基于QP选定HCA建立通信连接,但是同时也存在增加调度和硬件屏蔽的软硬件开销,与MPTCP中绑定接口的技术类似。而且,同样也存在某个HCA容易发生流量阻塞,设备的处理带宽受到限制的问题。
由此,可以看出,当前的多路径传输技术,本质依然是单个连接绑定物理接口的方式进行数据传输。如图3所示,对于发送端,如果确定连接1是通过物理接口0传输数据,发送端只能在物理接口1发送数据。类似的,连接2的数据也只能在物理接口1发送数据。发送端的多个物理接口并没有协同工作。对于接收端,也是绑定固定的物理端口接收单个连接的数据。
对此,本申请提供一种报文传输方法,该报文可以理解为上文中的数据。该方法中,可以打破当前这种一个连接需要和一个物理接口绑定的约束,可使得设备上的多个物理接口同时为单个连接传输数据,提升报文的处理效率。
具体地,在本申请的多路径传输中,提出对于同一条通信流(一个连接)的发送机制,不绑定发送端的物理接口进行报文发送,对于同一条通信流的接收机制,不绑定接收端的物理接口进行报文接收。
如图4所示,例如对于发送端的单个连接,该连接中待发送的多个报文中的每个报文可能通过不同的物理接口发送,例如该连接中的报文1通过物理接口0发送,报文2通过物理接口1发送。假设发送端有3个物理接口,单个连接可以通过这3个物理接口发送数据,最大可达到所有接口的消息速率总和。对于接收端,与发送端类似的,接收每个报文的接口也可能不同。
本申请的这种多接口协同的多路径传输可以适用于多种场景中,例如可应用于数 据中心的多个节点中,此时本申请的发送端例如可以是计算节点,接收端可以是存储节点,或者,发送端为存储节点,接收端为计算节点等。例如还可以应用于高性能计算(High Performance Computing,HPC)机群的多个计算节点中。当然,还可以应用于其他场景中,本申请不做限定。
本申请可以应用于网络设备,网络设备可以为发送端或接收端,发送端和接收端可以应用于上述场景中。发送端和接收端之间的数据传输可以为多路径传输。网络设备既可以作为发送端,也可以作为接收端,因此,如图4所示,网络设备包括多个发送接口和多个接收接口,也就相当于发送端包括多个发送接口和多个接收接口,接收端也包括多个接收接口和多个发送接口。在发送端向接收端发送报文的过程中,发送端的发送接口可以用于发送报文,多个接收接口可以用于接收报文的响应,接收端的接收接口可以用于接收报文,接收端的发送接口可以用于发送报文的响应。
在一些实施例中,本申请的发送接口和接收接口可以理解为网络设备的网络硬件接口。
具体的,对于一个网络设备,该网络设备可以包括专用集成电路(Application Specific Integrated Circuit,ASIC)和内存。内存可以用于存储数据。ASIC可以包括处理器、其他组件和网络硬件接口。ASIC内的所有组件可以通过系统总线进行数据传递。处理器可以用于运行操作系统和软件协议栈等。其他组件,可以用于配合处理器完成各项功能。本申请可针对ASIC中的网络硬件接口进行改进。
如图5所示,该网络硬件接口包括传输层控制器、多个发送接口(如图5中示出的发送接口1、发送接口2和发送接口3)和多个接收接口(如图5中示出的接收接口1、接收接口2和接收接口3)。发送接口可通过交换机向其他外接设备发送报文,接收接口可通过交换机接收其他外接设备的报文。其中,传输层控制器包括拥塞控制模块、可靠传输模块和任务调度模块等。
其中,可靠传输模块,在网络设备作为发送端时,用于根据接收接口接收到的报文响应,确定发送端是否要进行报文重传。另外,由于本申请中的多个接收接口可协同工作,在网络设备作为接收端时,可靠传输模块还用于配合多个接收接口进行报文去重处理,确保同一个报文只能执行不超过1次,具体将在后文中介绍。
在网络设备作为发送端时:
拥塞控制模块,用于和任务调度模块配合,实现多路径传输中,发送接口和接收接口的灵活选择;
任务调度模块,用于根据拥塞控制模块确定的发送接口,编辑要发送的报文和选择发送接口和接收接口等;
发送接口用于根据任务调度模块的指示,进行报文发送。
在网络设备作为接收端时:
接收接口用于接收报文,同时可通过多接口报文注册机制,实现多个接口的协同处理,确保同一个报文不会被重复处理。即这里的报文注册机制用于避免报文被重复处理。
在一些实施例中,在发送端的多接口协同机制中,任务调度模块可与全部的发送接口进行通信,且发送接口均是解耦的,发送接口各自可以维护自身的发送侧上下文。 该发送侧上下文可包括报文的序列号和连接状态等。发送接口还可以将自身接口的拥塞信息以及接收到的接收端的拥塞信息、发送接口的负载状态(收包情况)以及发送接口的故障信息等反馈给任务调度模块。
任务调度模块,用于执行报文的拆分的调度,并根据多个发送接口的负载状态,确定发送报文的发送接口,以进行报文的发送。如图6所示,如果将本申请中的报文看做一个消息1,在发送端的传输层可将消息1拆分为子消息1、子消息2和子消息3,消息2不拆分,当任务调度模块在从传输层接收到这3个子消息和消息2时,假设多发送端有3个发送接口,任务调度模块可以根据3个发送接口的负载状态,将子消息1调度给发送接口1,将子消息2和子消息3调度给发送接口2,将消息2调度给发送接口3。相应地,发送接口1可保存子消息1的上下文,发送接口2可保存子消息2和子消息3的上下文,发送接口3可保存消息2的上下文。
本申请中的一个报文可以理解为一个子消息或一个未被拆分的消息。对于重传报文,发送接口还需对报文添加重传的标记,以便接收端可识别出重传报文。
在一些实施例中,在接收端的多接口协同机制中,考虑到网络拥塞引起的报文丢弃和重传,在可靠传输场景下,报文可以从接收端的任意一个接收接口进入,当报文多次重传时,需要确保同一个报文在接收端最多只被处理一次。在本申请中,在识别出重复报文时,通过引入对重传报文引入注册机制,且接收接口间可互相访问,避免报文在不同的接收接口被重复处理。
具体地,当一个接收接口在接收到重传报文时,需向接收端中除这一个接收接口以外的其余接收接口查询并注册重传报文的处理权限。只要有一个接收接口处理过重传报文的原始报文或重传报文,可以确定该接收接口接收到的重传报文是重复报文。发起查询的接收接口,可等其余所有接收接口都完成确认,才能进行报文处理,例如丢弃报文。
对于非重复报文,接收接口各自独立处理,事务的执行顺序可由事务执行序管理模块进行控制。这里的事务可以理解为报文,上述传输层控制器可包括事务执行序管理模块。如图7所示,当接收端中的接收接口1接收到消息1的子消息1,接收接口2接收到消息1的子消息2和子消息3,接收接口3接收到消息2时,接收接口1可建立子消息1的上下文,接收接口2可建立子消息2和子消息3的上下文,接收接口3可建立消息2的上下文。事务执行序管理模块在接收到各个接收接口传输的多个子消息时,可按照子消息的消息序号对多个子消息进一步进行处理。
结合上述对本申请发送端和接收端的介绍,下面对本申请发送端和接收端对报文传输的实现方式进一步进行介绍。
在介绍本申请的一些实施方式之前,需要说明的是,本申请中,发送端的发送接口不仅可以用于发送报文,还可以接收来自对端的响应报文。发送端的发送接口接收响应报文的资源和发送端的接收接口接收来自对端直接发送的报文的资源不同。换句话说,虽然发送端的发送接口接收响应报文的网线和发送端的接收接口接收对端直接发送的报文的网线在物理上是相同的,但是发送端的发送接口接收响应报文的虚通道和发送端的接收接口接收对端直接发送的报文的虚通道是相互独立的,互不影响的。
类似的,接收端的接收接口不仅可以用于接收报文,还可以向对端发送响应报文。 接收端的接收接口发送响应报文的资源和接收端的发送接口直接发送的报文的资源不同。换句话说,虽然接收端的接收接口发送响应报文的网线和接收端的发送接口直接发送报文的网线在物理上是相同的,但是接收端的接收接口发送响应报文的虚通道和接收端的发送接口向对端直接发送报文的虚通道是相互独立的,互不影响的。
实施例一
对于发送端,本申请提供一种报文传输方法,如图8所示,该方法包括以下处理流程。
801、发送端确定发送第一报文时,根据发送端的多个发送接口的负载确定发送第一报文的第一发送接口,并根据接收端的多个接收接口的拥塞信息确定接收第一报文的第一发送接口。
第一报文可以是上文中的消息或子消息。
在一些实施例中,发送端接收来自接收端发送的多个接收接口的拥塞信息,多个接收接口包括第一接收接口。例如,拥塞信息可以是接收接口的丢包率的指示信息,或报文队列长度的指示信息等,本申请不做限定。
这样,发送端不仅可以根据发送端的多个发送接口的负载状态确定发送第一报文的第一发送接口,还可以根据多个接收接口的拥塞信息确定接收第一报文的第一接收接口。
在一些实施例中,发送端中的拥塞控制模块可根据预设的算法从多个接收接口中确定第一接收接口。本申请对算法的实现不做限定。发送端中的各个发送接口可以将发送接口自身的负载状态发送给任务调度模块,任务调度模块可以根据负载状态从多个发送接口中确定第一发送接口。这里根据负载状态确定第一发送接口的方式也不做限定,例如负载状态可以是各个发送接口当前的报文队列长度的指示信息,或丢包率的指示信息等,本申请不做限定。任务调度模块再指定第一发送接口发送第一报文。
802、发送端通过第一发送接口发送第一报文,第一报文包括第一发送接口的标识和第一接收接口的标识。
发送端通过第一发送接口发送第一报文时,可以在第一报文中增加域段,用于记录发送第一报文的第一发送接口和第一接收接口的标识。
由此,本申请可以赋予发送端灵活选择报文的发送接口以及接收接口的能力,可充分利用发送端和接收端进行多接口协同,提升带宽。
实施例二
对于接收端,本申请提供一种报文传输方法,如图9所示,该方法包括以下处理流程。
901、接收端向发送端发送多个接收接口的拥塞信息,多个接收接口的拥塞信息用于发送端确定接收端接收第一报文的第一接收接口。
这里的拥塞信息可以参建步骤801中的说明。
当发送端确定了发送第一报文的第一接收接口后,在可靠传输中,发送端可以通过控制面的消息向接收端发送接收第一报文的第一接收接口的指示信息,以便接收端可以在第一接收接口接收第一报文。
902、接收端通过第一接收接口接收第一报文,第一报文包括发送端发送第一报文 的第一发送接口的标识和第一接收接口的标识。
对于接收端,第一报文可通过第一接收接口接收,同理,当发送端确定接收第二报文的接收接口为第二接收接口时,接收端可通过第二接收接口接收第二报文。
这样,对于接收端,也可以实现接收报文的接收接口的灵活选择,充分利用接收端的多接口协同,提升带宽。
实施例三
由于本申请中发送端在每发送报文时,可灵活选择发送接口和接收接口,考虑到报文也存在发送失败的情况,发送端在发送原始报文的重传报文时,可以在发送原始报文的发送接口继续发送重传报文,也可以根据当前多个发送接口的负载状态重新确定发送重传报文的发送接口。类似的,发送端也可在发送重传报文前,确定接收重传报文的接收接口,接收重传报文的接收接口可能与接收原始报文的接收接口相同或不同。
通常,发送端如果未在规定的时间段内接收到报文的ACK报文,发送端认为报文发送失败,继续发送报文的重传报文。但是,报文的原始报文也可能并未丢包,只是发送端未在规定的时间段内接收到报文的ACK报文而已,这种情况下,对于接收端,接收端有可能在一个接收接口先接收到报文的原始报文,也可能在一个接收接口先接收到同一报文的重传报文。本着报文在接收端最多只能被处理一次的原则,如果原始报文先于重传报文到达接收端,接收端就只处理原始报文;如果一个重传报文先于原始报文到达接收端,接收端就只处理这一个重传报文,以避免同一个报文在多个接收接口被重复处理。
由此,本申请提供一种报文传输方法,假设发送端发送同一报文的原始报文和重传报文的发送接口相同时,如图10所示,该方法包括以下流程。
101、发送端在第一发送接口T1发送第一报文。
第一报文包括发送端的第一发送接口T1的标识和接收端的第一接收接口R1的标识。
本实施例中以第一报文为原始报文为例进行说明。
102、发送端确定发送第一报文失败时,根据多个接收接口的拥塞信息确定接收端接收第一重传报文的第二接收接口R2,第一重传报文为第一报文的重复报文。
如果发送端未在规定的时间内接收到第一报文的ACK报文,发送端确定发送第一报文失败。发送端在发送第一报文的重复报文,即第一重传报文之前,再次根据多个接收接口的拥塞信息确定接收第一重传报文的第二接收接口R2。第二接收接口R2可能与第一接收接口R1相同,也可能不同。本实施例中,R2和R1不同。
103、发送端通过第一发送接口T1发送第一重传报文,第一重传报文包括第一发送接口T1的标识、第二接收接口R2的标识以及重复报文的标记。
重复报文的标记用于指示第一重传报文为重传报文。通常,第一重传报文中也会携带原始报文,即第一报文的序号M,M为大于或等于0的整数,这样接收端可确定第一重传报文为序号为M的第一报文的重传报文。
而后,第一重传报文晚于第一报文到达接收端时,执行步骤104,或,第一报文晚于第一重传报文到达接收端时,执行步骤107。
104、接收端反馈第一报文的第一响应报文,第一响应报文包括第一发送接口T1的标识。
相应地,发送端通过第二发送接口T2接收第一报文的第一响应报文,第二发送接口T2可能与第一发送接口T1相同,也可能不同。本实施例中,T2和T1不同。
接收端可在发送第一响应报文之前,通过控制面信令向发送端发送第二发送接口T2的标识,以便发送端通过第二发送接口T2接收第一响应报文。
105、第二发送接口T2与第一发送接口T1不同时,发送端控制第二发送接口T2向第一发送接口T1发送第一响应报文。
也就是说,如果发送第一重传报文的第二发送接口T2与发送原始报文,即第一报文的第一发送接口T1不同时,发送端需通过第二发送接口T2将第一响应报文的发送给第一发送接口T1。
106、发送端控制第一发送接口T1向第一接收接口R1发送第一通知消息,第一通知消息用于指示第一接收接口R1释放第一报文的上下文信息。
由于第一接收接口R1在接收第一报文时,保存有第一报文的上下文信息,如果第一发送接口T1在接收到第一响应报文时,发送端确定第一报文发送成功,发送端便可控制第一发送接口T1通知第一接收接口R1释放第一报文的上下文信息。
107、接收端反馈第一重传报文的第一重传响应报文,第一重传响应报文包括第一发送接口T1的标识。
相应地,发送端通过第三发送接口T0接收该第一重传响应报文,第三发送接口T0可能与第一发送接口T1相同,也可能不同。本实施例中,T0和T1不同。
接收端可在发送第一重传响应报文之前,通过控制面信令向发送端发送第三发送接口T0的标识,以便发送端通过第三发送接口T0接收第一重传响应报文。
108、第三发送接口T0与第一发送接口和T1不同时,发送端控制第三发送接口T0向第一发送接口T1发送第一重传响应报文。
也就是说,如果发送第一重传报文的第三发送接口T0与发送原始报文,即第一报文的第一发送接口T1不同时,发送端需通过第三发送接口T0将第一重传响应报文的发送给第一发送接口T1。
109、发送端控制第一发送接口T1向第二接收接口R2发送第二通知消息,第二通知消息用于指示第二接收接口R2释放第一重传报文的上下文信息。
由于第一接收接口R1在接收第一重传报文时,保存有第一重传报文的上下文信息,如果第一发送接口T1在接收到第一响应报文时,发送端确定第一重传报文发送成功,发送端便可控制第一发送接口T1通知第二接收接口R2释放第一重传报文的上下文信息。
由此,对于发送端和接收端,可以在发送报文和接收报文时,采用多接口协同机制,可让发送端的所有发送接口和接收端的所有接收接口同时为单个报文服务,达到充分利用设备带宽的能力。
实施例四
上文中已经阐述,不管发送端发送的报文是原始报文还是重传报文,在可靠传输的要求下,同一个报文最多只能处理一次。在接收端多接口协同的场景下,重传报文 可能从接收端的任一个接收接口传入,当接收端确定从第一接收接口接收到第一报文时,确定多个接收接口除第一接收接口以外的其他接收接口是否已接收到第一报文的重复报文。这里的第一报文可能是原始报文,也可能是重传报文。如果接收端确定其他接收接口均未接收到第一报文的重复报文时,接收端控制第一接收接口对第一报文进行处理;如果接收端确定其他接收接口中的至少一个接收接口已接收到第一报文的重复报文时,接收端控制第一接收接口丢弃第一报文。也就是说,接收端的接收接口在每接收到一个报文时,都需要判断本接收接口是否可以处理报文,以避免报文被重复处理。
对此,在接收端,提供一种注册机制,该注册机制针对重传报文,即当接收端的一个接收接口在接收到重传报文时,需向其他接收接口请求注册,如果确定某个序号的报文已经被注册,则该接收接口不能处理该重传报文。或者,当一个接收接口在接收到原始报文时,如果该接收接口确定与该原始报文相同内容的重传报文已经被注册,该原始报文也会按照重复报文处理,即不处理该原始报文。
下面针对多种情况:重传报文晚于原始报文到达接收端的情况、重传报文早于原始报文到达接收端的情况以及多个相同报文内容的重传报文到达接收端的情况的处理流程进行举例说明。
情况一
先对重传报文晚于原始报文到达接收端的情况的处理流程进行说明。如图11所示,该流程可如下说明。
111、发送端通过第一发送接口T1发送第一报文,第一发送接口T1未在规定时间内接收到第一报文的响应报文,确定需重传第一报文。
情况一中的第一报文为原始报文。
例如第一发送接口T1未在规定时间内接收到第一报文的ACK报文,确定第一报文发送失败。
112、接收端的第一接收接口R1接收到第一报文,接收端确定第一接收接口R1是否接收到其他接收接口的第一注册请求,第一注册请求用于请求对第一重传报文进行处理。如果确定第一接收接口R1未接收到其他接收接口的第一注册请求,接收端在第一接收接口R1处理第一报文。
第一重传报文为第一报文的重传报文。
虽然步骤111中,发送端确定第一报文发送失败,但是有可能第一报文只是并未按时到达接收端,晚到了接收端而已。如果发送端重传第一报文,接收端可能发生报文在不同的接收接口重复处理的情况。因此,第一接收接口R1在接收到一个原始报文,即这里的第一报文时,需要确定其他接收接口中是否存在已经接收到第一重传报文的接收接口,这里通过确定第一接收接口R1是否接收到其他接收接口的第一注册请求确定。
需理解,如果确定第一接收接口R1已接收到其他接收接口中的至少一个接收接口发送的第一注册请求,说明第一报文晚于第一报文的重传报文到达接收端,具体将在情况二中介绍。
113、接收端的第二接收接口R2接收到第一重传报文,控制第二接收接口R2向 其他接收接口(R1和R0)发送第一注册请求,以确定第二接收接口R2是否可处理第一重传报文。
假设对接收端共3个接收接口:第一接收接口R1、第二接收接口R2和第三接收接口R0。当第二接收接口R2接收到第一重传报文时,第二接收接口R2需向第一接收接口R1和第三接收接口R0发送第一注册请求,确定第二接收接口R2是否可以处理第一重传报文。
114、接收端确定第三接收接口R0未处理第一报文时,控制第三接收接口R0向第二接收接口R2反馈注册成功响应,并记录注册状态,该注册状态指示第二接收接口R2可处理第一重传报文。
由于第三接收接口未接收到第一报文,第三接收接口向第二接收接口R2反馈注册成功响应。第三接收接口R0记录的注册状态相当于第三接收接口给了第二接收接口R2可以处理第一重传报文的权限。
115、接收端确定第一接收接口R1正在处理第一报文,控制第一接收接口R0向第二接收接口R2反馈注册失败响应。
也就是说,接收端确定第一接收接口R1在接收到第一报文后,接收到其他接收接口中的第二接收接口R2发送的第一注册请求时,接收端控制第一接收接口R1向第二接收接口R2发送第一注册响应,第一注册响应用于指示第二接收接口R2注册失败。
也就相当于,第一接收接口R1并未给第二接收接口R2处理第一重传报文的权限。
116、接收端的第二接收接口R2根据第一接收接口R1和第三接收接口反馈的注册响应,确定第二接收接口R2不需要处理第一重传报文,并控制第二接收接口R2向第三接收接口R0发送注册清除请求。
也就是说,只要第二接收接口R2接收到任一个其他接收接口反馈的注册失败的响应,第二接收接口R2可识别出第一重传报文不需要在本接收接口处理。
由于之前第三接收接口R0还向第二接收接口R2反馈了注册成功的响应,当第二接收接口R2确定不需要处理第一重传报文时,第二接收接口R2还需向第三接收接口R0发送注册清除请求,以便第三接收接口R0删除记录的注册状态。
117、接收端的第一接收接口R1在成功接收到第一报文后,向发送端的第三发送接口T0发送第二报文,第二报文用于指示第一报文已接收到。
通过接收端接口间的通信,可知在第一报文最先到达接收端的第一接收接口R1时,第一接收接口R1最终为处理第一报文的唯一一个接口。当第一接收接口R1成功接收到第一报文后,确定需返回第一报文被成功接收的结果,即这里的第二报文。在返回第二报文前,接收端与发送端类似的,也可以按照发送端的多个接收接口的负载状态确定接收第二报文的接收接口。假设确定接收第二报文的接口是第三发送接口T0,第二报文中可携带发送端当时发送第一报文的第一发送接口的标识。
118、发送端的第三发送接口T0向第一发送接口T1发送第一报文被成功接收的指示,发送端控制第一发送接口T1向第一接收接口R1发送释放处理资源的消息。
第一接收接口R1会保存有处理第一报文的上下文信息,当第一接收接口R1接收到释放处理资源的消息时,第一接收接口R1可清除第一报文的上下文信息。
由此,当第一报文的重传报文晚于原始报文到达接收端时,本申请提供的注册机 制可以有效识别出重传报文为重复报文,重复的报文将不能在接收端口处理,以避免同一报文在不同的接收接口被重复处理。
情况二
对重传报文早于原始报文到达接收端的情况的处理流程进行说明。如图12所示,该流程可如下说明。
121、发送端通过第一发送接口T1发送第一报文,第一报文携带第一发送接口T1的标识和接收端的第二接收接口R2的标识。
发送端在发送第一报文之前,可以通过控制面信令向接收端发送第二接收接口R2用于接收第一报文的事件。
122、发送端确定在规定时间内未接收到第一报文的ACK报文,发送端通过第一发送端口T1发送第一重传报文,第一重传报文是第一报文的重传报文。
第一重传报文包括第一报文的报文序号,也包括第一发送接口T1的标识和第一接收接口R1的标识。
当发送端通过拥塞信息确定的接收第一报文接收接口为第二接收接口R2,接收第一重传报文的接收接口为第一接收接口R1时,继续执行步骤123。
123、接收端在第一接收接口R1接收到第一重传报文。
即第一重传报文早于第一报文到达接收端。
124、接收端控制第一接收接口R1分别向第二接收接口R2和第三接收接口R0发送第一注册请求,第一注册请求用于请求对第一重传报文进行处理。
为了避免同一个报文在不同的接收接口被重复处理,当第一接收接口R1接收到第一重传报文时,接收端控制第一接收接口R1向其他接收接口中的每个接收接口(R0和R3)发送第一注册请求,第一注册请求用于请求对第一重传报文进行处理。
125、接收端确定第二接收接口R2并未处理第一重传报文的重复报文,控制第二接收接口R2向第一接收接口R1反馈注册成功响应;控制端确定第三接收接口R0也并未处理第一重传报文的重复报文,控制第三接收接口R0向第一接收接口R1反馈注册成功响应。
相当于,第一接收接口R1接收到了接收端其他所有接收接口的注册成功响应,第一接收接口R1得到了处理第一重传报文的权限。作为第二接收接口R2和第三接收接口R0来说,处理第一重传报文的权限已经被注册,第二接收接口R2和第三接收接口R0不再有处理第一重传报文以及第一重传报文的重复报文的权限,第二接收接口R2和第三接收接口R0并记录第一重传报文为已被注册状态。
126、接收端确定第二接收接口R2接收到第一报文时,控制第二接收接口R2丢弃第一报文。
也就是说,虽然步骤122中,发送端确定第一报文发送失败,但是实际上第一报文只是晚于第一重传报文晚到达接收端而已。
如果接收端确定接收端的第二接收接口R2已接收到一个第一注册请求后,相当于第二接收接口R2已经向第一接收接口R1给了处理第一重传报文的权限。当第二接收接口R2又接收到第一报文,接收端控制第二接收接口R2丢弃第一报文。
127、接收端确定第一接收接口R1在处理完第一重传报文时,向发送端的第一发 送接口T1反馈第二报文,第二报文指示第一接收接口R1已经接收到第一重传报文。
128、发送端的第一发送接口T1确定第一重传报文已被成功接收时,发送端控制第一发送接口T1向第一接收接口R1发送释放处理资源的指示。
第一接收接口R1在处理了第一重传报文时,会保存第一重传报文的上下文。当第一接收接口R1在接收到释放处理资源的指示时,可删除第一接收接口R1保存的第一重传报文的上下文。
129、接收端控制第一接收接口R1向第二接收接口R2和第三接收接口R0发送注册清除消息,以指示第二接收接口R2和第三接收接口R0清除第一重传报文的注册状态。
也就相当于,第二接收接口R2和第三接收接口R0将在步骤125中记录的注册状态删除。
由此,本申请中,当同一报文的重传报文先于原始报文到达接收端时,接收端只能处理一个重传报文,后到的原始报文被看作重复报文不被处理,避免同一报文被重复处理。
情况三
对发送端发送同一报文的多个重传报文到达接收端的情况的处理流程进行说明。
在本申请中,如果同一报文的多个重传报文到达接收端的多个接收接口,为了防止多个重传报文在多个接收接口发生冲突,本申请提供一种避免同一报文的多个重传报文冲突的处理机制,该机制满足以下所有条件:
1)在一个接收接口已经获得一个重传报文的基础上,编号小的接收接口可以直接拒绝编号大的接收接口进行该重传报文的注册;
2)在一个接收接口已经获得一个重传报文的基础上,编号大的接收接口必须收集完所有其他接收接口的注册响应后,才能向编号小的接收接口发送注册响应;
3)编号大的接收接口,需将最终获得的有效注册结果(包括注册成功响应),返回给编号小的接收接口。
基于上述机制,如图13所示,该流程可如下说明。
131、发送端确定第一报文发送失败,通过第一发送接口R1向接收端发送第一重传报文,第一重传报文包括第一发送接口R1的标识和第三接收接口R0的标识。
第一重传报文为第一报文的重传报文。
本实施例中是在原始报文,即第一报文发送失败且并未到达接收端的基础上阐述的。
当第一报文发送失败时,发送端可通过接收端的接收接口的拥塞信息确定接收第一重传报文的接收接口为第三接收接口R0时,在第一重传报文中携带第一发送接口R1的标识和第三接收接口R0的标识。
132、发送端确定第一重传报文发送失败,通过第一发送接口R1向接收端发送第二重传报文,第二重传报文包括第一发送接口R1的标识和第一接收接口R1的标识。
如果发送端在规定的时间内还未接收到第一重传报文的ACK报文时,确定第一重传报文发送失败,发送端决定继续在第一发送接口R1发送第二重传报文,第二重传报文可理解为第一报文的第二个重传报文。当发送端通过接收端的接收接口的拥塞信 息确定接收第二重传报文的接收接口为第一接收接口R1时,在第二重传报文中携带第一发送接口R1的标识和第一接收接口R1的标识。
133、接收端控制第三接收接口R0向第一接收接口R1和第二接收接口R2请求对第一重传报文的注册。
假设接收端的接收接口为3个,包括本申请中的R0、R1和R2,当第三接收接口R0在接收到第一重传报文时,为了避免同一报文被重复处理,第三接收接口R0需要向第一接收接口R1和第二接收接口R2请求对第一重传报文的注册,即请求获得对第一重传报文进行处理的权限。
134、接收端控制第一接收接口R1向第三接收接口R0和第二接收接口R2请求对第二重传报文的注册。
与步骤133类似的,当第一接收接口R1在接收到第二重传报文时,为了避免同一报文被重复处理,第一接收接口R1需要向第二接收接口R2和第三接收接口R0请求对第二重传报文的注册,即请求获得对第二重传报文进行处理的权限。
135、接收端确定第二接收接口R2先接收到第一接收接口R1的注册请求时,若第二接收接口R2未接收到第一报文的重传报文,则控制第二接收接口R2向第一接收接口R1返回注册成功响应。
在时间顺序上,假设第二接收接口R2先接收到第一接收接口R1的注册请求,如果第二接收接口R2并未收到第一报文的重传报文,第二接收接口可以向第一接收接口返回处理第二重传报文的权限,并记录第二重传报文已被第一接收接口R1注册的注册状态。
136、接收端确定第二接收接口R2接收到第三接收接口R0的注册请求时,控制第二接收接口R2向第三接收接口R0返回注册失败响应。
由于第二接收接口R2先接收到了第一接收接口R1的注册请求,并且向第一接收接口R1给了处理第二重传报文的权限,相当于第一接收接口R1已经完成了注册。当第二接收接口R2本身并未接收到第一报文的重传报文,且接收到第三接收接口R0针对同一报文,即对第一重传报文的注册请求时,第二接收接口R2向第三接收接口R0返回注册失败响应。该注册失败响应指示第二接收接口R2并未接收到第一报文的重复报文,且第一接收接口R1已完成对第二重传报文的注册,第三接收接口R0并未获得对第一重传报文的处理权限。
137、接收端确定第三接收接口R0在接收到第一接收接口R1的注册请求时,控制第三接收接口R0向第一接收接口R1返回注册失败响应。
对于第三接收接口R0来说,第三接收接口R0接收到了第一重传报文,当第三接收接口R0在接收到第一接收接口R1针对第一报文的第二重传报文的注册请求时,可以控制第三接收接口R0向第一接收接口R1返回注册失败响应。
步骤137的处理可以理解为遵循了防止多个重传报文冲突的处理机制1)。
即,第三接收接口R0已经接收到了第一重传报文,且第三接收接口R0还接收到了编号大于第三接收接口R0的编号的第一接收接口R1的注册请求(编号R0中的0小于编号R1中的1),按照处理机制1)中的说明,第三接收接口R0需拒绝第一接收接口R1的注册请求,因此向第一接收接口R1返回的是注册失败响应。
类似的,假设接收端确定第一接收接口R1在接收到第一报文后,第一接收接口R1还接收到第二接收接口R2发送的第一注册请求,第一注册请求用于请求对第一报文的重复报文进行处理时,若第一接收接口R1的编号小于第二接收接口R2的编号(编号R1中的1小于编号R2中的2),则接收端控制第一接收接口R2拒绝第一注册请求。
138、接收端确定第一接收接口R1在接收到接收端的其他所有接收接口的注册响应后,确定第一接收接口R1需丢弃第二重传报文,并在第一接收接口R1记录第一报文已被注册,控制第一接收接口R1向第三接收接口R0返回第一接收接口R1接收到的注册响应和从第二接收接口R2接收到的注册响应,即图13中的有效注册响应。
通过步骤135和137,第一接收接口R1接收到了接收端的其他所有接收接口R0和R2的响应,包括R0返回的注册失败响应和R2返回的第二接收接口未接收到重传报文的注册成功响应。只要第一接收接口R1接收到其他所有接收接口中的一个接收接口返回的注册失败响应,第一接收接口R1便确定本地接收到的第二重传报文不能被处理,因为已经有同一报文在其他接收接口已经被注册。同时,第一接收接口R1也需要在本地记录第二重传报文已经被注册的注册状态。
这就相当于,第一接收接口R1遵循了上述避免多个重复报文冲突的机制中的2),即第一接收接口R1接收到了第二重传报文(第一报文的重传报文),如果第一接收接口R1的编号不是接收端的所有接收接口的编号中的最小编号,接收端控制第一接收接口R1收集第一接收接口以外的其他所有接收接口(R0和R2)关于第一报文的多个注册响应。
再参考上述避免多个重复报文冲突的机制中的3),当第一接收接口R1在收集到R0和R2的注册响应后,还需要将第二接收接口R2返回的注册成功响应和第一接收接口R1确定的本接收接口的注册失败消息返回给第三接收接口R0。
这就包括,第一接收接口R1向编号小于第一接收接口的编号的接收接口R0发送多个注册响应中的第一注册响应,第一注册响应用于指示第二接收接口R2未接收到重传报文且第一接收接口R1第一报文的重复报文注册成功。
139、接收端确定第三接收接口R0在接收到第一接收接口R1和第二接收接口R2的注册响应后,对接收到的第一重传报文进行处理,并向第一发送接口R1返回处理结果。
当编号最小的第三接收接口R0在收集到其他所有接收接口的注册响应后,第三接收接口R0可知道,第二接收接口R2并未接收到重传报文,且已将重传报文的处理权限给了第一接收接口R1。但是,第三接收接口R0又从第一接收接口R1接收到了第一接收接口R1返回的注册失败消息,因此,第三接收接口R0可知道其余的接收接口(R1和R2)都没有处理第一报文的重传报文的权限。进而,第三接收接口R0就获得了对接收到的第一重传报文的处理权限,并向发送第一重传报文的第一发送接口R1返回处理结果。
140、发送端控制第一发送接口R1向第三接收接口R0发送释放资源消息。
当第一发送接口R1确定第一报文的一个重传报文已经被成功处理后,第一发送接口R1向第三接收接口R0返回释放资源消息,以便第三接收接口R0删除本地的与 第一重传报文关联的上下文。
141、接收端控制第三接收接口R0指示第一接收接口R1和第二接收接口R2释放对第一报文的注册状态。
由于第一接收接口R1记录第二接收接口R2和第三接收接口R0的注册响应,当第一接收接口R1接收到释放注册状态的消息时,第一接收接口R1可删除本地保存的注册响应。第二接收接口R2还记录有第一接收接口R1注册成功的注册状态,以及第三接收接口R0注册失败的注册状态,当第二接收接口R2接收到释放注册状态的消息时,第二接收接口R2可删除本地的注册状态。
由此,当接收端的多个接收接口在协同工作时,如果在多个接收接口接收到了同一报文的多个重传报文需要处理时,本申请可遵循多个重复报文的处理机制,该机制为一种报文的注册机制,如上文中的机制1)、2)和3),当然也可以通过其他的处理机制来避免同一报文在多个接收接口重复处理。
可以理解的是,为了实现上述功能,电子设备包含了执行各个功能相应的硬件和/或软件模块。该电子设备可以是本申请中的发送端或接收端。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图14示出了电子设备140的一种可能的组成示意图,电子设备140可以是本申请中的发送端或接收端。如图14所示,该电子设备140可以包括:处理单元1401、发送单元1402和接收单元1403。可以理解,发送端同时具有发送和接收的功能,接收端也同时具有发送和接收的功能。
因此,处理单元1401可以用于支持电子设备1100执行上述步骤801、步骤102、步骤504、108、112、113、114、115、116、124、125、126、128、133、134、135、136、137、138、139、141等,和/或用于本文所描述的技术的其他过程。
发送单元1402可以用于支持电子设备1100执行上述步骤802、901、101、103、104、105、106、107、109、111、117、118、121、122、127、129、131、132、140等,和/或用于本文所描述的技术的其他过程。
接收单元1403可以用于支持电子设备1100执行上述步骤902、123等,和/或用于本文所描述的技术的其他过程。
需要说明的是,发送单元1402相当于本申请中的多个发送接口,接收单元1403相当于本申请中的多个接收接口。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备140,用于执行上述报文传输方法,因此可以达到与上 述实现方法相同的效果。
在采用集成的单元的情况下,电子设备140可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备140的动作进行控制管理,例如,可以用于支持电子设备140执行上述确定单元1401执行的步骤。存储模块可以用于支持电子设备140存储程序代码和数据等。通信模块,可以用于支持电子设备140与其他设备的通信,例如与接收端或发送端的通信。本申请中,通信模块用于执行上述发送单元1402和接收单元1403执行的步骤。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器,通信模块为多个发送接口和多个接收接口时,发送接口间的通信以及接收接口间的通信方式可以取决于接收接口以及发送接口的数量以及芯片的版图结构。
在一些实施例中,对于接口数量较多的设备,或接口在物理实现上呈现分布式的特征的设备,发送接口之间的通信可以是通过系统总线完成接口间的数据互通,接收接口也可以时通过系统总线完成接口间的数据互通。此时,本实施例所涉及的电子设备可以为具有图15所示结构的通信设备150,接收接口包括图15中的接收接口1、接收接口2和接收接口3。
在一些实施例中,对于接口数量较少的设备,并且接口在物理版图距离较近时,可以通过物理直连完成发送接口和接收接口间的数据互通。此时,本实施例所涉及的电子设备可以为具有图16所示结构的通信设备160,接收接口包括图16中的接收接口1、接收接口2和接收接口3。
本申请实施例还提供一种电子设备,包括一个或多个处理器以及一个或多个存储器,多个发送接口和多个接收接口。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述相关方法步骤实现上述实施例中的报文传输方法。
本申请的实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的报文传输方法。
本申请的实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中电子设备执行的报文传输方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中电子设备执行的报文传输方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请另一实施例提供了一种系统,该系统可以包括上述发送端和接收端,可以用于实现上述报文传输方法。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (27)
- 一种报文传输方法,其特征在于,包括:发送端确定发送第一报文时,根据所述发送端的多个发送接口的负载确定发送所述第一报文的第一发送接口,并根据接收端的多个接收接口的拥塞信息确定接收所述第一报文的第一接收接口;所述发送端通过所述第一发送接口发送第一报文,所述第一报文包括所述第一发送接口的标识和所述第一接收接口的标识。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:所述发送端接收所述接收端发送的所述多个接收接口的拥塞信息,所述多个接收接口包括所述第一接收接口。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述发送端确定发送所述第一报文失败时,根据所述多个接收接口的拥塞信息确定所述接收端接收第一重传报文的第二接收接口,所述第一重传报文为所述第一报文的重复报文;所述发送端通过所述第一发送接口发送所述第一重传报文,所述第一重传报文包括所述第一发送接口的标识、所述第二接收接口的标识以及重复报文的标记。
- 根据权利要求3所述的方法,其特征在于,所述第一重传报文晚于所述第一报文到达所述接收端时,所述方法还包括:所述发送端通过第二发送接口接收所述第一报文的第一响应报文,所述第一响应报文包括所述第一发送接口的标识;所述第二发送接口与所述第一发送接口不同时,所述发送端控制所述第二发送接口向所述第一发送接口发送所述第一响应报文;所述发送端控制所述第一发送接口向所述第一接收接口发送第一通知消息,所述第一通知消息用于指示所述第一接收接口释放所述第一报文的上下文信息。
- 根据权利要求3所述的方法,其特征在于,所述第一报文晚于所述第一重传报文到达所述接收端时,所述方法还包括:所述发送端通过第三发送接口接收所述第一重传报文的第一重传响应报文,所述第一重传响应报文包括所述第一发送接口的标识;所述第三发送接口与所述第一发送接口不同时,所述发送端控制所述第三发送接口向所述第一发送接口发送所述第一重传响应报文;所述发送端控制所述第一发送接口向所述第二接收接口发送第二通知消息,所述第二通知消息用于指示所述第二接收接口释放所述第一重传报文的上下文信息。
- 一种报文传输方法,其特征在于,所述方法包括:接收端向发送端发送多个接收接口的拥塞信息,所述多个接收接口的拥塞信息用于所述发送端确定所述接收端接收第一报文的第一接收接口;所述接收端通过所述第一接收接口接收所述第一报文,所述第一报文包括所述发送端发送所述第一报文的第一发送接口的标识和所述第一接收接口的标识。
- 根据权利要求6所述的方法,其特征在于,所述方法还包括:所述接收端确定从所述第一接收接口接收到所述第一报文时,确定所述多个接收 接口除所述第一接收接口以外的其他接收接口是否已接收到所述第一报文的重复报文;所述接收端确定所述其他接收接口均未接收到所述第一报文的重复报文时,所述接收端控制所述第一接收接口对所述第一报文进行处理;所述接收端确定所述其他接收接口中的至少一个接收接口已接收到所述第一报文的重复报文时,所述接收端控制所述第一接收接口丢弃所述第一报文。
- 根据权利要求7所述的方法,其特征在于,所述第一报文为原始报文时:所述确定所述多个接收接口除所述第一接收接口以外的其他接收接口是否已接收到所述第一报文的重复报文包括:所述接收端确定所述第一接收接口是否接收到所述其他接收接口的第一注册请求,所述第一注册请求用于请求对第一重传报文进行处理,所述第一重传报文为所述第一报文的重传报文;所述接收端确定所述其他接收接口均未接收到所述第一报文的重复报文包括:所述接收端确定所述第一接收接口未接收到所述其他接收接口发送的所述第一注册请求;所述接收端确定所述其他接收接口中的至少一个接收接口已接收到所述第一报文的重复报文包括:所述接收端确定所述第一接收接口已接收到所述其他接收接口中的至少一个接收接口发送的所述第一注册请求。
- 根据权利要求8所述的方法,其特征在于,所述方法还包括:所述接收端确定所述第一接收接口在接收到所述第一报文后,接收到所述其他接收接口中的第二接收接口发送的所述第一注册请求时,所述接收端控制所述第一接收接口向所述第二接收接口发送第一注册响应,所述第一注册响应用于指示所述第二接收接口注册失败。
- 根据权利要求7所述的方法,其特征在于,所述第一报文为重传报文时:所述确定所述多个接收接口除所述第一接收接口以外的其他接收接口是否已接收到所述第一报文的重复报文包括:所述接收端控制所述第一接收接口向所述其他接收接口中的每个接收接口发送第一注册请求,所述第一注册请求用于请求对所述第一报文进行处理;所述接收端确定所述其他接收接口均未接收到所述第一报文的重复报文包括:所述接收端确定所述第一接收接口接收到的所述其他接收接口发送的多个注册响应,所述多个注册响应均指示所述第一接收接口注册成功;所述接收端确定所述其他接收接口中的至少一个接收接口已接收到所述第一报文的重复报文包括:所述接收端确定所述第一接收接口已接收到所述其他接收接口中的一个接收接口发送的指示所述第一接收接口注册失败的注册响应。
- 根据权利要求10所述的方法,其特征在于,所述方法还包括:所述接收端确定所述其他接收接口中的第二接收接口已接收到一个所述第一注册请求后,又接收到所述第一报文的原始报文,所述接收端控制所述第二接收接口丢弃所述第一报文的原始报文。
- 根据权利要求6-11任一项所述的方法,其特征在于,所述第一报文为重传报文时:所述接收端确定所述第一接收接口在接收到所述第一报文后,所述第一接收接口还接收到第二接收接口发送的第一注册请求,所述第一注册请求用于请求对所述第一 报文的重复报文进行处理时,若所述第一接收接口的编号小于所述第二接收接口的编号,则所述接收端控制所述第一接收接口拒绝所述第一注册请求。
- 根据权利要求12所述的方法,其特征在于,所述第一报文为重传报文时:所述接收端确定所述第一接收接口在接收到所述第一报文后,如果所述第一接收接口的编号不是所述接收端的所有接收接口的编号中的最小编号,所述接收端控制所述第一接收接口收集所述第一接收接口以外的其他所有接收接口关于所述第一报文的多个注册响应;所述接收端控制所述第一接收接口向编号小于所述第一接收接口的编号的接收接口发送所述多个注册响应中的第一注册响应,所述第一注册响应用于指示第二接收接口对所述第一报文的重复报文注册成功。
- 一种通信设备,其特征在于,包括:处理器,用于确定发送第一报文时,根据所述发送端的多个发送接口的负载确定发送所述第一报文的第一发送接口,并根据接收端的多个接收接口的拥塞信息确定接收所述第一报文的第一接收接口;收发器,包括所述第一发送接口,所述第一发送接口用于发送第一报文,所述第一报文包括所述第一发送接口的标识和所述第一接收接口的标识。
- 根据权利要求14所述的通信设备,其特征在于,所述收发器还用于:接收所述接收端发送的所述多个接收接口的拥塞信息,所述多个接收接口包括所述第一接收接口。
- 根据权利要求14或15所述的通信设备,其特征在于,所述处理器还用于:确定发送所述第一报文失败时,根据所述多个接收接口的拥塞信息确定所述接收端接收第一重传报文的第二接收接口,所述第一重传报文为所述第一报文的重复报文;所述第一发送接口,还用于发送所述第一重传报文,所述第一重传报文包括所述第一发送接口的标识、所述第二接收接口的标识以及重复报文的标记。
- 根据权利要求16所述的通信设备,其特征在于,所述第一重传报文晚于所述第一报文到达所述接收端时,所述收发器还包括第二发送接口,所述第二发送接口还用于接收所述第一报文的第一响应报文,所述第一响应报文包括所述第一发送接口的标识;所述第二发送接口与所述第一发送接口不同时,所述第二发送接口还用于,向所述第一发送接口发送所述第一响应报文;所述第一发送接口,还用于向所述第一接收接口发送第一通知消息,所述第一通知消息用于指示所述第一接收接口释放所述第一报文的上下文信息。
- 根据权利要求16所述的通信设备,其特征在于,所述第一报文晚于所述第一重传报文到达所述接收端时,所述收发器还包括第三发送接口,所述第三发送接口用于接收所述第一重传报文的第一重传响应报文,所述第一重传响应报文包括所述第一发送接口的标识;所述第三发送接口与所述第一发送接口不同时,所述第三发送接口还用于向所述第一发送接口发送所述第一重传响应报文;所述第一发送接口,还用于向所述第二接收接口发送第二通知消息,所述第二通知消息用于指示所述第二接收接口释放所述第 一重传报文的上下文信息。
- 一种通信设备,其特征在于,包括:收发器,用于向发送端发送多个接收接口的拥塞信息,所述多个接收接口的拥塞信息用于所述发送端确定所述接收端接收第一报文的第一接收接口;所述收发器包括所述第一接收接口,所述第一接收接口用于接收所述第一报文,所述第一报文包括所述发送端发送所述第一报文的第一发送接口的标识和所述第一接收接口的标识。
- 根据权利要求19所述的通信设备,其特征在于,还包括处理器,用于:确定从所述第一接收接口接收到所述第一报文时,确定所述多个接收接口除所述第一接收接口以外的其他接收接口是否已接收到所述第一报文的重复报文;确定所述其他接收接口均未接收到所述第一报文的重复报文时,控制所述第一接收接口对所述第一报文进行处理;确定所述其他接收接口中的至少一个接收接口已接收到所述第一报文的重复报文时,控制所述第一接收接口丢弃所述第一报文。
- 根据权利要求20所述的通信设备,其特征在于,所述第一报文为原始报文时:所述第一接收接口,用于确定是否接收到所述其他接收接口的第一注册请求,所述第一注册请求用于请求对第一重传报文进行处理,所述第一重传报文为所述第一报文的重传报文;确定所述第一接收接口未接收到所述其他接收接口发送的所述第一注册请求,所述第一接收接口,用于对所述第一报文进行处理;或,确定所述第一接收接口已接收到所述其他接收接口中的至少一个接收接口发送的所述第一注册请求,所述第一接收接口,用于丢弃所述第一报文。
- 根据权利要求21所述的通信设备,其特征在于,在接收到所述第一报文后,接收到所述其他接收接口中的第二接收接口发送的所述第一注册请求时,所述第一接收接口,还用于向所述第二接收接口发送第一注册响应,所述第一注册响应用于指示所述第二接收接口注册失败。
- 根据权利要求20所述的通信设备,其特征在于,所述第一报文为重传报文时:所述第一接收接口,用于向所述其他接收接口中的每个接收接口发送第一注册请求,所述第一注册请求用于请求对所述第一报文进行处理;确定所述第一接收接口接收到的所述其他接收接口发送的多个注册响应,所述多个注册响应均指示所述第一接收接口注册成功,对所述第一报文进行处理;确定所述第一接收接口已接收到所述其他接收接口中的一个接收接口发送的指示所述第一接收接口注册失败的注册响应,控制所述第一接收接口丢弃所述第一报文。
- 根据权利要求23所述的通信设备,其特征在于,所述其他接收接口中的第二接收接口已接收到一个所述第一注册请求后,又接收到所述第一报文的原始报文,所述第二接收接口,用于丢弃所述第一报文的原始报文。
- 根据权利要求19-24任一项所述的通信设备,其特征在于,所述第一报文为重传报文时:所述第一接收接口在接收到所述第一报文后,所述第一接收接口还接收到第二接 收接口发送的第一注册请求,所述第一注册请求用于请求对所述第一报文的重复报文进行处理时,若所述第一接收接口的编号小于所述第二接收接口的编号,则所述第一接收接口,用于拒绝所述第一注册请求。
- 根据权利要求25所述的通信设备,其特征在于,所述第一报文为重传报文时:所述第一接收接口在接收到所述第一报文后,如果所述第一接收接口的编号不是所述接收端的所有接收接口的编号中的最小编号,所述第一接收接口,用于收集所述第一接收接口以外的其他所有接收接口关于所述第一报文的多个注册响应;所述第一接收接口还用于向编号小于所述第一接收接口的编号的接收接口发送所述多个注册响应中的第一注册响应,所述第一注册响应用于指示第二接收接口对所述第一报文的重复报文注册成功。
- 一种计算机可读存储介质,其特征在于,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述权利要求1-13中的任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/142211 WO2023122995A1 (zh) | 2021-12-28 | 2021-12-28 | 一种报文传输方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117461289A true CN117461289A (zh) | 2024-01-26 |
Family
ID=86996957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180099252.2A Pending CN117461289A (zh) | 2021-12-28 | 2021-12-28 | 一种报文传输方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117461289A (zh) |
WO (1) | WO2023122995A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957155B (zh) * | 2014-05-06 | 2018-01-23 | 华为技术有限公司 | 报文传输方法、装置及互联接口 |
CN104506434B (zh) * | 2014-12-29 | 2018-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种快速路径应答方法及系统 |
CN108449279B (zh) * | 2016-12-13 | 2021-10-26 | 中国移动通信有限公司研究院 | 拥塞控制方法及装置 |
CN109981471B (zh) * | 2017-12-27 | 2023-04-18 | 华为技术有限公司 | 一种缓解拥塞的方法、设备和系统 |
CN113037640A (zh) * | 2019-12-09 | 2021-06-25 | 华为技术有限公司 | 数据转发方法、数据缓存方法、装置和相关设备 |
-
2021
- 2021-12-28 WO PCT/CN2021/142211 patent/WO2023122995A1/zh active Application Filing
- 2021-12-28 CN CN202180099252.2A patent/CN117461289A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023122995A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220311544A1 (en) | System and method for facilitating efficient packet forwarding in a network interface controller (nic) | |
US12047292B2 (en) | Medical device communication method | |
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
US9338019B2 (en) | Scalable transport method for multicast replication | |
US9479587B2 (en) | Scalable object storage using multicast transport | |
US8190960B1 (en) | Guaranteed inter-process communication | |
US6724762B2 (en) | System and method for implementing multi-pathing data transfers in a system area network | |
US6034962A (en) | Communication method with attaching identifiers to receive request and transmit request | |
EP2216955B1 (en) | Network interface device | |
CN104052574A (zh) | 在网络控制器和交换机之间控制数据的传输的方法和系统 | |
Tian et al. | Accelerating distributed deep learning using multi-path RDMA in data center networks | |
WO2022259452A1 (ja) | 中間装置、通信方法、およびプログラム | |
CN117354253A (zh) | 一种网络拥塞通知方法、装置及存储介质 | |
CN117461289A (zh) | 一种报文传输方法和装置 | |
US8150996B2 (en) | Method and apparatus for handling flow control for a data transfer | |
US20120072520A1 (en) | System and Method for Establishing Reliable Communication in a Connection-Less Environment | |
JPH11249978A (ja) | データ転送方法および装置 | |
CN117294642A (zh) | 适用于rdma网络的多租户在网聚合传输系统及方法 | |
CN118842770A (zh) | 数据传输方法及系统 | |
JPH10164176A (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 |