【网络知识必知必会】传输层UDP协议

news2024/10/6 6:04:55

文章目录

  • 前言
  • 1. UDP 的特点
    • 1.1 无连接
    • 1.2 不可靠传输
    • 1.3 面向数据报
    • 1.4 缓冲区
    • 1.5 全双工
    • 1.6 传输数据大小受限
  • 2. UDP 协议端格式
  • 3. UDP 是如何校验的
  • 4. 基于 UDP 的应用层协议
  • 总结

前言

在传输层中, 有两个知名协议是需要我们必知必会的, 一个是UDP协议, 一个是TCP协议, 本文我们来主要讲解一下UDP协议, 讲一下UDP报文格式, UDP协议的特点, 以及一些注意事项.

关注收藏, 开始学习吧🧐


1. UDP 的特点

我们可以将 UDP 传输的过程, 想象成寄一封信.

1.1 无连接

知道对端的 IP 地址和端口号就直接进行传输不需要建立连接.

1.2 不可靠传输

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

1.3 面向数据报

应用层交给 UDP 多长的报文, UDP 原样发送, 既不会拆分, 也不会合并. 如果发送端一次发送100个字节, 那么接收端也必须一次接收100个字节. 而不能循环接收10次, 每次接收10个字节.

1.4 缓冲区

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

  • UDP 没有真正意义上的 发送缓冲区, 发送的数据会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作.
  • UDP 具有接收缓冲区, 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃.

1.5 全双工

UDP 的 socket 既能读, 也能写, 这个概念叫做全双工.

1.6 传输数据大小受限

UDP 协议首部中有一个两个字节 (16位) 的最大长度. 也就是说一个UDP能传输的数据最大长度是64K (包含UDP首部).

那么接下来我们就来学习一下 UDP 的报文格式. 学习一个协议, 我们不仅要了解它的这些特点, 也要了解它的格式是什么.

2. UDP 协议端格式

此处协议格式, 需要发送端, 接收端, 双方都遵守才有用!!!
在这里插入图片描述

  • 这个图为了排版方便而做了妥协, 真正的 UDP 报文格式应该连续不断的.
  • 实际上的报文格式如下图所示.

在这里插入图片描述

  • 由于端口号只有两个字节来表示, 合法的端口号有效范围就是 0 ~ 65535 不能再大了, 而在实际中, 0 也不会做为一个端口号.
  • 而 1 ~ 1024 这个范围的端口号, 系统都赋予了特定的含义, 也不建议我们在开发中使用.
  • 16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度. 也就是 64 kb.
  • 校验和用来检验数据在网络传输过程中是否出错, 如果校验和出错, 就会直接丢弃.

3. UDP 是如何校验的

那么在进行网络传输时, UDP 是如何进行传输的报文数据是否正确, 没有受到信号干扰之类的呢? 在前文我们讲了, UDP 报文格式中, 有两个字节的的位置留给了校验和, 其作用就是用来检验传输数据是否正确的.

那么 UDP 的校验和具体是怎么实现的? 这里 UDP 是使用了一种简单粗暴的 CRC 校验算法 (循环冗余校验和).

简单来说, 就是将 UDP 数据报中的每个字节, 都依次进行累加. 然后将累加结果, 保存到两个字节的变量中(校验和). 当传输数据时, 就会把原始数据和校验和一起传递过去. 接收方收到数据后, 同时也收到发送端送过来的校验和, 接收端按照同样方式再算一遍, 得到新的校验和, 并与旧的校验和进行比较, 如果正确, 则可以视为数据传输过程中, 没有被干扰, 数据正确.

4. 基于 UDP 的应用层协议

  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议

当然,也包括你自己写UDP程序时自定义的应用层协议.


总结

✨ 本文主要讲解了 UDP 协议的一些知识, 主要有 UDP 协议特点, UDP 协议报文格式.

✨ 想了解更多计算机网络的知识, 可以收藏一下本人的计算机网络学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023IG新功能大整理,更多玩法助力营销推广

作为当今全球最为受欢迎的社交媒体之一,Instagram在2023年迎来了一系列重要的功能更新。学习了解Instagram的最新功能,以及如何高效利用这些新的功能和工具,对于跨境品牌在该平台上实现营销推广至关重要。今天给大家详细介绍 Instagram在2023…

门禁管理:这招我居然才知道,不要太好用!

随着社会的不断发展,门禁监控系统已经成为了各种场所的必备设备。门禁监控系统通过技术的创新和智能化的进步,为不同类型的客户提供了高效的安全保障和管理工具。 客户案例 南京某商业大厦管理公司 南京某商业大厦管理公司面临着大量员工和访客的管理挑…

领先一步,效率翻倍:PieCloudDB Database 预聚集特性让查询速度飞起来!

在大数据时代,如何有效地管理和处理海量数据成为了企业面临的核心挑战。为此,拓数派推出了首款数据计算引擎 PieCloudDB Database,作为一款全新的云原生虚拟数仓,旨在提供更高效、更灵活的数据处理解决方案。 PieCloudDB 的设计理…

京东平台销量销额数据查询:2023年9月京东空调行业品牌销售排行榜!

鲸参谋监测的京东平台9月份空调市场销售数据已出炉! 鲸参谋数据显示,今年9月份,京东平台大家电品类——空调的整体销售呈现下滑。从数据来看,9月空调的月销量将近60万,环比下滑约59%,同比下滑约6%&#xff…

