网络原理--UDP的特点

news/2025/2/25 20:22:34

总的来说:1.无连接,2.面向数据报,3.全双工,4.有接受缓存,无发送缓存。5.不可靠传输。

一、UDP报文的格式

UDP报头中一共有四个字段,每个字段2个字节,一共8个字节。

因为每个字段2个字节,所以数据报长度为0~65535,即64KB(包含8个字节的头部)。

二、UDP对数据的校验

UDP中,校验和使用简单的CRC算法(循环冗余校验)。

UDP数据的发送方在发送数据前,会先计算一遍CRC,并把计算好的CRC值放入到UDP数据报中。

而接收端在接受到数据后,也会按照相同的算法计算一遍CRC,然后与发送方的CRC进行比较。

但是这种算法只适用于少数比特翻转的情况,如果有多个比特同时翻转,可能会产生和之前一样的CRC。(CRC的计算公式较简单)

三、其他校验算法

除了CRC,还有一些更高精度的算法,例如:md5算法和sha1算法。

这些算法的计算公式更复杂。

以下介绍md5算法的特点:

1.定长。无论原始数据多长,算出来的md5的最终值都是固定长度。常见的md5有16位版本(2字节),32位版本(4字节),64位版本(8字节)。

2.分散。计算md5的过程中,原始数据只要有一点点的变化,计算出的md5值差异也会很大。这个特性也决定了md5可以作为一个字符串hash算法(hash表对hash冲突要求是很严的,md5的分散特性保证了key与value的一一对应)。

3.不可逆。从一个源字符串得到一个md5可以,但是从一个md5值来还原为源字符串理论上是无法完成的。


http://www.niftyadmin.cn/n/5865917.html

相关文章

git 命令 设置别名

在Git中,您可以通过以下命令查看所有的alias(别名): git config --get-regexp alias 这个命令会列出所有配置的alias,例如: alias.st.status alias.co.checkout alias.br.branch ... 如果您想查看某个特定a…

启动Redis报错记录

突然启动Redis就报了个错:‘Could not create server TCP listening socket 127.0.0.1:6379: bind: 操作成功完成。‘ 查了下解决方案,应该是6379端口已绑定,服务没有关闭。 需要输入命令redis-cli 再输入shutdown 但又出现了新的问题&…

JavaAPI(lambda表达式、流式编程)

Lambda表达式 本质上就是匿名内部类的简写方式(匿名内部类见:JAVA面向对象3(抽象类、接口、内部类、枚举)-CSDN博客) 该表达式只能作用于函数式接口,函数式接口就是只有一个抽象方法的接口。 可以使用注解…

2.1 第一个程序:从 Hello World 开始

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 同大多数编程语言教程一样,本书第一个代码也是输出:Hello world! 这似乎也是惯例。我们也先从这个简单的代码…

分析 w-form-multiple-image.vue 文件中 console.log(v) 打印的内容

文章目录 父组件中的使用子组件中的 console.log(v)父组件中 form 的数据流初始化用户上传图片保存时的处理 console.log(v) 的具体输出为什么有两个 console.log(v)?示例场景结论 下面这张图,是首次打开登记表单(也就是添加)控制…

后端之JPA(EntityGraph+JsonView)

不同表之间的级联操作或者说关联查询是很多业务场景都会用到的。 对于这种需求最朴素的方法自然是手动写关联表,然后对被关联的表也是手动插入数据。但是手写容易最后写成一堆shit代码,而且修改起来也是非常麻烦的。 学会使用现成的工具还是非常有利的…

硬件工程师入门教程

1.欧姆定律 测电压并联使用万用表测电流串联使用万用表,红入黑出 2.电阻的阻值识别 直插电阻 贴片电阻 3.电阻的功率 4.电阻的限流作用 限流电阻阻值的计算 单位换算关系 5.电阻的分流功能 6.电阻的分压功能 7.电容 电容简单来说是两块不连通的导体加上中间的绝…

Ubuntu20.04之VNC的安装使用与常见问题

Ubuntu20.04之VNC的安装与使用 安装图形桌面选择安装gnome桌面选择安装xface桌面 VNC-Server安装配置开机自启 VNC Clientroot用户无法登入问题临时方案永久方案 安装图形桌面 Ubuntu20.04主流的图形桌面有gnome和xface两种,两种桌面的安装方式我都会写&#xff0c…