基于UDP的实时数据可靠传输.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

??

?

??

基于UDP的实时数据可靠传输

?

??

?

?

?

?

?

?

?

???

?

?

?

?

?

袁和+张光锋

摘要

为解决分布式链路聚合对网络数据传输快速性和可靠性的需求,提出RUDP(ReliableUDP)模型。该模型通过增加报文保序机制、报文确认和快速重传机制、报文分片重组机制,实现一种基于UDP的可靠传输协议。实验数据表明,该模型提高了數据传输的可靠性和效率。

【关键词】分布式链路聚合可靠传输UDP协议快速重传

1引言

当前,分布式链路聚合技术在网络数据备份链路中应用十分广泛。为了保证分布式聚合口上的各协议计算正确,设备间需要实时同步大量的配置和运行数据,要求网络数据传输高效可靠。目前网络数据传输协议主要是TCP,SCTP和UDP[1]。TCP和SCTP协议是面向连接的可靠传输层协议,保证数据传输的高可靠性。但其控制机制复杂,效率低下。UDP协议是无连接的传输层协议,数据传输效率高,但数据传输可靠性差。

根据标准协议的不足,本文在UDP传输协议的基础上提出RUDP(ReliableUDP)模型。该模型在网络通信的传输层和应用层之间新增一个RUDP层,通过封装可靠传输的协议头,建立可靠传输控制机制来实现实时数据的高效可靠传输。本文论述了RUDP模型原理及实现机制,并实验验证其可行性。

2RUDP模型

UDP是基于消息和非面向连接的传输协议,可以应用在基于消息的通信传输中,但是由于它是无连接的传输协议,缺少复杂的数据传输控制机制,所以不能保证[本文来自于]数据的可靠传输。

根据TCP/IP网络架构体系结构,RUDP模型是在传输层和应用层之间增加可靠传输控制层,将传统模式设计成五层网络架构。可靠传输控制层具有报文保序、报文确认、报文超时重传、报文分片与重组等功能。RUDP具有与TCP类似的工作机制,为保证数据可靠传输,在建立连接时也需要进行三次握手,但RUDP没有使用窗口机制,其保证可靠传输的控制策略比TCP控制策略简单。由于网络层使用的是UDP协议进行数据传输,本模型继承了UDP通信高效性的特点。

3RUDP实现机制

RUDP模型使用多种机制来保证数据传输的可靠性。下面将系统阐述RDUP协议层模型中报文属性定义,报文保序机制、报文确认和快速重传机制、报文分片重组机制,证明本文方法的可行性和有效性

3.1报文属性定义

为满足报文可靠传输,在发送报文发送之前给每个报文封装一个报文头,报文主要字段如表1所示。

3.2报文保序

初始情况下两端是无法感知对端序号的,所以在建立连接时采用三次握手过程进行序号交换。发送方发送第一个报文在报文中设置一个初始标记(INIT),并进入INIT_SEND状态,等待接收方确认。当接收方收到初始标记(INIT)报文之后,记录下发送方的初始序号,回应一个ACK,ACK序列号为发送方初始序列号加1,同时发送一个带初始标记(INIT)报文,报文中携带本端初始序列号,接收方进入INIT_RCVD状态。发送方收到接收方发送的带初始标记(INIT)报文和ACK后,记录发送方携带的初始序列号,进入ESTABLISHED状态,并发送一个ACK,ACK序列号为接收方初始序列号加1。接收方收到发送方的ACK后,进入ESTABLISHED状态。此时,两端设备就可以开始双向传递数据了。

为了保证报文的按序处理,每次发送报文时需要为报文分配一个序列号。本文中采用类似TCP实现方式,将接收端回应给发送端的ACK报文序号作为发送端的下一个报文的序号。当接收端报文接收缓冲区出现报文乱序时需要将乱序报文暂时缓存,待此序号之前的报文收集完整后再上送应用模块处理。

3.3报文确认和超时重传

为了保证报文的可靠性传输,需要实现对报文的确认和超时重传,接收端对每个接收到数据报文(纯ACK报文不需要确认)都需要确认,发送端只有当收到ACK确认消息之后才能够将报文从发送缓冲区中释放。当前TCP协议栈对报文的确认有如下几种方式:

(1)收到报文之后立即进行确认;

(2)当有数据发送时在发送数据时顺便携带ACK;

(3)支持经受延迟ACK,收到报文时不立即进行ACK的确认,当定时器超时之后再进行ACK的确认。为简化处理使用方式1进行报文确认。

发送方在一定时间内未收到ACK报文需要进行报文重传,在TCP协议栈中TCP超时定时器采用的是指数退避的方式,本模型直接采用固定超时的方式进行超时重传,发送方在发送报文成功后立即启动重传定时器(对于已经启动的不需要再启动),当重传定时器超时之前收到了ACK报文并且报文缓冲区中不存在未被确认[本文来自于wWW.zz-news.COM]报文时停止定时器,如果存在尚未确认的报文重新启动定时器,当重传定时器超时之后尚未收到ACK可以将缓冲区中序号最小的报文进行重传。为

文档评论(0)

151****0181 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档