当前位置:网站首页>什么是三次握手和四次挥手(清晰易懂)
什么是三次握手和四次挥手(清晰易懂)
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包并刷新超时等待时间。
边栏推荐
- Development Tools Lecture 7: Alibaba Cloud Log Query and Analysis
- Kong实现禁止国外IP访问
- Switch and Router Technology-35-NAT to PAT
- Resize() usage row pit in vector
- Selenium自动化测试框架工作原理你明白了吗?
- [E-commerce operation] How to formulate a social media marketing strategy?
- Sub-database sub-table ShardingSphere-JDBC notes arrangement
- 金仓数据库 KingbaseGIS 使用手册(6.8. 几何对象输入函数)
- Research on a Consensus Mechanism-Based Anti-Runaway Scheme for Digital Trunking Terminals
- [QNX Hypervisor 2.2用户手册]10.16 vdev virtio-blk
猜你喜欢
随机推荐
Thymeleaf
Australia cyberspace security system construction
Switch and Router Technology-33-Static NAT
-Fill in color-
项目实战第二十七讲:状态模式在重名品牌中的应用
How to use svg-icon (svg-sprite-loader plugin)
走出迷宫的最短路径
[E-commerce operation] How to formulate a social media marketing strategy?
Switch and Router Technology-29-OSPF Virtual Link
Development Tools Lecture 7: Alibaba Cloud Log Query and Analysis
C语言:实用调试技巧
MySQL必知必会(初级篇)
Switch and Router Technology - 32 - Named ACL
In the closing pages/uninstall (unload) sends a request to the server before the document
Switch and Router Technology-35-NAT to PAT
form表单提交数据库中文变成问号
3 模块二:科研工具使用
MySQL must know and must know (primary articles)
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: '/data/xxxx
澳大利亚网络空间安全体系建设论析