五、传输层(二)UDP

news2024/12/26 22:49:44

目录

2.1  UDP概述

 2.2  UDP的首部格式

 2.3  UDP校验


2.1  UDP概述

  • UDP无须建立连接。因此不会引入建立连接的时延。

  • UDP为无连接状态。因此当服务器使用UDP时,一般能支持更多的活动客户机。

  • UDP分组首部仅有8B的开销,而TCP有20B的首部开销。

  • 应用层能更好地控制要发送的数据和发送时间。只提供复用分用和差错检测服务,故网络拥塞不会影响主机的发送效率。

  • UDP支持一对一、一对多、多对一和多对多的交互通信

  • 远程登录要依靠一个客户端到服务器的可靠连接,使用UDP是不合适的

  • UDP不保证可靠交付,但这并不意味着应用对数据的要求是不可靠的,所有维护可靠性的工作可由用户在应用层完成。应用开发者可根据应用的需求来灵活设计自己的可靠性机制。

  • UDP是面向报文的。发送方UDP对应用层交下来的报文,在添加首部后就向下交付给IP层,一次发送一个报文,既不合并也不拆分,而是保留这些报文的边界;接收方UDP对IP层交上来来的UDP数据报,在去除首部后就原封不动地交付给上层应用进程,一次交付一个完整的报文。因此报文不可分割,是UDP数据报处理的最小单位。

 

 2.2  UDP的首部格式

 

  • 源端口号。在需要对方回信时选用,不需要时可用全0。
  • 目的端口号这在终点交付报文时必须使用到。
  • 长度UDP数据报的长度(包括首部和数据),其最小值是8B(仅有首部)
  • 校验和检测UDP数据报在传输中是否有错,有错就丢弃。该字段是可选的。

当传输层从网络层收到UDP数据报时,根据首部中的目的端口号,把UDP数据报通过相应的端口上交给应用进程。如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应端口号的应用进程),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方。

 2.3  UDP校验

伪首部由源和目的主机仅在校验和计算期间建立,并不发送。这种检验方法虽然性能不如CRC,但易用软件实现。

反码算数运算:两个数进行二进制反码求和。它的规则是从低位到高位逐列进行计算。

  • 0和0相加是0。
  • 0和1相加是1。
  • 1和1相加是0,但要产生一个进位1,加到下一列。
  • 如果最高位相加后产生进位,则最后得到的结果要加1。

总结

  • 伪首部共12B(4+4+1+1+2,不发送)。
  • 每2字节进行一次二进制反码求合。
  • 发送方计算检验和时初始时校验和字段2B为全0。
  • 数据部分若不是偶数个字节则填入一个全零字节(不发送)。
  • 最后计算的结果取反码为检验和。
  • 接收方按上述规则计算,最终结果为0说明没有误码

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

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

相关文章

后端思维篇:如何抽个上报模板

前言 大家好,我是田螺。 我的后端思维专栏好久没更新啦,本文是后端思维专栏的第六篇哈。我的整个后端思维专栏都是跟日常工作相关的哈。 最近刚好优化了安全上报这块的代码,抽了一个基础模板,看起来挺优雅的。所以今天手把手教…

〖产品思维训练白宝书 - 产品思维认知篇⑤〗- 学习 [产品思维] 需要做哪些准备?

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

php wampserver的使用配置

php wampserver的使用配置wampserver1.php时区配置2.修改apache服务器端口号3.设置起始页4.设置web服务器主目录5.设置虚拟目录wampserver WampServer是Windows Apache Mysql PHP集成安装环境,在Windows操作系统下的apache、php和mysql的服务器软件。 1.php时区配…

RabbitMQ 第二天 高级 7 RabbitMQ 高级特性 7.2 Consumer Ack

RabbitMQ 【黑马程序员RabbitMQ全套教程,rabbitmq消息中间件到实战】 文章目录RabbitMQ第二天 高级7 RabbitMQ 高级特性7.2 Consumer Ack7.2.1 Consumer Ack7.2.2 Consumer Ack 小结7.2.3 消息可靠性总结第二天 高级 7 RabbitMQ 高级特性 7.2 Consumer Ack 7.2.…

12.25日周报

周报 代码行数: 周一 704 周二 481 周三 571 周四 589 周五 595 周六 520 周日 537 遇到的问题: 没用过的方法AtomicInteger Insert Proto currentTimeMillis RequestParam BufferedReader UriComponents RestTemplate OSS 不清楚在…

