在互联网很多岗位的面试中TCP的三次握手、四次挥手都是不可绕过的话题,有很高的热点度.今天我就带大家来看看什么是三次握手、四次挥手.
在讲之前,我们先来了解下TCP协议是什么
1. TCP协议
TCP协议全称: 传输控制协议, 顾名思义, 就是要对数据的传输进行一定的控制.
我们来分析分析每部分的含义和作用
-
源端口号/目的端口号: 表示数据从哪个进程来, 到哪个进程去.
-
32位序号:
-
4位首部长度: 表示该tcp报头有多少个4字节(32个bit)
-
6位保留: 顾名思义, 先保留着, 以防万一
-
6位标志位
URG: 标识紧急指针是否有效
ACK: 标识确认序号是否有效
PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走
RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段
SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段
FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段
- 16位窗口大小:
- 16位检验和: 由发送端填充, 检验形式有CRC校验等. 如果接收端校验不通过, 则认为数据有问题. 此处的校验和不光包含TCP首部, 也包含TCP数据部分.
- 16位紧急指针: 用来标识哪部分数据是紧急数据.
- 选项和数据暂时忽略
好了,说了TCP协议的基本概念,想必你对TCP的组成有了一点印象