菜鸡的春招之路(二) --- 三次握手和四次挥手

一.三次握手

首先来说一说过会图中出现的名词.
SYN:连接请求标示,SYN = 1表示请求一个连接
ACK: 确认标示,ACK = 1表示一个确认请求的连接
FIN: 结束标示,FIN = 1用来表示结束请求。
seq: 序号,为了保证传输有序,TCP给请求编的号
ack: 确认序号,发送方期望下一个要接收的序号,接收后加一,来判断是否接收成功.

ack与seq

请求连接
这里先简单理解一下,如上图,B向A发送一个ack = x。A接收到之后向B发送一个seq = x+1.B通过解析,发现后者正好比前者大一,表示A接收成功.

正题

言归正传,开始讲三次握手.
A先向B发起追求,SYN = 1,表示其对B有意思。并发出信息seq = x
在这里插入图片描述
B同样对A感兴趣,发出请求SYN = 1,并且小心翼翼的进行确认,ACK = 1.同时发出信息seq = y.并且告诉A,如果对我有意思,就对我发x+1的信息,我好确认
在这里插入图片描述
A收到信息狂喜,接着就发了x+1,这次没有请求只有确认。然后两个人幸福的生活在一起[滑稽]在这里插入图片描述

为什么需要第三次握手

不正经的说,A追了B,B告诉A自己喜欢他,然后A不说话了,不合适.
正经的说法:
第一次握手,B知道A的发送没问题,知道自己的接收没问题.
第二次握手,A知道自己发送接收没问题,B的发送接收没问题
但是此时,B并不知道A的接收是否有问题,所以需要A再次发送,确认一下。

二.四次挥手

名词同上,这里就不解释了.四次挥手是一个结束连接的过程,本质上就是这样
A:我要关连接了
B:等等,我还有数据没发完
发数据ing。。。
B:我发完了
A:OK
关闭连接
与刚刚类似,看图
在这里插入图片描述

为什么需要四次,而不是三次

按照上面三次握手的方式,确实是三次。但是由于B方,也就是被终止方可能数据还没有发完,所以需要先发一个请求,告诉A方,数据还没有传完,得等一等。所以就多出来一个报文。

为什么客户端还要等2MSL

为了保证发送方的最后一个ACK报文段能够到达接收方。因为这个ACK有可能丢失,但这个ACK丢失的话,接收方也就无法正常的进入关闭连接状态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值