公众号开发(2) —— 盛派.net SDK + vue搭建微信公众号网页开发框架

需求:通过微信公众号菜单跳转到手机端网页,跳转后通过微信授权登录获取微信公众号用户的OpenId(用户关注公众号后,用户在公众号的唯一凭证),通过OpenId和后台数据库用户信息绑定起来并实现一些业务逻辑。 技…

基于51单片机的电子闹钟设计

使用的单片机是 STC89C52 此设计可以 年 月 日 时 分 秒显示和闹钟功能 能通过8个按键自由调整 时 分 秒 闹钟响铃时间 带复位按键,要是模块抽风,摁复位按键即可! 使用 LCD16020A 屏幕显示 屏幕电路设有电位器&#xff…

Tableau可视化设计案例-07 多边形地图和背景图地图

Tableau可视化设计案例 本文是Tableau的案例,为B站视频的笔记,B站视频 参考:https://www.bilibili.com/video/BV1E4411B7ef 参考:https://blog.csdn.net/lianjiabin/category_9826951.html 数据下载地址为:https://do…

Java项目:springboot药品管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目属于前后端分离的项目,分为两个角色药品管理员和取药处人员 药品管理员: 登录、退出、药品信息录入、药厂信息录入…

Huawei Certified ICT Professional work (一)

文章目录一, 要求二,搭建拓扑图三,配置接口IP和环回IP四,进行RIP版本的配置并且宣告网段五,实现不同版本的连通,在交界处配置对端的版本号六,R3访问R7的环回地址走R5,改变R4的度量值…

Java项目:SpringBoot+MyBatis送水公司管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 这个项目是一个基于SpringBootMyBatis的送水公司管理系统 管理员权限包括: 客户管理 送水工管理 送水历史管理 计算工资 统计送水数…

79页智慧应急指挥平台1 6 N体系建设方案

【版权声明】本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间进行删除! 完整资料领取见文末,部分资料内容: 行业专网解决…

ARM_SMMU_下

SMMU驱动代码分析 本文主要分析linux kernel中SMMUv3的代码(drivers/iommu/arm-smmu-v3.c) linux kernel版本是linux 5.7, 体系结构是aarch64 SMMU的作用是把CPU提交给设备的VA地址,直接作为设备发出的地址,变成正确的物理地址,访问到物理内…

五、传输层(一)传输层的功能

目录 1.1传输层的主要功能 1.2传输层的寻址与端口 1.2.1端口的作用 1.2.2端口号 1.2.3套接字 1.3无连接服务与面向连接服务 1.1传输层的主要功能 物理层、数据链路层和网络层共同解决了主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。然而在…

【iOS】CAlayer的认识与使用

什么是CALayer CALayer是UIView里的一个图层,其主要功能是负责显示视图与动画。CALayer和UIView 功能是一致的、 不过因为其 更加底层 所以 CALayer 有一些接口、 UIView 里面没有。 CALayer与UIView UIView:用于管理视图的容器。每次创建UIView对象时…

当我阳了之后是如何用Python来自动买药的

人生苦短,我用Python序言准备工作代码实战序言 哈喽兄弟们,我是郑再阳,马上要成杨过了! 读者:在下羊了个羊! 最近总是听说哪里哪里阳了,哪个公司又团灭了,emmm~ 于是乎看了几天后…

【exgcd】扩展欧几里得

主要介绍扩展欧几里的和总结一些常用性质 首先介绍裴蜀定理 对于任意整数a,b,存在一对整数x,y 满足 axbygcd(a,b) 即存在x0,y0使得ax0by0gcd(a,b) 扩展欧几里得可以求出x0,y0 从而当axbyc 可以求出其通解 设dgcd(a,b) 显然当c%d!0时无整数解 通解可以表示为 x(c/d)x0k…

Java项目:springboot访客管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给…

力扣(LeetCode)207. 课程表(C++)

拓扑排序 根据示例看出,课程表是否存在环,是问题的关键。这题的环,和数组、链表的环不一样,不好判,要转化成图判拓扑序列。 考虑向右和向左的方向,拓扑序列的所有边可以指向同一方向。 无环图进行重排序…

论文阅读Measuring Regularity of Individual Travel Patterns

这是一篇发表在IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS上的论文,论文主要描述了一种刻画出行规律性的方法。 1.论文概述 论文主要描述了一种刻画出行规律性的方法。首先,论文给出了对出行活动序列(travel event&#xff…