CN112448898A - 基于序列号机制的消息保序方法 - Google Patents
基于序列号机制的消息保序方法 Download PDFInfo
- Publication number
- CN112448898A CN112448898A CN201910799268.9A CN201910799268A CN112448898A CN 112448898 A CN112448898 A CN 112448898A CN 201910799268 A CN201910799268 A CN 201910799268A CN 112448898 A CN112448898 A CN 112448898A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- message
- receiving
- sending
- order
- 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 30
- 230000007246 mechanism Effects 0.000 title claims abstract description 16
- 230000006854 communication Effects 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000004321 preservation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000008531 maintenance mechanism Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于序列号机制的消息保序方法,包括以下步骤:S1、每进行一次异步消息发送操作时,发送端将当前的发送序列号打包入包头,并将发送序列号加1;S2、接收端每成功接收一次异步消息,将当前的接收序列号和包头中携带的发送序列号进行比对;S3、成功处理按序到达的消息请求后,将接收端的消息序列号生成器的值加1,并对乱序到达队列内的元素查找是否有匹配当前接收序列号的元素;S4、如果认定为一次异步消息的乱序到达,将该次接收完成的消息缓冲区加入乱序到达队列,待后续消息到达并更新接收序列号后进行处理。本发明既可以有效保证通信通路的并发,也可以有效解决底层互连架构带来的消息序问题,同时序列号生成及匹配对于性能的影响非常小。
Description
技术领域
本发明涉及一种基于序列号机制的消息保序方法,属于计算机技术领域。
背景技术
基于消息模型的消息编程规范通常会对通信双方的多次通信行为作出保序规定,以两个进程间的两次通信为例,源方发出的第一次消息,必须早于源方发出的第二次消息到达目的方地址空间,如果两次消息的目的地址相同,目的地址的最终内容必须由第二次消息写入。
由于底层消息部件逻辑机制设计或互连网络架构设计的原因,导致底层网络无法保证软件层面的消息按序到达,一方面,网络接口部件面向无连接协议进行设计,无法支撑多个通信对象间的连接关系,也就无法保证数据传输的顺序;另一方面,由于采用多套网络的复合互连网络架构,一对通信对象间存在多条物理通路,造成两点间传输的通信数据可能经由不同通信通路,自然也无法保证消息传输顺序;基于上述原因,如果在底层消息部件及互连架构无法满足编程规范的保序需求的前提下,需要上层通信支撑环境从软件层面保证消息通信的顺序。
基于无序网络结构保证点对点消息序,是通信支撑环境研究的重要内容之一。消息序最简单的实现方式是收发双方采用应答机制,发送端将消息数据发送给接收端并进入阻塞等待,接收端收到数据后,向发送端返回一个应答,接收端收到该应答后再进行后续通信过程。通过上述方式,保证通信双方在一个方向上的消息严格保序。但该技术的缺点也是显而易见的,首先,上述方法只能保证单条物理通道的消息序,多通道网络条件下,依然无法保证多条物理通道的消息序;其次,上述方法严格限制某一时刻通信通路中只能有一个消息处于飞行状态,后续消息必须等待前序消息应答才能发出,导致通信性能急剧下降,从而无法充分发挥网络性能。
发明内容
本发明的目的是提供一种基于序列号机制的消息保序方法,该基于序列号机制的消息保序方法既可以有效保证通信通路的并发,也可以有效解决底层互连架构带来的消息序问题,既可以有效实现用户消息序,同时序列号生成及匹配对于性能的影响非常小。
为达到上述目的,本发明采用的技术方案是:一种基于序列号机制的消息保序方法,包括以下步骤:
S1、面向每个通信通路,发送端配置有一个发送序列号生成器,每进行一次异步消息发送操作时,发送序列号生成器生成一发送序列号,发送端将当前的发送序列号打包入包头,并将发送序列号加1;
S2、面向每个通信通路,接收端配置有一个接收序列号生成器和一个乱序到达队列,接收端每成功接收一次异步消息,将当前的接收序列号和包头中携带的发送序列号进行比对,如果接收序列号与发送序列号相等,则认为是一次异步消息的成功按序到达,并对当前到达的消息请求进行处理;
S3、成功处理按序到达的消息请求后,将接收端的消息序列号生成器的值加1,并对乱序到达队列内的元素进行检索,查找是否有匹配当前接收序列号的元素,如果有,则重复S3中的上述过程,直至无法在乱序到达队列中找到与接收序列号匹配的元素为止;
S4、如果接收序列号小于包头中携带的发送序列号,说明当前消息提前到达接收端,则认定为一次异步消息的乱序到达,将该次接收完成的消息缓冲区加入乱序到达队列,待后续消息到达并更新接收序列号后进行处理。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明基于序列号机制的消息保序方法,其基于通信双方序列号机制,并结合乱序队列维护机制,从软件传输层入手,以较低的时空开销满足了语言文本对于消息序的规定,既有效保证了单条通信通路消息请求的持续投递,又保证了多条通信通路的并发传输;还适用于无序网络环境以及保序网络条件下的多通道互连架构,既可以有效保证通信通路的并发,也可以有效解决多通信通路带来的消息序问题,既可以有效实现用户消息序,同时序列号生成及匹配对于性能的影响非常小。
附图说明
附图1为本发明基于序列号机制的消息保序方法原理示意图;
附图2为本发明基于序列号机制的消息保序方法流程图。
具体实施方式
实施例:一种基于序列号机制的消息保序方法,包括以下步骤:
S1、面向每个通信通路,发送端配置有一个发送序列号生成器,每进行一次异步消息发送操作时,发送序列号生成器生成一发送序列号,发送端将当前的发送序列号打包入包头,并将发送序列号加1;
S2、面向每个通信通路,接收端配置有一个接收序列号生成器和一个乱序到达队列,接收端每成功接收一次异步消息,将当前的接收序列号和包头中携带的发送序列号进行比对,如果接收序列号与发送序列号相等,则认为是一次异步消息的成功按序到达,并对当前到达的消息请求进行处理;
S3、成功处理按序到达的消息请求后,将接收端的消息序列号生成器的值加1,并对乱序到达队列内的元素进行检索,查找是否有匹配,即与当前接收序列号相等的元素,如果有,则重复S3中的上述过程,直至无法在乱序到达队列中找到与接收序列号匹配的元素为止;
S4、如果接收序列号小于包头中携带的发送序列号,说明当前消息提前到达接收端,则认定为一次异步消息的乱序到达,将该次接收完成的消息缓冲区加入乱序到达队列,待后续消息到达并更新接收序列号后进行处理。
实施例进一步解释如下:
以进程对为单位,维持一个发送序列号和一个接收序列号;每进行一次异步消息发送操作,发送端强发送序列号打包入包头,并发送序列号加1;接收端每成功接收一次异步消息,将当前的接收序列号和包中携带的发送序列号进行比对,如果序列号相等,则认为是一次成功地按序到达,将接收序列号加1,成功处理完成后,对乱序队列内的元素进行检索,如果有则重复上述过程;如果接收序列号小于包中携带的发送序列号,则认为是一次乱序到达,将该次接收完成的消息缓冲区加入乱序队列,待后续处理。
采用上述基于序列号机制的消息保序方法时,其基于通信双方序列号机制,并结合乱序队列维护机制,从软件传输层入手,以较低的时空开销满足了语言文本对于消息序的规定,既有效保证了单条通信通路消息请求的持续投递,又保证了多条通信通路的并发传输;还适用于无序网络环境以及保序网络条件下的多通道互连架构,既可以有效保证通信通路的并发,也可以有效解决多通信通路带来的消息序问题,既可以有效实现用户消息序,同时序列号生成及匹配对于性能的影响非常小。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
消息保序:消息保序即消息的先发先到顺序。面向用户的高层通信环境一般都会对消息的序有要求,但底层消息环境不一定能保证消息的序。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于序列号机制的消息保序方法,其特征在于:包括以下步骤:
S1、面向每个通信通路,发送端配置有一个发送序列号生成器,每进行一次异步消息发送操作时,发送序列号生成器生成一发送序列号,发送端将当前的发送序列号打包入包头,并将发送序列号加1;
S2、面向每个通信通路,接收端配置有一个接收序列号生成器和一个乱序到达队列,接收端每成功接收一次异步消息,将当前的接收序列号和包头中携带的发送序列号进行比对,如果接收序列号与发送序列号相等,则认为是一次异步消息的成功按序到达,并对当前到达的消息请求进行处理;
S3、成功处理按序到达的消息请求后,将接收端的消息序列号生成器的值加1,并对乱序到达队列内的元素进行检索,查找是否有匹配当前接收序列号的元素,如果有,则重复S3中的上述过程,直至无法在乱序到达队列中找到与接收序列号匹配的元素为止;
S4、如果接收序列号小于包头中携带的发送序列号,说明当前消息提前到达接收端,则认定为一次异步消息的乱序到达,将该次接收完成的消息缓冲区加入乱序到达队列,待后续消息到达并更新接收序列号后进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910799268.9A CN112448898A (zh) | 2019-08-28 | 2019-08-28 | 基于序列号机制的消息保序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910799268.9A CN112448898A (zh) | 2019-08-28 | 2019-08-28 | 基于序列号机制的消息保序方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112448898A true CN112448898A (zh) | 2021-03-05 |
Family
ID=74741046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910799268.9A Pending CN112448898A (zh) | 2019-08-28 | 2019-08-28 | 基于序列号机制的消息保序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112448898A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810384A (zh) * | 2021-08-25 | 2021-12-17 | 上海瓶钵信息科技有限公司 | 实现一次特性的消息传输方法 |
CN114221922A (zh) * | 2021-12-14 | 2022-03-22 | 重庆奇艺天下科技有限公司 | 消息处理方法、装置、电子设备及可读存储介质 |
CN114465697A (zh) * | 2022-04-11 | 2022-05-10 | 湖南戎腾网络科技有限公司 | 一种基于以太网的可靠通信方法、装置及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008148334A1 (fr) * | 2007-06-05 | 2008-12-11 | Huawei Technologies Co., Ltd. | Procédé, système et appareil pour détecter la réception anormale d'un message |
CN102217258A (zh) * | 2011-04-12 | 2011-10-12 | 华为技术有限公司 | 探测处理方法、数据发送端、数据接收端以及通信系统 |
CN102668516A (zh) * | 2011-12-02 | 2012-09-12 | 华为技术有限公司 | 一种云消息服务中实现消息传递的方法和装置 |
CN102890631A (zh) * | 2012-09-13 | 2013-01-23 | 新浪网技术(中国)有限公司 | 基于持久化消息队列传输消息的方法及消息传输装置 |
CN103825841A (zh) * | 2014-03-19 | 2014-05-28 | 北京众合德信技术有限公司 | 一种以太网报文排序方法及装置 |
CN105610730A (zh) * | 2014-11-19 | 2016-05-25 | 中兴通讯股份有限公司 | Cpu与网络设备之间的消息交互方法及系统 |
CN107454276A (zh) * | 2016-06-01 | 2017-12-08 | 中兴通讯股份有限公司 | 一种用户终端设备及其数据转发方法、及通信系统 |
CN107733813A (zh) * | 2016-08-12 | 2018-02-23 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN109067506A (zh) * | 2018-08-15 | 2018-12-21 | 无锡江南计算技术研究所 | 一种基于多滑动窗口并发的轻量级异步消息实现方法 |
CN109426574A (zh) * | 2017-08-31 | 2019-03-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
CN110022333A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 分布式系统的通信方法及装置 |
-
2019
- 2019-08-28 CN CN201910799268.9A patent/CN112448898A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008148334A1 (fr) * | 2007-06-05 | 2008-12-11 | Huawei Technologies Co., Ltd. | Procédé, système et appareil pour détecter la réception anormale d'un message |
CN102217258A (zh) * | 2011-04-12 | 2011-10-12 | 华为技术有限公司 | 探测处理方法、数据发送端、数据接收端以及通信系统 |
CN102668516A (zh) * | 2011-12-02 | 2012-09-12 | 华为技术有限公司 | 一种云消息服务中实现消息传递的方法和装置 |
CN102890631A (zh) * | 2012-09-13 | 2013-01-23 | 新浪网技术(中国)有限公司 | 基于持久化消息队列传输消息的方法及消息传输装置 |
CN103825841A (zh) * | 2014-03-19 | 2014-05-28 | 北京众合德信技术有限公司 | 一种以太网报文排序方法及装置 |
CN105610730A (zh) * | 2014-11-19 | 2016-05-25 | 中兴通讯股份有限公司 | Cpu与网络设备之间的消息交互方法及系统 |
WO2016078334A1 (zh) * | 2014-11-19 | 2016-05-26 | 中兴通讯股份有限公司 | Cpu与网络设备之间的消息交互方法及系统 |
CN107454276A (zh) * | 2016-06-01 | 2017-12-08 | 中兴通讯股份有限公司 | 一种用户终端设备及其数据转发方法、及通信系统 |
CN107733813A (zh) * | 2016-08-12 | 2018-02-23 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN109426574A (zh) * | 2017-08-31 | 2019-03-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
CN110022333A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 分布式系统的通信方法及装置 |
CN109067506A (zh) * | 2018-08-15 | 2018-12-21 | 无锡江南计算技术研究所 | 一种基于多滑动窗口并发的轻量级异步消息实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810384A (zh) * | 2021-08-25 | 2021-12-17 | 上海瓶钵信息科技有限公司 | 实现一次特性的消息传输方法 |
CN114221922A (zh) * | 2021-12-14 | 2022-03-22 | 重庆奇艺天下科技有限公司 | 消息处理方法、装置、电子设备及可读存储介质 |
CN114465697A (zh) * | 2022-04-11 | 2022-05-10 | 湖南戎腾网络科技有限公司 | 一种基于以太网的可靠通信方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11882025B2 (en) | System and method for facilitating efficient message matching in a network interface controller (NIC) | |
US10038643B1 (en) | Method and system for network micro flow control | |
US9172656B2 (en) | Method and device for managing priority during the transmission of a message | |
KR101502808B1 (ko) | 단일 모뎀 보드 상의 개선된 멀티-셀 지원을 위한 방법 및 시스템 | |
Cidon et al. | Real-time packet switching: A performance analysis | |
US9049218B2 (en) | Stateless fibre channel sequence acceleration for fibre channel traffic over Ethernet | |
JP5828966B2 (ja) | Pcieスイッチング・ネットワークにおけるパケット伝送を実現する方法、装置、システム、及び記憶媒体 | |
CN112448898A (zh) | 基于序列号机制的消息保序方法 | |
US7865633B2 (en) | Multiple context single logic virtual host channel adapter | |
US6760304B2 (en) | Apparatus and method for receive transport protocol termination | |
CN111711566B (zh) | 多路径路由场景下的接收端乱序重排方法 | |
WO2018121535A1 (zh) | 一种负载均衡处理方法及装置 | |
EP1494424B1 (en) | System and method for message-based scalable data transport | |
US7916743B2 (en) | System and method for improved multicast performance | |
JP2003258932A (ja) | 相互に通信する電子装置間の順序化され、パイプライン化されたトランザクションのフローを制御するための方法およびシステム | |
CN109067506A (zh) | 一种基于多滑动窗口并发的轻量级异步消息实现方法 | |
US7233598B2 (en) | System and method for speculatively issuing memory requests while maintaining a specified packet order | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 | |
Thia et al. | A Reduced Operation Protocol Engine (ROPE) for a multiple-layer bypass architecture | |
CN113422741B (zh) | 一种时间触发以太网交换机结构 | |
Ulmer et al. | An Extensible Message Layer for High-Performance Clusters. | |
Thia et al. | Dept. of Systems and Computer Engineering, Carleton University, Ottawa, Canada (**) | |
Songsen et al. | A Design of Message Transferring Based on Mailbox in NetGAP | |
Batz et al. | Spatially-parallel router architectures with priority support for multimedia traffic | |
JPH08137691A (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 |