UDP的报文结构和注意事项

1.UDP的报文结构

UDP的报文结构如图:
在这里插入图片描述
画成一行会比较好理解:

在这里插入图片描述
主要由两部分组成:UDP报头和UDP载荷。
UDP载荷其实就是数据。

UDP报头分为四个部分,每个部分占两个字节。

  • 源端口
  • 目的端口
  • 报文长度
  • 校验和

下面介绍报头里各个部分的作用。

1.1源端口和目的端口

源端口和目的端口各占2字节(Byte),端口号范围:0~65535
比如:源端口是3306,目的端口是8866。
在这里插入图片描述
就表示从数据从3306这个端口发送到8866这个端口,通过这两个端口就可以知道数据从哪个进程发送到哪个进程。

注意:上图的MySQL和IDEA两个端口是随便给的,跟实际的不一样。

1.2报文长度

报文的长度也用2个字节表示,范围是0~65535,单位是字节(Byte)
一般我们都说UDP最大报文长度是64KB (65536B),实际上是65535B

所以UDP能传送的数据比较有限,那为什么不把这个报文长度改成用4个字节8个字节呢或者更大呢?
在这里插入图片描述

也不是不行,只是影响太大。

因为世界上有那么多主机、服务器、和其他设备。
如果其中有一些主机或者服务器把系统升级,然后按照新的UDP协议进行通信,但是其他主机或者服务器没升级系统(用的还是老的UDP协议),可能通信就会现问题了。
世界上那么多设备,将每个设备的系统都升级,这是很不现实的操作。

采用新UDP协议的主机发送数据报给采用旧UDP协议的主机
在这里插入图片描述
解析数据:
在这里插入图片描述
解析出错:
在这里插入图片描述

1.3校验和

网络上传输数据是有可能发生数据错误的,可能因为环境(磁场、电磁波等)的影响,导致数据发生了错误,1变0,0变1,这时候对方收到的数据就是错误的。
在这里插入图片描述
校验和就是用来检验数据是否发生错误的。

先说一段小故事,体会体会校验和的作用🙃

小红和小明是男女朋友关系,有一天小红叫小明去买菜,如图:
在这里插入图片描述
小红吩咐了,小明也答应了,结果:

在这里插入图片描述
小红继续吐槽:
在这里插入图片描述
小明屁颠屁颠又跑到菜市场把西红柿买回来:
在这里插入图片描述
在这里插入图片描述
完结

  • 在故事中小红发现小明只买了3样菜,本来是4样的。
    然后小红很友好地叫小明去买之前没买的西红柿。
  • 这个故事中的校验和其实就是菜的样数。

校验和是数据经过校验和算法得到的一个数值,用来校验数据是否出错。
如图:
在这里插入图片描述
计算校验和:
在这里插入图片描述

比较:
在这里插入图片描述

不相等:
在这里插入图片描述
校验和不相等,说明发送方的数据和接收方的数据一定不一样。


但是校验和相等,发送方和接受方的数据不一定相等。
比如:
在这里插入图片描述
发送方和接收方的数据不一样,但是经过校验和算法计算,校验和有可能是一样的。
UDP用的算法是CRC算法。

2.注意事项

在使用UDP编程的时候,数据报不能太长。
数据报太长会导致很多问题。
比如:
数据报太长会导致数据报可能会被分片传输,重组的时候,某部分数据报丢失或者损坏都会导致重组失败。

如果UDP数据报太大,可以选择如下做法:

  • 可以把数据报分成各个小的数据报
  • 使用TCP传输协议

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID》

论文地址:https://arxiv.org/pdf/2206.02066.pdf 源码地址:https://github.com/XuJiacong/PIDNet 概述 针对双分支模型在语义分割任务上直接融合高分辨率的细节信息与低频的上下文信息过程中细节特征会被上下文信息掩盖的问题,提出了一种新的…

【操作系统复习】第5章 存储器管理 2

分页存储管理方式 页号P ◆12-31位:20位 ◆地址空间最多允许有1M(2 20)页 位移量W(页内地址) ◆0-11:12位 ◆每页大小为4KB (2 12) 对某特定机器,地址结构是一…

Apache Flink (最新版本) 远程代码执行

路虽远&#xff0c;行则将至&#xff1b;事虽难&#xff0c;做则必成 Apache Flink < 1.9.1(最新版本) 远程代码执行 CVE-2020-17518 漏洞描述 近日,有安全研究员公开了一个Apache Flink的任意Jar包上传导致远程代码执行的漏洞. 漏洞影响 Apache Flink < 1.9.1(最新…

《最强Android书 架构大剖析》读书笔记

文章目录 第一章 Android 体系结构的变革之路1.2 Android系统源码目录与Linux的异同Android的框架原生二进制可执行文件Android 的原生库核心(core)库用以支持框架的库硬件抽象层Linux内核不带上层 UI界面的Android 第二章 Android 的分区和文件系统2.1 分区架构实验:从设备中获…

C++的智能指针

文章目录 1. 内存泄漏1.1 什么是内存泄漏1.2 内存泄漏分类 2. 为什么需要智能指针3. 智能指针的使用及原理3.1 RAII3.2 使用RAII思想设计的SmartPtr类3.3 让SmartPtr像指针一样3.3 SmartPtr的拷贝3.4 auto_ptr3.5 unique_ptr3.6 shared_ptr3.6.1 shared_ptr的循环引用3.6.2 wea…

axios使用笔记

文章目录 基本语法其他语法defaults config作用案例 创建实例对象作用案例 拦截器 interceptor&#xff08;AOP&#xff09;请求取消&#xff08;节流&#xff09; 基本语法 <!doctype html> <html lang"en"> <head><meta charset"UTF-8&…

