tcp和 udp区别

相同点:都是传输层协议

不同点

是否面向连接

tcp:面向连接

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

udp:无连接

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

数据传输方式

tcp:字节流

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

udp:数据报文

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

是否可靠

tcp:可靠传输

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

udp:不可靠传输

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

传输效率

tcp:效率低

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

udp:效率高

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

应用场景

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

udp:实时性要求高

相关推荐
GOTXX31 分钟前
应用层协议HTTP
linux·网络·网络协议·计算机网络·http·fiddler
爱码少年1 小时前
springboot工程中使用tcp协议
spring boot·后端·tcp/ip
小堃学编程8 小时前
计算机网络(十) —— IP协议详解,理解运营商和全球网络
网络·tcp/ip·计算机网络
GZ_TOGOGO11 小时前
【2024最新】华为HCIE认证考试流程
大数据·人工智能·网络协议·网络安全·华为
小鹿( ﹡ˆoˆ﹡ )11 小时前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
三金1213812 小时前
SpringIoC容器的初识
网络·网络协议·rpc
SizeTheMoment14 小时前
初识HTTP协议
网络·网络协议·http
59678515415 小时前
DotNetty ChannelRead接收数据为null
tcp/ip·c#
hgdlip16 小时前
如何快速切换电脑的ip地址
网络·tcp/ip·电脑
程序员-珍17 小时前
虚拟机ip突然看不了了
linux·网络·网络协议·tcp/ip·centos