☝️一.UDP是什么
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传输服务.
✌️二.UDP的特点
- 无连接:发送数据之前不需要建立连接.
- 不可靠:使用最大努力交付,很大可能收不到
- 面向数据报的:以UDP数据报为基本单位
- 全双工:一条路径,双向通信
👌三.UDP的格式
用户数据报UDP有两个字段:数据字段和首部字段.
首先我们先来看一个图简单的来大致了解一下UDP的首部格式有哪些内容:
很多同学看到这个肯定会一脸懵,不知道要表达什么意思.一般教科书上会这样进行画.
以下我们再画一个容易理解的图:
从图中我们可以看出首部字段很简单,只有8个字节,由4个字段组成,**每个字段的长度都是2个字节.**我们也还要知道各个字段的含义:
- 源端口:源端口号.在需要对方回信时选用.不需要时可用全0
- 目的端口: 目的端口号.这在终点交付报文时必须使用.
- 报文长度: UDP用户数据报的长度,其最小值是8(仅有首部)[最长64kb]
- 检验和: 检测UDP用户数据报在传输中是否有错.有错就丢弃.
前三个字段大家可能都容易理解,这里我们主要来介绍一下校验和:
因为我们是通过光信号和电信号来进行传输的,所以可能在传输的过程中发生信号干扰.所以我们就要有一个校验和,可以检测数据在传输的过程中是否发生了错误.
校验和是取内容或者是内容的一部分的.如果发送过来的数据的校验和与接收的数据校验和是不一样的,那么这个数据就是错误的.
大家听到这个描述可能会很懵,举个例子大家理解一下:
就比如我妈妈要我出去买菜,说要买土豆,花菜,黄瓜,牛肉,并且强调只有四样菜.我走进菜市场,买买买,突然发现手里有五份菜,这时我就知道我肯定买错了;当我发现我手里只有三样菜的时候,这时我也能知道我肯定买错了.这里妈妈最后强调的四样菜就可以当成是一个校验和,当我拿到数据对比发现不一样,就说明数据在传输的过程中受到了干扰了.