计算机网络|面试官经常问我三次握手和四次挥手,现在终于知道怎么简简单单的叙述出来了
三次握手 三次握手发生在请求建立连接的阶段,
- 【计算机网络|面试官经常问我三次握手和四次挥手,现在终于知道怎么简简单单的叙述出来了】第一次握手:客户端的应用进程主动打开,并客户端发送请求到服务器,表明想要建立连接(SYN)
目的:
使服务器知道:客户端发送信息的能力,和服务器接收信息的能力,二者都没有问题
- 第二次握手:服务器应用进程被动打开,如果服务器同意客户端的请求,服务器则给客户端回应确认报文,表明收到了客户端的请求(SYN+ACK)
目的:
使客户端知道:客户端发送信息的能力,和服务器接收信息的能力,二者都没有问题
但是,如果我没有发送确认报文去服务器端的话,服务器不会知道服务器的发送信息的能力有没有问题
- 第三次握手:客户端收到确认报文之后,通知上层应用进程,连接已建立,客户端并再次向服务器发送确认报文,同时服务器在收到客户端的确认报文之后,也会通知上层应用进程连接已经建立(ACK)
目的:
使服务器知道:我们二者的发送和收信的能力都没有问题
文章图片
四次挥手 四次挥手发生在请求
释放资源
的阶段,目的就是断开连接
- 第一次挥手:客户端向服务器发送断开连接请求(FIN)
表明:我要关闭连接了
- 第二次挥手:服务器收到请求后,向客户端回应报文(ACK)
表明:服务器已收到请求,并且通知客户端自己可能还有一些数据需要处理
- 第三次挥手:服务器发送完所有报文后,向客户端发送断开连接请求报文(FIN)
表明:服务器要关闭连接了
- 第四次挥手:客户端收到服务器要断开连接的请求报文后,想服务器发送确认报文(ACK)
表明:客户端发送该报文时,也就将客户端的应用进程关闭了(CLOSED);当服务器收到确认报文后,服务器应用进程也关闭了(CLOSED)
文章图片
为什么要进行三次握手和四次挥手? 三次握手:为了防止无效的连接请求报文到达服务器而引起错误。
TCP发起建立连接的一方不会一直等待对方的回复,如果超时,他再次发起这个请求,上一个作废。四次挥手:确保数据能够完整传输。
推荐阅读
- ts泛型使用举例
- 康恩赫助力线头公益#义卖星推官#,分享你最喜爱的义卖明星
- 二十五、狗(外戚)咬狗(宦官)与第二次党锢
- 2018国考外交部面试演讲不再难——只需把握好三点
- iOS面试题--基础
- 星际无限|星际无限 | 官方推出Filecoin MinerX奖学金计划,吸引中小型Filecoin矿工
- 新垣结衣官宣结婚,从一组男友视角写真,看网友们的“夺妻之恨”
- 1040表格和W-2表格
- java|java 常用知识点链接
- 病理预测