基于用户数据报协议(UDP)的可靠网络传输设计

2022-09-11

一、引言

以太网技术已经被广泛应用于人类生活的方方面面。尤其随着信息时代的到来, 当前网络生活成为了人们生活中不可分割的一部分。各节点之间的数据传输是网络系统的根本。由于对网络应用的各种需求千差万别, 故其对数据传输的要求也不尽相同。从而出现了不同的网络传输协议以适应不同的应用需求[1]。TCP/IP协议是一组协议的集合。传输控制协议 (TCP) 和用户数据报协议 (UDP) 属于传输层协议。这一层给数据包加入传输数据并把它传输到下一层中, 这一层负责传送数据, 并且确定数据已被送达并接收。TCP协议是面向连接的, 其不适用于远距离传输, 且由于需要保证传输性能, 其带宽利用率相对较低。UDP使非面向连接的协议, 其通常可较充分利用带宽, 但当网络状况不好时, 有可能影响正常使用[2]。

本文考虑一个点到点网络系统的数据传输协议的设计。该系统使用千兆位以太网, 要求高速传输大量数据、高可靠性高和近距离传输等特点。通过设计特定数据包的结构, 该协议将提供数据校验、错码重传和高速传输等功能。经实际系统验证表明, 该网络协议可靠性好, 具有很好的传输性能, 可满足用户定制网络数据传输需求。

二、点到点网络系统

(一) 网络传输需求

对系统网络进行需求分析, 可知设计方案需要从以下几个方面来满足用户需求: (1) 传输速度。由系统方提出的网络性能要求为。在使用千兆位硬件网卡的情况下, 有效数据传输速率不低于500Mbit/s。并且需要有一定带宽的冗余设计。在使用千兆位以太网卡情况下, 所设计方案要求网络数据传输速率的利用率应该在60%以上, 才能保证有较好的宽容度保证满足系统的需求[3]。 (2) 数据顺序。由于数据是依照时间顺序采集的, 故在传输过程中需要明确对数据的先后顺序进行标识。因此, 需要对数据包进行计数并在数据包内写入标号。 (3) 错误校验。系统要求数据传输过程中的可靠, 故在接收数据时需要对数据的正确性进行校验。需要所设计协议考虑具体使用的校验方法以及校验时机。 (4) 错误重传。对数据校验之后, 若发现数据不正确, 需要A节点重发相应的数据块。考虑具体应用以及实际数据的实时性, 具体实现可考虑两种策略来完成对错误重传功能的支持。B节点需要通知A节点进行数据重发。

三、传输协议设计

考虑实际系统需求, 依据上述功能和性能要求。网络协议设计需要考虑以下一个方面, 包括网络两端节点的交互机制、网络数据包结构、校验方法以及重传机制能[4]。

(一) 交互机制

为了实现系统所需要的网络传输机制, 应确定网络中A节点和B节点间需要交互的机制。首先为了确保两端能够知晓网络的状态, 需要在两端实现网络状态查询的功能。定时查询网络状态, 保持网络连接的可知性。由此, 可设计如下交互方式。如节点间交互主要信息包括4种, 保持网络状态可查的心跳信息、数据信息、命令信息和应答信息。

(二) 重发机制

重发机制由两种方式组成, 一个是由节点A来主动补发。另一种重发机制, 适用于当CRC校验不通过时, 由节点B来主导触发重发。第一种方式中, 当节点A发送完数据包后, 未收到节点B返回的应答帧, 则将对应数据包进行重发。这种情况下, 最多重发10次, 否则认为网络异常。第二种方式中, 当节点B接收到数据包后, 当发现CRC校验不通过, 节点B会设置应答帧中相应参数, 以标识需要重发的数据包号, 并发送给节点A, 然后等待数据重发。

四、程序实现

软件基于QT环境开发, 本协议也使用QT开发环境实现。各项功能运行流程主要包括以下几个部分。

(一) 字段约定

帧类型字段在表2中定义, 字段内未定义的值部分作为保留供后续扩展使用。命令帧由节点B发送至节点A。当节点A接收到命令帧后, 首先解析命令字段, 再向节点B发送应答帧。不同命令码表示了不同的功能需求, 这些功能应该在节点A与B之间进行事先约定好, 且应具有明确性和唯一性。具体命令码字段内的值在表3中定义。命令码字段有32位, 可提供后续命令码的扩展。帧序号字段内的值, 上电初始值约定为0, 发送一次帧序号加1。溢出后, 再从0开始计数。

(二) 主流程

在实际系统中, 网络传输错误是不可避免的。其具体工作流程如图3所示。其中, 包含了节点A和节点B间交互的顺序和时机。其具体功能实现分在两节点内的网络数据收发模块中。在本网络协议设计中, 两节点关系并不是等价的, 故在具体应用中应先确定节点A和节点B。

(三) 系统性能

经实际系统验证, 实际网络传输效率在60%~80%之间浮动, 完全可满足系统预期需求。协议也能够提供可靠的数据传输。

(四) 后续工作

本协议已经有了主体架构, 但在具体实现还未考虑多网络节点的具体需求情况, 以及多节点间传输错误处理流程。具体可能包括: (1) 多节点间的传输流程, 以及防堵塞控制; (2) 多间点间传输错误处理流程。

五、结束语

本文在UDP网络传输协议的基础上, 考虑特定网络连接系统的实现需求, 设计定制了网络数据包。在给定的千兆网的条件下, 分析了该数据传输协议的可行性以及性能。给出了一种基于数据验证机制和网络节点间重传机制的新的网络可靠传输协议。该协议适用于简单的两个节点的网络。经分析和实际系统验证, 该协议能够提供基于UDP的可靠的网络传输协议, 达到了预期设计目的, 满足了实际系统的需求。

摘要:在网络通讯协议中, 传统的传输控制协议 (TCP) 与用户数据报协议 (UDP) 相比往往不能充分利用网络带宽。为了提高网络带宽利用率, 满足实际网络系统的需求, 本文设计了一种基于UDP的可靠网络传输协议。通过设计特定数据包的结构, 该协议提供数据校验、错码重传以及高速传输功能, 非常适用于两个节点的简单网络。经实际系统验证, 该协议能够很好的利用网络带宽, 保证可靠的网络数据传输, 具有较高的实用价值。

关键词:网络传输,UDP,TCP,带宽

参考文献

[1] 谢希文.计算机网络[M].北京:电子工业出版社, 2008.32-36.

[2] 郑爱宇.基于嵌入式接口的可扩展TCP/IP协议栈的设计和实现[J].中北大学学报 (自然科学版) , 2016, 37 (6) :614-619.

[3] 赵立芬.传输层协议SCTP性能优化研究[D].山东大学, 2005.

[4] 岳兆娟, 任勇毛, 李俊.基于UDP的高速网络传输协议研究[J].计算机应用研究, 2013, 30 (10) :2887-2890.

上一篇:探析校长的柔性管理下一篇:亲历体验促进品德内化