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值去计算出原始数据,很难,几乎是不可能的

相关推荐
2501_915909068 分钟前
调试 WebView 旧资源缓存问题:一次从偶发到复现的实战经历
websocket·网络协议·tcp/ip·http·网络安全·https·udp
向明天乄1 小时前
在小程序中实现实时聊天:WebSocket最佳实践
websocket·网络协议·小程序
cliffordl1 小时前
MCP 传输机制(Streamable HTTP)
网络·网络协议·http
晨曦丿1 小时前
双11服务器
linux·服务器·网络
wanhengidc2 小时前
UDP服务器主要是指什么意思?
服务器·网络协议·udp
galaxylove2 小时前
Gartner发布最新指南:企业要构建防御性强且敏捷的网络安全计划以平衡安全保障与业务运营
网络·安全·web安全
漫谈网络2 小时前
WebSocket扫盲
网络·websocket·网络协议
不做菜鸟的网工2 小时前
PPPoe拨号上网配置实验
网络协议
2501_915921433 小时前
请求未达服务端?iOS端HTTPS链路异常的多工具抓包排查记录
websocket·网络协议·tcp/ip·http·网络安全·https·udp
于顾而言3 小时前
【开源品鉴】FRP源码阅读
后端·网络协议·开源