Lazy loaded image
TCP与UDP_三次握手_四次挥手
Words 633Read Time 2 min
2023-12-30
2025-4-3
type
status
date
slug
summary
tags
category
icon
password
本文主要讲下TCP三次握手和四次挥手是什么,为什么是3/4呢,牵涉到单工/双工通信的问题。
 

TCP和UDP的区别

网上关于这俩的区别有很多讲解,本质区别就是TCP在双方建立连接,收到数据时会给反馈,失败就会重发,而UDP是不会建立连接的,所以不知道对方是否接受到了数据,是否丢包,自然也就不会重发数据。这里不多赘述,贴张图看下:
notion image

三次握手

1.启动服务器监听客户端的消息。
2.客户端向服务器发送连接请求。
3.服务器返回给客户端接受连接的请求。
4.客户端给服务器发送确认连接信息,此时双方已建立连接。
 
总结:其实就是双方确认自己的收发能力有没有问题。
1.客户端给服务器发送消息(客户端视角):客户端发没问题,收不确定;服务器收发均不确定。
2.服务器收到客户端的消息,并给客户端发送消息(服务器视角):服务器收发没问题,客户端发没问题,客户端收不确定。
3.客户端接收到服务器的消息,再给服务器发送消息(客户端视角):客户端收发没问题,服务器收发没问题。
此时服务器收到3步骤客户端的消息后,双方就知道了自己以及对方的收发能力没问题,那么就可以建立连接了。
 

四次挥手

四次挥手释放连接时,比上面多一步就是:客户端和服务器双方都需要向对方发送一次释放连接请求,并让对方确认。
直接白话总结:
客户端→服务器:我要断开连接。
服务器→客户端:收到你的断开连接请求,请等我确认。
服务器→客户端:确认完了,我也准备和你断开连接,请你确认。
客户端→服务器:确认完毕,直接断开连接吧。
注意,四次挥手的第一次释放连接请求是由客户端向服务器发出的!
上一篇
Unity渲染管线
下一篇
C#/Lua异常钉钉预警

Comments
Loading...