UDP摆烂之王:数据爱丢不丢

64 阅读1分钟

无连接传输服务UDP

User Datagram Protocol 用户数据报协议

  • 尽力而为

    • 可能丢失
    • 可能乱序
  • 无连接

    • 没有握手
    • 每个UDP报文段都被独立的处理
  • 用于

    • 流媒体
    • DNS
    • SNMP (网络管理协议)
  • 在UDP上实现可靠传输

    • 在应用层增加可靠性
    • 应用特定的差错恢复
  • 存在意义

    • 不建立连接,延迟小

    • 简单:在发送端和接收端没有连接状态

    • 报文段头部小

    • 无拥塞控制和流量控制

      • UDP可以尽可能快的发送报文段

      • 应用->传输速率 = 主机 -> 网络的传输速率

UDP校验和

目标是检测在传输过程中报文段中发生的差错(如比特翻转)

  • 发送方

    • 将报文段的内容视为16比特的整数
    • 校验和:报文段的加法和(1的补运算)
    • 发送方将校验和放在UDP的校验和字段
  • 接收方

    • 计算接收到的报文段的校验和

    • 检查计算出的校验和与校验和字段是否相等

      • 不相等就是有差错
      • 相等就是没有检测到差错

没有检测到差错:可能是没有差错,也可能是存在残存错误但是刚好是检测不出来