您的位置:首页 > 理论基础 > 计算机网络

tcp、udp协议栈

2016-03-19 10:45 483 查看
tcp



struct tcphdr {
__be16    source; //源端口
__be16    dest; //目的端口
__be32    seq; //序列号
__be32    ack_seq; //确认号
#if defined(__LITTLE_ENDIAN_BITFIELD)
__u16     res1:4,
doff:4, //头长度
fin:1,
syn:1,
rst:1,
psh:1,
ack:1,
urg:1,
ece:1,
cwr:1;
#elif defined(__BIG_ENDIAN_BITFIELD)
__u16     doff:4,
res1:4,
cwr:1,
ece:1,
urg:1,
ack:1,
psh:1,
rst:1,
syn:1,
fin:1;
#else
#error    "Adjust your <asm/byteorder.h> defines"
#endif
__be16    window; //窗口大小
__sum16   check; //检验和
__be16    urg_ptr; //紧急指针
};


udp



struct udphdr {
__be16    source;
__be16    dest;
__be16    len; //数据报长度
__sum16   check;
};


MSS (Maximum Segment Size)

最大报文长度。是TCP协议定义的一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度

这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以一般MSS值1460

TCP选项

选项字段是一个选项的列表,可包含多个选项

选项类型0,单字节选项,表示选项列表的结束

选项类型1,单字节选项,无操作,该选项可用在两个选项之间,用于选项结构的对齐

选项类型2,最大报文段长度选项

选项类型3,窗口扩大因子选项

选项类型8,时间戳选项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: