udp协议-看这篇就够了

简介: UDP 概述用户数据报协议 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及查错检测的功能UDP 的主要特点UDP 是无连接的,即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延UDP 使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表UDP 是面向报文的,发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。

UDP 概述

用户数据报协议 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及查错检测的功能

UDP 的主要特点

  1. UDP 是无连接的,即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延
  2. UDP 使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表
  3. UDP 是面向报文的,发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界

UDP协议-图1

  1. UDP 没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的
  2. UDP 支持一对一、一对多、多对一和多对多的交互通信
  3. UDP 的首部开销小,只有8个字节,比 TCP 的20个字节的首部要短

PHP面试问答:https://github.com/colinlet/PHP-Interview-QA?utm=alc
包含网络协议、数据结构与算法、PHP、Web、MySQL、Redis、Linux、安全、设计模式、架构、自我介绍、离职原因、职业规划、准备问题等部分
如果觉得不错欢迎 star 关注,正在不断持续更新中~~

存在问题

  1. 某些实时应用需要使用没有拥塞控制的 UDP,但很多的源主机同时都向网络发送高速率的实时视频流时,网络就有可能发生拥塞,导致大家都无法正常接收。
  2. 还有一些使用 UDP 的实时应用,需要对 UDP 的不可靠传输进行适当的改进,以减少数据的丢失。应用进程可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传已丢失的报文

UDP 的首部格式

用户数据报 UDP 有两个字段:数据字段首部字段。首部字段很简单,只有8个字节,由四个字段组成,每个字段都是两个字节

首部字段

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

UDP协议-图2

端口分用

当运输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,上交最后的终点——应用进程

UDP协议-图3

如果接受方 UDP 发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用程序),就丢弃该报文,并由网际控制报文协议 ICMP 发送“端口不可达”差错报文给发送方

伪首部

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

《用户数据报协议UDP》 原文链接:https://blog.maplemark.cn/2019/04/用户数据报协议udp.html

目录
相关文章
|
2月前
|
监控 API 数据处理
局域网监控软件中基于UDP协议的数据传输代码实现
本文介绍了在局域网监控系统中,使用UDP协议进行数据传输的实现。示例代码展示了如何用Python创建UDP套接字,接收并处理监控数据。处理后的数据可通过网站API自动提交到网站,例如利用requests库发送HTTP POST请求。这种方法便于实现监控数据的自动化提交和展示,提升效率与安全性。
142 7
|
2月前
|
负载均衡 算法 网络协议
slb监听协议UDP
SLB的UDP监听器适用于实时性高、数据完整性要求低的场景,如视频流和在线游戏。它无连接、不可靠,不保证数据顺序和重传,适合延迟敏感应用。SLB进行UDP会话保持依赖应用层协议或数据包标识符,使用定制健康检查检测后端服务器状态,并支持多种负载均衡算法。配置时注意网络环境对UDP的支持,确保流量畅通。
48 4
|
6天前
|
缓存 网络协议 网络性能优化
运输层---UDP协议
运输层---UDP协议
15 3
|
2月前
|
域名解析 缓存 网络协议
|
18天前
|
缓存 网络协议 算法
TCP传输协议与UDP传输协议的特点与分析
网络协议如同人与人之间相互交流是需要遵循一定的规则(如语言)一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议。 OSI参考模型和TCP/IP模型在不同的层次中有许多不同的网络协议,如图所示: 我们今天主要讨论的是传输层的协议,即考虑应用程序之间的逻辑通信。简单来说就是数据该如何发送给其他机器;
|
29天前
|
网络协议 应用服务中间件 网络性能优化
解析TCP /UDP协议的 socket 调用的过程
【6月更文挑战第2天】该文介绍了传输层的两种主要协议TCP和UDP的区别。TCP是面向连接、可靠的,提供顺序无错的数据传输,而UDP则是无连接、不可靠的,不保证数据顺序或不丢失。
|
2月前
|
域名解析 存储 网络协议
基于 Wireshark 分析 UDP 协议
基于 Wireshark 分析 UDP 协议
|
10天前
用UDP协议实现发送接收的网络聊天室
用UDP协议实现发送接收的网络聊天室
10 0
|
10天前
|
网络协议 Java API
TCP/IP协议以及UDP(超详细,看这一篇就够了)
TCP/IP协议以及UDP(超详细,看这一篇就够了)
13 0
|
2月前
|
存储 网络协议
传输层协议 UDP
传输层协议 UDP