TCP和UDP协议是网络通信中的重要协议,TCP与UDP的报头也是面试中的重点,今天我们来对这两个的报头进行详解。
首先来看一下TCP报头,如图所示:
源端口号:标识报文发送主机的进程也是报文的返回地址。
目的端口号:标识接收报文主机的进程。
32位序号:用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。
32位确认号:包含目标端所期望收到源端的下一个序列号。确认号还上次已成功收到数据字节顺序加1。
头部长度:表示TCP头部有多少个32 bit(4字节),没有任何选项字段,头部长度为20字节,最多有60字节。
保留:目前没有使用,全部为0;
标志位字段(U、A、P、R、S、F):
URG:紧急指针有效。
ACK:确认序号有效。
PSH:传送接收方应该尽快将这个报文段交给应用层。而不是在缓冲区中排队。
RST:重建连接即复位
FIN:释放一个连接。
窗口:TCP通过滑动窗口的概念来进行流量控制。
校验和:对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。
紧急指针字段:一般不使用,当URG标志置一时有效,它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
选项和填充:可能包括"窗口扩大因子"、"时间"等选项。
UDP的报头如图所示:
源端口号:标识报文发送主机的进程也是报文的返回地址。
目的端口号:标识接收报文主机的进程
16位大小:表明UDP的头部和数据的总长度字节
校验和:对UDP的头部和数据进行校验。