TCP是什么?
TCP(Transmission Control Protocol,传输控制协议)是一个面向连接的、可靠的、基于字节流的传输层协议,是面向客户端和服务器端连接的通讯协议。TCP 的三个特点:面向连接、可靠性和面向字节流。
客户端的状态:CLOSED、SYN-SENT、ESTABLISHED
服务器端的状态:CLOSED、LISTEN、SYN-RCVD、ESTABLISHED
客户端处于CLOSED状态时,服务器端处于LISTEN状态。
- SYN(Synchronize Sequence Numbers),同步序列编号;
- ACK(Acknowledge Character),确认字符;
- SEQ(Sequence Number),序列号。
**第一次握手:**客户端给服务器发送一个请求报文,请求报文首部的SYN=1,seq=x(随机数),然后客户端从CLOSED状态进入SYN-SENT状态。
**第二次握手:**服务器收到请求报文段之后,如果同意建立链接,则向客户端发送确认报文段,该报文段的首部的SYN=1,ACK=1,seq=y(随机数)),ack=x+1,然后服务器端进入SYN-RCVD状态。
**第三次握手:**客户端收到服务器端的确认之后,向服务器发送确认报问段,该报文首部的ACK=1,seq=x+1,ack=y+1,然后客户端进入ESTABLISHED状态,服务器收到确认后也进入ESTABLISHED状态。
前两次握手不可以携带数据,第三可带可不带,不带就不消耗序号。