什么是TCP协议?
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP报头
TCP是如何分离和分用的?
- 分离:4位首部有效长度确定报头,剩下的属于有效载荷
- 分用:与UDP相同,通过目的端口号确实交付给上层哪个协议
1.端口号:
- 1.源端口号:接收到的数据从哪个端口来
- 2.目的端口号:要把本报文发到哪个端口
2.序号:
TCP将每个字节的数据都做了编号,即为序列号。
- 1.序号:
- 目的:给先后数据编码
- 作用: 确认数据到达
- 2.确认序号:
- 目的:表示确认已收到的数据,确认已收到的数据并传给源发送方。
- 作用:使数据按序到达
两台主机各自有着自己的序号和确认序号,并且TCP之间是全双工通信的,TCP中的序号,通过确认应答(ACK),超时重传等机制保证TCP的可靠性。
3. 4位首部长度和6位保留位
- 1.4位首部长度:表示该TCP头部由多少个32bit位,最长的长度时60位
- 2.6位保留位:留待以后使用
4.6位标志位:
- 1.URG:紧急指针是否有效,为1,表示提高该报文优先级,将该报文提前发送
- 2.ACK:确认号是否有效,为1,表示有对上一个报文的确认
- 3.PSH:提示接受端应用程序立即从TCP缓冲区把数据读走。当主机接收该报文时,应立即让应用层处理缓冲区数据
- 4.PST:对方要求重新建立连接,带有PST标识的被称为复位报文段。为1时,提示接收方连接出现某种错误,要重新建立连接。
- 5.SYN:请求建立连接,带有SYN的被称为同步报文段,与三次握手有关。
- 6.FIN:通知对方,本端要关闭了,带有FIN的被称为