UDP 概述(主要特点,首部格式 header)

2023-10-31



1、UDP 概述

UDP只在 IP的数据包服务 之上增加了一点功能,这就是复用分用的功能以及差错检测的功能。

UDP的主要特点:

序号 特点 描述
1 无连接 发送数据之前不需要建立连接,因此减少了开销(overhead)和发送数据之前的时延(delay)
2 使用尽最大努力交付 不保证可靠交付,因此 主机不需要维持复杂的 连接状态表
3 面向报文Message 发送方的UDP对应用程序交下来的报文Message),在添加首部header)后就向下交付网络层,既不合并,也不拆分,而是保留这些报文的边界。应用层交给UDP多长的报文,UDP就照样发送,一次发送一个报文。

接收方的UDP,对网络层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程

UDP一次交付一个完整的报文。若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率
4 没有拥塞控制 网络出现的拥塞[se](Congestion)不会使源主机的发送速率降低。

这对实时应用是很重要的。很多的实时应用(如IP电话,实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞是丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。
5 - 支持一对一、一对多、多对一和多对多的交互通信
6 UDP的首部开销小 只有8个字节,比TCP20个字节的首部要短。

虽然某些实时应用需要使用没有拥塞控制的UDP,但当很多的源主机同时都向网络发送高速率的实时视频流时,网络就有可能发生拥塞,结果大家都无法正常接收。因此,不使用拥塞控制功能的 UDP有可能会引起网络产生严重的拥塞问题

还有一些使用UDP的实时应用,需要对UDP的不可靠的传输进行适当的改进,以减少数据的丢失。在这种情况下,应用进程本身可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错重传已丢失的报文。

2、UDP的 首部格式(header)

用户数据报UDP有两个字段:数据字段首部字段

首部字段很简单,只有8个字节,由4个字段组成,每个字段的长度都是两个字节。
各字段(Field)意义如下:

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

UDP用户数据报的 首部伪首部
在这里插入图片描述
传输层IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交最后的终点:应用进程

如果 接收方UDP发现收到的报文中的目的端口号不正确,就丢弃该报文,并由网际控制报文协议ICMP 发送【端口不可达】差错报文给发送方。

请注意,虽然在UDP之间的通信要用到其端口号,但由于UDP的通信是无连接的,因此不需要使用套接字TCP之间的通信必须要在两个套接字之间建立连接)。

