UDP的报文结构
每个端口在UDP报文里占两个字节
其实端口号的取值范围 0->65536
<1024的端口,称为"知名端口号",给一些名气比较大的服务器预留的端口,这部分端口咱们写代码不应该使用
端口
源ip & 源端口: 数据从哪里来
目的ip & 目的端口: 数据到哪里去
报文长度
报文长度就两个字节
两个字节也只有 64KB,代表一个UDP报文的最大长度就是64KB了
要是放以前64KB还是挺够用的,但现在64KB就够呛了,
所以我们在使用UDP编程的时候注意UDP数据报不能够太长
校验和
网络传输并非那么稳定:
通过网线传输的话, 就是要电信号的高低电平表示0 和 1
但是如果有外部环境干扰的话, 就可能导致低电平 -> 高电平变成高电平 -> 低电平
这样数据传输就出错了
校验和的意义就是判定一下,当前的数据是否出错
如果校验和不对,此时你的数据就一定不对
但检验和是对的,数据也有一定概率是错误的!
比如你要去菜市场买四样菜:
买了四样菜,菜品也不一定是对的
但买了五样菜百分比就是错的
为了让校验和能够识别率更高一些,计算的时候通常会以数据内容作为参数来进行计算.
数据内容发生变化,校验和也会发生变化
校验和往往就是去内容或者内容的一部分
通过一些算术运算,数学公式变换,得到一个数据
如果内容改变,得到的校验和也就变了
发送方,把载荷数据,带到校验和算法中,计算生成得到校验和结果,设为sum1
接收方接收到数据报后,也按照同样的算法计算得出sum2
对比sum1和sum2是否相同:
不相同就一定出问题了