UDP协议

一、UDP 协议端报文结构

  UDP 报文分为 UDP 报头和 UDP 数据(UDP载荷)两部分。报头由4个16位长字段组成,分别是源端口、目的端口、UDP长度和校验和。

  1. UDP 报文结构示意图:
    UDP协议报文
    字段含义:
  • 源端口:占据 UDP 报文的前16 位,包含发送数据报应用程序的 UDP 端口号。接收端的应用程序把这个字段包含的值作为回馈响应的地址。由于字段是可选的,故可以设置为0,这样的接收端就不会回馈给发送端响应。
  • 目的端口:接收端应用程序的 UDP 端口,占据16位。
  • UDP长度:16位UDP数据报的长度,表示整个数据报(UDP报头+UDP数据)的最大长度。UDP 报头长度是8个字节,所以这个值最小是6个字节。
  • 检验和:检验和主要是为了检验数据在传输过程中是否发生损坏。
  • UDP数据:发送端要发送的数据。
  1. UDP报文注意事项
    1. UDP 报文拼装的过程,其实就是所谓的“封装”。
    2. 16位UDP数据报的长度,表示整个数据报(UDP报头+UDP数据)的最大长度。
    3. UDP 数据报的最大长度是64KB。
    4. 使用 UDP 来传输数据,一定要警惕大的报文,如果报文超过64KB,此时可能会丢失一部分数据。
    5. 检验和的主要作用其实就是“证伪”,一旦校验和出错,数据就会直接丢弃。

二、UDP协议的特点

  1. 无连接
      只需知道对端的IP和端口号就直接进行传输,不需要建立连接。

  2. 不可靠
      没有任何安全机制,发送端发送数据报以后,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息。

  3. 面向数据报
       应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并。
       例如:如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节;而不能循环接收10次,每次接收10个字节

  4. 半双工
       UDP 只有接收缓冲区,没有发送缓冲区。

        UDP 没有真正意义上的发送缓冲区,发送的数据会直接交给内核,由内核将数据传给网络协议进行后续的传输。
        UDP 具有接收缓冲区,但是接收缓冲区不能保证接收的UDP数据报的顺序和发送的数据报顺序一致;如果缓冲区
    已满,后续到达的数据就会被丢弃。
    
  5. 大小受限
       UDP协议首部中有一个16位的最大长度。也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部)。

三、基于UDP的应用层协议

  1. NFS :网络文件系统
  2. TFTP :简单的文件传输协议
  3. DHCP :动态主机配置协议
  4. BOOTP : 启动协议(用于无盘设备启动)
  5. DNS :域名解析协议
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值