UDP用户数据报 首部中 校验和 的计算方法有些特殊。在计算校验和时,要在UDP用户数据报之前增加12个字节伪首部。所谓【伪首部】是因为这种伪首部并不是UDP用户数据报真正的首部。只是在计算校验和时,临时添加在UDP用户数据报前面,得到一个临时的UDP用户数据报。校验和就是按照这个临时的UDP用户数据报来计算的。
伪首部既不向下传输,也不向上递交,而仅仅是为了计算校验和

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UDP 概述(主要特点,首部格式 header) 的相关文章

  • k8s之nginx-ingress做tcp或udp的4层网络负载

    检查nginx ingress是否开启tcp udp转发 test test02 ingress kubectl get pod n ingress nginx o yaml grep i configmap configmap POD N
  • 使用HTTPS模式建立高效爬虫IP服务器详细步骤

    嘿 各位爬虫小伙伴们 想要自己建立一个高效的爬虫IP服务器吗 今天我就来分享一个简单而强大的解决方案 使用HTTPS模式建立工具 本文将为你提供详细的操作步骤和代码示例 让你快速上手 轻松建立自己的爬虫IP服务器 1 准备工作 在开始之前
  • python TCP通信雷达实时解析数据

    雷达解析程序 coding cp936 import socket import re class jiema def yushe3 self receve r receve av receve v receve h while True
  • 如何在移动端猎豹浏览器中设置代理IP

    手机浏览器作为一款功能强大且广受欢迎的移动浏览器 提供了丰富的功能和个性化选项 其中包括设置动态ip地址的功能 通过设置动态ip地址 您可以改变您的网络访问路径 保护个人隐私 或者访问被地理限制的内容 接下来 我将为您介绍在手机浏览器中如何
  • CK-GW06-E00与CODESYS TCP通信

    CK GW06 E00与CODESYS TCP通信 CK GW06 E00是一款支持标准工业通讯协议Modbus TCP的网关控制器 方便用户集成 到 PLC 等控制系统中 本控制器提供了网络 POE 供电和直流电源供电两种方式 确保用 户
  • 基于ftp协议的文件变化主动监听

    基于ftp协议的文件变化主动监听 前言 实现思路 代码实现思路 具体代码实现 依赖引入 FTPService接口 FTPServiceImpl类 FileChangeEvent接口 FileChangeData实体类 FileChangeT
  • F5 BIG-IP LTM基础资料

    F5 BIG IP网络概述 TMOS是一个全代理的体系结构 流量必须穿越BIG IP设备以获得TMOS的优化效果 部署方式 路由模式 也被称作串联模式 真实服务器放在BIG IP之后的一个内部网络 真实服务器的网关需要指向 或者最终通过 B
  • Kali如何配置静态IP,并且实现网络访问

    1 本地网络配置 我是使用VMware workstation的桥接网络 配置IP要根据对应的网络模式下对应的网络段进行配置 才能保证Kali与别的主机正常通信 桥接网络模式 我需要先看一下宿主机的网络IP地址 WIN r输入cmd 回车
  • 通过路由器端口映射实现外网IP访问内网服务器

    1 确认路由器的公网IP是不是真的公网IP 特别重要 如果不是可以不用看后面的了 通过www ip138 com网站可以查询当前网络的公网IP 再进入路由器控制界面查看wan口IP和公网IP是否相同 如果不同 大概率是私网IP 服务商在公网
  • 浅析epoll的水平触发和边缘触发,以及边缘触发为什么要使用非阻塞IO

    https blog csdn net lihao21 article details 67631516 ref myread https blog csdn net D Guco article details 71373381 一 基本
  • 虚拟ip、浮动ip

    虚拟ip 虚拟 IP 是一个虚拟的 软件定义的 IP 地址 它可以用来在网络中隐藏真实的 IP 地址 或者在多个物理服务器之间共享一个 IP 地址 虚拟 IP 通常用于网络负载均衡 高可用性和网络安全等方面 Docker 在Docker中
  • Go渗透测试笔记(二)---TCP,扫描器和代理

    Go渗透测试笔记 二 TCP 扫描器和代理 0x00 前言 TCP是面向连接协议的主要标准 也是现代网络的基础 作为攻击者 我们应当了解TCP的工作原理 并且能够开发可用的TCP结构体 以便可以识别 打开 关闭 的端口 找出错误的结果 如误
  • TCP/IP协议栈及网络基础,协议栈原理及实现

    1 TCP IP协议栈及网络基础 推荐这个在B站几千观看的视频讲解 底层原理到徒手实现 TCP IP网络协议栈 tcp协议栈 如何实现 C C Linux服务器开发高级架构学习视频点击 C C Linux服务器开发高级架构师 Linux后台
  • 给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通

    我们知道wsl2是基于hyper v的虚拟机 每次重新启动的时候 都会重新拉一个新的hyper v虚拟机实例 然后虚拟网卡的IP是dhcp随机分配的 如果作为开发系统用 就会比较烦每次都要换一个IP 有人提供了个脚本 他写了个bat脚本在w
  • 网络通信TCP协议三次握手

    TCP是什么 TCP Transmission Control Protocol 传输控制协议 是一种面向连接 连接导向 的 可靠的 基于IP的传输层协议 TCP在IP报文的协议号是6 TCP是一个超级麻烦的协议 而它又是互联网的基础 也是
  • Linux TCP链接查看和调整

    查看Linux的TCP连接数的方法如下 统计80端口连接数 netstat nat grep i 80 wc l 统计httpd协议连接数 ps ef grep httpd wc l 统计已连接上的 状态为 established 的TCP
  • Windows实例如何通过本地安全策略限制远程登录的IP地址

    Windows实例如何通过本地安全策略限制远程登录的IP地址 阿里云 禁止所有的IP地址连接服务器的RDP端口 远程连接登录服务器 单击 开始 选择 运行 输入gpedit msc 单击 确定 打开本地组策略编辑器 在左侧依次找到 计算机配
  • socket编程实现简单的TCP网络程序(下)

    socket编程实现简单的TCP网络程序 下 文章目录 1 封装TCP socket 2 TCP通用服务器 3 英译汉服务器 4 TCP通用客户端 5 英译汉客户端 1 封装TCP socket include
  • 网络安全与IP安全网络安全

    网络安全 是指网络系统的硬件 软件以及系统中的数据收到的保护 保护的基本属性为 机密性 身份认证 完整性和可用性 基本特征 相对性 时效性 相关性 不确定性 复杂性和重要性 在该方向主要研究如下领域 入侵者如何攻击网络 如何防护网络对抗攻击
  • linux下查看所有tcp端口情况

    netstat ntlp

