表解
发起方 | 发包 | SYN/ACK包中包含 | 状态 | 收包 | |
第一次握手 | 客户端 | SYN包 | 初始序列号(假如A1) | SYN_SEND | |
第二次握手 | 服务器 | SYN+ACK包 | 服务器的确认应达号(假如A2)(对客户端初始序列号的确认)+服务器的初始序列号(假如B1) | SYN_RECV | SYN包 |
第三次握手 | 客户端 | ACK包 | 包含了客户端对服务器初始序列号的确认应达号(假如B2) | ESTABLISHED | SYN+ACK包 |
- 序列号:在建立连接时就由计算机随机生成,每发送一次数据,该序列号+1,
用来解决网络中包乱序的问题
- 确认应答号:表示下一次期望收到的报文序列号,表示以前的数据报都已经收到了,
用来解决网络中丢包的问题
记忆方式:
前提:客户端欠服务端2个面包;服务端欠客户端2个香肠。(面包:1.对于客户端来说,是序列号。2.对于服务端来说,是确认应答号)
1.“客户端”给“服务端”第1个面包A1;
2.“服务端”接收第1个面包。“服务端”和“客户端”说:下次该给第2个面包A2了 ,给你1个香肠B1。
3.“客户端”接收:下次该给第2个面包A2的信号+收到1个香肠B1。“客户端”和“服务端”说:下次该给第2个香肠B2了。