传输层协议-UDP数据报

news2024/11/13 11:29:14

UDP协议的特点

            面向数据报,无连接,不可靠,全双工

面向数据报:是指该协议在传输数据的时候使用的是数据报;

无连接:指的是发送数据不需要两个进程连接在一起,类似生活中我们发送短信,只要直到对方的电话号码就看也发送短信;TCP就是有连接的,只有连接,双方才能交换数据,就像我们打电话,需要对方接通才能说话;

不可靠:指的是我们只管把数据发送出去,不管对方是否一定能接收到;

全双工:指的通信双方都能接收数据和发送数据,在该连接通路,能同时双向传输数据;相对的概念是半双工:能双向传输数据,但是不能同时;

学习一个协议,首先要了解该协议的报文格式,当应用层的数据到达传输层之后,如果使用的是UDP传输协议,就会在数据前加上一个UDP报头,构成一个UDP数据报;

这是一张UDP数据报的报文格式:

但实际真正的在网络传输的过程过的UDP报文格式是这样的:

源端口号   

两个字节,用于记录发生数据的进程的端口号

目的端口号

两个字节,用于记录数据接收方的进程的端口号

UDP长度

UDP长度=报头长度+载荷长度,由于只占两个字节,最大就是65536,单位是字节,也就是64KB;也就是说一个UDP数据报最大就是64KB;但载荷的大小接近64KB,甚至大于64KB,就是考虑数据的传输方式,保证数据传输;

注意事项:

如果数据超过64KB,就需要在应用层将数据进行分段传输,在接收方手动拼接

UDP检验和

用于判断数据传输过程是否发生错误。数据报的记录方式无非就是光信号或者电信号或者电磁波,无论是哪种传输方式,都有可能在传输的过程收到外界的影响导致数据改变,发生错误,最常见的就是发生的比特翻转,0变成1,1变成0,高电平变成低电平,低电平变成高电平,检验和在数据传输之前通过某种计算方法,用载荷数据参与运算,等待数据到达目的端口时,在重新以这种方式计算,将再次计算获得校验和与报头的校验和比较,如果不同,证明传输过程数据发生改变,反之成立;

校验和

第一层:能够判断是否发生错误;(代价低)

第二层:能够直到时哪一位发生了错误,并且能够进行纠错:(代价大,消耗大)

UDP校验和做到了第一步,使用的CRC循环冗余校验,用一个16个比特位的变量,将载荷的每个字节单独拿出来累加,溢出直接舍弃,得到最后的校验和;无论是发生前计算的校验和还是接收到计算的校验和,我们都不关心校验和的具体数值,只关心前后校验和是否相同;

除了CRC,还可以使用md5,md5最初是使用在字符串hash算法,如果key是字符串,通过md5计算,实现字符串映射到数组下标;

md5特点:无论数据多大,通过计算得到的校验和都是定长的,而且只要稍微改变一点,得到的数值就会发生很大的变化,使得能够更加精确快速的判断两个数据是否不同;

md5解密实际就是一个hash表记录了一些常用的字符串以及对应加密后的数值,解密实际就是查表,常用的很容易解密,不常用的就解密不了,md5适合用在只是加密,不解密的场景像银行的密码库记录的是你的密码加密后的数据,不是你真正的密码,每当你是输入密之后,就会通过md5加密计算,再和数据库中的数值比较;

UDP协议的主要用途

高性能传输,可靠性要求不高的场景。像分布式系统,多个服务器之间的通信,多个机器在同一个机房,网络结构简单,带宽充裕;

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

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

相关文章

代码随想录跟练第九天——LeetCode 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项

拔了智齿后,好久没有总结了,先补一点 232.用栈实现队列 力扣题目链接(opens new window) 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- …

解锁App推广新姿势,Xinstall带你玩转投放查看

在移动互联网时代,App推广和运营成为了各大企业和开发者关注的焦点。然而,在这个过程中,推广者常常面临一些痛点,比如无法实时查看投放效果、数据不透明、难以精准定位目标用户等。这些问题不仅影响了推广效果,还可能导…

这些网络设备知名厂商你都不知道?白干这行了

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 你们好啊,我的网工朋友。 信息技术的快速发展,网络行业已经成为推动全球经济和社会进步的重要力量之一。无论是企业还是个…

CI/CD实践(五)Jenkins Docker 自动化构建部署Node服务

