码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 计算机网络-传输层(UDP协议报文格式,伪首部,UDP校验过程)


    文章目录

    • 1. UDP协议
      • UDP报文格式
      • UDP校验过程

    1. UDP协议

    UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。

    UDP的主要特点:

    1. UDP是无连接的,减少开销和发送数据之前的时延。

    2. UDP使用最大努力交付,即不保证可靠交付。

    3. UDP是面向报文的,适合一次性传输少量数据的网终应用。

      应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。

      UDP报文太长,会导致数据报在网络层分片,导致效率低,
      UDP报文太低,导致网络层的IP报头比有效载荷长很多,导致效率下降。

      所以应用层传输的数据报长度需要适中。

    4. UDP没有拥塞控制,适合很多实时应用。(视频会议)

    5. UDP首部开销比较小8B,TCP首部固定字段20B(不包括选项字段和填充字段)

    UDP报文格式

    在这里插入图片描述
    16位UDP长度:代表的是UDP报文的整个长度
    16位UDP检验和:检验整个UDP数据报是否出错。出错就丢弃报文。

    UDP报文分用时,找不到对应的目的端口号,就丢弃报文。
    并给发送方发送ICMP端口不可达差错报告报文.
    
    • 1
    • 2

    UDP校验过程

    在这里插入图片描述

    伪首部:

    1. 在计算校验和的时候才出现,不向上传递或向下传递
    2. 伪首部的第三个字段为全0
    3. 第四个字段17代表,封装UDP报文的IP数据报首部协议字段是17。
    4. UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。

    伪首部校验过程:
    在这里插入图片描述
    上图中每一行都是4字节。有时UDP报文数据部分不一定是4字节的整数倍,需要在后面填充0到4字节整数倍。

    UDP校验在发送方:

    1. 填充伪首部
    2. 校验和字段全部填写为0(初始化校验和)
    3. 数据部分填充到4字节的倍数。
    4. 伪首部+首部+数据部分采用二进制反码求和。
    5. 将求和结果求反码填充到校验和字段
    6. 去掉伪首部,发送数据

    UDP校验在接收方:

    1. 填上伪首部
    2. 伪首部+首部+数据部分采用二进制反码求和。(此时校验和字段不是0)
    3. 结果二进制序列全为1则无差错,否则丢弃数据报或交给应用层附上出差错的警告。差错控制由应用层负责。
  • 相关阅读:
    java毕业设计成都某4S店销售管理系统Mybatis+系统+数据库+调试部署
    gin框架和logrus自定义日志输出,使日志输出到终端同时写到文件
    01序列 卡特兰数
    IDEA中JDBC连接MYSQL数据库步骤超详细总结
    1.6 前后端身份认证
    浅析显卡市场的未来走向:现在可以抄底了吗?
    Spring IOC容器的启动 AbstractApplicationContext详解
    Qt 实战(4)信号与槽 | 4.3、信号连接信号
    http和https分别是什么?
    复现xss绕过一个循环和两个循环
  • 原文地址:https://blog.csdn.net/dodamce/article/details/127898310
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号