计算机网络-传输层(UDP协议报文格式,伪首部,UDP校验过程)

news2024/11/15 13:38:59

文章目录

  • 1. UDP协议
    • UDP报文格式
    • UDP校验过程

1. UDP协议

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。

UDP的主要特点:

  1. UDP是无连接的,减少开销和发送数据之前的时延。

  2. UDP使用最大努力交付,即不保证可靠交付。

  3. UDP是面向报文的,适合一次性传输少量数据的网终应用。

    应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。

    UDP报文太长,会导致数据报在网络层分片,导致效率低,
    UDP报文太低,导致网络层的IP报头比有效载荷长很多,导致效率下降。

    所以应用层传输的数据报长度需要适中。

  4. UDP没有拥塞控制,适合很多实时应用。(视频会议)

  5. UDP首部开销比较小8B,TCP首部固定字段20B(不包括选项字段和填充字段)

UDP报文格式

在这里插入图片描述
16位UDP长度:代表的是UDP报文的整个长度
16位UDP检验和:检验整个UDP数据报是否出错。出错就丢弃报文。

UDP报文分用时,找不到对应的目的端口号,就丢弃报文。
并给发送方发送ICMP端口不可达差错报告报文.

UDP校验过程

在这里插入图片描述

伪首部:

  1. 在计算校验和的时候才出现,不向上传递或向下传递
  2. 伪首部的第三个字段为全0
  3. 第四个字段17代表,封装UDP报文的IP数据报首部协议字段是17。
  4. UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。

伪首部校验过程:
在这里插入图片描述
上图中每一行都是4字节。有时UDP报文数据部分不一定是4字节的整数倍,需要在后面填充0到4字节整数倍。

UDP校验在发送方:

  1. 填充伪首部
  2. 校验和字段全部填写为0(初始化校验和)
  3. 数据部分填充到4字节的倍数。
  4. 伪首部+首部+数据部分采用二进制反码求和。
  5. 将求和结果求反码填充到校验和字段
  6. 去掉伪首部,发送数据

UDP校验在接收方:

  1. 填上伪首部
  2. 伪首部+首部+数据部分采用二进制反码求和。(此时校验和字段不是0)
  3. 结果二进制序列全为1则无差错,否则丢弃数据报或交给应用层附上出差错的警告。差错控制由应用层负责。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webpack5 Preload / Prefetch解决按需求加载速度

