当前位置: 首页 > article >正文

介绍UDP协议

UDP协议是传输层的一个协议类型,UDP协议具有无连接,不可靠传输,面向数据包,全双工的特点。

1.UDP协议格式

如下图 

 

UDP协议的格式内容包括源端口号、目的端口号、UDP长度、校验和和数据,且源端口号、目的端口号、UDP长度和校验和共占8个字节,每个信息的大小为2个字节。

1.源端口号

目的端口号是用来标识主机发送该UDP数据报的的应用程序(进程)。

2.目的端口号 

目的端口号是用来标识另一台主机接收该UDP数据报的的应用程序(进程)。 

3.UDP长度 

UDP长度表示整一个UDP数据报的长度,即UDP报头+UDP载荷的长度,但是UDP长度只有两个字节大小,它表示的数据范围是0~65535,也就是64kb的数据。由于UDP长度表示一个固定的长度范围,也就表明了一个UDP数据报最大只能传送64kb的数据,所以,这也是UDP一个比较明显的缺点。

如果传输的数据大小超过64kb,如何解决呢?

1.我们可以在应用层代码加一个拆包功能,将一个大的应用层数据包拆分成多个小的数据包,分别使用多个UDP数据报来传送,但是该做法工作量大,还容易出错。

2.我们可以使用TCP协议来传送数据,在TCP协议中,没有数据包长度的限制。

4.校验和  

校验和的存在是为了保证数据在传输的过程中出现被修改的情况,比如比特翻转的现象。

在UDP数据报发送出去之前,会根据整个UDP数据报的内容通过一个算法来计算一个校验和,这个校验和也会和UDP数据包一同发送给对端。

对端接收到UDP数据报之后,也会根据UDP数据报的内容,使用相同的算法,计算出一个校验和。

如果发现校验和一致,就证明UDP数据报里面的内容就没有发送被修改的现象,如果发现校验和不一致,UDP协议就会舍弃这个数据报。 

5.数据 

这里的数据指的是一个完整的应用层数据包。 

2.UDP协议的特点 

我们知道UDP有不连接,不可靠,面向数据报和全双工的特点。

1.不连接 

不连接类似于邮寄物品,只需要知道对方的的端口号和IP地址,就可以发送信息,不需要与对方建立联系。

2.不可靠 

UDP没有确认机制和重传机制,如果出现信息传送失败的现象,UDP协议不会给信息发送方返回一个信息是否成功发送的响应,这样就导致了信息传送的不可靠。

3.面向数据报 

 UDP协议是通过UDP数据报来传输数据,而UDP数据报不能够灵活的控制读写数据的次数。

4.全双工

全双工是指在UDP协议中,信息发送方和接收方可以同时发送数据和接收数据。  


http://www.kler.cn/a/508418.html

相关文章:

  • 【Docker】使用Dev Container进行开发
  • riscv架构下linux4.15实现early打印
  • Java语言的数据结构
  • Python操作Excel——openpyxl使用笔记(3)
  • Oracle 批量投入数据方法总结
  • 深度学习图像算法中的网络架构:Backbone、Neck 和 Head 详解
  • PCL 点云按时间进行渲染赋色【2025最新版】
  • 图像处理|闭运算
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 快慢指针:链表问题的利器
  • unity免费资源2025-1-17
  • Java合并多个List集合的方法
  • AUTOSAR从入门到精通专栏总目录
  • Linux手写FrameBuffer任意引脚驱动spi屏幕
  • Django多线程爬虫:突破数据抓取瓶颈
  • sparkRDD教程之必会的题目
  • Oracle graph 图数据库体验-安装篇
  • 一文简要了解为什么需要RAG、核心原理与应用场景
  • 陈萍的设计创新:Kevlin Nexus荣获伦敦设计奖,展示品牌设计的国际化与持续创新
  • 【12】Word:张老师学术论文❗
  • 专业130+总分410+西安交通大学815/869原909信号与系统考研电子信息与通信工程。真题,大纲,参考书。
  • 云IDE:开启软件开发的未来篇章
  • 用大白话讲明白JWT
  • Node.js - Express框架
  • Android 实现多语言功能
  • 从零开始:Gitee 仓库创建与 Git 配置指南