总结UDP协议各类知识点

前言

本篇博客博主将详细地介绍UDP有关知识点,坐好板凳发车啦~

一.UDP特点

1.无连接

UDP传输的过程类似于发短信,知道对端的IP和端口号就直接进行传输,不需要建立连接;

2.不可靠传输

没有任何的安全机制,发送端发送数据报以后,如果因为网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息;

3.面向数据报

应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并

4.缓存区

UDP只有接收缓冲区,没有发送缓冲区。

UDP的socket既能读,又能写,这个概念叫全双工。

5.大小受限

UDP协议首部有一个16位的最大长度。也就是说一个UDP能传输的数据最大长度是64k(包含UDP首部)。

二.UDP格式

UDP最长是16个字节,对应无符号整形范围是0-65535,也就是0-64Kb左右

检验和

 把内容中的每个字节做累加操作,在累加的过程中溢出就溢出了,最后得到一个值,把这个值记录到校验和这个位置,CRC循环冗余校验,接收方也是接收到的数据内容按同样的算法做累加,最后把计算得到的数据与校验和位的值作比较,相同则认为数据是正确的。

三.UDP套接字

针对网络编程,操作系统提供了用于网络编程的技术,称为Socket套接字,是系统提供的专门用来实现网络编程的一套API应用程序在应用层,操作系统工作在传输层,Socket套接字就是传输层对应用层提供的API支持。

3.1类和方法

1)DatagramSocket API

DatagramSocket 是UDP Socket,用于发送和接收UDP数据报。

Socket的本质也是文件,狭义上的文件是指硬盘上的文件,广义上的文件是计算机上的各种硬盘设备

Socket对应到网卡这个硬件设备,操作系统把网卡也当做一个文件来管理

通过网卡发数据就是写文件,通过网卡接收数据就是读文件。 

2)DatagramPacket API

DatagramPacket是UDP Socket发送和接收的数据报

1.DatagramPacket构造方法

 构造UDP发送的数据报时,需要传入SocketAddress,该对象可以使用InetSocketAddress来创建。

3)InetSocketAddress API

尾语

这篇博客到这里就结束啦,希望可以给大家带来帮助~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL Innodb 引擎中预防 Update 操作上升为表锁

一、MySQL 如何预防 Update 上升为表锁 在 MySQL 中,进行任何数据的 修改 操作都会进行一定的锁操作,而锁的不同直接导致性能的差异。例如 MyISAM 引擎,更新时采用表锁,并发性较差。而 Innodb 引擎支持事务,更新时采用…

c++调用阿里云短信服务

💂 个人主页:pp不会算法^ v ^ 🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 购买套餐包 申请资质 申请模板 申请签名 上面这些审核通过之后 添…

低代码平台与自动化软件开发的关系

引言 随着信息技术的不断发展,软件开发领域也在不断演进。在追求更高效、更快速的软件开发过程中,低代码平台和自动化软件开发技术日益受到关注。低代码平台以其可视化开发界面和快速构建应用的能力,为非专业开发人员提供了参与软件开发的机会…

预处理详解(一) -- 预定义符号与#define定义

目录 一. 预定义符号二. #define1.#define定义常量2.#define定义宏3.带有副作用的宏参数4.宏替换的规则5.宏和函数的对比 一. 预定义符号 %s _ _FILE_ _ //文件 %s _ _ DATE_ _ //日期 %s _ _ TIME_ _ //时间 %d _ _ LINE_ _ //行号 %d _ _ STDC_ _ //如果编译器支持 ANSI C,那…

【Vue】动态样式

内联样式的动态样式 body(){ boxASelect:false, } v-bind:style"{borderColor:boxASelect ? red : #ccc}" <body><header><h1>Vue Dynamic Styling</h1></header><section id"styling"><div class"demo&quo…

kubernetes(K8S)学习(七):K8S之系统核心组件

K8S之系统核心组件 K8s系统核心组件1.1 Master和Node1.2 kubeadm1.3 先把核心组件总体过一遍1.4 Kubernetes源码查看方式1.5 kubectl1.6 API Server1.7 集群安全机制之API Server1.8 Scheduler1.9 kubelet1.10 kube-proxy K8s系统核心组件 1.1 Master和Node 官网 &#xff1a;…

蓝桥杯刷题-重新排序

重新排序 差分&#xff1a; s,d [0]*100010,[0]*100010 tmp 0 n int(input()) a list(map(int,input().split())) a.insert(0,0) for i in range(1,n1):s[i] s[i-1] a[i] m int(input()) for _ in range(m):l,r map(int,input().split())# [l,r]的和tmp s[r] - s[l-1…

