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包之后的立即进入的状态,不用等待2ml

B:服务端收到客户端的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

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值