3.网络之UDP

UDP协议

文章目录

  • UDP协议
  • [1. UDP概述](#1. UDP概述)
  • [2. UDP报文格式](#2. UDP报文格式)
  • [3. UDP传输限制](#3. UDP传输限制)
  • [4. UDP校验和](#4. UDP校验和)
    • [4.1 CRC 循环冗余校验算法](#4.1 CRC 循环冗余校验算法)
    • [4.2 md5 校验算法](#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值去计算出原始数据,很难,几乎是不可能的

相关推荐
EasyGBS15 分钟前
视频设备轨迹回放平台EasyCVR打造视频智能融合新平台,驱动智慧机场迈向数字新时代
网络·人工智能·安全·音视频
EasyGBS1 小时前
视频设备轨迹回放平台EasyCVR综合智能化,搭建运动场体育赛事直播方案
网络·安全·音视频
低头不见3 小时前
tcp的粘包拆包问题,如何解决?
网络·网络协议·tcp/ip
SKYDROID云卓小助手5 小时前
三轴云台之相机技术篇
运维·服务器·网络·数码相机·音视频
yuzhangfeng7 小时前
【云计算物理网络】从传统网络到SDN:云计算的网络演进之路
网络·云计算
TDengine (老段)7 小时前
TDengine 中的关联查询
大数据·javascript·网络·物联网·时序数据库·tdengine·iotdb
zhu12893035568 小时前
网络安全的现状与防护措施
网络·安全·web安全
Aa美少女战士8 小时前
单域名 vs 通配符:如何选择最适合你的 SSL 证书?
网络协议·https·ssl
咕噜签名8 小时前
如何申请p12证书
网络协议·https·ssl