TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的, 可靠的, 基于字节流的传输层通信协议.
三次握手目的: 建立连接
四次分手: 断开连接
三次握手总结:
第一次握手: 客户端发送 syn 包 (syn=j) 到服务器, 并进入 SYN_HEAD 状态, 等待服务器确认;
第二次握手: 服务器收到 syn 包. 必须确认客户的 SYN(ack=j+1), 同时自己也发送一个 SYN 包(syn=k). 即 SYN+ACK 包, 此时服务器进入 SYN_RECV 状态;
第三次握手: 客户端收到服务器的 SYN+ACK 包, 向服务器发送确认包 ACK(ack=k+1), 此包发送完毕, 客户端和服务器进入 ESTABLISHED 状态, 完成三次握手.
三次握手实例:
第一次握手: IP 为 172.16.1.8 客户端发送位码 syn=1, 随机产生 seq number = 3626544836 的数据包到 192.12.16.8 服务器, 192.12.16.8 服务器接收到 syn=1 知道 172.16.1.8 客户端要求联机;
第二次握手: 192.12.16.8 服务器收到请求后, 确认联机信息, 向主机 172.16.1.8 发送 ack number=3626544837,ack=1, 随机产生 seq=1739326486 的包;
第三次握手: 172.16.1.8 客户端收到后检查 ack number 是否正确, 即第一次发送的 sql number+1, 以及位码 ack 是否为 1, 若正确, 172.16.1.8 客户端会再发送 ack number=1739326487,ack=1,192.12.16.8 服务器收到后确认.
四次分手待续....
来源: https://www.2cto.com/kf/201808/764976.html