简述TCP协议
TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
TCP数据包格式:
source port: 源端口号
Destination port: 目的端口号
sequence number: 序列号
Acknowledge number:确认号
标志位:
URG-紧急标志位,不常用
ACK-为1代表是一个确认报文
PSH-不常用,为1表示直接交付给应用进程,不用等待缓冲
RST-为1表示tcp要重新建立
SYN-为1表示建立tcp连接的第一个报文
FIN-为1代表是关闭tcp连接的第一个报文
TCP三次握手过程
从图中,可以看出三次握手的基本步骤是:
第一次握手:客户端向服务器端发送连接请求包SYN,等待服务器回应;
第二次握手:服务器端收到客户端连接请求包SYN后,将客户端的请求包SYN放入到自己的未连接队列,此时服务器需要发送两个包给客户端;
(1)向客户端发送确认自己收到其连接请求的确认包ACK,向客户端表明已知道了其连接请求
(2)向客户端发送连接询问请求包SYN,询问客户端是否已经准备好建立连接,进行数据通信;
即在第二次握手时服务器向客户端发送ACK和SYN包,此时服务器进入SYN-RCVD状态。