# TCP和UDP
都是处于
传输层
的协议,TCP
和UPD
的目的都是为了给用户提供一端到另一端的信息传输。只不过在实现上不同。
# TCP
使用
TCP协议
进行通信,需要先建立连接。
TCP
建立连接需要三次握手
,断开连接需要四次挥手
。
MDN 介绍 (opens new window)
# 三次握手的原因?
需要客户端和服务端都判断双方具有正常的发送和接收信息的能力
- 第一次:服务端知道,客户端能发
- 第二次:客户端知道,服服务端能收能发
- 第三次:服务端知道,客户端能收
# 挥手多一次的原因?
服务端多了一步把发送任务任务完成的步骤,因为可能还有没完成的任务
- 第一次:客户端告诉服务端,我不会给你发消息了
- 第二次:服务端告诉客户端,我知道了,你等我通知,我活干完了告诉你
- 第三次:服务端告诉客户端,我都干完了
- 第四次:客户端告诉服务端,好的,我关闭了。服务端收到后也关闭
# UDP
使用
UDP协议
进行通信,不需要建立连接,因此UDP不需要进行握手。
因此不保证:数据是否丢失、数据的顺序、数据是否重复。
http3.0是基于UDP实现的
MDN 介绍 (opens new window)
# TCP和UDP的区别
数据传输方式
- TCP基于连接
- UDP基于无连接
对系统资源的需求
- TCP较多
- UDP少
<!-- +
信息传输的模式
- TCP数据报模式
- UDP流模式 -->
数据的准确性
- TCP保证数据正确性
- UDP可能丢包
数据的顺序
- TCP保证数据顺序
- UDP不保证