网络协议(一) UDP--用户数据报协议

1、了解网络 TCP/IP 五层协议模型
2、传输的2个重要协议,UDP 协议和 TCP 协议。
3、每层协议的数据格式都分为『标头』和『数据』两部分,标头部分包含发送者和接受者标识性信息等。我们知道传输层协议的功能建立程序到程序之间的链接,UDP 协议标头中也包含端口信息。

1.UDP报文格式

UDP报文格式

UDP协议是传输层协议,我们在数据封装的过程中,报头也是被封装在最里层的。
数据报头中的信息也比较简单:

  1. 源端口号

  2. 目的端口号

  3. UDP长度(定长报头+数据)

    UDP因为是面向数据报的,对端一次发送多少,一次就接收多少,使用定长的报头来分离报头和数据

  4. 校验和

    UDP协议是不可靠的,这里的校验是指将数据中比较有特点的信息经过计算得出一个比较短的字符串,在接收方也是通过相同的计算,得到的字符串是否相同,相同就接收,不相同就丢弃。

  5. 数据
    一次发送多少,一次就接收多少,否则剩下的数据就再也拿不到了

2.UDP的特点

  • 无连接
    知道对端的IP和端口号,就可以直接进行传输,不需建立连接
  • 不可靠
    没有确认机制和重传机制
  • 面向数据报
    应用层交给UDP的数据,UDP原样发送,不会进行拆分和合并,不能够灵活的控制读写数据的数量和次数

UDP缓冲区

  • UDP 没有发送缓冲区,将数据交给内核,内核将数据传输给网络层,且UDP没有重传机制,不需要将其保存下来而用于重传
  • UDP 具有接收缓冲区作用是当缓冲区数据满了,再到达的数据就会被丢弃。并不能保证接收到数据和发送时的顺序相同,

UDP注意事项? TODO

看到UDP长度字段只有16位,能表示的最大数据长度为64k,在网络中,这是一个很小的数字,当我们需要传送的数据超过64k,这时候就需要在应用层将数据分包,分多次发送,并且在接收端手动拼接,这样影响传送效率。

基于UDP的应用层协议

  • NFS: 网络文件系统协议
  • TFTP: 简单文件传输协议
  • DNS: 域名解析协议
  • DHCP:动态主机分配协议
  • BOOTP: 启动协议(用于无盘设备启动)
  • 也包含用户自己实现UDP程序时的自定义协议
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值