🔎UDP的报文结构
图片来自网络
源端口和目的端口
如果将 源IP 和 目的IP 看作是两台计算机在网络中的地址
那么 源端口 和 目的端口 就看作是两台计算机中的程序(比如 QQ)
举个栗子🥝
唐僧的自我介绍
贫僧自东土大唐而来, 欲往西天拜佛求经
这里的东土大唐就是源IP, 西天就是目的IP
这里的贫僧就是源端口, 拜佛就是目的端口
报文长度
一个 UDP 报文长度的最大值是 64KB
(2字节 --> 0 ~ 65535 --> 65535 / 1024 ≈ 64)
校验和
校验和是为了判断当前传输的数据是否出错
网络传输是有一定几率出现故障的(外部环境的干扰,强磁场的影响等)
举个栗子🥝
女神让滑稽老哥去买菜
分别是(1)芹菜 (2)黄瓜 (3)豆角 (4)白菜, 一共4样
滑稽老哥由于出门太急,只听清了要买4样菜
这时候滑稽老哥买的菜的种类不等于4样, 那么他一定是买错了
但是如果他买了4样菜,也不一定就买对了, 有可能滑稽老哥将黄瓜买成了土豆
校验和就是为了判定买的菜是不是4样
如果不是4样菜, 就一定是出错了
如果是, 也不一定就对
为了让校验和能够识别率更高一些(更为可靠), 计算的时候通常会用数据内容作为参数进行计算
数据内容发生变化, 校验和也会发生变化
(选取内容的一部分, 通过一些算术运算, 数学公式的变换,得到一个数值. 例如奇偶校验等)
发送方, 把载荷数据, 带入到校验和算法中, 计算生成的校验和结果(sum1)
接收方, 收到的数据, 既有载荷, 也有校验和 sum1
接收方通过同样的算法计算载荷得到校验和 sum2
对比 sum1 与 sum2 是否相同
如果不同, 则证明传输有误
🔎UDP的注意事项
端口号
端口号的取值范围是 0 ~ 65535 (2字节)
其中 < 1024 的端口号, 称为 “知名端口号”, 这部分端口是给一些服务器预留的, 编码的时候通常不使用这部分端口号
报文长度
使用 UDP 编程时, 需要注意 UDP 的报文长度不能过长
校验和
校验和的结果相同, 不一定传输无误
校验和的结果不同, 一定传输有误
🔎结尾
创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油