网络传输协议与无线子系统解析
1. DCCP协议概述
“类TCP”(RFC 4341)将带有选择性确认(SACK,RFC 2018)的基本TCP拥塞控制算法应用于DCCP流。端点至少需要实现一个CCID才能正常工作。DCCP在Linux中的首次实现于2005年发布的Linux内核2.6.14中。下面将详细介绍DCCPv4(IPv4)的实现原理。
2. DCCP头部
每个DCCP数据包都以DCCP头部开始,其最小长度为12字节。DCCP采用可变长度头部,长度范围在12到1020字节之间,具体取决于是否使用短序列号以及使用了哪些TLV数据包选项。DCCP序列号是针对每个数据包递增的(而非像TCP那样按字节递增),并且可以从6字节缩短到3字节。
DCCP头部结构体定义如下:
struct dccp_hdr {
__be16 dccph_sport,
dccph_dport;
__u8 dccph_doff;
#if defined(__LITTLE_ENDIAN_BITFIELD)
__u8 dccph_cscov:4,
dccph_ccval:4;
#elif defined(__BIG_ENDIAN_BITFIELD)
__u8 dccph_ccval:4,
dccph_cscov:4;
#else
#error "Adjust your <asm/byteorder.h> defines"
#e
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



