数据报拥塞控制协议研究

时间:2022-06-14 02:53:42

数据报拥塞控制协议研究

摘要:数据报拥塞控制协议(DCCP)是一个集拥塞控制和不可靠数据传输为一体的传输协议,2006年3月的最新RFC文件中对该传输协议做了一定修改,文章对DCCP传输协议的背景、主要内容、特点、未来研究方向作了相关介绍。

关键词:DCCP;拥塞控制;流媒体

随着网络技术的发展,大量的实时应用项目广泛的涌现,例如RealAudio,网络电话,在线游戏等,这些应用的特点是延时、抖动敏感,应用开发商尽量采用各种技术来保持流媒体传输的平稳性,目前的解决方案大部分是基于TCP协议(传输控制协议)和UDP(用户数据报协议)协议的。因为TCP协议本身的特性,它不适合应用于流媒体的传输,实时业务传输中UDP协议采用的较多,UDP协议简单实用,但是它无法提供拥塞控制,大量的使用很容易造成网络的堵塞。在比较和分析了各种协议以及目前的应用对协议的要求之后,研究者们提出了一种新的协议,DCCP(Datagram Congestion Control Protocol)协议。DCCP传输协议的是一个提供双工、拥塞控制、单播、不可靠数据报传输的传输协议,它综合了TCP协议和UDP协议的特点。

一、DCCP协议

(一)DCCP协议概述

DCCP协议力争在延时和可靠的顺时传播上取得平衡,它提供了内置拥塞控制,包括为不可靠数据报流提供ECN支持,这就在很大程度上解决了TCP协议因为可靠的顺序传递和拥塞控制容易导致较长的时延无法适应流媒体传输要求,以及UDP协议虽然避免了长的时延,但不具备拥塞控制的功能的问题。为了有更好的可移植性,DCCP在设计的时候使用尽量小的报文头,将尽可能少的基本信息包含在DCCP中,其他的一些功能置于DCCP顶端。

DCCP传输协议还有一个很大的特点就是它提供多种拥塞控制模式,针对不同的网络需要可以采用不同的拥塞控制算法,例如在线游戏要求能够迅速的使用可用的带宽而流媒体则更需要稳定的流量,在DCCP所提供的两种拥塞控制模式中,第一种TCP-like拥塞控制,可以满足在线游戏要求最大限度利用带宽的需要,第二种TFRC(TCP-Friendly Rate Control)拥塞控制模式可以满足流媒体尽量减小发送端速率突然变化的要求。

除此之外,在数据包的类型上,DCCP传输协议也做了很大的扩充,大大增加了其扩展性。

(二)DCCP的数据包类型

DCCP传输协议提供了九种数据包类型:DCCP-Request由客户端发送来建立一个连接,通常位于握手协议的第一部分;DCCP-Response由服务器发送来回答DCCP-Request,通常位于握手协议第二部分;DCCP-Data用以传输数据;DCCP-Ack用以传输纯确认信息;DCCP-DataAck用以传输捎带Ack的数据;DCCP-CloseReq由服务器发送请求客户端关闭连接;DCCP-Close由客户端或服务器发送关闭连接;DCCP-Reset任何情况下重置连接;DCCP-Sync,DCCP-SyncAck在出现大的数据拥塞或丢失后整理顺序号。在最新的RFC档案中,增加了DCCP-Sync,DCCP-SyncAck数据包类型,删去了原有的DCCP-Move的数据包类型。

(三)DCCP报文头格式及含义

DCCP报文头如下所示:

DCCP报文头有两种不同类型,取决于X的值,当X等于1的时候,顺序号有48位,报文头有16字节,当X等于0时,只有低位的24位顺序号被传送,报文头大小12字节。

源端口和目的端口均为16字节,用以确定当前连接;数据偏移为8字节,指明从DCCP报头到应用数据的长度,以32字节为度量,对于数据偏移小于最小报文头字节,或者大于DCCP包本身的数据包,接受端忽略;CCVal为4字节,发送端用它来表明CCID类型;4字节CsCov(CheckSum Converage)位指明了数据包中被校验和覆盖的区域;3位的Reserved(Res)区域在发送端置零,接受端忽略其数值;类型区域为4字节,表明数据包的类型,除了以上列举的九种数据包类型之外,还预留了10-15的编号可以进行扩展;X为1位的扩展顺序号,用以确定顺序号的长度;最后的顺序号为48位或者24位,由X的值来确定。

(四)DCCP的连接方式

