CN115580587A - 报文信息处理方法、装置、计算机设备和存储介质 - Google Patents
报文信息处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115580587A CN115580587A CN202211552866.4A CN202211552866A CN115580587A CN 115580587 A CN115580587 A CN 115580587A CN 202211552866 A CN202211552866 A CN 202211552866A CN 115580587 A CN115580587 A CN 115580587A
- Authority
- CN
- China
- Prior art keywords
- message
- information
- work queue
- data packet
- current
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 18
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 22
- 239000000284 extract Substances 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 abstract description 7
- 239000000872 buffer Substances 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种报文信息处理方法、装置、计算机设备和存储介质,属于通信领域,方法包括向接收端发送数据包,并将报文消息、初始消息序号作为新建的链表节点对应存储到链表的工作队列中;接收接收端发来的反馈信息;提取反馈信息中携带的工作队列信息和当前消息序号;当判定反馈信息已被正确接收到时,根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。通过本公开的处理方案,多个工作队列共享内存空间,节省片上内存。
Description
技术领域
本发明涉及通信领域,具体涉及一种报文信息处理方法、装置、计算机设备和存储介质。
背景技术
在通信带宽越来越大的背景下,人们对通信可靠性的要求也在提高,在数据通信业务中,重传成为提升可靠性的重要手段。然而,重传需要发送端维护已发送报文的信息,以便于在收到nak报文时进行重传。可发送端维护已发送报文信息,需要分配一块内存空间用于缓存已发送报文的相关信息。通常是给重传模块分配一块独享内存空间,独享内存空间用于缓存整个链路时延时间内的报文信息。当系统存在多个工作队列时,需要给每个工作队列都单独分配一个独享的内存空间,当系统同时存在的工作队列较多时,给每个工作队列的单独分配内存空间的处理方式对片上内存的影响非常大,且Go-back-N机制对于乱序数据包的处理机制过于激烈,会触发严重的网络开销,给芯片面积和功耗带来巨大挑战。
而且通信技术发展日新月异,通信流量越来越大,人们对芯片性能的要求越来越高,芯片的功能变得越来越强大,同时芯片的高性能也使得芯片片上内存的占用越来越大。芯片的片上内存对芯片总体面积和额功耗有较明显的影响,因此如何在保证芯片性能的前提下,降低片上内存变得非常重要。
发明内容
因此,为了克服上述现有技术的缺点,本发明提供一种多个工作队列共享内存空间,节省片上内存的报文信息处理方法、装置、计算机设备和存储介质。
为了实现上述目的,本发明提供一种报文信息处理方法,包括:向接收端发送报文消息、对应的初始消息序号构成的数据包,并将所述报文消息与所述初始消息序号作为新建的链表节点对应存储到链表的工作队列中;接收所述接收端发来的反馈信息,其中,所述反馈信息携带有所述接收端针对所述报文信息更新后的当前消息序号;提取反馈信息中携带的工作队列信息和当前消息序号;当判定所述反馈信息已被正确接收到时,根据所述工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
在一个实施例中,所述接收端接收发送端发来的所述数据包;判断是否正确接收到所述报文信息;当判定正确接收到所述报文信息时,根据所述初始消息序号更新与所述接收端对应的当前消息序号;当判定未正确接收到所述报文信息时,所述接收端不对当前消息序号更新。
在一个实施例中,所述判断是否正确接收到所述报文信息,包括:所述接收端通过消息序列号判定当前报文是期望的报文时,检测所述数据包的包头是否正确,并在确定所述数据包的包头正确时,写入所述数据包的数据,在确定所述数据包的包头不正确时,以复帧或者以所述数据包为单位丢弃所述数据包。
在一个实施例中,所述确定所述数据包的包头正确,包括:若当前传输的数据结构为复帧结构,则当所述数据包的包头中具有复帧头且包头及复帧头均符合格式要求时,确定所述数据包的包头正确;若当前传输的数据结构为单帧结构,则当所述数据包的包头中具有单帧头且包头及单帧头均符合格式要求时,确定所述数据包的包头正确;若当前传输的数据结构为无帧结构,则当所述数据包的包头符合格式要求时,确定所述数据包的包头正确。
在一个实施例中,当判定所述反馈信息未被正确接收到时,根据所述工作队列信息确定当前工作队列;通过当前消息序号对当前工作队列的链接节点进行遍历,确定所述当前工作队列中需要重传的链接节点并进行重传。
在一个实施例中,所述通过当前消息序号对当前工作队列的链接节点进行遍历,确定所述当前工作队列中需要重传的链接节点并进行重传,包括:当所述当前工作队列的链接节点的初始消息序号和所述当前消息序号对应时,确定该链表节点为需要重传的重传链接节点;利用与所述重传链接节点的节点信息,计算所述重传链接节点的重传偏移量;根据所述重传偏移量对所述重传链接节点重传后续的报文。
一种报文信息处理方法,包括:发送端向接收端发送报文消息以及对应的初始消息序号构成的数据包,并将所述报文消息与所述初始消息序号作为新建的链表节点对应存储到链表的工作队列中;接收端接收所述数据包,并判断是否正确接收到所述数据包,根据判断结果生成对应的反馈信息;发送端接收所述接收端发来的反馈信息,其中,所述反馈信息携带有所述接收端针对所述反馈信息携带有所述接收端针对所述报文信息更新后的当前消息序号;发送端提取反馈信息中携带的工作队列信息和当前消息序号;当判定所述反馈信息已被正确接收到时,发送端根据所述工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
一种报文信息处理装置,所述装置包括:报文发送模块,用于向接收端发送报文消息、对应的初始消息序号构成的数据包,并将所述报文消息与所述初始消息序号作为新建的链表节点对应存储到链表的工作队列中;反馈信息接收模块,用于接收所述接收端发来的反馈信息,其中,所述反馈信息携带有所述接收端针对所述报文信息更新后的当前消息序号;提取模块,用于提取反馈信息中携带的工作队列信息、当前消息序号;判定模块,用于当判定所述反馈信息已被正确接收到时,根据所述工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
与现有技术相比,本发明的优点在于:采用链表对各个工作队列的信息进行缓存,多个工作队列共享内存空间,节省片上内存;当收到反馈信息时,对反馈信息中携带的工作队列信息和当前消息序号进行判断,确定工作队列上传的报文信息后再对工作队列中链接节点进行删除。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明的实施例中报文信息处理方法的流程示意图;
图2是本发明的实施例中报文信息处理装置的结构框图;
图3是本发明的实施例中计算机设备的内部结构图。
具体实施方式
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
如图1所示,本公开实施例提供一种报文信息处理方法,可以应用在终端或服务器上,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式智能设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,发送端和接收端可以是终端或服务器,方法包括以下步骤:
步骤101,向接收端发送报文消息、对应的初始消息序号构成的数据包,并将报文消息与初始消息序号作为新建的链表节点对应存储到链表的工作队列中。
发送端向接收端发送报文消息、以及初始消息序号构成的数据包,并将报文消息与初始消息序号作为新建的链表节点对应存储到链表的工作队列中。具体的,发送端在报文发送时,记录消息所对应的工作队列,msg(报文信息)的msn(初始消息序号)以及当前msg(报文信息)的第一个报文的psn(报文序列号),记录该psn作为base_psn。多个psn可以对应一个msg,一个msg可以由一个数据包或多个数据包进行传送。当发送当前msg的最后一个报文时,将base_psn与msn一同进行挂链(入队)操作。链表中包含多个工作队列,每个工作队列对应一个ID,每个工作队列中将该队列已发送消息的msn、base_psn以及其他必要信息进行缓存。在一个实施例中,发送端将报文消息打包成数据包时,在本申请中的由于数据包的最大长度是固定的,发送端可以将报文消息拆包成多个数据包,每个数据包均携带有在报文消息对应的工作队列。因此,链表中的工作队列可以包含子队列。
步骤102,接收接收端发来的反馈信息,其中,反馈信息携带有接收端针对报文信息更新后的当前消息序号。
反馈信息携带有接收端针对报文信息更新后的当前消息序号。发送端接收接收端发来的反馈信息。反馈信息可以是表示从接收端接收对应于已被正确接收到的各分组的确认(ACK)信息,反馈信息也可以是表示从接收端接收对应于未被正确接收到的各分组的否定确认(NAK)信息。
步骤103,提取反馈信息中携带的工作队列信息和当前消息序号。
发送端提取反馈信息中携带的工作队列信息和当前消息序号。发送端收到接收端返回的ack/nak报文,提取反馈信息中的工作队列ID(工作队列信息)、msn(当前消息序号)、已确认报文或出错报文的psn(报文序列号)。
步骤104,当判定反馈信息已被正确接收到时,根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
当判定反馈信息已被正确接收到时,发送端根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。当判定反馈信息已被正确接收到时,发送端通过工作队列ID对工作队列中的所有链表节点及节点信息(即、挂链信息)进行检索,找到对应的工作队列后,发送端基于msn、psn等信息,遍历出所有初始消息序号不大于当前消息序号的链表节点,对挂链信息进行解链操作,将已经被正确接收的报文信息解出(即、将已被成功接收的链表节点从工作队列中删除,释放片上空间)。发送端根据ID信息,对当前工作队列的链表节点进行遍历,直到msn@链表节点=msn@ack时,遍历结束,同时在遍历过程中,将遍历出的链表节点所挂链的信息进行出队。例如,ack报文的msn为8,系统将链表中msn=7、msn=8、msn=9的链表节点进行遍历,由于ack报文携带的psn=992,大于链表节点中msn=9节点下的base_psn,表示msn=7和msn=8的消息已经被正确接收,系统将链表中msn=7和msn=8的链表节点进行出队操作。
上述方法,采用链表对各个工作队列的信息进行缓存,多个工作队列共享内存空间,节省片上内存;当收到反馈信息时,对反馈信息中携带的工作队列信息和当前消息序号进行判断,确定工作队列上传的报文信息后再对工作队列中链接节点进行删除。而且,相比于给每个工作队列分配一个独享的内存空间相比,通过链表方式对每个工作队列的报文信息进行挂链解链的处理方式,可以有效的利用内存空间,使得内存空间按可以在多个工作队列之间共享,从而有效的降低内存占用。以传输层的重传为例,链路传输时延RTT较大,甚至可以达到数十ms量级,以800G接口速率、RTT时延为20ms来分析,传输的数据量为20*10^(-6)*800*10^9 = 16Mb,若系统同时支持多个工作队列,因每个工作队列最大都可能占满16Mb空间,因此需要给每个工作队列都分配一个16Mb的内存空间。若采用挂链表的处理方式,则只需要分配一个16Mb的共享空间,各个工作队列通过挂链的方式进行占用,对降低内存效果明显。
不仅如此,在有些应用场景中,并不是每个报文都会返回ack,这就导致了发送端对已发送报文进行缓存时需要考虑更大的ack返回时延,即需要更大的内存对已发送报文信息进行缓存,这进一步增大了片上内存的压力。但通过链表操作的方式,系统只会在有报文信息需要挂链时通过抢占的方式去占用空闲内存,在没有报文发送时并不会申请内存。
且链表中可以区分不同的工作队列,通过队列ID信息、PSN、MSN等信息进行挂链,在收到ack报文时,通过ID索引到对应的工作队列,然后通过msn、PSN信息结合,对挂链信息进行搜索,准确的将对应工作队列中已确认报文信息进行解链(出队)操作,不会对其他工作队列进行操作,不会影响其他队列的挂链信息,避免误操作。
在一个实施例中,接收端接收发送端发来的数据包;
判断是否正确接收到报文信息;
当判定正确接收到报文信息时,根据初始消息序号更新与接收端对应的当前消息序号;当判定未正确接收到报文信息时,接收端不对当前消息序号更新。
接收端会维护接收端的msn与psn(msn与psn的初始值课由两个终端协商确定,本发明不做限制),接收端接收到新的报文时,更新接收端的psn,当正确接收到某个msg的最后一个报文时,将接收端的msn+1,即当msn更新时,表示上一个msg的截至,而并非新的msg的开始。只有当报文被正确接收时才会更新psn及msn。msn的这种更新机制保证了接收端在收到一个msn时即可判断哪些消息已完成接收,哪些消息未被正确接收。
在一个实施例中,判断是否正确接收到报文信息,包括:接收端确定数据包的写入地址为缓存的起始地址时,检测数据包的包头是否正确,并在确定数据包的包头正确时,写入数据包的数据,在确定数据包的包头不正确时,以复帧或者以数据包为单位丢弃数据包。
接收端接收到数据包后,确定数据包的写入地址;当确定数据包的写入地址为缓存的起始地址时,接收端检测数据包的包头是否正确,并在确定数据包的包头正确时,写入数据包的数据,否则以复帧或者以数据包为单位丢弃数据包。
由于每个数据包的写入位置都是根据缓存的起始位置中写入的数据包来计算的,所以需要保证该位置的数据包包头的正确性,如果包头不正确,以复帧或者以数据包为单位丢弃数据包,可以使得后续的包头正确的数据包写入到缓存的起始位置中,防止了数据写入错误对后续数据包的影响。
对于每个数据包,都可以根据数据包的psn号、数据包的大小以及缓存的起始地址存储的数据包的psn号,确定该数据包的写入地址,当确定该数据包的写入地址超出缓存范围时,即可确定该数据包应当写入到缓存的起始地址中。例如,假设缓存大小为100个写入单位,每个数据包占用一个写入单位,当前缓存的起始位置中写入的数据包的号为1,则当号为58的数据包应该写入到第58个写入单位中,当接收到第101个数据包时,则确定该数据包应当写入到缓存的起始地址中,若该数据包的包头正确,则将其写入到缓存的起始地址,并更新当前缓存的起始地址中写入的数据包的psn号为101,在接收到后续数据包时,则以psn号为101确定该数据包应该写入的位置。
在一个实施例中,确定数据包的包头正确,具体包括:
若当前传输的数据结构为复帧结构,则当数据包的包头中具有复帧头且包头及复帧头均符合格式要求时,确定数据包的包头正确;
若当前传输的数据结构为单帧结构,则当数据包的包头中具有单帧头且包头及单帧头均符合格式要求时,确定数据包的包头正确;
若当前传输的数据结构为无帧结构,则当数据包的包头符合格式要求时,确定数据包的包头正确。
通常来讲,对于复帧结构,通常一个复帧中包括一个或多个数据包,而对于单帧结构,通常一个数据包中包括一个或者多个单帧。
在以复帧或者以数据包为单位丢弃数据包时,若当前传输的数据结构为复帧结构,则丢弃当前数据包以及当前复帧中的其它数据包,其中,当前复帧中的其它数据包具体为号与当前数据包的号的差值小于一个复帧中包括的数据包个数的数据包;若当前传输的数据结构为单帧结构或者无帧结构,则丢弃当前数据包。
如果所丢弃的复帧中,已经有部分数据包写入到缓存中,则可以不进行擦除,在写入下一帧数据时,已经写入的数据即会被覆盖掉。
以复帧结构为例,假设复帧结构中,每个帧包括16个数据包,第一个数据包为帧头,那么若检测到号为51的数据包需要写入到缓存中的起始位置,则需要确定该数据包中的包头中是否包括复帧头,并且包头格式和复帧头格式是否正确,如果包括复帧头,且包头和复帧头格式均正确,则可以正常将号为51-66的数据包写入到缓存中的前16个写入单位;若检测到数据包中的包头中不包括复帧头,或者包头或复帧头存在错误时,则丢弃号为51-66的数据包。
在一个实施例中,当判定反馈信息未被正确接收到时,根据工作队列信息确定当前工作队列;通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传。
当判定反馈信息未被正确接收到时,发送端根据工作队列信息确定当前工作队列;发送端通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传。具体地,当收到nak报文时,发送端根据ID确定工作队列,然后根据nak报文携带的msn、psn信息将出错报文所在msg对应的信息进行出队操作,并根据出队信息进行重传。例如,当收到nak报文时,nak报文的msn为8,psn为998,系统将链表中msn=7、msn=8、msn=9的链表节点进行遍历,由于nck报文携带的psn=998,大于链表节点中msn=9节点下的base_psn,表示msn=7和msn=8的消息已经被正确接收,系统将链表中msn=7和msn=8的链表节点进行出队操作。同时msn@nak=8表示msn=9的msg没有被正确接收,发送端遍历到msn=9的链表节点时,将psn@nak-base_psn@链表节点,得到offset,以offset为依据,进行重传。msn=9的链表节点暂不出队,直到当前msg被正确接收。
在一个实施例中,通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传,包括:
当当前工作队列的链接节点的初始消息序号和当前消息序号对应时,确定该链表节点为需要重传的重传链接节点;
利用重传链接节点的节点信息,计算重传链接节点的重传偏移量;
根据重传偏移量对重传链接节点重传后续的报文。
当当前工作队列的链接节点的初始消息序号和当前消息序号对应时,发送端确定该链表节点为需要重传的重传链接节点,发送端可以利用接收到的ack/nak信息及发送侧挂链节点信息确定重传链接节点。发送端利用重传链接节点的节点信息,计算重传链接节点的重传偏移量。发送端根据重传偏移量对重传链接节点重传后续的报文。具体地,当msn@链表节点=msn@nak+1时,表示当前链表节点为需要重传的重传链接节点,利用nak报文中携带的psn与重传链接节点的链表节点信息,计算当前msg的重传偏移量,即重传开始的位置(注意,此处以go back to N的重传方式为例,即从出错的报文开始重传,而不是重传整个msg)。重传偏移量为offset = psn-base_psn,即需要重传的报文应在base_psn基础上,偏移offset个pkt。系统根据从出错msg的offset位置开始重传后续的报文,offset之前的报文已被正确接收,不必重传。
在一个实施例中,还提供了一种报文信息处理方法,包括以下步骤:
发送端向接收端发送报文消息、对应的初始消息序号构成的数据包,并将报文消息与初始消息序号作为新建的链表节点对应存储到链表的工作队列中;
接收端接收数据包,并判断是否正确接收到数据包,根据判断结果生成对应的反馈信息;
发送端接收接收端发来的反馈信息,其中,反馈信息携带有接收端针对报文信息更新后的当前消息序号;
发送端提取反馈信息中携带的工作队列信息和当前消息序号;
当判定反馈信息已被正确接收到时,发送端根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
在一个实施例中,如图2所示,提供了一种报文信息处理装置,其特征在于,装置包括报文发送模块201、反馈信息接收模块202、提取模块203和判定模块204。
报文发送模块201,用于向接收端发送报文消息、对应的初始消息序号构成的数据包,并将报文消息与初始消息序号作为新建的链表节点对应存储到链表的工作队列中。
反馈信息接收模块202,用于接收接收端发来的反馈信息,其中,反馈信息携带有接收端针对报文信息更新后的当前消息序号。
提取模块203,用于提取反馈信息中携带的工作队列信息和当前消息序号。
判定模块204,用于当判定反馈信息已被正确接收到时,根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
在一些实施例中,判定模块204用于当判定反馈信息未被正确接收到时,根据工作队列信息确定当前工作队列。
重传模块,用于通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传。
在一些实施例中,重传模块包括:
重传节点确定单元,用于当当前工作队列的链接节点的初始消息序号和当前消息序号对应时,确定该链表节点为需要重传的重传链接节点。
偏移量计算单元,用于利用重传链接节点的节点信息,计算重传链接节点的重传偏移量。
重传单元,用于根据重传偏移量对重传链接节点重传后续的报文。
关于报文信息处理装置的具体限定可以参见上文中对于报文信息处理方法的限定,在此不再赘述。上述报文信息处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据包、链表信息等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种报文信息处理方法。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:向接收端发送报文消息、对应的初始消息序号构成的数据包,并将报文消息与初始消息序号作为新建的链表节点对应存储到链表的工作队列中;接收接收端发来的反馈信息,其中,反馈信息携带有接收端针对报文信息更新后的当前消息序号;提取反馈信息中携带的工作队列信息和当前消息序号;当判定反馈信息已被正确接收到时,根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
在一个实施例中,处理器执行计算机程序时实现的接收端接收发送端发来的数据包;判断是否正确接收到报文信息;当判定正确接收到报文信息时,根据初始消息序号更新与接收端对应的当前消息序号;当判定未正确接收到报文信息时,接收端不对当前消息序号更新。
在一个实施例中,处理器执行计算机程序时实现的判断是否正确接收到报文信息,包括:接收端确定数据包的写入地址为缓存的起始地址时,检测数据包的包头是否正确,并在确定数据包的包头正确时,写入数据包的数据,在确定数据包的包头不正确时,以复帧或者以数据包为单位丢弃数据包。
在一个实施例中,处理器执行计算机程序时实现的确定数据包的包头正确,包括:若当前传输的数据结构为复帧结构,则当数据包的包头中具有复帧头且包头及复帧头均符合格式要求时,确定数据包的包头正确;若当前传输的数据结构为单帧结构,则当数据包的包头中具有单帧头且包头及单帧头均符合格式要求时,确定数据包的包头正确;若当前传输的数据结构为无帧结构,则当数据包的包头符合格式要求时,确定数据包的包头正确。
在一个实施例中,处理器执行计算机程序时实现的当判定反馈信息未被正确接收到时,根据工作队列信息确定当前工作队列;通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传。
在一个实施例中,处理器执行计算机程序时实现的通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传,包括:当当前工作队列的链接节点的初始消息序号和当前消息序号对应时,确定该链表节点为需要重传的重传链接节点;利用重传链接节点的节点信息,计算重传链接节点的重传偏移量;根据重传偏移量对重传链接节点重传后续的报文。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:向接收端发送报文消息、对应的初始消息序号构成的数据包,并将报文消息与初始消息序号作为新建的链表节点对应存储到链表的工作队列中;接收接收端发来的反馈信息,其中,反馈信息携带有接收端针对报文信息更新后的当前消息序号;提取反馈信息中携带的工作队列信息和当前消息序号;当判定反馈信息已被正确接收到时,根据工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
在一个实施例中,计算机程序被处理器执行时实现的接收端接收发送端发来的数据包;判断是否正确接收到报文信息;当判定正确接收到报文信息时,根据初始消息序号更新与接收端对应的当前消息序号;当判定未正确接收到报文信息时,接收端不对当前消息序号更新。
在一个实施例中,计算机程序被处理器执行时实现的判断是否正确接收到报文信息,包括:接收端确定数据包的写入地址为缓存的起始地址时,检测数据包的包头是否正确,并在确定数据包的包头正确时,写入数据包的数据,在确定数据包的包头不正确时,以复帧或者以数据包为单位丢弃数据包。
在一个实施例中,计算机程序被处理器执行时实现的确定数据包的包头正确,包括:若当前传输的数据结构为复帧结构,则当数据包的包头中具有复帧头且包头及复帧头均符合格式要求时,确定数据包的包头正确;若当前传输的数据结构为单帧结构,则当数据包的包头中具有单帧头且包头及单帧头均符合格式要求时,确定数据包的包头正确;若当前传输的数据结构为无帧结构,则当数据包的包头符合格式要求时,确定数据包的包头正确。
在一个实施例中,计算机程序被处理器执行时实现的当判定反馈信息未被正确接收到时,根据工作队列信息确定当前工作队列;通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传。
在一个实施例中,计算机程序被处理器执行时实现的通过当前消息序号对当前工作队列的链接节点进行遍历,确定当前工作队列中需要重传的链接节点并进行重传,包括:当当前工作队列的链接节点的初始消息序号和当前消息序号对应时,确定该链表节点为需要重传的重传链接节点;利用重传链接节点的节点信息,计算重传链接节点的重传偏移量;根据重传偏移量对重传链接节点重传后续的报文。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种报文信息处理方法,其特征在于,包括:
向接收端发送报文消息、对应的初始消息序号构成的数据包,并将所述报文消息与所述初始消息序号作为新建的链表节点对应存储到链表的工作队列中;
接收所述接收端发来的反馈信息,其中,所述反馈信息携带有所述接收端针对所述报文信息更新后的当前消息序号;
提取反馈信息中携带的工作队列信息和当前消息序号;
当判定所述反馈信息已被正确接收到时,根据所述工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
2.根据权利要求1所述的方法,其特征在于,所述接收端接收发送端发来的所述数据包;
判断是否正确接收到所述报文信息;
当判定正确接收到所述报文信息时,根据所述初始消息序号更新与所述接收端对应的当前消息序号;当判定未正确接收到所述报文信息时,所述接收端不对当前消息序号更新。
3.根据权利要求2所述的方法,其特征在于,所述判断是否正确接收到所述报文信息,包括:
所述接收端通过消息序列号判定当前报文是期望的报文时,检测所述数据包的包头是否正确,并在确定所述数据包的包头正确时,写入所述数据包的数据,在确定所述数据包的包头不正确时,以复帧或者以所述数据包为单位丢弃所述数据包。
4.根据权利要求3所述的方法,其特征在于,所述确定所述数据包的包头正确,包括:
若当前传输的数据结构为复帧结构,则当所述数据包的包头中具有复帧头且包头及复帧头均符合格式要求时,确定所述数据包的包头正确;
若当前传输的数据结构为单帧结构,则当所述数据包的包头中具有单帧头且包头及单帧头均符合格式要求时,确定所述数据包的包头正确;
若当前传输的数据结构为无帧结构,则当所述数据包的包头符合格式要求时,确定所述数据包的包头正确。
5.根据权利要求1所述的方法,其特征在于,当判定所述反馈信息未被正确接收到时,根据所述工作队列信息确定当前工作队列;
通过当前消息序号对当前工作队列的链接节点进行遍历,确定所述当前工作队列中需要重传的链接节点并进行重传。
6.根据权利要求5所述的方法,其特征在于,所述通过当前消息序号对当前工作队列的链接节点进行遍历,确定所述当前工作队列中需要重传的链接节点并进行重传,包括:
当所述当前工作队列的链接节点的初始消息序号和所述当前消息序号对应时,确定该链表节点为需要重传的重传链接节点;
利用所述重传链接节点的节点信息,计算所述重传链接节点的重传偏移量;
根据所述重传偏移量对所述重传链接节点重传后续的报文。
7.一种报文信息处理方法,其特征在于,包括:
发送端向接收端发送报文消息以及对应的初始消息序号构成的数据包,并将所述报文消息与所述初始消息序号作为新建的链表节点对应存储到链表的工作队列中;
接收端接收所述数据包,并判断是否正确接收到所述数据包,根据判断结果生成对应的反馈信息;
发送端接收所述接收端发来的反馈信息,其中,所述反馈信息携带有所述接收端针对所述报文信息更新后的当前消息序号;
发送端提取反馈信息中携带的工作队列信息和当前消息序号;
当判定所述反馈信息已被正确接收到时,发送端根据所述工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
8.一种报文信息处理装置,其特征在于,所述装置包括:
报文发送模块,用于向接收端发送报文消息、对应的初始消息序号构成的数据包,并将所述报文消息与所述初始消息序号作为新建的链表节点对应存储到链表的工作队列中;
反馈信息接收模块,用于接收所述接收端发来的反馈信息,其中,所述反馈信息携带有所述接收端针对所述报文信息更新后的当前消息序号;
提取模块,用于提取反馈信息中携带的工作队列信息和当前消息序号;
判定模块,用于当判定所述反馈信息已被正确接收到时,根据所述工作队列信息,对存储的链表节点进行遍历,遍历出所有初始消息序号不大于当前消息序号的链表节点,并将遍历出的所有链接节点从工作队列中删除。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211552866.4A CN115580587B (zh) | 2022-12-06 | 2022-12-06 | 报文信息处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211552866.4A CN115580587B (zh) | 2022-12-06 | 2022-12-06 | 报文信息处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115580587A true CN115580587A (zh) | 2023-01-06 |
CN115580587B CN115580587B (zh) | 2023-03-14 |
Family
ID=84590128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211552866.4A Active CN115580587B (zh) | 2022-12-06 | 2022-12-06 | 报文信息处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115580587B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951706A (en) * | 1997-06-30 | 1999-09-14 | International Business Machines Corporation | Method of independent simultaneous queueing of message descriptors |
US7346707B1 (en) * | 2002-01-16 | 2008-03-18 | Advanced Micro Devices, Inc. | Arrangement in an infiniband channel adapter for sharing memory space for work queue entries using multiply-linked lists |
CN110784289A (zh) * | 2019-10-31 | 2020-02-11 | 海光信息技术有限公司 | 一种数据重传方法以及数据重传装置 |
CN110958331A (zh) * | 2019-12-27 | 2020-04-03 | 视联动力信息技术股份有限公司 | 一种数据传输方法及终端 |
CN114371945A (zh) * | 2022-01-10 | 2022-04-19 | 中国民航信息网络股份有限公司 | 报文的传输方法、装置、电子设备及计算机存储介质 |
-
2022
- 2022-12-06 CN CN202211552866.4A patent/CN115580587B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951706A (en) * | 1997-06-30 | 1999-09-14 | International Business Machines Corporation | Method of independent simultaneous queueing of message descriptors |
US7346707B1 (en) * | 2002-01-16 | 2008-03-18 | Advanced Micro Devices, Inc. | Arrangement in an infiniband channel adapter for sharing memory space for work queue entries using multiply-linked lists |
CN110784289A (zh) * | 2019-10-31 | 2020-02-11 | 海光信息技术有限公司 | 一种数据重传方法以及数据重传装置 |
CN110958331A (zh) * | 2019-12-27 | 2020-04-03 | 视联动力信息技术股份有限公司 | 一种数据传输方法及终端 |
CN114371945A (zh) * | 2022-01-10 | 2022-04-19 | 中国民航信息网络股份有限公司 | 报文的传输方法、装置、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115580587B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327402B (zh) | 重传数据的方法、装置和系统 | |
CN111786748B (zh) | 数据重传方法和系统、网卡、装置、服务器和存储介质 | |
CN104484295B (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
CN109936510A (zh) | 多路径rdma传输 | |
CN107147481A (zh) | 丢包重传方法、装置及电子设备 | |
CN110120980B (zh) | 非稳定链路的可靠文件传输方法、计算机设备及存储介质 | |
CN114244780B (zh) | 一种数据传输方法、数据传输装置和相关设备 | |
EP3582425B1 (en) | Technique for storing softbits | |
US20220150951A1 (en) | Communication method and communication apparatus | |
US20230261795A1 (en) | Method for Retransmitting Data and Apparatus | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及系统 | |
CN115276920A (zh) | 音频数据处理方法、装置、电子设备及存储介质 | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
CN115580587B (zh) | 报文信息处理方法、装置、计算机设备和存储介质 | |
CN111654505B (zh) | Udp数据包可靠传输方法、系统、计算机设备及存储介质 | |
CN114422425B (zh) | 多链路聚合的数据传输方法、系统、装置及存储介质 | |
CN115913473A (zh) | 一种数据选择性重传方法及其系统、存储介质、电子设备 | |
CN102821043A (zh) | 一种控制方法和装置 | |
CN103166747A (zh) | 一种harq合并的方法及装置 | |
CN113572582B (zh) | 数据发送、重传控制方法及系统、存储介质及电子设备 | |
US20030035407A1 (en) | Packet retransmission in wireless packet data networks | |
CN111669431B (zh) | 消息传输方法、装置、计算机设备和存储介质 | |
CN114490459A (zh) | 数据传输方法、装置、设备、接收机和存储介质 | |
US7636313B2 (en) | Use of internal buffer to reduce acknowledgement related delays in acknowledgement-based reliable communication protocols | |
CN113542388A (zh) | 数据可靠传输方法、装置、计算机设备和存储介质 |
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 |