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

网络原理一>UDP协议详解

UDP和TCP都是应用层中的重要协议,如果做基础架构开发,会用得多一些。  

这一篇我们先简单聊一下的UDP

TCP格式呈现:

我们知道UDP是一种无连接,面向数据报,全双工,不可靠传输特性的网络协议。  

 基本格式如图:  

可以这样看: 

 也可以这样看:


1.源端口和目的端口:
我们知道端口号标识了一个主机上进行通信的不同的应用程序,在应用层上的
要想进行一次通信,就必须涉及 “五元组”--->源端口,目的端口,源IP,目的IP,协议号 
 这里的源端口和目的端口号,就是应用层的核心内容

2.16位UDP长度: 

记录整个UDP数据报的长度,占两个字节

整个UDP数据报长度是64KB。


3.UDP缺点:

我们知道UDP数据报总长度才64kb,现在随便一个图片都好几个MB,虽然UDP传输效率很快,但是存储空间太小。 


我们如何传输更大的数据呢? 

一般有两个解决方式: 

方式一:应用层代码做拆包操作 

具体就是,把多个应用层数据报,拆分成多个UDP数据包来传输 

方式二:使用没有长度限制的TCP网络协议 


4.校验和: 

校验数据是否修改的手段 

UDP的校验和,是为了防止,传输过程中的比特翻转

比特翻转就是传输过程中,光电信号或者电磁波二进制信号,从0->1, 1->0 


5.怎么用校验和来判断是否发生比特翻转呢? 

首先发送之前,通过数据包中的数据,先计算好一个校验和然后把校验和连带整个数据报的数据都发送到对端; 对端通过接受到的数据,再算一遍校验和,一比对,如果发现校验和不一样就发送了比特翻转,就丢弃这个UDP数据报。    

补:校验和是通过CRC (循环冗余校验)的简算法来校验的,会有比特翻转其实也是小概率事件。 


6.面试时UDP 2种总长度表达:

总长度上限达64kb

UDP携带的荷载长度达64kb上限

相关文章:

网络原理一>UDP协议详解

UDP和TCP都是应用层中的重要协议,如果做基础架构开发,会用得多一些。 这一篇我们先简单聊一下的UDP TCP格式呈现: 我们知道UDP是一种无连接,面向数据报,全双工,不可靠传输特性的网络协议。 基本格式如图…...

MySQL的小问题

编码问题 不管官方使用什么编码:latin1、gbk、utf8、utfmb4。统一使用utfmb4 MySQL中的utf8并不是utf-8,它省略了一个字节,只是用三个字节存储所有的符号,utfmb4才是utf-8 远程登录问题: MySQL官方默认没有启动远程…...

Mac——Docker desktop安装与使用教程

摘要 本文是一篇关于Mac系统下Docker Desktop安装与使用教程的博文。首先介绍连接WiFi网络,然后详细阐述了如何在Mac上安装Docker,包括下载地址以及不同芯片版本的选择。接着讲解了如何下载基础镜像和指定版本镜像,旨在帮助用户在Mac上高效使…...

FastApi Swagger 序列化问题

问题 错误现象: fastapi的 swagger 界面无法正常打开控制台报错:raise PydanticInvalidForJsonSchema(fCannot generate a JsonSchema for {error_info}) 详细报错: File "d:\Envs\miniconda3\envs\xdagent\lib\site-packages\pydan…...

《机器学习》——sklearn库中CountVectorizer方法(词频矩阵)

CountVectorizer方法介绍 CountVectorizer 是 scikit-learn 库中的一个工具,它主要用于将文本数据转换为词频矩阵,而不是传统意义上的词向量转换,但可以作为词向量转换的一种基础形式。用于将文本数据转换为词频矩阵,它是文本特征…...

UML系列之Rational Rose笔记三:活动图(泳道图)

一、新建活动图(泳道图) 依旧在用例视图里面,新建一个activity diagram;新建好之后,就可以绘制活动图了: 正常每个活动需要一个开始,点击黑点,然后在图中某个位置安放,接…...

Java面向对象面经总结

目录 面向对象基础 面向对象与面向过程的区别 创建一个对象用什么运算符,对象实体与对象引用的区别 对象相等和引用相等的区别 构造方法的特点,是否可被重写? 面向对象三大特征 封装 继承 多态 接口和抽象类的共同点和区别 深拷贝…...

