当前位置: 首页 > news >正文

UDP数据报

学习网络协议,主要就是在学习协议格式

端口号是一个整数,1个字节,无符号(不分正负) 0 - 65535

网络协议,是有专门的组织来负责制定标准的

此处的长度是 2 个字节,表示的数据范围就是 0 - 65535 => 64kb

一个UDP数据报,最大的长度就是 64 kb

如果需要传输比较大的数据,就有可能装不下

放到 30 年前,当时的计算机,内存也就 1MB,此时的 64 KB 非常庞大

但是放到现在已经是不够用了

为什么 大佬们不把 UDP 协议扩充一下?

在技术上来说,该一下格式就可以,两个字节变成四个字节...

但是在具体落实的时候,就是非常困难的

通信双方的设备,都得一起升级才有效

这个实施起来是非常困难的,世界上任意两个设备之间都有可能使用 UDP 进行通信

一旦升级,一定会出现,一部分是设备是新版本,一部分设备是旧版本的情况

新版设备和旧版设备之间就无法完成正常的通信了,造成的结果是难以估量的

协议标准升级好,协议的具体实现,是在各个操作系统厂商手中的,需要这些厂商的配合你升级

可见短期之内,UDP 都很难得到升级

相比于升级 UDP 不如搞一个新的协议代替 UDP 可能是成本更低的做法

64KB 上线很快就要达到了

1.应用层,对数据进行拆分(没采用,开发量很大)

        拆成多个之后,如果其中一部分丢包了怎么办?

        如果其中某个部分出错了怎么办?

        如果发送顺序和接受顺序不一样怎么办,接受方如何重组?

2.换成 TCP 协议(没有明确的上限)

校验和:验证 UDP 数据报是否在传输的过程中出错

网络数据包传输是否会出错??肯定会

比特翻转(1 -> 0, 0 -> 1)

        本质上是 电信号/光信号/电磁波

        概率性事件

比特翻转,客观存在的

无法 100% 避免,只能甄别出,当前的数据是否出错的

校验和,就是用来甄别数据是否出错的有效方案

发送方,构造 UDP 数据报,构造完成之后,把数据报的每个字节的数据,都进行累加,结果累加到一个 16 位的整数上,溢出,就溢出此时得到的结果,就是校验和(check1),填充到 UDP 报头和字段

接收方收到 UDP 数据报之后,就会按照相同的算法,在计算一遍校验和(check2)

接收方就可以比较 check1 == check2 如果相对,就可以视为数据在传输的过程中是没有出错的

如果不相等,就说明数据在传输的过程中出错了

如果发送的数据和接受的数据,每一个字节都是一致的,计算得到的校验和就一定是一致的

反之,发现校验和不一样,就意味着一定是数据在传输的过程中发生了比特翻转 出现了问题

虽然不知道是哪个比特位发生了翻转,但是可以知道 出错/没出错,如果出错了就把数据丢弃掉就可以

CRC 校验和(循环冗余校验)

是否存在极端情况

恰好是两个 比特位 发生翻转,导致翻转后算出来的校验和和翻转前的算出来的校验和碰巧是一样的呢?

这种情况,理论上是存在的,实践中,概率非常小,忽略不计

如果对于是准确度要求非常高的场景,是有其他的算法的

相关文章:

  • 设计模式24——访问者模式
  • Flutter 与 Android 原生布局组件对照表(完整版)
  • HTTP协议接口三种测试方法之-JMeter(保姆教程)
  • GO——内存逃逸分析
  • goofys挂载minio为本地目录
  • IAR创建STM8裸机工程创建---STM8开发【二】
  • 金融全业务场景的系统分层与微服务域架构切分
  • 科技赋能音乐,指北科技新品闪耀广州国际乐器展
  • 智慧场馆:科技赋能的艺术盛宴
  • 青岛市长任刚与深兰科技董事长陈海波会谈,深兰青岛项目即将进入快车道!
  • leetcode hot100刷题日记——24.回文链表
  • Problem H. saki 酱 saki 酱 saki 酱 saki 酱(树的直径)
  • 影刀RPA-17- 列表练习
  • OpenCV CUDA模块直方图计算------在 GPU上执行直方图均衡化(Histogram Equalization)函数equalizeHist
  • 【Redis】基本命令
  • 油桃TV v20250519 一款电视端应用网站聚合TV播放器 支持安卓4.1
  • 英飞凌SBC芯片TLE9263QX for STM32的库函数与使用
  • git push Git远端意外挂断
  • 基于FPGA的DES加解密系统verilog实现,包含testbench和开发板硬件测试
  • AI笔记 - 模型调试 - 调试方式
  • 上海网站建设方案/惠州seo快速排名
  • wordpress 4.8.1/seo网站有优化培训吗
  • 建站专家网站建设系统/报个计算机培训班多少钱
  • 手机社区网站模板/关键词推广软件排名
  • 无锡企业建设网站公司/湖北seo整站优化
  • 珠海企业建站程序/北京seo软件