目录
TCP协议的简介:
TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放。
TCP运输连接有以下三个阶段:
- 建立TCP连接,也就是通过三报文握手来建立TCP连接。
- 数据传送,也就是基于已建立的TCP连接进行可靠的数据传输。
- 释放连接,也就是在数据传输结束后,还要通过四报文挥手来释放TCP连接。
TCP 三次握手如图:
第一次握手:
客户端向服务器端发送连接请求包SYN(syn=j),等待服务器回应;
第二次握手:
服务器端收到客户端连接请求包SYN(syn=j)后,将客户端的请求包SYN(syn=j)放入到自己的未连接队列,此时服务器需要发送两个包给客户端;
(1)向客户端发送确认自己收到其连接请求的确认包ACK(ack=j+1),向客户端表明已知道了其连接请求
(2)向客户端发送连接询问请求包SYN(syn=k),询问客户端是否已经准备好建立连接,进行数据通信;
即在第二次握手时服务器向客户端发送ACK(ack=j+1)和SYN(syn=k)包,此时服务器进入SYN_RECV状态。
第三次握手:
客户端收到服务器的ACK(ack=j+1)和SYN(syn=k)包后,知道了服务器同意建立连接,此时需要发送连接已建立的消息给服务器;
向服务器发送连接建立的确认包ACK(ack=k+1),回应服务器的SYN(syn=k)告诉服务器,我们之间已经建立了连接,可以进行数据通信。
ACK(ack=k+1)包发送完毕,服务器收到后,此时服务器与客户端进入ESTABLISHED状态,开始进行数据传送。