UDP协议

UDP

UDP:用户数据报协议(User Datagram Protocol)

首部格式

在这里插入图片描述

  • 源端口号、目的端口号:从哪里来到哪里去
  • 长度:UDP用户数据报的长度 (>=8)
  • 校验和:检验整个数据报在传输中是否有错 ,有错就丢弃。
  • UDP长度:UDP首部+数据长度(不算伪首部)
    • 伪首部只在计算校验和时出现,不向上递交,也不向下传送。
特点
  • 无连接
    传输数据前不需要先建立连接,减少开销和发送数据之前的时延。

  • 尽最大努力交付、不可靠,但效率高
    如果数据报因网络故障无法到达,UDP协议层不会给应用层任何错误信息。

  • 面向数据报
    交给它什么样,它就怎么样发送,不拆分不合并。

  • 适合一次性传输少量数据的网络应用。
    报文长度应该适中(太长,在网络层因为MTU的限制,可能需要分片;太短,网络层进行封装时,加上IP首部可能导致头重脚轻,降低传输效率)

  • 没有拥塞控制,适合很多实时应用。

  • 全双工通信

  • 支持一对一、一对多、多对多的交互通信

缓冲区
  • 没有真正意义上的发送缓冲区。

    UDP因为是不可靠连接,不必保存应用进程的数据拷贝,应用进程中的数据在沿协议栈向下传递时,以某种形式拷贝到内核缓冲区,当数据链路层把数据传出后就把内核缓冲区中数据拷贝删除。因此它不需要一个真正意义上的发送缓冲区,但是任何UDP套接字还是有发送缓冲区的。

  • 有接收缓冲区,但不能保证接收的顺序和发送的一致,如果缓冲区已满,后来的部分就会被丢弃。

    (系统层级)一次性读取接收,然后由程序分次读取到缓冲区中。

基于UDP的应用层协议

DNS: 域名解析协议
NFS: 网络文件系统
TFTP: 简单文件传输协议
DHCP: 动态主机配置协议
BOOTP:启动协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值