随机推荐

  • python数据可视化03

    一 正弦曲线与余弦曲线图 import numpy as np import matplotlib pyplot as plt plt rcParams font sans serif SimHei plt rcParams axes un
  • Mac和Linux中Apache RocketMQ的安装和使用(亲测有效,不服来战)

    一 项目需要用到Apache RocketMQ Apache RocketMQ is an open source distributed messaging and streaming data platform 这是阿里开源的一个消息中
  • 操作系统(王道)

    1 1 1 操作系统概念 裸机 硬件只听得懂二进制指令 gt 操作系统 属于软件 提供良好交互界面 gt 应用软件 gt 用户使用 操作系统是指控制和管理整个计算机系统的硬件和软件资源 并合理地组织和调度计算机工作和资源的分配 以提供给用户
  • mysql查看所有用户

    使用shell命令MySQL uroot p 输入密码后再select user host from mysql user 结果
  • vue2中使用axios http请求出现的问题解决

    使用axios处理post请求时 出现的问题解决 默认情况下 axios post url params then res gt res data 当url是远程接口链接时 会报404的错误 Uncaught in promise Erro
  • 【论文摘要】标签合并Bamboo: Building Mega-Scale Vision Dataset Continually with Human-Machine Synergy

    Bamboo Building Mega Scale Vision Dataset Continually with Human Machine Synergy 前言 论文链接 https arxiv org pdf 2203 07845
  • git上线流程

    1 本地分支上传远端 git push 2 切换到master主分支 git checkout master 3 拉取最新 git pull 4 新建分支 merge 日期 先切换 git checkout merge 20210528 切
  • 几种常见的排序算法、搜索与二分法查找

    目录 一 排序算法 1 1 冒泡排序 1 2 选择排序 1 3 插入排序 1 4 快速排序 1 5 常见排序算法效率比较 二 搜索 2 1 二分法查找 一 排序算法 1 1 冒泡排序 冒泡排序算法的运作原理 1 比较相邻的元素 如果第一个比
  • 交换机与路由器技术-35-端口多路复用PAT

    目录 一 端口多路复用 PAT 1 1 概述 1 2 端口映射 服务器映射 1 3 配置端口多路复用 1 3 1 方式一 使用单独的公网IP 第一步 定义内网和外网接口 第二步 定义内网地址范围 外网地址 1 使用ACL 允许某个范围的内网
  • 学习C++项目—— 搭建多进程网络服务框架,增加业务和日志,心跳机制

    学习计算机网络编程 一 思路和学习方法 本文学习于 C语言技术网 www freecplus net 在 b 站学习于 C 语言技术网 并加以自己的一些理解和复现 如有侵权会删除 接下来对网络编程继续深入学习 二 网络编程继续深入 2 1
  • beego实现跨域

    使用路由过滤器实现跨域访问 routers router go 的init方法中添加过滤器 beego InsertFilter beego BeforeRouter cors Allow cors Options 允许访问所有源 Allo
  • jquery mobile学习教程之初识Jquery mobile 一

    Jquery Mobile简介 jQuery Mobile 是一个针对触摸体验的 web UI 开发框架 允许您开发跨智能电话和平板电脑工作的移动 web 应用程序 jQuery Mobile 框架构建于 jQuery 内核之上 提供几个功
  • 简单AIDL使用

    1 AIDL准备注意 build gradle buildFeatures aidl true 权限 在调用的APP添加目标APP可见 客户端 否则会有no Font service
  • Hystrix请求熔断与服务降级

    1 1 概述 在微服务架构中 根据业务来拆分成一个个的服务 服务与服务之间可以相互调用 RPC 在Spring Cloud可以用RestTemplate Ribbon和Feign来调用 为了保证其高可用 单个服务通常会集群部署 由于网络原因
  • Flex程序发布

    当你写好了一个Flex程序 想要按照某种方式发布 比如我们在网上见到很多发布后的例子中 在点击右键的时候出现一个菜单 菜单中有一个view source选项 选择这一项就可以预览程序的源码甚至是整个程序的架构 接下来简单介绍下程序的发布来实
  • 写定时任务发送邮件报错(Could not connect to SMTP host:smtp.exmail.qq.com,port:465)

    需求阐述 在写完定时任务发送邮件之后 调试的时候发现报错 Could not connect to SMTP host smtp exmail qq com port 465 一开始我以为是在for循环里发送邮件导致的 把循环禁用掉之后 发
  • systemd配置文件及管理方法详解

    一 systemd文件夹配置文件夹 systemd 配置文件存在于以下三个文件夹中 etc systemd system 存放系统启动的默认级别及启动的unit的软连接 优先级最高 run systemd system 系统执行过程中产生的
  • Log4j工具入门

    Log日志 主要用于记录程序运行的情况 以便于程序在部署之后的排错调试等等 也有利于将这些信息进行持久化 如果不将日志信息保存到文件或数据库 则信息便会丢失 Java Logging API 需JDK1 4版本以上才能支持 java uti
  • SQLPrompt关闭联网

    一 安装步骤概述 下载的破解版本SqlPrompt一般包含有如下两个可执行程序文件 安装步骤 1 安装SQLPrompt xxx 版本号 应用程序 需要关掉Miscrosoft SQL Server Management 2 再打开SQL
  • UDP 概述(主要特点,首部格式 header)

    文章目录 1 UDP 概述 2 UDP的 首部格式 header 1 UDP 概述 UDP只在 IP的数据包服务 之上增加了一点功能 这就是复用和分用的功能以及差错检测的功能 UDP的主要特点 序号 特点 描述 1 无连接 发送数据之前不需