可视化工作流管理

​本场景是可视化工作流&#xff0c;通过可视化的精益看板将价值流进行可视化&#xff0c;通过精益思维消除瓶颈、加速流动&#xff0c;提升效率。 创建工作流任务看板 •通过Leangoo可视化工作流项目模板&#xff0c;创建一个工作流看板。 •通过看板&#xff0c;我们可以将…

「欧拉定理」[SDOI2008]仪仗队

[SDOI2008]仪仗队 https://ac.nowcoder.com/acm/problem/20313 题目描述 作为体育委员&#xff0c;C君负责这次运动会仪仗队的训练。 仪仗队是由学生组成的N * N的方阵&#xff0c;为了保证队伍在行进中整齐划一&#xff0c;C君会跟在仪仗队的左后方&#xff0c;根据其视线所…

【计算机网络】图解内容分发网络 CDN

【计算机网络】图解内容分发网络 CDN 参考资料&#xff1a; 用了CDN就一定比不用更快吗&#xff1f; 什么是内容分发网络 高性能利器&#xff1a;CDN我建议你好好学一下&#xff01; 文章目录 【计算机网络】图解内容分发网络 CDN一、CDN 概述1.1、什么是 CDN1.2、为什么需要 …

【Java笔试强训 16】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、判断题 &#x1f525;完全数计…

shell的基础学习三

文章目录 一、Shell 流程控制二、Shell 函数三、Shell 输入/输出重定向四、Shell 文件包含总结 一、Shell 流程控制 for 循环 与其他编程语言类似&#xff0c;Shell支持for循环。 for循环一般格式为&#xff1a; while 语句 while 循环用于不断执行一系列命令&#xff0c;也…

02-Vue技术栈之基础篇(下)

目录 1、class 与 style 绑定1.1 理解1.2 class 绑定1.3 style绑定1.4 代码示例 2、条件渲染2.1 v-if2.2 v-show2.3 注意事项2.4 代码示例 3、列表渲染3.1 基本列表3.2 key的原理3.2.1 虚拟DOM中key的作用&#xff1a;3.2.2 对比规则&#xff1a;3.2.3 用index作为key可能会引发…

IPsec中IKE与ISAKMP过程分析(主模式-消息1)

IPsec协议族中IKE&#xff08;Internet Key Exchange&#xff09;是一种基于ISAKMP的协议&#xff0c;它为建立IPSec安全通信隧道提供了一种无痕密钥交换的机制。简单来说&#xff0c;IKE就是ISAKMP的扩展&#xff0c;为ISAKMP提供了更加高效、灵活和安全的密钥协商机制。 GMT …

ChatGPT实现HTML网页文本提取

网页自动化工具 既然ChatGPT对于编程语言有非常强大的理解能力&#xff0c;那么它是否可以用来自动化地处理网页呢&#xff1f;答案是肯定的。ChatGPT可以使用机器学习算法来识别网页元素中的文本&#xff0c;并抽取出有用的信息。 例如我们提供一段层数比较多的相对来说较为…

继续科普:ChatGPT 最新写论文使用方法

这两天发现了几个国内就能用的ChatGPT,不需要魔法! 给大家推荐两种方法,大家自行选择: 1、电脑端安装VSCode软件,使用GPT插件: 优点: 无需魔法、无需付费、软件简单易用(稍懂电脑就会用) 缺点: ① 只支持电脑端,不支持手机:软件安装虽简单,但不一定所有人都…

java基础知识——22.lambda表达式

这篇文章&#xff0c;我们来讲一下java的lambda表达式 目录 1.初识lambda表达式 2.lambda表达式介绍 2.1 函数式编程 2.2 lambda表达式的具体格式 2.3 Lambda表达式的好处 2.4 Lambda的省略写法 1.初识lambda表达式 首先&#xff0c;我们来看一下lambda表达式的应用 下…

CKA/CKS/CKAD认证考试攻略

什么是CKA考试&#xff1f; CKA认证考试是由Linux基金会和云原生计算基金会(CNCF)创建的&#xff0c;以促进Kubernetes生态系统的持续发展。该考试是一种远程在线、有监考、基于实操的认证考试&#xff0c;需要在运行Kubernetes的命令行中解决多个任务。CKA认证考试是专为Kube…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈

Docker 我们发现在微服务中有一个令人头疼的问题——部署&#xff0c;用Docker去解决这个部署难题 &#xff08;一&#xff09;初识Docker-什么是docker 1、项目部署的问题 2、Docker 扔到一台机器上&#xff0c;它们的依赖难道没有干扰吗&#xff1f;不会&#xff0c;docke…

组合导航卡尔曼滤波几个杂项

1.组合导航卡尔曼滤波噪声协方差矩阵调参 在组合导航卡尔曼滤波算法中&#xff0c;主要涉及两个噪声协方差矩阵&#xff0c;过程噪声协方差矩阵Q&#xff0c;测量噪声协方差矩阵R&#xff0c;具体来说&#xff1a; R表示测量噪声协方差&#xff0c;它是一个数值&#xff0c;这…

低代码平台很赞,用2个小时,搭出1套应用

最近低代码很火&#xff0c;到处都是低代码的尝试贴&#xff0c;笔者今天也决定深入体验一下&#xff0c;感受它的便捷程度。 在案例开始之前&#xff0c;我们先来聊聊概念。 一、低代码 低代码实质上并不是一个新颖的话题&#xff0c;也不是最近才有的技术突破和创新&#xf…
最新文章