3.网络之UDP

UDP协议

文章目录

  • UDP协议
  • 1. UDP概述
  • 2. UDP报文格式
  • 3. UDP传输限制
  • 4. UDP校验和
    • 4.1 CRC 循环冗余校验算法
    • 4.2 md5 校验算法

1. UDP概述

    UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。

    UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。

  • UDP的优点:简单,轻量化,传输速度快、效率高。

  • UDP的缺点:不可靠传输

特点:

  • 无连接
  • 面向数据报
  • 不可靠传输
  • 全双工

2. UDP报文格式

在这里插入图片描述
    UDP首部有8个字节,由4个字段构成,每个字段都是两个字节,

  • 源端口: 源端口号,需要对方回信时选用,不需要时全部置0.
  • 目的端口:目的端口号,在终点交付报文的时候需要用到。
  • 报文长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部)
  • 校验和:检测UDP数据报在传输中是否有错,有错则(差错检测)丢弃。
  • 载荷:存储的是应用层数据报

3. UDP传输限制

    由于UDP的16位报文长度(包含首部)所以UDP报文一次最大可以传输64kb左右的数据。

    64KB在实际应用中是一个非常小的数据量,在现在这个时代,随便一张照片可能就好几兆,那么如果一个数据的大小超过64KB,此时一个如何处理呢?

  • 可以将数据分成多个UDP数据报,分多次传输

  • 不适用UDP,使用TCP数据报传输(TCP没有这样的限制)

4. UDP校验和

    校验和是为了校验数据在传输过程中有没有损耗,从而检查数据的正确性。网络传输归根到底是将光电信号数字化,如果出现一些特殊情况,如:电场/磁场/高能射线等影响,就看会影响数据的传输。
    在数据报中加入校验和,只需要接收方接收到数据之后计算一个校验和,和数据报中的校验和对比,如果一致,那么数据大概率是正确的。

4.1 CRC 循环冗余校验算法

    循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。这也是UDP中使用的校验算法。

4.2 md5 校验算法

    md5相比于CRC,它不是简单的进行相加,而是通过一系列的公式,进行更复杂的数学运算而得到。

md5算法的特点:

  • 定长:不管你的数据是 几KB 还是几MB 甚至是几GB,得到的结果长度都是固定的(有4字节版本,8字节版本…)

  • 分散:原始数据即使改变了1位,得到的MD5值都会相差很大,会让结构更加分散

  • 不可逆:通过原始数据计算出MD5值,很容易,但是通过MD5值去计算出原始数据,很难,几乎是不可能的

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

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

相关文章

【实战Flask API项目指南】之一 概述

实战Flask API项目指南之 概述 本系列文章将带你深入探索实战Flask API项目指南,通过跟随小菜的学习之旅,你将逐步掌握Flask在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧! 前言 小菜是一个Python编程爱好者,他目前…

SolidWorks2022安装教程(正版)

网盘资源附文末 一.简介 SolidWorks软件是世界上第一个基于Windows开发的三维CAD系统,由于技术创新符合CAD技术的发展潮流和趋势,SolidWorks公司于两年间成为CAD/CAM产业中获利最高的公司。良好的财务状况和用户支持使得SolidWorks每年都有数十乃至数百…

小程序day03

目标 页面导航 声明式导航 1.导航到tabBar页面 2.导航到非tabbar页面 3.后退导航 编程式导航 1.导航到tabBar页面 2.导航到非tabBar页面 3.后退导航 导航传参 1.声明式导航传参 2.编程式导航传参 3.在onLoad中接收导航参数 页面事件 下拉刷新 这个可以获取完数据之后再停止…

Docker学习——①

文章目录 1、什么是虚拟化、容器化?2、为什么要虚拟化、容器化?3、虚拟化实现方式3.1 应用程序执行环境分层3.2 虚拟化常见类别3.3 常见虚拟化实现3.3.1 主机虚拟化(虚拟机)实现3.3.2 容器虚拟化实现3.3.3 空间隔离实战--基础知识3.3.4 PID 隔离3.3.5 Mo…

二叉树OJ题(用前序和中序遍历构建二叉树,用中序和后续遍历构建二叉树)

文章目录 二叉树OJ题一、用前序和中序遍历构建二叉树1.思路2.代码 二、用中序和后续遍历构建二叉树1.思路2.代码 二叉树OJ题 一、用前序和中序遍历构建二叉树 1.思路 1.根据前序遍历找到根结点root 2.在中序遍历中(inBegin0和inEndelem.length-1范围之间&#xff09…

Kafka、RabbitMQ、RocketMQ中间件的对比

消息中间件现在有不少,网上很多文章都对其做过对比,在这我对其做进一步总结与整理。 RocketMQ 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成…

三门问题 最通俗解释+拓展

三门问题是概率论比较经典的一个问题,答案有点反直觉,所以值得学习,理性第一!但是,很多网上解释都让人云里雾里,或者干脆解释就是错了,或一上来就贝叶斯公式开始搞数学,其实很简单可…

Wonder3D安装完美教程

话不多说,先附上地址: https://github.com/xxlong0/Wonder3D#wonder3dhttps://github.com/xxlong0/Wonder3D#wonder3d 目录 一、预览 二、环境配置

2023年四川省网络与信息安全技能大赛 决赛个人赛Writeup

文章目录 Web前端验证PHP_Try MiscHelloWorld密码在这easy_log Cryptobaser 线下“断网”CTF个人赛,题都很简单(新手级难度),总共10道题目,解了6题。 赛题附件请自取: 链接:https://pan.baidu.com/s/1lgNEBO7a1L4KLE2t…

PerfectPixel 插件,前端页面显示优化工具

1.简介 PerfectPixel 插件是一款适用于 Chrome 浏览器的网页前端页面显示优化工具,该插件能够帮助开发人员和标记设计人员在开发时将设计图直接加载至网页中,与已成型的网页进行重叠对比,以规范网页像素精度 作为一款可以优化前端页面显示的…

AtCoder abc143

D - Triangles 排序后two pointer # -*- coding: utf-8 -*- # time : 2023/6/2 13:30 # author : yhdutongwoo.cn # desc : # file : atcoder.py # software : PyCharmimport bisect import copy import sys from sortedcontainers import SortedList from coll…

【沧元图】梅元知命运逆转,但遗憾下线,孟川新形态揭晓

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 深度爆料,《沧元图》是近年来备受期待的动画作品之一,其独特的画风和精彩的剧情吸引了众多观众的关注。这部动画的播出计划备受瞩目,据主创团队透露,本季共有26…