APP下载

一种具有检错功能的传输协议设计

2021-05-20连宏

现代导航 2021年2期

连 宏

(中国电子科技集团公司第二十研究所,西安 710068)

0 引言

基于非连接的网络传输层协议提供的是不可靠的数据传输服务[1],无法保证接收端接收到的字节流是完整的、无差错的和有序的。此时,就需要设计应用层上的传输协议来保证面向非连接网络传输的可靠性[2]。

针对不可靠的非连接网络传输,本文设计了一种具有检错功能的传输协议。该协议综合运用握手、确认、应答、校验和错误重传等多种手段,能有效检查出传输数据的错误,对错误的数据采用重传确认机制,保证了数据传输的正确性和有效性。

传输协议包括帧格式定义和传输过程定义两部分内容[3]。帧格式描述了协议报文的基本定义,握手过程描述了数据发送和应答的交互过程。下面分别描述本协议的帧格式、握手过程以及具体实现。

1 协议设计

1.1 协议帧格式

帧格式由同步头、起始字、消息类型、报文长度、信息正文内容、保留和校验等九部分组成。报文帧格式如表1所示。

表1中消息类型与信息正文内容定义如表2所示。

表2 消息类型

帧头校验采用校验和形式,即表1报文帧格式中‘2’、‘3’、‘4’、‘5’项各个字节的值进行累加,溢出则丢弃,累加和由#0100H 减后存入第6 项。数据信息校验采用循环冗余校验(Cyclic Redundancy Check,CRC)。CRC 校验的生成多项式的阶数越高,那么误判的概率就越小[4]。本协议使用16 位校验,生成多项式为g(x)=x16+x12+x5+1,可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误[5]。

表1 报文帧格式

(1)表1的报文帧格式分为报头帧和数据帧两种。……

登录APP查看全文