红队工具使用全解析:揭开网络安全神秘面纱一角

红队工具使用全解析:揭开网络安全神秘面纱一角 B站红队公益课:https://space.bilibili.com/350329294 学习网盘资源链接:https://pan.quark.cn/s/4079487939e8 嘿,各位网络安全爱好者们!在风云变幻的网络安全战场上&am…...

OpenLinkSaas 2025年第一季度开发计划

OpenLinkSaas在2025的发展方向是强化基础设施和研发协作,弱化管理相关的功能。 为了根据参与到软件研发的整个流程,OpenLinkSaas会增加一系列的基础设施项目,并和OpenLinksaas进行深度整合。 目前计划中的基础设施: 链路追踪系统(OpenDragonF…...

【python小工具】怎么获取视频的关键帧频率?

使用 FFmpeg 提取 MP4 视频的关键帧并计算关键帧频率可以按以下步骤进行: 提取关键帧: 使用 FFmpeg 提取视频中的关键帧可以通过以下命令实现: ffmpeg -i input.mp4 -vf "selecteq(pict_type,I)" -vsync vfr keyframes_%03d.jpg…...

数字孪生可视化在各个行业的应用场景

数字孪生技术,作为新一代信息技术的集大成者,正在深刻改变着我们对物理世界的认知和管理方式。本文将探讨数字孪生可视化在不同行业的应用场景,以及它们如何赋能行业数字化转型。 1. 智慧城市与交通 在智慧城市领域,数字孪生技术…...

Python实现windows自动关机

python <shut.py> import ntplib from datetime import datetime, timezoneimport time import osimport easygui# net time def get_network_time():time.sleep(3)"""从网络时间服务器获取时间"""client ntplib.NTPClient()response c…...

Go可以使用设计模式,但绝不是《设计模式》中的那样

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

【C语言】_使用冒泡排序模拟实现qsort函数

目录 1. 排序函数的参数 2. 排序函数函数体 2.1 比较元素的表示 2.2 交换函数Swap的实现 2.3 排序函数bubble_sort的实现 3. 测试整型数据排序 3.1 整型数据比较函数cmp_int的实现 3.2 整型数据排序后输出函数print_int的实现 3.3 整型数据测试函数test_int的实现 3…...

openCvSharp 计算机视觉图片找茬

一、安装包 <PackageReference Include"OpenCvSharp4" Version"4.10.0.20241108" /> <PackageReference Include"OpenCvSharp4.runtime.win" Version"4.10.0.20241108" /> 二、准备两张图片 三、编写代码 using OpenCv…...

从零开始开发纯血鸿蒙应用之处理外部文件

从零开始开发纯血鸿蒙应用 一、外部文件二、外部文件的访问形式1、主动访问2、被动访问 三、代码实现1、DocumentViewPicker2、Ability Skills3、onNewWant 函数4、冷启动时处理外部文件 一、外部文件 对于移动端app来说&#xff0c;什么是外部文件呢&#xff1f;是那些存储在…...

Spring中三级缓存详细讲解

1、Spring三级缓存是什么&#xff0c;过程是怎么样的&#xff1f; Spring 中的三级缓存主要用于单例 Bean 的生命周期管理&#xff0c;特别是在循环依赖时&#xff0c;它通过不同阶段暴露 Bean 实例来确保依赖注入的顺利完成。缓存的内容如下&#xff1a; 一级缓存 (singleton…...

论文阅读:《Whole-animal connectomes of both Caenorhabditis elegans sexes》

一 论文整体概述 论文下载链接&#xff1a;《Whole-animal connectomes of both Caenorhabditis elegans sexes》 补充信息和额外数据&#xff1a;https://www.nature.com/articles/s41586-019-1352-7 1. 作者期刊背景 该论文由Scott W. Emmons&#xff0c;David H. Hall等…...

嵌入式开发之STM32学习笔记day03

STM32之ADC&#xff08;模拟数字转换器&#xff09; 1 ADC简述2 ADC转换时间3 ADC转化结果存放机制4 ADC转化结果存放机制5 ADC电压转换 1 ADC简述 ADC&#xff08;Analog-Digital Converter&#xff09;模拟—数字转换器&#xff1b;ADC可以将引脚上连续变化的模拟电压转换为…...

windows10 安装 Golang 版本控制工具g与使用

下载包&#xff1a;https://github.com/voidint/g/releases 解压&#xff0c; 并添加到环境变量 g 常用命令 查询当前可供安装的stable状态及所有的 go 版本 # stable 版本 g ls-remote stable# 所有版本 g ls-remote安装目标 go 版本1.23.4g install 1.23.4切换到已安装的…...

别再被芯片手册吓到!用74HC595手把手教你读懂时序图(附示波器实测波形)

从零破解74HC595时序图&#xff1a;示波器实战与代码调优指南 第一次翻开74HC595的数据手册时&#xff0c;那些纵横交错的箭头、虚线、时间参数让我彻底懵了。作为电子爱好者&#xff0c;我们常被告知"要严格按照时序图操作"&#xff0c;但没人告诉我们这些符号究竟对…...

Halcon点云拼接实战:如何用特征模板搞定3D扫描缺失问题?

Halcon点云拼接实战&#xff1a;特征模板技术在工业3D扫描中的应用 在工业检测和逆向工程领域&#xff0c;3D扫描常常面临一个棘手问题——单次扫描无法完整捕获复杂物体的所有表面细节。想象一下&#xff0c;当您需要检测一个汽车发动机缸体的内部结构&#xff0c;或者重建一…...

如何彻底解决Windows快捷键冲突:Hotkey Detective完整指南

如何彻底解决Windows快捷键冲突&#xff1a;Hotkey Detective完整指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是…...

Oracle错误代码实战指南:从ORA-00001到ORA-02899的快速排查手册

Oracle数据库错误代码实战排查指南&#xff1a;从原理到解决方案 1. 理解Oracle错误代码体系 Oracle数据库的错误代码体系采用"ORA-XXXXX"的格式&#xff0c;其中前五位数字代表特定错误类型。这些错误代码并非随机排列&#xff0c;而是按照功能模块进行了系统分类…...

113. 强制使用 Letsencrypt ECDSA 和 DNS-01 续期挑战的默认 HTTPS Rancher 证书

Environment 环境 2.9 Situation 地理位置A self-signed default Rancher certificate is currently used and will be migrated to a stronger Let’s Encrypt ECDSA-386 certificate using the DNS-01 renewal challenge. 目前使用自签名默认的牧场证书&#xff0c;并将通过…...

谷歌Gemini API 应用(二):多模态与安全实践

1. 多模态处理实战&#xff1a;当Gemini遇上图像与文本 第一次用Gemini Pro Vision分析自家猫咪照片时&#xff0c;我被它的理解能力惊到了——不仅能准确识别出"橘猫在抓沙发"&#xff0c;还能推断出"猫咪可能处于换牙期需要磨牙玩具"。这种图文结合的智能…...

像素皇城·灵蛇贺岁效果展示:红白机美学融合皇城大门的AI春联生成作品

像素皇城灵蛇贺岁效果展示&#xff1a;红白机美学融合皇城大门的AI春联生成作品 1. 项目概览 Pixel Couplet Gen是一款基于ModelScope大模型开发的创新型春联生成工具。与传统春联设计不同&#xff0c;我们大胆采用了8-bit像素游戏风格&#xff0c;将经典红白机视觉元素与中国…...

Wan2.2-I2V-A14B开源模型:支持LoRA微调的私有化训练环境准备

Wan2.2-I2V-A14B开源模型&#xff1a;支持LoRA微调的私有化训练环境准备 1. 镜像概述与核心特性 Wan2.2-I2V-A14B是一款强大的文生视频开源模型&#xff0c;本镜像为其提供了完整的私有化部署解决方案。基于RTX 4090D 24GB显存显卡深度优化&#xff0c;内置所有必要组件&…...

使用LaTeX撰写基于Lingbot-Depth-Pretrain-VitL-14的学术论文:图表与算法排版

使用LaTeX撰写基于Lingbot-Depth-Pretrain-VitL-14的学术论文&#xff1a;图表与算法排版 写学术论文&#xff0c;尤其是涉及深度学习和计算机视觉模型的&#xff0c;比如你正在研究的Lingbot-Depth-Pretrain-VitL-14&#xff0c;最头疼的往往不是实验本身&#xff0c;而是如何…...

告别运行库安装烦恼:如何用VisualCppRedist AIO一站式解决Windows依赖问题

告别运行库安装烦恼&#xff1a;如何用VisualCppRedist AIO一站式解决Windows依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 在使用Windows电脑时&…...