tcp和 udp区别

相同点:都是传输层协议

不同点

是否面向连接

tcp:面向连接

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

udp:无连接

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

数据传输方式

tcp:字节流

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

udp:数据报文

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

是否可靠

tcp:可靠传输

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

udp:不可靠传输

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

传输效率

tcp:效率低

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

udp:效率高

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

应用场景

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

udp:实时性要求高

相关推荐
梁辰兴8 分钟前
计算机网络基础:TCP可靠传输的实现
网络·tcp/ip·计算机网络·tcp·可靠传输·计算机网络基础·梁辰兴
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 小时前
双主模式实现HTTP与MySQL高可用
网络协议·mysql·http
WuLaHH2 小时前
可靠UDP协议RUDP
单片机·网络协议·udp
BHXDML3 小时前
计算机网络实验:(三)设置虚拟局域网(VLAN)
网络·网络协议·计算机网络
编程小风筝3 小时前
MAC物理地址和IP网络地址有什么区别?
网络协议·tcp/ip·macos
阿钱真强道3 小时前
09 jetlinks-mqtt-属性主动上报-windows-python-实现
开发语言·windows·python·网络协议
wljt5 小时前
HTTP和openFeign
网络·网络协议·http
汤愈韬12 小时前
ACL概述、ACL原理、基本ACL应用及配置
网络·网络协议·网络安全
haluhalu.18 小时前
Linux网络编程------网络基础
网络·网络协议
坐怀不乱杯魂18 小时前
Linux网络 - HTTP协议
网络·网络协议·http