TCP/IP协议簇各层数据格式

数据链路层帧格式

以太网帧体格式.png

 其中类型字段标识承载的上层协议类型,常用的有IP、ARP/RARP。


以太网帧上层协议类型.png

 以太网帧最小长度为64字节,最长为1518字节。

网络层报文格式

IPv4

ipv4.png

 IPv4首部长度最小为20字节,必须为4字节的整数倍。
 IHL字段的单位为4字节,因此IHL字段的最小值为5;IHL字段为4bit,因此IPv4首部的最大长度为60字节。
 ToS字段用来表明优先级、延迟、吞吐、可靠性、代价、安全等服务质量。
 TL字段占16bit,因此IP报文最大长度为65535字节(1. 最小长度为20字节;2.目前不存在能够传输这么大的IP报文的数据链路,不过通常IP报文会做分片处理)。
 Identification字段是属于同一的IP报文的分片的共同标识,用于分片重组。
 Flags字段是记录分段的相关信息,第0位为保留位(值为0),第1位表示是否不能进行分片,第2位表示是否还有更多的分片。
 Fragment Offset字段是片偏移,表示分片的首字节在原IP报文数据中的偏移,单位为8字节。
 TTL字段表示生存时间,最多多少跳。
 Protocol上层协议类型。


ipv4协议类型字段.png

IPv6

ipv6.png

ARP

arp.png

 固定28字节。

传输层协议格式

TCP

tcp.png

 源端口号和目的端口号各占2字节。
 seq字段表示数据部分第一个字节的序号。
 ack字段表示期望收到对方发来的下一个报文段数据部分第一个字节的序号。ack字段之前的所有字节必须是已经全部接收到了的。
 表示报文段数据部分距报文段首字节的偏移,实质上表明了TCP首部长度,单位为4字节,因此TCP首部最大长度为60字节(最小为20字节)。
 保留位占6bit,目前全填0。
 控制位占6bit。

bit 名称 作用 备注
0 URG 标识紧急指针是否有效 它告诉系统此报文段中有紧急数据,应尽快发送(相当于高优先级的数据),而不要按原来的排队顺序来传送
1 ACK 标识ack字段是否有效 TCP规定,在连接建立后所有的传送的报文段都必须把ACK置为1
2 PSH 推送 发送方TCP把PSH置为1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快地(即“推送”向前)交付接收应用进程
3 RST 复位 当RST=1时,表名TCP连接中出现了严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。RST置为1还用来拒绝一个非法的报文段或拒绝打开一个连接。
4 SYN 在连接建立时用来同步序号 SYN置为1就表示这是一个连接请求或连接接受报文
5 FIN 用来释放一个连接 当FIN=1时,表明此报文段的发送发的数据已发送完毕,并要求释放运输连接

 Window Size告诉对方,从本TCP报文的ack算起,自己还可以接收多少数据。
 Urgent Pointer指向紧急数据最后一个字节的下一个字节。可以用来计算紧急数据在所有传输数据中的位置,一旦 TCP 知道了你要发送紧急数据,那么在接下来的数据发送中,TCP 会将所有的 TCP 报文段中的 URG 标志置位,哪怕该报文段中不包含紧急数据,这个行为会持续到紧急数据被发送出去为止。及时窗口大小为0,也可以发送。

UDP

udp.png

你可能感兴趣的:(TCP/IP协议簇各层数据格式)