数据报拥塞控制协议( DCCP )是一种面向信息的传输层协议。 DCCP提供双向单播连接的拥塞控制不可靠数据报。DCCP实施可靠的连接建立,拆卸, ECN,拥塞控制,和功能协商。 DCCP是适合传输大量数据的应用程序,其能从及时性和可靠性之间的权衡取舍中受益。
DCCP提供了一种不必在应用程序层执行的拥塞控制机制。它考虑到基于流的语法,就像在TCP中的一样 ,但并不提供可靠的顺序递送。在多种机制中的顺序递送例如在SCTP协议中在DCCP中并不可用。
DCCP在递送数据时对有时间限制的应用程序是有用的,但是如果可靠的顺序递送与拥塞避免相结合可能对接收器来说变得没有用处。这样的应用程序有可能包括流媒体和网络电话。这类应用程序或者满足TCP或使用UDP和实施它们自己的拥塞控制机制(或根本没有拥塞控制)。
一个 DCCP连接包含被确认流量以及数据流量。确认告诉发件人它的数据包已抵达,以及他们是否是ECN标准的。Acks和在使用要求中的拥塞控制机制一样被可靠传输,或许是完全可靠的。
DCCP有一个非常长的( 48位)序列号与一个数据包ID相匹配的选项(而不是像在 TCP中的一个字节的ID ) 。这个长的序列号码的用意是防止“有些盲目的攻击,如DCCP -重置的注入到连接中。
协议结构
数据报拥塞控制协议的题头是:
16 |
32bit |
Source port |
Desitination port |
Data Offset |
CCVal |
CsCov |
Checksum |
Res |
Type |
X |
Reserved |
Sequence Number(high bits) |
Sequence Number(low bits) |
来源地和目的地端口:16位。这些区域的确定连接,类似的在TCP和UDP 中的相应区域。
数据偏移:8位。这个偏移从一开始的数据包的DCCP标题开始到应用数据区域的标题,共32位字符。
CCVal :4位。被HC -发件人CCID使用。
校验范围( CsCov):4位。校验范围决定了这个数据包被校验区域所所涵盖的部分。
校验和:16位。在数据包的DCCP标题(包括选项)的因特网校验和 ,一个网络层虚假标题 ,依赖于校验和,全部,一些,或没有应用数据。
保留的(Res):3位。寄件人必须设置这一区域生成的数据包全部为零,接收器必须忽略它的值。
类型:4位。这一类型的字段指定数据包的类型。下列值被定义:
类型 意义
---- -------
0 DCCP-Request
1 DCCP-Response
2 DCCP-Data
3 DCCP-Ack
4 DCCP-DataAck
5 DCCP-CloseReq
6 DCCP-Close
7 DCCP-Reset
8 DCCP-Sync
9 DCCP-SyncAck
10-15 Reserved
延长的序列号(X):1位。设置为1表明扩展通用头与48位序列和确认号码的使用。
序号:48或24位。标识这个数据包在所有数据包的序列中是独特的,发起这个连接的源头。
每发送一个数据包序列号加1,包括像DCCP-Ack这样没有携带任何应用数据的数据包。 |