安全可靠SRUDP协议的设计与实现

2013-08-20 01:54范华峰陈桢
网络安全技术与应用 2013年5期
关键词:发送数据序列号应用层

范华峰 陈桢

常州机电职业技术学院 江苏 213164

0 引言

随着网络技术的不断发展,网络应用迅猛增长,高效安全可靠的传递信息被越来越多地关注。目前实现 IP 网络进行数据传输的方法主要有TCP传输控制协议和UDP 用户数据报协议。TCP是面向连接的传输协议,TCP在与对方通信前通过三次握手建立连接,保证了数据的可靠传输, 但是处理复杂, 效率不高, 占用资源较多。UDP 协议是面向非连接的传输协议,在进行通信前不必与对方先建立连接,而是直接向接收方发送数据,因此传输速度快、效率高并能支持海量并发连接。正是由于UDP 协议是无状态的, 使得UDP 协议无需连接管理连接,大大提高了 UDP 协议的传输速度,同时也使得 UDP协议存在安全性和可靠性差的缺点。本文针对 UDP 协议安全性和可靠性不足问题进行了深入的研究,用安全确认技术解决了丢包、失序和重包问题,设计出一种基于 UDP 的安全可靠数据传输协议,称为 Security Reliable UDP(SRUDP), 同时也对该对该协议进行了实现。

1 SRUDP体系结构

RUDP协议就是在TCP/IP协议层UDP层与应用层之间加入了安全确认层(Security ACK),如图1所示,安全确认层保证了的数据的安全可靠的传输,从而形成了一个能安全可靠传输的五层体系结构。

图1 SRUDP体系结构

2 协议的原理

SRUDP是一种安全可靠数据传递协议,因此保证数据安全可靠传递的本质就是要使用一种安全确认技术,下面我们将详细介绍在安全确认层对UDP通讯协议的改进。

2.1 SA层数据报文格式

为了实现数据的安全性和可靠性,因此设计了SA层数据报文如图2所示。

图2 SA层数据报文格式

其中:StartFlag和EndFlag是报文开头和结束标记(4字节),ACK为确认包标志(4字节),数据校验值是由包序列号与 Payload合并后通过某种算法得到的加密串,这里采用MD5算法(16字节),消息类型定义了Payload数据的编码格式(4字节),包序列号由应用层产生要发送数据时序列号自动累加,至表示最大值时置0(4字节),Payload是应用层传输的数据。

2.2 数据发送流程

SRUDP发送数据前无需先建立连接,而是直接将应用层数据放入PAYLOAD域中,同时产生包序列号,对要用户数据和包序列号进行 MD5,计算结果放入数据校验值域中,StartFlag和EndFlag为用户自定义数据开始和结尾标识,消息类型为用户对应用层数据编码说明,默认值为0,ACK域为数据确认域,因此发送数据时该域的值为0。数据通过UDP包发送后将SA层数据报文放入以MD5值为Key的发送哈希表中,等待接收端对该报文的确认。若在指定的时间内接收到该报文的确认,则删除发送哈希表中对应的Key,若未收到确认包,则对发送哈希表的数据进行重复发送,直至达到指定的次数为止。数据发送流程如图3所示,重复发送流程如图4所示,确认包接收处理流程如图5所示。

图3 数据发送流程

图4 重复发送流程

图5 确认包处理流程

2.3 数据接收流程

数据到达接收端后,接收端根据SA的数据报文格式填充各域并对数据进行验证,若 StartFlag和 EndFlag合法且Payload数据域加上包序列号进行MD5值计算后与接收到的数据校验值一致,则说明数据是正确的,向发送端发送确认数据包,确认数据包格式报文中消息类型、包序列号和Payload域为空,其它域与接收到的数据一致。

3 协议的实现

SRUDP协议实现采用java6开发语言,定义了数据通信的基础类:接收和发送队列节点的类型类(BufferNode)、发送哈希表节点类(MapNode)、共享数据类(ShareData)、接收数据回调接口(IntCallBack)、UDP工具类(UdpUtil)、发送线程类(SendProc)、接收线程类(ReceiveProc)和重发线程类(TimingProc),共享数据类是定义和管理和控制收发队列和发送哈希表的控制类,定义如下:

4 结束语

UDP在数据通信方面的效率远远优于TCP数据传输协议,本文对UDP协议的不足进行了协议扩展,引入了SA层,形成了较完善的SRUDP数据传输模型,很好的解决了UDP在数据传输安全性和可靠性方面的缺陷。目前,SRUDP 协议已成功应用在我院上网认证系统中并取得了很好的效果,可以预见安全可靠 UDP协议将在网络通信领域有着很大的实用性和推广价值。

[1]Bova T,Krivoruchka T.Reliable UDP Protocol.draft-ietfsigtranreliable-udp-00.txt.Cisco Systems.1999.

[2]王艳芳,戴永,刘东华,孔华威,曾艳艳.基于UDP的数据可靠传输技术研究与应用[J].计算机工程与应用.2010.

[3]王大羽,陈莹.基于 UDP的协议可靠性传输设计与实现.福建电脑[J].2009.

[4]尹然然.基于UDP 协议的可靠性改进协议[J].电脑知识与技术.2010.

猜你喜欢
发送数据序列号应用层
一种离线电子钱包交易的双向容错控制方法
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
一种车载自组织网络的媒体接入控制协议
recALL
带标记方式的CRDSA++协议性能分析*
基于分级保护的OA系统应用层访问控制研究
使用IPSec安全传输数据
基于主控同步的CAN总线多点实时数据采集技术
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用