目录
1.认识TCP协议
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义
- 面向连接:数据传输之前,客户端要和服务器进行连接。类似于打电话要先拨通号码进行接听
- 可靠的:据传输是有序的 要对数据进行校验
TCP的几个标志位:
- SYN: 表示建立连接
- FIN: 表示关闭连接
- ACK: 表示响应
- PSH: 表示有数据传输
- RST: 表示连接重置
2.TCP的三次握手
三次握手是一个形象的比喻,是TCP在进行连接的时候,客户端和服务器总共发的三次包,其主要目的就是确保客户端和服务器能进行正常的连接
握手前:
client的状态: CLOSE,server的状态:LISTEN
第一次握手:client将标志位SYN设置为1,随机产生一个值 seq = x,并将这个数据包发送给server,此时clien进入syn_sent状态,等待server确认
第二次握手:server收到数据包之后根据标志位SYN=1知道了client需要进行连接,此时ser