传输层协议 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 我们下期详细介绍。敬请期待!

相关文章
|
12天前
|
缓存 网络协议 算法
TCP传输协议与UDP传输协议的特点与分析
网络协议如同人与人之间相互交流是需要遵循一定的规则(如语言)一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议。 OSI参考模型和TCP/IP模型在不同的层次中有许多不同的网络协议,如图所示: 我们今天主要讨论的是传输层的协议,即考虑应用程序之间的逻辑通信。简单来说就是数据该如何发送给其他机器;
|
24天前
|
网络协议 应用服务中间件 网络性能优化
解析TCP /UDP协议的 socket 调用的过程
【6月更文挑战第2天】该文介绍了传输层的两种主要协议TCP和UDP的区别。TCP是面向连接、可靠的,提供顺序无错的数据传输,而UDP则是无连接、不可靠的,不保证数据顺序或不丢失。
|
25天前
|
域名解析 存储 网络协议
基于 Wireshark 分析 UDP 协议
基于 Wireshark 分析 UDP 协议
|
5天前
用UDP协议实现发送接收的网络聊天室
用UDP协议实现发送接收的网络聊天室
9 0
|
5天前
|
网络协议 Java API
TCP/IP协议以及UDP(超详细,看这一篇就够了)
TCP/IP协议以及UDP(超详细,看这一篇就够了)
10 0
|
22天前
|
XML JSON 算法
网络原理(1)——UDP协议
网络原理(1)——UDP协议
22 0
|
22天前
|
Java 程序员 Linux
网络编程套接字(3)——Java数据报套接字(UDP协议)
网络编程套接字(3)——Java数据报套接字(UDP协议)
13 0
|
9天前
|
网络协议 JavaScript 安全
深入浅出TCP 与 UDP
深入浅出TCP 与 UDP
26 0
|
26天前
|
网络协议 Java
Java的Socket编程:TCP/IP与UDP深入探索
Java的Socket编程:TCP/IP与UDP深入探索
22 0
|
1天前
|
网络协议 算法 网络性能优化
TCP和UDP有什么区别?
TCP(传输控制协议)和 UDP(用户数据报协议)是互联网协议族(TCP/IP)中的两种核心传输层协议,它们在数据传输的方式和特性上有显著的区别。
23 9