UDP和TCP高频面试题

UDP 的特点

  1. 无连接:UDP 是无连接的协议,不需要建立连接即可发送数据。
  2. 不可靠传输:UDP 不提供数据包的确认机制,也不保证数据包的顺序或是否送达。
  3. 低延迟:由于没有连接建立和维护过程,UDP 具有较低的传输延迟,适用于对延迟敏感的应用。
  4. 无流量控制:UDP 不进行流量控制,发送端可以以任意速度发送数据包。
  5. 简单性:UDP 协议头较短,开销小,仅包含源端口、目的端口、长度和校验和。

TCP 的特点

  1. 面向连接:TCP 是面向连接的协议,在数据传输前需要建立连接(三次握手)。
  2. 可靠传输:TCP 提供可靠的数据传输,保证数据包按序到达,并通过确认机制重传丢失的数据包。
  3. 流量控制:TCP 实现流量控制,通过调整发送窗口大小避免网络拥塞。
  4. 拥塞控制:TCP 包含拥塞控制算法,动态调整发送速率以防止网络拥塞。
  5. 数据完整性:TCP 提供数据包的校验和,确保数据在传输过程中不被篡改。
  6. 连接管理:TCP 提供连接建立和断开机制(四次挥手)。

UDP 和 TCP 的区别

特性 UDP TCP
连接类型 无连接 面向连接
传输可靠性 不可靠 可靠
传输顺序 不保证 保证按序传输
数据包重传 不支持 支持(通过确认和重传机制)
流量控制 不支持 支持
拥塞控制 不支持 支持
延迟 相对较高
传输速度 较慢(由于可靠性机制)
开销 低(协议头较短) 高(协议头较长,包含更多信息)
应用场景 实时应用(如视频、语音) 可靠性高的应用(如文件传输、邮件)

UDP 适用场景:

  • 实时通信:如 VoIP(语音通信)、视频会议、在线游戏等,需要低延迟而不一定需要可靠传输的场景。
  • 广播和组播:如局域网中的服务发现协议(如 mDNS、SSDP)等。
  • 简单的请求-响应协议:如 DNS 查询、SNMP 等。

TCP 适用场景:

  • 文件传输:如 FTP、SFTP,需要保证文件完整传输的场景。
  • 电子邮件:如 SMTP、IMAP、POP3,需要可靠传输的场景。
  • 网页浏览:如 HTTP、HTTPS,需要数据完整性和可靠性的场景。
  • 数据库连接:如 MySQL、PostgreSQL 等,需要稳定和可靠数据传输的场景。

TCP 的三次握手(为什么三次)

三次握手过程

  1. 第一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值