微服务CI/CD实践系列: 微服务CI/CD实践(一)环境准备及虚拟机创建 微服务CI/CD实践(二)服务器先决准备 微服务CI/CD实践(三)gitlab部署及nexus3部署 微服务CI/CD实践(四&#xff09…

Linux驱动学习之input子系统

简介 input 子系统就是管理输入的子系统,和pinctrl、gpio 子系统一样,都是 Linux 内核针对某一类设备而创建的框架。按键、鼠标、键盘、触摸屏等都属于输入设备,linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本…

day44——面向对象特征

一、封装 1.1 面向对象的三大特质 封装、继承、多态,如果问有四大特征,可以外加一个抽象 封装:将实现同一事物的所有的属性(成员变量)和行为(成员函数)封装到一个整体,我们称之为…

【Datawhale AI夏令营】从零上手CV竞赛Task2

文章目录 前言一、YOLO是什么?二、YOLO的历史三、性能指标四、 性能指标计算公式五、性能优化总结 前言 本文的Task2是对Task1的baseline代码进行优化的过程。 一、YOLO是什么? 首先简单介绍一下YOLO模型: 物体检测算法主要分为两类&#…

MSTP多实例生成树的配置

SW1配置: vlan batch 1 to 100 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 4094 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 2 to 4094 stp mode mstp //修改生成树的模式为…

【多线程】创建线程到底是多少种方法?

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 创建线程的两种方式总结(最官方)1.1 继承 Thread 类1.2 实现 Runnable 接口1.3 优先考虑使用第二种 —— …

三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附+源代码流程)

三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附源代码流程) 文章目录 三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附源代码流程)1. Spring Boot 是继续支持了 Spring 当中的注解的1.2 Spring 当中的 Component,Controller…

通过visual studio进行dump文件调试和分析

0、前言 很多时候程序crash之后需要分析原因。对于C/C程序,一般最常见的场景和方法就是根据dump文件进行分析。 1、分析的前提条件 进行dump文件分析,需要以下文件: 进程crash时产生的dump文件程序源码进程对应的程序exe文件编译exe文件时产…

QT Quick QML 添加海康威视SDK云台控制模块

文章目录 1. 配置海康威视 SDK 下载SDK文件移植工程文件添加 2. 函数调用流程接口参考代码 3. 代码后端核心代码前端核心代码 GitHub 源码: QmlLearningPro ,选择子工程 HkwsDemo.pro (暂未上传) QML 其它文章请点击这里: QT QUICK …

Monibuca实战:如何用Go语言打造高效的直播后端

简介 Monibuca(简称:m7s) 是一个开源的实时流媒体服务器开发框架,使用 Go 语言编写。 它的设计目标是提供一个高性能、可扩展、易于定制的实时流媒体服务器解决方案。 Monibuca 的核心理念是模块化,允许开发者根据需…

文件禁止外发的方法有哪些?企业如何禁止文件外发:六个控制文件外发的小窍门!

想象一下,企业信息如同珍贵的宝藏,而文件外发就像不经意间打开的后门,让宝藏暴露在风雨之中!今天,我们就来聊聊如何给这扇后门加上六道坚实的锁,确保企业信息的安全无虞。让我们一起探索六个控制文件外发的…

Mask R-CNN论文原理讲解

论文:arxiv.org/pdf/1703.06870 代码:maskrcnn-benchmark:Fast, modular reference implementation of Instance Segmentation and Object Detection algorithms in PyTorch. - GitCode Mask R-CNN简介 Mask R-CNN是何凯明大神的新作。Mask R-CNN是一种在有效检测…

武器弹药制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

武器弹药制造领域作为国防工业的重要组成部分,其数字化转型更是关乎国家安全与军事实力提升的关键。随着5G、物联网、大数据、云计算及人工智能等先进技术的融合应用,武器弹药制造5G智能工厂物联数字孪生平台应运而生,正逐步成为推进制造业数…

分享5款支持论文写作网站先稿后付的网站!

在当今学术研究和学术写作领域,AI论文写作工具已经成为不可或缺的助手。这些工具不仅能够提高写作效率,还能帮助研究人员生成高质量的论文内容。特别是那些提供“先稿后付”服务模式的网站,更是为用户提供了极大的便利和保障。以下是五款值得…

记录|SPC公式小结

目录 前言一、基本缩写二、Xbar和R的控制线三、相关系数表更新时间 前言 参考文章: 参考视频: SPC公式小结 一、基本缩写 二、Xbar和R的控制线 三、相关系数表 更新时间 2024.08.29:创建

旗帜分田(华为od机考题)

一、题目 1.原题 从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。 某天集体村民决定将覆盖相同数字的最小矩阵形的土地的分配给为村里做出巨大贡献的村民, 请问,此次分配土地,做出贡献…

DevEco Studio5 新建项目

Deveco Studio安装结束之后,开始新建一个项目: 1.点击Create Project新建项目 2.选择空的项目–>点击next 3.配置项目信息–>点击Finish 4.进入项目 6.右上方目前处于No Devices(无设备)状态–>点击下拉三角–>点击Devide Manager管理设…