一、TCP报头
TCP报头:
(1)16位端口号:告诉主机该报文段是来自哪里,以及传给哪个上层协议或者应用程序(目的端口)的。
(2)32位序号:给发送的数据编号。(随机值+偏移量(偏移量决定序号的大小));32位序号能够指定数据传送过去的序号。
作用:A、保证发送的数据有序;B、保证重复的数据报被丢弃。
(3)32位确认号:对A端发送的数据进行确认并回馈的序号。(在32位序中的序号值加1返回回去)。
作用:保证数据能够有效地到达对端。
(4)4位头部长度:因为4位最大能表示15,所以最大为60个字节。
(5)6位标志位:
PSH:通知尽快读取数据;
RST:请求重新建立连接;
SYN:请求建立连接;
FIN:请求断开连接;
ACK:表示确认号是否有效;
URG:表示禁忌之阵是否有效。
(6)16位窗口大小:控制发送数据的速度或流量。
(7)16位校验和:由发送端填充,接收端对TCP报文段在传输过程中是否损坏。检验不仅包括头部部分,还包括数据部分。
(8)16位紧急指针:一个正的偏移量(相当于当前序号的偏移)。紧急指针是发送端向接收端发送紧急数据的方法。
TCP的特点的可靠性就体现在:32位序号,32位确认号16位校验和。面向连接体现在:URG、RST、SYN、FIN、ACK、PSH等六位标志。
二、UDP报头
(1)用户数据报长度:包括报头和数据部分的总长度。
(2)校验和:UDP协议不做错误纠正,发现错误会丢弃掉并发出警告。