代码分离 | webpack 中文文档webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换(transform)、打包(bundle)或包裹(pa…

vue_mixin混入

目录官网基本概念什么是Mixin混入和组件的区别混入和vuex的区别mixin的优点mixin的缺点使用mixin语法mixin局部混入-mixins全局混入-Vue.mixin方法(不推荐)mixin与组件合并逻辑[1]data数据总结举例说明[2]methods方法总结举例说明[3]生命周期函数总结举例说明问题:一…

Linux 进程信号

目录 一.信号 1.介绍 2.信号概念 3.查看系统定义的信号列表 4.信号处理的方式 二.信号产生前 1.用户层产生信号的方式 三.产生信号 1.通过按键产生信号 2.调用系统函数向进程发信号 (1)kill (2)raise (…

大学生WEB前端静态网页——旅游介绍35页 响应式,

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游景点介绍 | 旅游风景区 | 家乡介绍 | 等网站的设计与制作| HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 CSS&…

Android 高通 Launcher3 添加桌面快捷方式

1、最近接到产测一个需求,需要在首页WorkSpace添加产测apk快捷方式,于是乎我去查看了一下Android12的源码,包名/build3/zm/Em_TK1080/EM_TK1080_prj/EM_TK1080_prj/qssi12/packages/apps/Launcher3/res/xml 主要修改文件 default_workspace…

TCP程序设计基础

TCP网络程序设计是指用Socket类编写通信程序。利用TCP协议进行通信的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序。两者的功能和编写方法不大一样。服务器端与客户端的交互过程如图所示: 1. InetAddress类 java.…

用 Kafka + DolphinDB 实时计算K线

Kafka 是一个高吞吐量的分布式消息中间件,可用于海量消息的发布和订阅。 当面对大量的数据写入时,以消息中间件接收数据,然后再批量写入到时序数据库中,这样可以将消息中间件的高并发能力和时序数据库的高吞吐量联合起来&#xf…

关于报表打印

1 分页策略 分页与打印时密切相关的,皕杰报表提供了四种分页策略,即按纸张大小分页、按数据行数分页、按数据列数分页、用户自定义分页和不分页。分页由2个因素来控制,一个每个页面的大小,另外一个是分页顺序(打印顺序…

如何将抓取下来的unicode字符串转换为中文

如果抓取的数据是json数据,那么直接将抓取的数据用json格式输出出来就行了。如下: response requests.get(url, headersheaders).json()那么大家遇到如下的unicode字符串的是如何解决的呢?如下图所示: 相信大家遇到这种一定会抓狂吧&#…

一种改进Harris算子的角点特征检测研究-含Matlab代码

⭕⭕⭕⭕ 目 录 ⭕⭕⭕⭕✅ 一、引言✅二、Harris角点检测算法✅三、角点检测实验验证✅四、参考文献✅五、Matlab代码获取✅ 一、引言 将图像中灰度变化剧烈或者在图像边界上曲率变化较大的点称为角点。角点检测对于工件图像的特征点定位有着重要作用,在进行工件的…

MySQL高级学习笔记(一)

文章目录MySQL高级学习笔记(一)1.索引1.1索引概述1.2索引优势劣势1.3索引结构1.3.1BTREE 结构1.3.2BTREE 结构1.3.3MySQL中的BTree1.4索引分类1.5索引语法1.5.1 创建索引1.5.2 查看索引1.5.3 删除索引1.5.4 ALTER命令1.6 索引设计原则2.视图概述2.1创建或者修改视图2.2查看视图…

【python3】5.正则表达式

本学习内容总结于莫烦python:5.正则表达式 https://mofanpy.com/tutorials/python-basic/interactive-python/regex5.正则表达式 本章较为重要,单独拿出来成章了 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 …

【数据结构】栈和队列的实现(C语言)

前言 栈和队列都是重要的线性结构,即在使用层面上收到限制而发挥特殊作用的线性表。掌握这两种结构在不同情景下亦会发挥重要作用。 栈 定义 栈保持着后进先出的原则,正因如此在插入数据的时候要求只能从一段插入,称为栈顶;相反另…

Arduino与Proteus仿真实例-电子相册仿真

电子相册仿真 本次实例将仿真如何从SD卡读取BMP格式图像并在ILI9341驱动器的LCD显示屏上显示。 1、仿真电路原理图 在仿真电路原理图中,SD卡通过SPI方式连接,ILI9341 LCD显示屏也是通过SPI方式连接。SD卡的CS引脚连接Arduino Mega2560的SS引脚(Pin10),显示屏的CS引脚连接…

竞赛——【蓝桥杯】2022年11月第十四届蓝桥杯模拟赛第一期Java

1、二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。 十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。 请问十进制整数 2022 在二进制中是几位数? 答案…

数据管理技术的发展经历了哪三个阶段

数据管理技术是指对数据进行分类、组织、编码、查询和维护,它是数据处理的中心问题; 随着计算机技术的不断发展,在应用需求的推动下,在计算机硬件、软件发展的基础上数据管理技术经历了人工管理、文件管理、数据库管理3个阶段。每…

CircRNA+代谢组如何冲击22分高分文章?

发表期刊:Cell Metabolism 影响因子:22.415 发表时间:2019年5月30日 合作单位:中国科学技术大学 Biotree协助客户中国科学技术大学吴缅教授和安徽医科大学胡汪来教授及其研究团队在国际顶尖期刊《Cell Metabolism》上发表名为…

跑通yolox-s官方源码(可与yolov5s做对比试验)

目录(一)一些参考链接(二)YOLOX训练自己的数据集,修改相应代码0. 自己的数据集文件夹排布1. 修改类别标签和数量1.1 修改类别标签 yolox/data/datasets/voc_classes.py1.2 修改类别数量 exps/example/yolox_voc/yolox_…

Quartus 实例应用(2)——创建设计工程

Quartus II 简易教程一、概念回顾二、创建设计工程2.1 创建工程2.2 新建HDL文件三、编译工程四、下载一、概念回顾 什么是综合?什么是设计? 答:综合就是编译,设计就是布局布线。 二、创建设计工程 2.1 创建工程 打开Quartus I…

用vuex对token/refresh_token 进行管理以及处理token过期问题

这里介绍对token的处理 问题1:token数据或者其他数据,存在vuex仓库中,刷新会丢失状态 。 问题2:数据只存在本地,数据变化了,相关的视图并不会更新。 Vuex 容器中的数据只是为了方便在其他任何地方能方便的获…