一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于分组与重传机制的长报文可靠传输方法与流程

2021-11-05 22:36:00 来源:中国专利 TAG:


1.本发明属于信息安全技术领域,尤其是一种基于分组与重传机制的长报文可靠传输方法。


背景技术:

2.电报收发系统是作战指挥网络中的关键组件,其中报文传输服务是电报收发系统的重要组成部分,要求有很好的可扩展通信能力。这主要表现为以下几点:一是数据传输的实时性和可靠性,要求报文传输时间尽量短,且不能出现丢包;二是支持多路径复杂环境下的数据传输,传输信道包括但不限于长波、短波、卫星通信等;三是支持长报文数据传输,能够支持不低于10mb长度的报文实时可靠传输。
3.tcp/ip协议是基于连接的协议,能够保证连接的可靠性,因此成为了网络应用中使用最为广泛的协议。tcp/ip协议设计了三次握手机制,确认机制与超时重传机制,滑动窗口机制,流量控制与拥塞控制机制。但是基于tcp进行网络通信,势必要建立服务器端和客户端,尤其是针对多路径网络传输,增加了纠错和重传机制,影响了数据传输的实时性。udp协议的主要特点是面向无连接、系统开销较少、高速、乱序、丢包较多,不提供数据包分组、组装和不能对数据包进行排序,无法保证数据的可靠传输。另外,udp一次能够传输的字节数是有限的,不能大于65467字节,因此不支持大数据量的数据传输。
4.在基于udp协议用于长报文数据传输方面,目前大多数的方法是采取固定时长发送重传请求的方式,该方法不能实现动态适应网络状况的变化。另外,在考虑传输可靠性问题的同时,容易忽略基于udp协议可靠传输长报文的性能问题。


技术实现要素:

