TCP三次握手四次挥手

简介: =1表示确认号字段ack有效(规定:在连接建立后所有传送的报文段都必须ACK=1)。注意:

一.建立连接

image.png


SYN是同步位:当SYN=1,ACK=0表明是连接请求报文;若对方同意建立连接后,用SYN=1,ACK=1.

ACK=1表示确认号字段ack有效(规定:在连接建立后所有传送的报文段都必须ACK=1)。

注意:

(1)服务器同意建立连接,发回的确认段报文不携带数据,但也要消耗一个序号(服务器随机产生起始序号seq=y)。

(2)第三条中,可以携带数据,若不携带数据则不消耗序号。

二.断开连接

image.png


选择题喜欢考察关于连接和释放的题目,牢记ACK/SYN/FIN一定等于1!!!


(1)第一条:【连接释放报文】客户机发送FIN后客户机不能再发data了(单向)——后面第四条还能发确认报文。

(2)第二条:【确认报文】服务器对1确认后,客户机到服务器的连接(单向)彻底释放。

(3)第三条:【连接释放报文】注意这次的确认号ack仍和第二条的ack相同。

(4)第四条 :【确认报文】发完后要等2MSL,客户机才进入连接关闭状态。

【注意】TCP是全双工(一条TCP连接有2条数据通路)。


三、常见面试题


(1)为什么连接是三次握手,关闭是四次?


答:四次是因为客户端发送FIN请求释放后,服务器端还可能继续发送数据,所以第一个是先回复客户端的FIN,等发送完所有数据服务器端再发送FIN。

而三次握手是因为客户端发送连接请求后,客户端可以直接发送SYN+ACK报文,而四次挥手是只是先发送ACK报文回应客户端的FIN报文已被接收。


(2)为啥四次挥手要等待2MSL?


答:防止客户端最后一次发送给服务器的确认ACK在网络中丢失,以至于客户端关闭了而服务端未关闭(如果服务端没有收到ACK则会不断发送FIN报文,即客户端不能立马关闭)。

2MSL即一个发送和一个回复的最大时间。


(3)为啥不用两次握手?四次握手?


答:TCP是可靠传输的,面向字节即对每个字节的数据分配一个序号。

1)因为如果两次握手,只有服务器对客户端的起始序列号做出确认,但客户端却没有对服务器的起始序列号做确认,不能保证TCP运输可靠性;

2)而四次握手没必要(第二三步可以合并,提高连接的速度和效率)。


(4)出现很多close_wait咋办?


答:close_wait状态是被动关闭的一方在四次挥手中的第二个步骤,该状态即wait to close,即等待应用程序,主动关闭端关闭socket。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
缓存 网络协议 安全
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP通信机制:三次握手、四次挥手、滑动窗口
978 1
TCP通信机制:三次握手、四次挥手、滑动窗口
|
缓存 网络协议 安全
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
|
网络协议 测试技术
|
网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
|
缓存 网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
|
网络协议
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
273 0
|
网络协议
TCP三次握手与四次挥手
TCP三次握手与四次挥手
232 0
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
322 4
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
大家好,我是阿萨。昨天讲解了网络四层协议[TCP/IP协议族分为哪4层?]今天我们学习下IP 协议, TCP 协议和DNS 协议分别是干什么的。
445 0
IP协议, TCP协议 和DNS 服务分别是干什么的?
|
网络协议
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。

热门文章

最新文章