当前位置:网站首页>什么是三次握手和四次挥手(清晰易懂)
什么是三次握手和四次挥手(清晰易懂)
2022-08-11 05:03:00 【一起去飞~】
很多小伙伴在刚开始学习网络课程的时候不明白TCP是如何进行可靠的传输的(也包括我哈哈),现在我就来把它讲明白,这也是一道经常会问到的面试题,相信你们看了之后会有更清晰的认识。
下文几个英文缩写的意思先解答一下:SYN(同步)、ACK(确认)、FIN(finish完成)。

三次握手:
这是建立客户端和服务端连接的过程:当客户端向服务端发起连接时,会先发一包连接请求数据过去询问一下,能否与你建立连接呀,这个数据包我们称为SYN包,如果服务端同意连接,则回复一个SYN+ACK包,客户端收到之后回复一个ACK包,连接建立。因为这个过程发了三包数据,我们称之为三次握手。

面试一:为什么是三次握手而不是两次、四次呢?
这是为了防止已经失效的请求报文,突然有传到了服务器引起错误。
假设采用两次握手建立连接,客户端发送一个SYN包来请求连接,因为某些未知的原因,并没有到达服务器,在中某个网络节点产生了滞留,为了建立连接客户端会重发一个SYN包,这次的数据包正常送达,服务端回复SYN+ACK建立了连接,但第一次数据阻塞的网络节点突然恢复,第一个SYN包又送到服务器,这是服务端会误认为是客户端又发起了一个新的连接,从而在两次握手之后,进入等待数据状态;服务端认为是两个连接,而客户端认为是一个连接,造成了状态不一致。如果在三次握手对的情况下,服务端收不到最后的ACK包,自然不会认为连接建立成功,所以三次握手才能保证网络信道可靠。三次已经够了,就不需要浪费资源,进行第四次握手了。
面试二:为什么需要三次握手?
1.因为三次握手才能保证双方具有接收和发送的能力。
2.避免历史连接。
3.同步双方序列号。
4.避免资源浪费。
四次挥手:
这是发起关闭连接的请求,客户端和服务端都能主动发起关闭请求,假设这里是客户端主动发起关闭请求,这个时候客户端会在报文中开启FIN和ACK两个控制位,FIN就是finish结束的意思,这里也就是要确认要结束会话,此时服务器会先发送ACK来进行确认,此时客户端并没有正式关闭通道,因为服务器那边可能还需要发送其他数据,等服务器端发送完数据之后会再发送一个FIN+ACK来进行最后的确认,最后客户端得到最终的结束确认后会发送一个ACK来进行确认。如果客户端发送最后一个ACK包之后,等待一段时间,如果在这段时间服务端没有接收到最后的ACK包会重发FIN包,客户端也会重新响应这个FIN包,并重发ACK包并刷新超时等待时间。

边栏推荐
- prometheus:(二)监控概述(你永远逃不出我的手掌哈哈)
- HAVE FUN | "SOFA Planet" spacecraft plan, the latest progress of source code analysis activities
- 02.折叠隐藏文字
- 元宇宙社交应用,靠什么吸引用户「为爱发电」?
- How IP-Guard prohibits running U disk programs
- [Untitled] 2022 Amination Process Exam Questions Mock Exam Question Bank and Online Mock Exam
- [FPGA tutorial case 50] Control case 2 - FPGA-based PD controller verilog implementation
- c语言fprintf、fscanf、sscanf以及sprintf函数知识要点总结
- 优化是一种习惯●出发点是“站在靠近临界“的地方
- 在 关闭页面/卸载(unload)文档 之前向服务器发送请求
猜你喜欢
![[E-commerce operation] How to formulate a social media marketing strategy?](/img/fe/fc1270e608abbce02f83fcb712e562.jpg)
[E-commerce operation] How to formulate a social media marketing strategy?

交换机和路由器技术-30-标准ACL

分库分表ShardingSphere-JDBC笔记整理

Switch and Router Technology - 28 - NSSA Areas for OSPF

async(异步)和await的使用

Switch and Router Technology - 22/23 - OSPF Dynamic Routing Protocol/Link State Synchronization Process

form表单提交数据库中文变成问号

I wrote some code in my resume, but I still can't pass the interview

绿盾加密如何顺利切换成IP-Guard加密

leetcode 9. Palindromic Numbers
随机推荐
梅克尔工作室--OpenEuler培训笔记(1)
BGP综合实验
BGP Comprehensive Experiment
Merkel Studio--OpenEuler Training Notes (1)
leetcode 9. 回文数
开发工具篇第七讲:阿里云日志查询与分析
Golden Warehouse Database KingbaseGIS User Manual (6.10. Geometric Object Operation Operator)
交换机和路由器技术-26-OSPF末梢区域配置
Switches and routers technology - 26 - configure OSPF peripheral area
CAD2020 打开错误报告 e06d7363h Exception at 13644F69h
交换机和路由器技术-32-命名ACL
Switch and Router Technology-35-NAT to PAT
Switches and routers technology - 24 - configure OSPF single area
Resize() usage row pit in vector
【无2022上海市安全员A证考试题库及模拟考试
网络协议1
C语言题解:谁是凶手!
C语言:实用调试技巧
交换机和路由器技术-30-标准ACL
[E-commerce operation] How to formulate a social media marketing strategy?