UDP协议的特点

  • 无连接
  • 不可靠

应用层使用UDP协议的服务:DNS(53)、TFTP(69)、SNMP(161)

UDP协议的责任

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

数据结构

UDP_data_structure
通过wireshark抓到的一个UDP报文如下:

User Datagram Protocol, Src Port: 8000, Dst Port: 4007
    Source Port: 8000
    Destination Port: 4007
    Length: 71
    Checksum: 0xc471 [unverified]
    [Checksum Status: Unverified]
    [Stream index: 0]
    [Timestamps]
    UDP payload (63 bytes)
Data (63 bytes)
    Data: 023b0b0348620d0ec511af000400308054bf53ace2864bfac2620da1e06f30b08763dd94…
    [Length: 63]
  • 源端口:16bits,范围:0~216-1,也就是0~65535。
  • 源端口:16bits,范围:0~216-1,也就是0~65535。
  • 长度:16bits,包含两部分,UDP报文头部长度,另一个是数据长度,头部长度最大64bits(8bytes)。如报文中的长度是71,那么包括8bytes的数据长度,剩下63bytes的数据长度。
  • 校验和:16bits,不是必须存在。
  • [Stream index] 包括源IP、源port,目的IP、目的port四个元素。这四个元素都不变的话,index就不会变。