三次握手四次断开

三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。
四次挥手:即终止 TCP 连接,就是指断开一个 TCP 连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

假设 A 和 B 是通过短信进行联系的


第一次(握手)对话:
中午12点, A 给 B 发短信说:"走,去食堂吃饭"。
如果此时 B 没带手机没有接受到短信,那肯定是对话失败的, A 等了一会 B 没回他的短信,他就会自己去吃饭,肯定不会一直等到下午吧。
这说明 B 没有接受到 A 的消息时沟通是肯定失败的。

第二次(握手)对话:
 B 收到并且看到了 A 发来的消息,但是 B 是个外国人,他的中文不太好不能理解 A 所发短信的意思,于是随便回了一句学会的中文:"我爱你"。
 A 收到之后菊花一紧,心想我只是想和你一起吃饭,你却。。。。这该死的基佬。告辞。于是沟通失败。因为 B 无法根据 A 的消息做出正确的应答。
如果 B 的中文足够好,他看懂了 A 的消息,并回了一句:"好,那我去老地方等你",那么第二次握手成功。

第三次(握手)对话:
 A 看到 B 发的消息:"好,那我去老地方等你",但是 A 的妈妈喊他现在立刻马上回家吃饭, A 是个听妈妈话的孩子,于是立马回家吃饭了。然后 B 就等一大半天没看到 A 回消息就想:怎么还不回我消息,到底去不起啊?不去算鸟。
于是沟通失败,这是因为 A 无法对 B 的消息做出正确的应答。但是如果 A 看到 B 发的消息后回复到:"好的,我马上过来"。那么第三次对话成功,两个人就可以开心的一起去吃饭了,并继续聊天啥的进行后续活动。
通过第二次和第三次的对话证明了甲能够听懂乙说的话◇并且能做出正确的应答。可见,两个人进行有效的语言沟通,这三次对话的过程是必须的。

四次断开

 

数据传输结束后,通信的双方都可释放连接。此处为 A 的应用进程先向其 TCP 发出连接释放报文段,但是 A 结束 TCP 连接的时间要比 B 晚一些。
以下描述不讨论序号和确认号,因为序号和确认号的规则比较简单。并且不讨论 ACK ,因为 ACK 在连接建立之后都为1。
● A 发送连接释放报文, FIN =1。
● B 收到之后发出确认,此时 TCP 属于半关闭状态, B 能向 A 发送数据但是 A 不能向 B 发送数据。
●当 B 不再需要连接时,发送连接释放报文, FIN =1。
● A 收到后发出确认,进入 TIME - WAIT 状态,等待2 MSL (最大报文存活时间)后释放连接。
● B 收到 A 的确认后释放连接。

 

TCP (Transmission Control Protocol) 是一种基于连接的、可靠的传输层协议,它的通信过程包括三次握手建立连接和四次挥手关闭连接。 **三次握手(Three-way Handshake)**: 1. **SYN(同步序号)阶段**:客户端发送一个 SYN 包到服务器,请求建立连接,包中包含随机生成的初始序列号(seq)。 2. **ACK(确认应答)阶段**:服务器接收到 SYN 包后,回应一个 SYN+ACK 包,确认序列号(ack),并设置自己的初始序列号(seq)。 3. **FIN(结束连接)阶段**:当服务器准备好接收数据后,会发送一个 FIN 包给客户端,表明它已经不再需要进一步的数据了。此时连接还未完全关闭,客户端还会等待一段时间后再发送一个 ACK 包确认关闭。 **四次挥手(Four-way handshake)**: 1. **FIN(结束连接)阶段续**:客户端收到服务器的 FIN 包后,如果还有未发送的数据,则先发送一个 ACK 包确认,然后发送自己的 FIN 包,表示客户端也准备断开连接。 2. **ACK(确认应答)阶段续**:服务器收到客户端的 FIN 包后,回复一个 ACK 包确认,并进入半关闭状态。 3. **FIN(结束连接)阶段再续**:服务器等待一段时间后,如果没有新的数据传输,再发送一个 FIN 包给客户端,正式断开连接。 4. **ACK(确认应答)阶段终结**:客户端接收到服务器的 FIN 包后,发送最后一个 ACK 包,至此,整个连接才真正关闭。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值