Python 类继承解释

一、说明 类继承是Python中数据科学家和机器学习工程师需要了解的一个重要概念。在这里,我们的专家解释了它的工作原理。 在Python中,类包含属性和方法。属性是存储数据的变量。类方法是属于类的函数,通常对类属性执行一些逻辑。在本文中&…

npm版本错误——npm ERR! code ERESOLVE 解决方法

起因 项目中echart版本过低,导致某些图表不能正确显示,所以大手一挥,将echart版本从4升级到了5, 再去运行项目的时候 就发现项目报错了 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! …

C++基础算法----正整数高精度加减乘除

4、正整数高精度 ​ 出现高精度的情况一般只有C会出现,python会无限制,java有大整数,所以基本上不用考虑,一般会出现四种情况 一个较大数A 一个较大数B一个较大数A - 一个较大数B一个较大数A * 一个数一个较大数A / 一个数 这里…

ubuntu系统由于英伟达显卡驱动问题黑屏或者其他报错开机无法进入系统解决办法!

背景: 硬件:CPU:AMD PRO 3955WX、硬盘:一块固态(ubuntu)一块固态(windows)双系统、英伟达丽台RTX4000显卡; 故障: 把显卡拆出来,拿到别的地方测…

分享一下商城小程序有哪些营销活动可以做的

随着移动支付的普及和电商行业的快速发展,商城小程序已成为消费者日常生活中不可或缺的一部分。小程序具有便捷性、即时性和个性化等特点,使得品牌商家能够更好地与消费者互动,提升销售额。本文将探讨商城小程序营销活动的几种形式&#xff0…

CentOS7日志文件及journalctl日志查看

一、日 志 文 件 说 明 tail /var/log/messages //系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 tail -f /var/log/secure //与安全相关的日志信息 tail /var/log/maillog //与邮件相关的日志信息 tail /var/log/cro…

8.canvas阴影设置

在canvas里面设置元素阴影相对来说比较简单,他有4个属性控制。 shadowOffsetX 描述阴影水平偏移距离的属性。 shadowOffsetY 描述阴影垂直偏移距离的属性。 shadowBlur 描述模糊效果程度的属性;它既不对应像素值也不受当前转换矩阵的影响。默认值是…

Python + Appium 自动化操作微信入门看这一篇就够了!

简介 Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语言。 Appium 封装了 Selenium,能够为用户提供所有常见的 JSON 格式的 Selenium 命令以及额外的移动设备相关的控制命令&#…

Anaconda创建新的虚拟环境及Jupyter Notebok中、PyCharm中环境的使用

Anaconda创建新的虚拟环境 在windows开始菜单中【徽标键】,查找Anaconda文件夹并打开【Anaconda Prompt】 查看已有虚拟环境 conda env list1.创建 conda create --name mytest python3.7 # 创建一个名称为mytest,python版本为3.7的虚拟环境输入【…

【已解决】Word文档的“打开密码”在哪里设置?

我们知道,Word文档可以设置“打开密码”,保护文件不被随意打开,只有输入正确的密码才能打开文档。那这个“打开密码”要在哪里设置呢?不清楚的小伙伴往下看就知道啦。 在Word文档里,有两个路径可以设置“打开密码”。…

Activiti

文章目录 一、Activiti介绍(一)BPM(一)BPM软件(一)BPMN(一)使用步骤1、部署activiti2、流程定义2、流程定义部署2、启动一个流程实例2、用户查询待办任务2、用户办理任务2、流程结束…

文本生成图像工作简述5--对条件变量进行增强的 T2I 方法(基于辅助信息的文本生成图像)

目录 一、基于场景图的文本生成图像二、基于对话的文本生成图像三、基于属性驱动的文本生成图像四、基于边界框标注的文本生成图像五、基于关键点的文本生成图像六、其他基于辅助信息的文本生成图像 在传统的T2I方法中,常常使用一个固定的随机噪声向量作为输入&…

极智嘉(Geek+)柔性货箱到人拣选方案,助力Starlinks实现高效运营

近些年,电商业务席卷全球,一众企业蓬勃发展。比如沙特阿拉伯先进的物流与供应链解决方案供应商Starlinks的电子商务的销售额从6%增长到了23%。为满足日益增长的国际电商业务需求,以及订单交付时效性更高的要求,Starlinks与全球仓储…

中国人民大学与加拿大女王大学金融硕士——另辟蹊径往往能带来柳暗花明

莎士比亚曾说过,人生就是一部作品,谁有生活理想和实现的计划,谁就有好的情结和结尾,谁便能写得十分精彩和引人注目。人生之路,道阻且长。做好自己的规划,方能行稳致远。金融领域的你有计划在职读研&#xf…

双系统,grub系统选择界面字体大小调整!

背景: winodwsubuntu双系统,grub系统选择界面字体太小了,尤其是4K分辨率屏幕,影响观感,想要字体变大。 方法: 设置grub配置文件中的屏幕分辨率, 分辨率调小,字体就会变大&#xff…

formData对象打印不出来

用el-upload上传图片 以流的形式传给后台 所以用formData对象带数据 let formData new FormData() formData.append(name,monkey7) console.log(formData) 明明已经把数据append进去了 console.log在控制台却打印不出 后来发现他得用formData.get("xxx"…