码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 传输层-用户数据报协议(UDP)


    目录

    • UDP协议概述
    • UDP 数据报结构
    • UPD数据传输过程

    UDP协议概述

    用户数据报协议 UDP 是 Internet 传输层协议,提供无连接、不可靠、数据报尽力传输服务。

    • 无连接:因此在支持两个进程间通信时,没有握手过程。
    • 不可靠:当应用进程将一个报文发送近 UDP 套接字时,UDP 并不能保证将该报文送达到目的的接收进程。

    不仅如此,在发送方依次发送的报文段,UDP 即便将这些报文段送达到接收进程,也可能是乱序到达的。UDP 没有拥塞机制,所有 UDP 发送端可以用任何速率向其下层(即网络层)注入数据。当然,实际端到端吞吐量可能小于这种速率,这可能是因为中间链路的带宽受限或因为网络拥塞而造成的。

    使用 UDP 的主要原因:

    1. 应用进程更容易控制发送什么数据以及何时发送。会出现分组的丢失和重复。
    2. 无须建立连接:TCP 需要三次握手建立,UDP 不需要任何准备即可进行数据传输。
    3. 无连接状态:TCP 需要再端系统中维护连接状态,包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数等;而 UDP 是无连接的,因此也无需维护连接状态。
    4. 首部开销小:每个 TCP 报文段都至少有 20 字节的首部开销,而 UDP 仅有 8 字节的开销。

    虽然 UDP 提供不可靠传输服务,但使用 UDP 的应用仍然可以实现可靠数据参数。这可以通过在应用程序自身中建立可靠传输机制来完成,如 停-等协议或滑动窗口协议等。也就是说,应用进程可以使用 UPD 的同时进行可靠通信,只是需要在应用层设计可靠传输机制而已。

    UDP 数据报结构

    1. UDP 首部四个字段,每个字段长度都是 2 个字节( 16 bit ),共 8 个字节,。
    2. 源端口号和目的端口号:用于 UDP 实现复用和分解,范围(0~65535)。
    3. 长度:指示 UDP 报文段中的字节数 (首部和数据的总和)。
    4. 校验和:接收方使用来检测报文段是否出现差错。
      shuyu

    UPD数据传输过程

    shuyu
    • int socket():创建套接字。
    • int bind():绑定套接字的本地端点地址。
    • ssize_t sendto():发送数据。
    • ssize_t recvfrom():接收数据。
    • int close():关闭套接字。
  • 相关阅读:
    OWASP ZAP mac chrome代理配置&取消URL强制Https【已解决】
    深入理解单一职责原则(Single Responsibility principle )
    软考是什么?-最全软考详解
    CentOS即将停服,国产化系统替代参考
    QT学习大纲
    java计算机毕业设计剧院售票系统源码+mysql数据库+系统+lw文档+部署
    猿创征文 第二季| #「笔耕不辍」--生命不息,写作不止#
    三维空间常用函数(二) c++ Qt
    echarts bar图表实现多个label显示
    【数据结构】——链表面试题详解
  • 原文地址:https://blog.csdn.net/weixin_44988085/article/details/127918729
  • 最新文章
  • 【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号