参考:网络编程知识预备(2) ——三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL_行稳方能走远的博客-CSDN博客
目录
2、连接中途客户端突然故障怎么办(保活计时器、探测报文段、心跳包)?
一、三次握手
什么是三次握手?
手机能够使用联网功能是因为手机底层实现了 TCP / IP 协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
TCP共有6个标志位,常见的:
标志位 | 含义 |
---|---|
SYN(synchronous) | 建立连接 |
ACK(acknowledgement) | 响应确认 |
FIN(finish) | 结束 |
RST(reset) | 重置 |
建立起一个TCP连接需要经过“三次握手”
三次握手图解
三次握手过程解析:
(1)第一次握手
客户端发送 SYN 包( syn = j )到服务器,并进入 SYN_SEND 状态,等待服务器确认。
j 是一个随机数,通过看服务器返回的 j + 1 是否正确,判断第一次握手服务器是否正确响应。
(2)第二次握手
服务器确认客户的 SYN 包,同时发送 ACK 包( ack = j + 1 )作为回应;
自己也发送一个 SYN 包( syn = k ),共两个包,此时服务器进入 SYN_RECV