传输层协议 UDP

简介: 传输层协议 UDP

一、UDP 协议段格式

  1. 源端口号:该字段是一个16 位的字段,表示发送方应用程序的端口号。
  2. 目的端口号:该字段与源端口类似,它也是一个16 位的字段,表示接收方应用程序的端口号。
  3. 长度:该字段指示UDP数据报文的总长度,包括 UDP 头部和数据部分。它是一个 16 位的字段,最小值为8 字节(UDP头部的大小),最大值为 65535 字节,也就是说一个 UDP 数据报的最大长度是 64 kb。
  4. 校验和:该字段用于校验 UDP 数据报文的完整性。校验和是一个 16 位的字段,由发送方计算得出,并且接收方会使用该字段进行校验。校验和的计算涉及到整个 UDP 数据报文(包括 UDP 头部和数据部分),以便检测任何数据的改动或传输中的错误。
  5. 数据:该字段存储了一个完整的应用层数据报。它的长度可以从长度字段中推导出来。数据部分可以为空,也可以包含任意长度的数据。

二、再谈 UDP 特点

无连接:UDP是一种无连接的协议。这意味着在数据传输之前,发送方和接收方之间不需要建立连接。每个UDP数据报文都是独立的,它们之间没有关联。因此,UDP通信具有低延迟和较少的开销。

不可靠:UDP不提供数据传输的可靠性。它没有重传机制或错误恢复机制,也不对数据包的丢失、重复、乱序进行处理。如果使用UDP进行数据传输,可能会出现丢包、丢失或损坏数据的情况。因此,UDP主要适用于对实时性要求高,但对数据可靠性要求相对较低的应用,如音视频传输和实时游戏。

面向数据报:UDP是一种面向数据报的协议。每个UDP数据包被视为一个独立的数据报文,有自己的起始地址和目标地址,并独立于其他数据报文。UDP不对数据流进行拆分或重组,保持了数据包的完整性。如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节;而不能循环接收10次,每次接收10个字节。

全双工:UDP的 socket 既能读,也能写,支持双向通信。

UDP 缓冲区:UDP只有接收缓冲区,没有发送缓冲区。UDP没有真正意义上的 发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作;UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃。

大小受限:UDP协议首部中有一个16位的最大长度。也就是说一个UDP能传输的数据最大长度是 64KB(包括UDP首部和数据)

三、下期预告

既然 UDP 不可靠,并且长度受限,那么如果需要可靠传输,并且传输长度大于64K的数据时我们该如何处理呢?这里就需要引入另一个更强大的传输层协议 TCP ,关于 TCP 我们下期详细介绍。敬请期待!

相关文章
|
24天前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
26 1
Jmeter如何对UDP协议进行测试?
|
2月前
|
XML JSON 算法
【JavaEE】——自定义协议方案、UDP协议
自定义协议,序列化,xml方案,json方案,protobuffer方案,UDP协议,校验和,比特翻转,CRC算法,md5算法
|
2月前
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
175 2
|
3月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
103 3
|
3月前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
74 4
|
4月前
|
网络协议 网络性能优化 C#
C# 一分钟浅谈:UDP 与 TCP 协议区别
【10月更文挑战第8天】在网络编程中,传输层协议的选择对应用程序的性能和可靠性至关重要。本文介绍了 TCP 和 UDP 两种常用协议的基础概念、区别及应用场景,并通过 C# 代码示例详细说明了如何处理常见的问题和易错点。TCP 适用于需要可靠传输和顺序保证的场景,而 UDP 适用于对延迟敏感且可以容忍一定数据丢失的实时应用。
86 1
|
4月前
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
287 3
|
2月前
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
3月前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
118 4
|
3月前
|
网络协议 算法 网络性能优化