按照答题思路分三步:
1. 总结性地介绍TCP是什么
是面向连接的协议,提供可靠的数据传输,通过三次握手建立连接,来保证数据的可靠性和顺序性。
2. 讲解一下三次握手的具体流程
第一次握手:客户端向服务端发送一个SYN包,表示我想跟你建立一个连接,并且指定一个用于数据传输的起始序号
第二次:服务端返回提付带有SYN和ACK(服务端的初始序号)的响应包,表示我知道你想跟我连接了,这两个序号表示了双方用于传输数据的初始顺序
第三次:客户端发送ACK包,表示我知道你知道我想和你连接了
3. 说明三次握手的必要性
只有两次:服务器无法确认客户端是否收到返回过去的一个ACK,因为客户端可能发送了一个SYN包治好就关闭了连接,这样会导致丢失数据包
第二个问题是客户端无法得知服务端的起始序号,那就无法确认ACK的响应顺序是否正确