TCP的三次握手与四次挥手
对照面试题理解tcp的三次握手四次挥手
面试题:
下列TCP连接建立过程描述正确的是:A : 服务端收到客户端的SYN包后等待2*ml时间后就会进入SYN_SENT状态
B : 服务端收到客户端的ACK包后会进入SYN_RCVD状态
C : 当客户端处于ESTABLISHED状态时,服务端可能仍然处于SYN_RCVD状态
D : 服务端未收到客户端确认包,等待2*ml时间后会直接关闭连接
正确答案:C解析:
A:SYN_SENT是客户端发送SYN包之后的立即进入的状态,不用等待2mlB:服务端收到客户端的SYN包后会进入SYN_RCVD状态,服务端收到ACK包后会进入established状态。C: 当客户端处于ESTABLISHED状态时,服务端等待接收客户端的ACK,所以可能处于SYN_RCVD状态。D: 客户端收到服务端确认包后,等待2*ml时间后会直接关闭连接。若没有收到,则不会关闭连接。
三次挥手:
面试题解析:
三次握手如下:
(此图第三次握手的ack应该等于y+1,而不是y,上面看不太清楚,但不影响解这题)
四次挥手如下:
TCP四次挥手:
理解 “三次握手”,“四次挥手”
需要知道 “客户端”与 ”服务器端“
“主动方” 与“ 被动方 ” 之间的语言的含义是什么,才能在心里有个印象,才能去正确理解四次挥手的含义:
下图中有几个字段需要重点介绍下:
(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
(A)URG:紧急指针(urgent pointer)有效。
(B)ACK:确认序号有效。
(C)PSH:接收方应该尽快将这个报文交给应用层。
(D)RST:重置连接。
(E)SYN:发起一个新连接。
(F)FIN:释放一个连接。
重点:
需要注意的是:
(A)不要将确认序号Ack与标志位中的ACK搞混了。
(B)确认方Ack=发起方Req+1,两端配对。
四次挥手的总结:能看懂的就,看不懂的回看下面的解释吧:
第一二次挥手: 主动方发送一条连接, 初始确认 确认序号为Z 发送序号为X 被动方确认 确认序号为X+1,发送序号为Z
(只有ACK标志位为1时,确认序号字段才有效)
第三四次挥手: 被动方发送一条连接 , 初始确认 确认序号为X 发送序号为Y 主动方确认 确认序号为Y 发送序号为X
四次挥手博主自我理解: :依照上方各种单词的含义总结:
可以将四次挥手看成是两个人:
四次挥手分别是 第一 ,二次是主动方挥手,被动方挥手回应 ,第三 ,四次是被动方主动挥手,,主动方挥手回应
1:(FIN:释放一个连接。) 2:确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 3:序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记
第 一: 主动方---》发送Fin+Ack 报文,并发送序号为X
第一次挥手:主动方发送 :Fin=1 Ack=Z Seq=X
简单理解: 1.主动方释放一个连接 Fin=1 2.主动方发送一个待被动方接受的标志ACK=Z (等待被动方接受,并以序号的方式发回到主动方) 3. 主动方发送一个待确认的seq的序号 X(表示此序号是从TCP 的{”主动方“} 向 {”被动方“}发送的seq序号)等待被动方确认
第 二: 被动方---》发送Ack 报文,并置发送序号为Z 再确认序号为X+1
第二次挥手 : 被动方发送:ACK=X+1 Seq =Z
简单理解: ACK=X+1 指被动方确认主动方发送的序号 X 并 +1 回应主动方(只有ACK标志位为1时,确认序号字段才有效,)
Seq = Z 接受主动方发送的带接受的标志并将序号命名为Z
第三,四的挥手跟一二的相反
;;;;: 三:被动方---》 发送Fin+Ack 报文,并发送序号为Y
四:主动方---》 发送Ack 报文,并置发送序号为X 再确认序号为Y
TCP的三次握手与四次挥手相关推荐
- 一文搞懂TCP的三次握手和四次挥手
目录 1.三次握手 2.四次挥手 3.11种状态名词解析 TCP的三次握手和四次挥手实质就是TCP通信的连接和断开. 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所 ...
- 为什么有TCP 的三次握手 和 四次挥手
由于我们的设备上的通信程序很直接,所以当时没有仔细想过TCP的三次握手和四次挥手这个问题,有的时候自己写的时候 会忘掉这个问题,就是为什么会有三次握手的过程和4次挥手的过程 简单来说就一句话 &quo ...
- TCP的三次握手和四次挥手的过程?
TCP的三次握手和四次挥手的过程? 如下2幅图 如下2幅图
- c++TCP的三次握手和四次挥手
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105043395 T ...
- 了解TCP的三次握手和四次挥手
了解TCP的三次握手和四次挥手 一. TCP/IP OSI参考模型 了解TCP的三次握手和四次挥手,我们首先从TCP/IP OSI参考模型说起. OSI(Open System Intercon ...
- TCP连接三次握手和四次挥手
摘要: 本文主要介绍TCP连接三次握手和四次挥手的机制. 1.三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Clie ...
- TCP的三次握手和四次挥手及常见面试题
一.前言 今天上掘金查看热门文章,发现一篇好文 ★前端 100 问:能搞懂 80% 的请把简历给我 ★ ,此文包含100个前端面试问题,仔细阅读完所有题目后,顿感身中数刀无法呼吸,留下了没有技术的泪水 ...
- 【运维面试】面试官问到tcp/ip三次握手,四次挥手,这么回答就对了
我之前面试过很多运维人员,每次都绕不开tcp/ip三次握手,四次挥手: 面试者的回答也是八仙过海各显神通 有讲故事的,有画图的,有把自己讲晕了的: 那这个该怎么回答呢? 我总结下来可以这么来说: 三次 ...
- TCP和UDP区别以及TCP的三次握手和四次挥手
TCP和UDP的概念 TCP: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议 UDP: Internet 协议 ...
- 【重难点】【计算机网络 02】TCP 和 UDP 的区别、TCP 的三次握手和四次挥手、HTTP 和 HTTPS、HTTP 各版本之间的区别、HTTP 如何实现长连接
[重难点][计算机网络 02]TCP 和 UDP 的区别.TCP 的三次握手和四次挥手.HTTP 和 HTTPS.HTTP 各版本之间的区别.HTTP 如何实现长连接 文章目录 [重难点][计算机网络 ...
最新文章
- python 删除列表中的指定元素
- python pip命令技巧
- 瑞星linux u盘引导盘杀毒教程,瑞星杀毒U盘怎样用U盘启动电脑
- 小米 华为都要造车?.NET高薪潮来了!(附招聘链接)
- 一次 .NET Core 中玩锁的经历:ManualResetEventSlim, SemaphoreSlim
- php写抢票脚本,火车票抢票python代码公开揭秘!
- 三个快速便捷的命令行小贴士
- Style Report 培训开始啦!!
- python浮点数保留两位小数_(RPA)学习——Python 保存两位小数
- 费用报销管理表格计算机考试,计算机等级考试EXCEL练习题-10通讯费年度计划表...
- 中国科学院大学2015年数学分析高等代数考研试题
- ASO优化|五步解锁关键词选择优化正确姿势!
- 规格型号、购方名称、地址备注等格式有误、特殊字符-无法开票?
- 手机网络邻居访问电脑_通过WiFi局域网在手机上观看电脑上的视频
- 区块链应该打造国产操作系统
- 保底掉落装备matlab,DNF团本减负计划 保底深渊票史诗装备删除
- Huggingface Transformers简约教程(三)
- 使用 adb 对 Android 声音控制全面适配
- ECM麦克风电路元器件计算
- 计算机等级考试心得体会,计算机等级考试心得体会(2)