1 UDP协议的基本概念

UDP: User Datagram Protocol [RFC 768]

  • 基于Internet IP协议
    • 复用/分用
    • 简单的错误校验
  • “Best effort”服务(不可靠),UDP段可能
    • 丢失
    • 非按序到达
  • 无连接

    • UDP发送方和接收方之间不需要握手
    • 每个UDP段的处理独立于其他段
  • 常用于流媒体应用

    • 容忍丢失
    • 速率敏感
  • UDP还用于
    • DNS
    • SNMP

在UDP上实现可靠数据传输?

  • 在应用层增加可靠性机制
  • 应用特定的错误恢复机制

UDP为什么存在?

  • 无需建立连接 (减少延迟)
  • 实现简单:无需维护连接状态
  • 头部开销少
  • 没有拥塞控制: 应用可更好地控制发送时间和速率

2 UDP协议的责任

  • 创建进程到进程间的通信(由端口号完成)
  • 有限的差错控制,出现差错悄悄丢弃报文分组

3 UDP协议数据格式

UDP协议(传输层)

UDP协议(传输层)

UDP校验和(checksum)

目的:检测UDP段在传输中是否发生错误(如位翻转)。

发送方

  • 将段的内容视为16-bit整数
  • 校验和计算:计算所有整数的和,进位加在和的后面,将得到的
    值按位求反,得到校验和
  • 发送方将校验和放入校验和字段
      

接收方

  • 计算所收到段的校验和
  • 将其与校验和字段进行对比
    • 不相等:检测出错误
    • 相等:没有检测出错误(但可能有错误)

注意:最高位进位必须被加进去

示例:
UDP协议(传输层)

4 关于端口

UDP协议(传输层)

TCP和UDP都用端口(port)号来识别应用层实体,以便准确地把信息提交给上层对应地协议(进程)。

相关文章: