UDP!!!

UDP!!!

  • 一 : 传输层的协议:
  • 二 : UDP
    • 2.1 UDP长度
    • 2.2 UDP校验和
      • 2.2.1 : 为什么会出现传输出错的情况??
      • 2.2.3: 对数据进行校验的方式
        • CRC
        • md5
    • 三 : UDP的适用场景

一 : 传输层的协议:

传输层的协议有UDP,TCP
UDP:无连接,不可靠传输,面向数据报,全双工
TCP:有连接,可靠传输,面向字节流,全双工

二 : UDP

对于UDP协议来说,应用层数据到达UDP之后,就会给应用层数据报前面拼接上UDP报头
UDP数据报 = UDP报头 + UDP载荷
在这里插入图片描述

2.1 UDP长度

UDP 长度描述了整个UDP数据报(报头+载荷),占多少个字节 .
通过UDP长度,就可以知道载荷一共是多少字节.
UDP长度占两个字节,能表示的范围是0-65535,也就是最多是64KB,
因此,在使用UDP开发程序,就会有很大的制约,要确保传输的单个数据报,不能超过64KB

但UDP有限制,为什么发明UDP的大佬,不对UDP做出升级呢?
最初UDP诞生于上个世纪70年代,当时设计成2个字节64KB,是比较充裕的.
但升级报头,不是技术上的难题,更多的上政治上的难题.
比如 : 单个主机升级,是没有意义的,需要通信双方同时升级,否则可能会解析错误.
由于UDP是系统内核实现的,假如全世界都是用同一个操作系统,升级的成本相对来说会小一点.但市面上存在各种各样的操作系统,如果某个操作系统升级了,其他系统没有升级,意味着这个升级的系统和其他系统不能兼容了 ,站在普通用户的角度,就是这个升级的系统不好,不能和别的系统UDP通信,可能这个升级的操作系统就会因此失去一些市场份额.

2.2 UDP校验和

数据在网络传输过程中,是可能会"出错"的.
比如:发送方发送的数据是 : 010101
接收方收到的数据是 : 011101

2.2.1 : 为什么会出现传输出错的情况??

因为这些二进制数据,在传输的过程中是通过电信号/光信号/电磁波进行传输的.
就有可能受到外界环境的干扰.
比如:电信号表示 0 , 1 ,低电平表示 0, 高电平表示1 ,此时传输的过程中,遇到一一个变化的磁场,此时就可能把本来的低电平变成高电平/高电平变成低电平

2.2.3: 对数据进行校验的方式

在UDP中,校验和只能做到发现是否有错,而不能纠错.
校验和就是拿着数据/数据的一部分 进行一系列计算,得到结果.如果数据部分发生改变,此时得到的结果就会不一样
A : 发送方
根据发送的内容得到一个校验和.
在这里插入图片描述B:接收方
在这里插入图片描述

校验和出错/数据内容出错,最终B这边感受到的都是算出来的校验和2 和收到的校验和不一致,B只要发现两个校验和对不上,就会把这个数据丢弃掉

CRC

CRC是一个简单粗暴的计算校验和的方式,循环冗余校验
设定2个字节的变量,把数据的每个字节取出来,往这边变量上累加,如果结果溢出,超过2个字节,溢出部分就会舍弃
在这里插入图片描述

md5

md5 的特点:
(1) 定长 : 无论输入的内容是多长,得到的结果,一定是固定长度的;
(2)分散 : 输入的内容只要改变一点点,最终结果差异都会很大.(比特翻转,往往只是变化了一点点)
因为分散特性,非常适合做字符串 hash 算法
(3)不可逆 : 通过原数据,计算 md5 ,成本很低,但通过 md5 ,还原成原来的数据,成本很高,仅仅理论上可行)
用于加密的领域
使用 md5 的场景,就没想着要解密.

三 : UDP的适用场景

UDP现在最主要的用途,就是应用于性能要求比较高(传输快),但对于可靠性要求不高的场景.
比如 : 分布式系统中,多个服务器之间的网络通信(多个机器在同一个机房里,网络结构简单,带宽充裕,也不太容易出现丢包的情况)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/660181.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】A01、性能优化-参数监控分析

1、参数监控 1.1、MySQL command 查看 mysql>SHOW STATUS; (服务器状态变量,运行服务器的统计和状态指标) mysql> SHOW VARIABLES;(服务器系统变量,实际上使用的变量的值) mysql> SHOW STATUS …

一曲《少年中国说》令人情怀激荡

今天,作为四川籍人的本“人民体验官”,将充满自豪感地推广人民日报官方微博文化产品《看我中国少年!川传学子热血合唱少年中国说》。 图片:来源“人民体验官”推广平台 人民微博说:“百年前,梁启超先生一篇…

Mellanox网卡打流命令ib_write_bw执行遇到Couldn‘t listen to port 18515原因与解决办法?

要点 要点: ib默认使用18515命令 相关命令: netstat -tuln | grep 18515 ib_write_bw --help |grep port# server ib_write_bw --ib-devmlx5_1 --port 88990 # client ib_write_bw --ib-devmlx5_0 1.1.1.1 --port88990现象: 根因&#xf…

OpenFeign的超时控制

OpenFeign的超时控制 本文将从以下几个方面记录自己学习的OpenFeign超时控制笔记 何为超时控制有哪几类超时控制OpenFeign默认的超时控制规则如何自定义超时控制 1.何为超时控制 通过实操加上官网介绍个人理解为当一个微服务调用另一个微服务时,发送请求后超过设…

S参数定义

S11:端口2匹配时,端口1的反射系数; S22:端口1匹配时,端口2的反射系数; S12:端口1匹配时,端口2到端口1的反向传输系数; S21:端口2匹配时,端口1到端口2的正向传输系数; 对于互易网络,有:S12S21; 对于对称网络,有:S11S22 对于无耗网络,有:(S11)2(S12)21

基于ssm+vue开放式教学评价管理系统【ppt·代码·文档报告】

项目演示视频 项目名称:开放式教学评价管理系统 系统介绍:本系统是通过java的SSM框架来实现的,前端采用vue框架进行实现 管理员通过登录进入到系统操作界面,结合需求可以对个人信息进行在线修改维护,也可结合需求进行…

2024年这样做抖音小店,操作简单,起店稳定!

大家好,我是电商糖果 不少朋友说跟糖果抱怨过,说抖音小店越来越难做了。 平台的规则越来越多,商家运营店铺的时候,很容易出现违规预警。 糖果是2020年开始做的抖音小店,现在已经经营了多家小店。 实话实说确实比之…

java 远程debug

java -agentlib:jdwptransportdt_socket,servery,suspendn,address50050 -Xmx1536m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./ -jar ${JAR_NAME} >/dev/null 2>&1 &参数说明 -agentlib:jdwptransportdt_socket,servery,suspendn,address50050: 这个参数…

C语言中的趣味代码(五)

我想以此篇结束关于C语言的博客,因为在C语言拖得越久越不能给大家带来新的创作,在此我也相信大家对C语言已经有了一个新的认知。进入正题,在这一篇中我主要编一个“英语单词练习小程序”来给大家展开介绍,从测试版逐步改良&#x…

H3C无线控制器查看AP版本是否自动升级

全部网络--无线配置--AP管理--AP全局配置 如果开启了AP版本升级,那么当升级AC无线控制器的时候 , AP也会同时进行升级 命令行: [H3C]wlan auto-ap enable 自动注册 [H3C]wlan auto-persistent enable 自动固化 [Sysname] …

环境变量(进程第3篇)【Linux复习篇】

目录 1、什么是环境变量? 1)PATH环境变量 2)怎么查看所有的环境变量? 2、什么是命令行参数? 3、什么是本地变量和内建命令? 1、什么是环境变量? 环境变量是系统提供的多组name value的形式的…

构建下一代去中心化应用:基于BASE链的DApp开发

在区块链技术的快速发展中,去中心化应用(Decentralized Applications,DApps)已经成为了一个热门话题。这些应用通过区块链技术,实现了去中心化、透明、安全和不可篡改的特性,为用户提供了全新的体验和解决方…