tcp和 udp区别

相同点:都是传输层协议

不同点

是否面向连接

tcp:面向连接

  • 三次握手,四次挥手
  • 端对端连接
  • 全双工通信(允许双端同时收发数据)

udp:无连接

  • 无三次握手,四次挥手
  • 支持一对一,一对多,多对多

数据传输方式

tcp:字节流

  • 完整的用户消息可能被拆分成多个tcp报文进行传输 MTC、MSS
  • 对于接收方而言,需要处理粘包问题

udp:数据报文

  • udp每次收发都是完整的报文

是否可靠

tcp:可靠传输

  • tcp分段、进行发给送数据包的控制
  • 序列号,tcp报文包含序列号,确保完整接收,丢失重复数据,排序
  • 确认应答机制,确认数据包收到
  • 校验和,检测报文在传输过程中的数据变化
  • 滑动窗口,流量控制,防止包丢失
  • 拥塞控制
  • 重传机制

udp:不可靠传输

  • 不保证消息交付
  • 不保证交付顺序
  • 不进行拥塞控制
  • 不进行流量控制 没有接收缓冲区

传输效率

tcp:效率低

  • 实现可靠传输造成性能损失
  • 头信息20个字节

udp:效率高

  • 不可靠传输
  • 头信息8个字节,吞吐量就会大一些

应用场景

tcp:要求数据问题,对速度需求不高

udp:实时性要求高

相关推荐
YGGP2 小时前
应用层协议简介:以 HTTP 和 MQTT 为例
mqtt·网络协议·http·rpc
Chocolate_men2 小时前
ftp、http下载远程文件(多线程、断点续传)
python·网络协议·http
LB21124 小时前
UDP的单播组播与广播
网络·网络协议·tcp/ip·udp
花菜会噎住4 小时前
Python 计算机网络TCP网络应用程序开发
网络·python·tcp/ip·计算机网络·客户端·服务端
牛马的人生4 小时前
使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体(手把手教学版)
爬虫·python·tcp/ip·其他
不懂网络的坤坤8 小时前
HTTP/HTTPS 协议浅解
网络·物联网·网络协议·http·https
Hello.Reader9 小时前
ngx_http_random_index_module 模块概述
网络·网络协议·http
2501_915918419 小时前
多技术栈 iOS 项目的性能调试实战:从 Flutter 到 Unity(含 KeyMob 工具实测)
websocket·网络协议·tcp/ip·http·网络安全·https·udp
qiu_shi_9 小时前
实现rpc通信机制(待定)
网络·网络协议·rpc
forestsea10 小时前
一步步解析 HTTPS
网络协议·http·https