第一模块:
课程名称:2周刷完100道前端优质面试真题
课程章节:第四章第九节 三次握手和四次挥手
主讲老师:双越
第二模块:
课程内容概述
面试前必刷内容
建立TCP连接
- 先建立连接(确保对方都有发送消息的能力)
- 再传输内容(发送get请求)
- 网络连接是TCP协议,内容传输是http协议
三次握手,建立连接
为什么3次握手,2次不行?
第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
因此,需要三次握手才能确认双方的接收与发送能力是否正常。
四次挥手-关闭连接
为什么是四次挥手?
- 主动断开方(客户端/服务端)-发送一个 FIN,用来关闭主动断开方(客户端/服务端)到被动断开方(客户端/服务端)的数据传送
- 被动断开方(客户端/服务端)-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN
- 将占用一个序号
- 被动点开方(客户端/服务端)-关闭与主动断开方(客户端/服务端)的连接,发送一个FIN给主动断开方(客户端/服务端)
- 主动断开方(客户端/服务端)-发回 ACK 报文确认,并将确认序号设置为收到序号加1
client发包,server接收。server:可以关闭了
重点:
握手是连接,挥手是断开
第三模块
对三次握手和四次挥手有了一定的理解,对网络协议有了更深层次的了解