买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于链表的报文协议超时重发方法及系统_天津津航计算技术研究所_202110678597.5 

申请/专利权人:天津津航计算技术研究所

申请日:2021-06-18

公开(公告)日:2024-03-22

公开(公告)号:CN113645008B

主分类号:H04L1/1607

分类号:H04L1/1607;H04L1/1867

优先权:

专利状态码:有效-授权

法律状态:2024.03.22#授权;2021.11.30#实质审查的生效;2021.11.12#公开

摘要:一种基于链表的报文协议超时重发方法,包括:设计报文协议超时重发管理的链表Link;对链表Link的进行初始化操作,将链表Link初始化为空节点链表,头尾指针指向相同的节点;在已初始化的链表Link中插入一个节点,该节点参数为报文重发管理结构变量;要进行报文发送时,使用报文重发管理结构对发送内容进行管理;在报文接收函数中对接收确认报文进行处理;设置并启动查询无效节点定时器,并进行无效节点查询;在查询无效节点定时器中进行重发操作。本发明上述基于链表数据结构,将报文重发的过程信息全部记录到链表中,对于超时重发的管理仅需在定时器中不断查询关联容器中的报文应答状态,对超时未收到应答的报文进行重发,即可高效地完成超时应答管理。

主权项:1.一种基于链表的报文协议超时重发方法,其特征在于步骤如下:1设计报文协议超时重发管理的链表Link;2对链表Link进行初始化操作,将链表Link初始化为空节点链表,头尾指针指向相同的节点;对链表Link的进行初始化操作,具体为:2.1定义链表Link指型变量:包括头节点指针head,普通节点指针node,尾节点指针tail;2.2使用动态内存申请方法申请链表Link结构长度的内存pLink,将申请到的内存首地址赋值到头节点指针head;2.3将头节点指针head的值赋值到尾结点指针tail;2.4链表Link的初始状态是空节点,头尾指针都指向相同的位置pLink;3在已初始化的链表Link中插入一个节点,该节点参数为报文重发管理结构变量,具体为,参数为报文重发管理结构FrmMani类型变量nodeAdd;3.1定义重发管理的链表Link指针变量node1、node2,使用动态内存申请方法申请重发管理的链表Link所占长度的内存,将所申请内存空间的首地址赋值到node1;3.2将函数形参nodeAdd的值赋到node1节点的报文重发管理结构数据成员;3.3判断头指针head是否为空,如果为空,则将node1的值赋值给head,如果不为空,则将头指针赋值给node2;3.4循环判断node2中next元素指向的内容是否为空,如果不为空,把node2中next元素所指向的内容赋值到node2,如果为空,则将node1的值赋值给node2中next元素所指的位置,同时将node1中next元素所指的位置设置为空指针NULL;4在进行报文发送时,使用报文重发管理结构对发送内容进行管理;具体为:4.1定义报文重发管理结构FrmMani变量gMani;4.2调用报文发送函数后,将报文发送的目的地址FrmDst、报文序号FrmSeq、发送报文的数据指针FrmPtr、发送给报文的数据长度FrmLen分别赋值到报文重发管理结构FrmMani变量gMani中对应的成员中;4.3将变量gMani中的重发计数器SndCnt清零,设置需要重发的次数SndTimes,设置是否收到标志IsRecvd设置为否;5在报文接收函数中对接收确认报文进行处理;具体为:5.1提取接收确认报文的报文序号SeqNum;根据报文序号SeqNum查找一个链表节点;5.2定义链表Link指针变量node,将链表的头指针head赋值给node;5.3循环进行判断链表里报文重发管理结构FrmMani里有无报文序号SeqNum,如果查找到报文序号SeqNum,则将应答报文是否收到标志IsRecvd置为是,此时循环结束;5.4如果遍历到尾节点还没有匹配,提示错误;6设置并启动查询无效节点定时器,并进行无效节点查询;7在查询无效节点定时器中进行重发操作。

全文数据:

权利要求:

百度查询: 天津津航计算技术研究所 一种基于链表的报文协议超时重发方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。