5.本发明的目的在于克服现有技术的不足,提出一种基于分组与重传机制的长报文可靠传输方法,能够实现电报收发系统中网络传输服务组件高效可靠的数据传输。
6.本发明解决其技术问题是采取以下技术方案实现的:
7.一种基于分组与重传机制的长报文可靠传输方法,包括以下步骤:
8.步骤1、在应用层建立用于可靠传输的协议头;
9.步骤2、根据协议头建立乱序重构机制、重传机制;
10.步骤3、基于任务处理建立多线程处理机制;
11.步骤4、通过多线程处理机制、乱序重构机制、重传机制相互配合实现基于分组与重传机制的长报文可靠传输功能。
12.而且,所述步骤1的具体实现方法为:使用协议头长度为17字节,与收发方ip地址和端口号信息一样,并作为udp协议头文件的一部分的协议头进行数据通信。
13.而且,所述协议头包括:16bit长度的报文长度,32bit长度的分组个数,32bit长度的分组序号,16bit长度的时间戳,8bit长度的命令标志,32bit长度的报文标志。
14.而且,所述步骤2中建立乱序重构机制具体实现方法为:采用具有排序能力的链表
数据结构进行序列号存储,将小于或等于链表开头的序列号视为已被接收,同时发送端引入了重传机制,接收端可能多次接收到同一分组报文,如果这时接收到序列号为已被接收的数据包,则这个数据包将会被自动丢掉;如果接收到序列号为未被接收的数据包,则会保存此数据包,并更新链表,同时如果整个报文数据全部被接收完成,则链表中只保存此数据信息最大的序列号,并且重传机制依托回执报进行实现。
15.而且,所述回执报包括:长度为报文协议头长度的报文数据、分组个数、分组序号、时间戳、回执报文和报文标志的格式,同时报文信息总长度为0。
16.而且,所述步骤2中建立重传机制的具体实现方式为:基于端到端数据传输可靠性协议,以传输节点为中心,具有拥塞控制机制,根据不同应用类型对网络吞吐量进行动态的调整控制,通过回执报文确认机制保障源节点到目标节点的端到端数据可靠传输,对于拥塞路径,选择其它路由进行传送,同时,源节点持续发送多个数据包,然后等待回执报文确认帧,只对未收到回执报文所对应的数据包进行重传,并在中间节点引入部分缓冲用来对出错数据包进行重传。
17.而且,所述步骤3的具体事项方法为:将处理任务分发至发送服务线程、接收服务线程和数据处理线程。
18.而且,所述发送服务线程对要发送的报文信息数据根据其长度进行自动分组,对各个分组报文添加长度为17字节报文协议头,填充报文协议头内容并将其发送给接收方,同时把此分组报文保存到发送报文数据库中,发送服务线程包括以下步骤:
19.步骤4.1.1、创建发送线程;
20.步骤4.1.2、将报文装载入发送队列;
21.步骤4.1.3、发送报文数据;
22.步骤4.1.4、判断数据是否丢失,如果数据丢失则重传丢失数据,否则结束。
23.而且,所述接收服务线程在接收到分组报文时,接收服务线程判断是否为普通报文或分组报文,如果为普通报文,则直接提交给数据处理线程进行处理,如果是分组报文,则将其存储至接收报文数据库中进行管理,直到所有分组报文接收完毕再交给数据处理线程进行统一处理,同时,接收服务线程还检查发送报文数据库是否有需要重新发送的分组报文,如果有还要对相应的分组报文进行重新发送,接收服务线程包括以下步骤:
24.步骤4.2.1、接收线程监听端口;
25.步骤4.2.2、判断队列数据是否接收完成,如果没有完成接收,则返回步骤4.2.1,否则进行步骤4.2.3;
26.步骤4.2.3、处理报文数据并结束。
27.而且,所述数据处理线程对接收服务线程提供的分组报文进行数据整理,先去掉分组报文的报文协议头,如果是普通报文,数据处理线程将报文信息数据直接提交给用户应用层;如果是分组报文,则将按照报文协议头的序列号进行数据拷贝组合,组合完毕后,数据处理线程再将报文信息数据提交给用户应用层。
28.本发明的优点和积极效果是:
29.本发明通过在程序的应用层,增加用于可靠传输的协议头,采用智能重传机制、长报文智能分组与重组机制、多线程数据处理机制,解决了udp传输乱序问题,实现电报收发系统中网络传输服务组件高效可靠的数据传输,满足电报收发系统长报文高效可靠地传
输。
附图说明
30.图1为本发明发送服务线程处理流程图;
31.图2为本发明接收服务线程处理流程图。
具体实施方式
32.以下结合附图对本发明做进一步详述。
33.在网络传输模型方面,普通udp/ip协议中共有5个层次,分别为应用层、传输层、网络层、数据链路层和物理层。而利用udp/ip协议进行可靠性和大数据量的网络数据传输,需要在协议的应用层添加相应协议模型,作为分组与重传机制建立的基础。
34.在分组与重传机制方面,基于udp的可靠传输包含了网络通信中的多个层级,即从物理层到程序的应用层。为了继承udp通信的高效性和组播通信机制,本发明在通信协议的应用层引入了可靠传输协议层。通过在分组报文中添加传输协议头,并结合乱序重构、回执报、重传和多线程处理机制,保证分组报文传输性能和可靠性。
35.一种基于分组与重传机制的长报文可靠传输方法,包括以下步骤:
36.步骤1、在应用层建立用于可靠传输的协议头。
37.为了支撑乱序重构、回执报、重传和多线程处理机制,在应用层建立用于可靠传输的协议头的具体实现方法为:如表1所示,使用协议头长度为17字节,与收发方ip地址和端口号信息一样,并作为udp协议头文件的一部分的协议头进行数据通信。每一个数据包通过发送方ip、接收方ip和报文标志唯一确定,上述报文协议头的定义和各项约束提供了基于udp进行可靠性传输的机制和实现的基础。
38.表1
[0039][0040]
建立乱序重构机制的具体实现方法为:乱序重构是建立在缓冲区上的一种序列重排机制,解决接收到的数据序列是不连续的问题。每一组数据都有一个唯一的分组序号,通过分组序号可以知道这组数据应该处在传输数据中哪个位置,因此可以在接收方收到序列消息存入缓冲区之前找到正确的序列存放的位置,直接写入到对应的缓冲区间内,实现对乱序序列的重构操作。为了高效地对数据信息进行重构,本发明采用了具有排序能力的链
表数据结构进行序列号存储,按照小于或等于链表开头的序列号视为已被接收。例如现在链表中保存有{5,7,8,9,11,12},说明小于或等于序列号5和等于序列号7、8、9、11、12的数据包已经被接收到了。为确保数据可靠传输,发送端引入了重传机制,接收端可能多次接收到同一分组报文,如果这时接收到序列号为2的数据包,这个数据包将会被自动丢掉,如果接收到序列号为6的数据包,则会保存此数据包,然后链表变为{9,11,12},如果整个报文数据全部被接收完成,则链表中只保存此数据信息最大的序列号。
[0041]
步骤2、根据协议头建立乱序重构机制、重传机制。
[0042]
建立回执报的具体实现方法为:通过接收回执报文的格式实现,其中回执报文的格式与协议头相同,但与协议头不同的为:报文数据长度为报文协议头的长度;命令标志字段的值表示为回执报文;报文信息总长度为0。
[0043]
建立重传机制的具体实现方式为:基于端到端数据传输可靠性协议,以传输节点为中心,具有拥塞控制机制,根据不同应用类型对网络吞吐量进行动态的调整控制,通过回执报文确认机制保障源节点到目标节点的端到端数据可靠传输,对于拥塞路径,选择其它路由进行传送,同时,源节点持续发送多个数据包,然后等待回执报文确认帧,只对未收到回执报文所对应的数据包进行重传,并在中间节点引入部分缓冲用来对出错数据包进行重传,该方法极大减少了端到端方法中重传技术带来的高通信量和时延,降低了整个网络能耗。
[0044]
步骤3、基于任务处理建立多线程处理机制。
[0045]
建立多线程处理机制的具体实现方法为:将处理任务分发至发送服务线程、接收服务线程和数据处理线程。
[0046]
发送服务线程对要发送的报文信息数据根据其长度进行自动分组,对各个分组报文添加长度为17字节报文协议头,填充报文协议头内容并将其发送给接收方,同时把此分组报文保存到发送报文数据库中,如图1所示,发送服务线程包括以下步骤:
[0047]
步骤4.1.1、创建发送线程;
[0048]
步骤4.1.2、将报文装载入发送队列;
[0049]
步骤4.1.3、发送报文数据;
[0050]
步骤4.1.4、判断数据是否丢失,如果数据丢失则重传丢失数据,否则结束。
[0051]
接收服务线程在接收到分组报文时,接收服务线程判断是否为普通报文或分组报文,如果为普通报文,则直接提交给数据处理线程进行处理,如果是分组报文,则将其存储至接收报文数据库中进行管理,直到所有分组报文接收完毕再交给数据处理线程进行统一处理,同时,接收服务线程还检查发送报文数据库是否有需要重新发送的分组报文,如果有还要对相应的分组报文进行重新发送,如图2所示,接收服务线程包括以下步骤:
[0052]
步骤4.2.1、接收线程监听端口;
[0053]
步骤4.2.2、判断队列数据是否接收完成,如果没有完成接收,则返回步骤4.2.1,否则进行步骤4.2.3;
[0054]
步骤4.2.3、处理报文数据并结束。
[0055]
接收报文存储是指根据不同的分组报文标识建立相对应的报文数据库,然后按照接收报文分组的序列号进行存储,同时对各个分组报文数据进行排序,这样便于报文信息搜索和整理。当报文所有的分组数据被接收之后,系统会通过后台服务线程通知用户的应
用程序整个报文数据已经接收完毕。状态信息包括在报文发送时间、接收报文标识和序列号。
[0056]
数据处理线程对接收服务线程提供的分组报文进行数据整理,先去掉分组报文的报文协议头,如果是普通报文,数据处理线程将报文信息数据直接提交给用户应用层;如果是分组报文,则将按照报文协议头的序列号进行数据拷贝组合,组合完毕后,数据处理线程再将报文信息数据提交给用户应用层。
[0057]
步骤4、通过多线程处理机制、乱序重构机制、重传机制相互配合实现基于分组与重传机制的长报文可靠传输功能。
[0058]
根据本发明一种基于分组与重传机制的长报文可靠传输方法,采用如下方法进行验证:在相同网络环境下,对cpu主频为4.2.3ghz,内存容量为4gb,网卡速率为100mbps的两台计算机上,分别基于tcp协议和本发明设计的报文可靠性传输方法通过网线直接连接的方式进行点对点通信测试。
[0059]
为了能够准确地记录传输数据包所用的时间,尽量减少多任务系统本身和系统时钟记录引起的误差,在测试实验中把100mbps的网卡设置为10mbps全双工模式以增加传输时间,扩大误差量级;同时设置接收端计算机接收到数据要返回到发送端,这样使数据发送的时刻和接收的时刻由同一台计算机记录,从而避免不同计算机系统时钟记录引起的误差,并且同一数据包传输100次后取平均值。测试结果如表2所示。
[0060]
表2
[0061][0062]
从测试结果可以看出,本发明设计的报文可靠传输效率高于tcp协议,能够很好地满足不低于10mb长度的报文高效可靠传输要求。
[0063]
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献