UDP
- User Datagram Protocol;
- 是一种用户数据报协议,又称用户数据报文协议;
- 是一个简单的面向数据报的传输层协议;
- 用户数据协议,非连接协议;
UDP 为什么不可靠?
- UDP 一旦把应用程序发给网络层的数据发送出去,就不保留数据备份;
- UDP 在 IP 数据报的头部仅仅加入了复用和数据校验;
- 发送端产生数据,接收端从网络中抓取数据;
- 结构简单、无校验、速度快、容易丢包、可广播;
UDP 能做什么?
- DNS,TFTP,SNMP(网络数据传输中一个监控的协议);
- 视频、音频、普通数据(无关紧要的数据);
UDP 包最大长度
- UDP 的包头中用 16 位表示报文长度,16 位是 2 个字节;
- 2^16 -1 = 65536-1 = 65535 个字节,这是 16 位能表示的最大值,每个值表示的单位是字节;
- 协议自身占用:32+32 = 64 位 = 8 字节;
- 65535 - 8 = 65507 个字节(byte),当发送的数据长度大于 65507 字节(byte)时,自己要做一次分包,然后交给 UDP 传输;
- 结论:UDP 包的最大长度是 65507;
IP地址构成
- 32 位,4 个字节(byte);
广播地址
255.255.255.255 为受限广播地址,往这个地址广播,局域网中的所有机器都可以收到;
C 网广播地址一般为:XXX.XXX.XXX.255 (192.168.1.255),如果要给家中路由器下面的所有设备发送消息,可以发送 255.255.255.255,也可以发送 192.168.1.255;
C 网地址的子网掩码,前 3 位都是 255,最后一位不一定是 0,取决于路由器的分配策略,子网掩码的最后一位决定了将局域网划分成几个网段,每个网段的广播地址都不一样;
D 类 IP 地址为多播预留;
广播地址运算
示例 1
- IP:192.168.124.7
- 子网掩码:255.255.255.0(11111111.11111111.1111111.00000000),划分为 2^0=1 个网段:0~255,其广播地址为 192.168.124.255;
- 网络地址:192.168.124.0
- 广播地址:192.168.124.255
示例2
- IP:192.168.124.7
- 子网掩码:255.255.255.192(11111111.11111111.1111111.11000000),划分为 2^2=4 个网段:0~63, 64~127, 128~191, 192~255,192.168.124.7 属于第一个网段,其广播地址为 192.168.124.63;
- 网络地址:192.168.124.0
- 广播地址:192.168.124.63
广播通信问题
- 主机一:192.168.124.7
- 主机二:192.168.124.100
- 主机一广播地址:192.168.124.63
- 主机二广播地址:192.168.124.127
- 主机一发送的广播主机二无法收到,因为两者不在同一个网段中;