UDP协议

UDP协议端格式

  • UDP有俩部分组成,一个是一个固定长度的8字节的报头,另一部分是用户或者服务端要发送的数据(可以为空)
  • 报头由四部分组成,16位源端口号,16位目的端口号,16位UDP的长度,16位校验和
  • 16位UDP的长度表示整个报头加正文内容的总大小
  • 如果最终校验和16位校验和不匹配,该报文就会被直接丢弃

UDP协议的特点

  • 无连接:知道对方的端口号和IP就能直接进行通信,不需要建立连接。
  • 不可靠:没有确认机制和重传机制,因为一些网络原因发生数据的丢失,UDP不会给应用层传递任何的错误
  • 面向数据报:不能灵活地控制对写数据的次数和数量
  • 交给UDP的报文既不会合并也不会拆分,如果发送一百个字节,对方就会接受一百个字节,不会出现接受十次一次接受十个字节的情况,一定是一次全部接受

UDP的缓冲区

  • UDP没有正真意义上的发送缓冲区,在发送数据的时候会直接调用sendto,把数据传输给内核,再由内核传给网络层,然后进行后续的相关操作
  • UDP有接收缓冲区,但是这个缓冲区不保证数据的发送顺序和接受顺序一致,而且当接受缓冲区满了以后,后续发送过来的数据会直接被丢弃

UDP的注意事项

  • 可以看到UDP包头中的UDP长度为16个比特位,这代表着一次最大可以传64kb大小的的数据(其中包括报头)
  • 而在我们现在的互联网中64kb并不是一个很大的数据,所以我们就需要一些手段扩大这个传输的最大容量
  • 如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装

基于UDP的一些应用层协议

  • NFS: 网络文件系统

  • DHCP: 动态主机配置协议

  • BOOTP: 启动协议(用于无盘设备启动)

  • DNS: 域名解析协议

  • TFTP: 简单文件传输协议
  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值