码农知识堂 - 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():关闭套接字。
  • 相关阅读:
    红外线相关的论文(可见光和红外图像融合、红外图像增强、红外图像目标检测、红外图像分割...)
    基于智能反射面的MIMO系统波束赋形算法代码
    c++推箱子小游戏
    计算机三级有必要考吗?计算机三级有哪些科目?
    k8s中的PV和PVC存储介绍
    故障诊断 | MATLAB实现GRNN广义回归神经网络故障诊断
    TypeScript 泛型
    Socket编程(C语言实现)——TCP协议(网络间通信AF_INET)的流式(SOCK_STREAM)+报式(SOCK_DGRAM)传输
    为什么我的MySQL会抖一下?
    2022/8/14 考试总结
  • 原文地址:https://blog.csdn.net/weixin_44988085/article/details/127918729
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号