【AI】命令行调用大模型

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 【AI】命令行调用大模型引入正文初始化项目撰写脚本全局安装 成果展示 【AI】命令…

基于Spring Boot的在线学习系统的设计与实现

基于Spring Boot的在线学习系统的设计与实现 摘 要 在线学习系统是以大学传统线下教学方式不适应信息技术的迅速发展为背景&#xff0c;提高学习效率&#xff0c;解决传统教学问题&#xff0c;并且高效的实现教学信息化的一款软件系统。为了更好的实现对于教学和学生的管理&a…

【C++进阶】多态,带你领悟虚函数和虚函数表

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 【本节目标】 1. 多态的概…

实验一 Python集成开发环境的搭建及可视化库的安装

一、安装集成开发环境 下载安装包 官方网址&#xff1a; Free Download | Anaconda 或者镜像网站下载&#xff08;较快&#xff09; https://repo.anaconda.com/archive/ 安装 配置环境变量 验证 输入&#xff1a; conda -V 二、下载pyecharts环境 点击 Anaconda Promp…

C++树状数组 (原理 + 代码 + lowbit解释)

目录: 什么是树状数组&#xff1f; 代码模板 原理 lowbit解释 什么是树状数组&#xff1f; 树状数组作为一种高效的数据结构&#xff0c;可以在O(logn)内完成更新和查询操作&#xff0c;因此非常适合加减&#xff0c; 区间和&#xff0c; 查询。 适合问题&#xff1a;…

【YOLOv8 代码解读】数据增强代码梳理

1. LetterBox增强 当输入图片的尺寸和模型实际接收的尺寸可能不一致时&#xff0c;通常需要使用LetterBox增强技术。具体步骤是先将图片按比例缩放&#xff0c;将较长的边缩放到设定的尺寸以后&#xff0c;再将较短的边进行填充&#xff0c;最终短边的长度为stride的倍数即可。…

Web APIs知识点讲解(阶段五)

DOM- 网页特效篇 一.课前回顾(手风琴) <!DOCTYPE html> <html><head lang"en"><meta charset"UTF-8"><title>手风琴</title><style>ul {list-style: none;}* {margin: 0;padding: 0;}div {width: 1200px;heig…

Mysql从0到1 —— CRUD/索引/事务

文章目录 1 预备知识1.1 安装1.2 登录 & 退出1.3 配置文件my.cnf 2 基础知识2.1 链接服务器2.2 什么是数据库2.3 基本使用2.3.1创建表2.3.2 插入数据 2.4 服务器、数据库、表的关系2.5 SQL分类2.6 存储引擎 3 Mysql数据库的操作3.1 创建和删除3.2 字符集和校验规则3.3 查看…

WinServer启用Hyper-V新建虚拟机没有网络、无法开启增强模式、开启远程连接功能

没有网络问题如下&#xff1a; 原因&#xff1a;没有在Hyper-V中新增交换机 操作—虚拟交换机管理器—新建虚拟网络交换机-外部-允许管理员操作系统共享此网络适配器 无法开启增强模式&#xff1a; 开启远程连接功能 或者&#xff1a;

蓝桥杯keil软件添加stc芯片

打开烧录软件&#xff0c;点击Keil仿真设置&#xff0c;点击勾选出来的选项 将文件放入keil软件放的地址&#xff0c;放入C51这个文件夹&#xff0c;再点击确认 打开keil软件&#xff0c;点击Project&#xff0c;选择第一个 选择一个空文件夹&#xff0c;输入文件名&#xff0c…

Python基础之Class类的定义、继承、多态

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、class类1.类属性操作&#xff08;增删改&#xff09;2.类方法操作 二、类的继承1、语法2、方法重写 二、类的多态 一、class类 、三部分组成 1、类名&#xff…

E4991A安捷伦E4991A阻抗分析仪

181/2461/8938产品概述&#xff1a; 基本精度 基本精度 /-0.8% 扫描参数 频率&#xff1a;1 MHz 至 3 GHz振荡器电平&#xff1a;高达 1 dBm/0.5 Vrms/10 mArmsDC 偏置电平&#xff08;选件 E4991A-001&#xff09;&#xff1a;/- 40V 或 /- 50 mA 更多特性 Windows 风格的…

体育馆场地预约系统项目管理

1 前言 体育馆作为提供体育活动设施的重要场所&#xff0c;其使用和管理效率对于满足公众需求、提高体育活动质量具有重要意义。然而&#xff0c;传统体育馆场地预约方式仍然存在流程繁琐、效率低下等问题&#xff0c;已无法满足现代社会的需求。旨在提高体育馆的预约和管理效率…