每一个DCCP的连接由两个独立的单向连接构成,称为半连接(half-connection),每个半连接由从一端发送的应用数据和另一端发送的确认信息组成。

如下为在一次通讯中DCCP数据包的发送过程:

客户端 服务器

0. [CLOSED][LISTEN] (1)握手

1. DCCP-Request -->

2.

3. DCCP-Ack -->(2) 数据传输

4. DCCP-Data, DCCP-Ack, DCCP-DataAck -->

5.

6. DCCP-Close -->

7.

8. [TIMEWAIT]

具体如下:

1.端发送DCCP-Request报文确定客户端和主机端口,所请求服务类型,需要协商的半连接参数;

2.器发送DCCP-Response报文响应客户端的请求,回答对半连接特性参数的意见;

3.端发送DCCP-Ack报文响应DCCP-Response,确定服务器端第一个报文序号,并可能进行进一步协商;

4.端和服务器进行数据传输,数据报按照不可靠的方式进行发送,数据报不一定被确认,未被确认的数据包不像TCP连接那样被重传;

5.发送完毕,客户端发送DCCP-CloseReq数据报请求关闭连接;

6.户端发送DCCP-Close数据报确认关闭连接;

7.器发送DCCP-Reset数据报,编码“1”关闭当前连接,并清空连接状态;

8.受DCCP-Reset数据报并预留出一定时间来接收剩余的数据。

DCCP传输协议的可靠连接,不可靠数据传输特性,能更好的满足流媒体传输的需要。

(五)DCCP协议的拥塞控制机制

DCCP传输协议设计的一大特点为它的拥塞控制机制,这就解决了UDP协议传输由于缺乏控制可能会造成网络堵塞的问题,DCCP协议提供多种拥塞控制机制,每一种应用程序可以根据自己的需要来选择拥塞控制的模式。

每一种DCCP所支持的拥塞控制机制都拥有一种拥塞控制标号CCID:0-255,当两个终端进行拥塞控制机制协商的时候,它们通过发送CCID的编号来确认拥塞控制的类型。DCCP通过这样的设计保证了如果出现新的拥塞控制机制,它可以很方便的将之归纳到现有的协议中,通过增加新的拥塞控制描述符,来采用新的拥塞控制机制。

目前为止,已经确定的CCID有:CCID:0-1为保留类型;CCID2为TCP-like拥塞控制机制;CCID3为TFRC(TCP-Friendly Rate Control)拥塞控制机制。CCID2采用类TCP的拥塞控制机制,这种控制机制采用经典的AIMD(Additive Increase,Multiplicative Decrease)拥塞控制算法,包括了控制窗口,慢启动,传输超时等等,这样的拥塞控制机制实现了最大限度的于TCP的兼容,可以在网络环境变换的情况下最快的获得相适应的带宽。

CCID3采用TCP友好传输速率控制机制,这是一种基于方程的拥塞控制算法,发送端统计该方向上的半连接的丢包率P和往返传输时延,根据方程调整其发送速率。TFRC算法能提供更平稳的数据流,并且数据流的发送速率能较快地收敛,吞吐率也较高。

二、进一步的研究

从2006年3月由IETF的最新RFC文档中可以看到DCCP协议在过去的基础上做了一定的修改,各种机构和组织也在对其进行进一步的研究和改进。

作为一种新的传输协议的出现,它更多的需要与应用程序进行结合,虽然通过几年的发展,已有许多机构和组织对其各种性能进行仿真和研究,但已有的实现缺少良好的应用接口,不方便其他的应用程序转到DCCP上,其移动性能的扩展,报头体积的减小,都将是需要继续研究的重要内容。

DCCP传输协议作为一种在完善中的传输协议,结合了TCP和UDP的特性,为使用UDP作为传输协议的应用提供了一种替代方案,通过它的研究,传达了流媒体传输协议的清晰框架,无论将来协议的改动如何,TCP的拥塞控制决定了什么是公平的数据发送速率,而UDP的不可靠传输和简单性将是数据传输的目标。

参考文献:

1、郭晓峰,冯太明,周竞扬,陈贵海.DCCP研究及其性能分析[J].计算机科学,2003(10).

2、陈尚兵,何小燕,钱积新,数据报拥塞控制协议(DCCP)研究[J].计算机科学,2003(5).

(作者单位:湖北工业大学计算机学院)

上一篇:环境公益诉讼制度浅析 下一篇:对影响企业国际化的文化差异因素分析