C语言 网络编程(三)UDP 协议

简介: UDP(用户数据报协议)是一种无需建立连接的通信协议,适用于高效率的数据传输,但不保证数据的可靠性。其特点是无连接、尽力交付且面向报文,具备较高的实时性。UDP广泛应用于视频会议、实时多媒体通信、直播及DNS查询等场景,并被许多即时通讯软件和服务(如MSN/QQ/Skype、流媒体、VoIP等)采用进行实时数据传输。UDP报文由首部和数据部分组成,首部包含源端口、目的端口、长度和校验和字段。相比TCP,UDP具有更高的传输效率和更低的资源消耗。

UDP

介绍

UDP(User Datagram Protocol) : ⽤户数据报协议,是不可靠的⽆连接的协议。在数据发送前,因为不
需要进⾏连接,所以可⽤于进⾏⾼效率的传输。但不保证数据的可靠性。

特点

  • UDP 是⽆连接的协议。
  • UDP 使⽤尽最⼤努⼒交付,不保证数据可靠。
  • UDP 是⾯向报⽂的。
  • UDP 通信的实时性较⾼。

应用场景

  • 视频会议
  • 实时多媒体通信
  • 直播
  • 发送⼩尺⼨数据(如对 DNS 服务器进⾏ IP 地址查询时)
  • 在接收到数据,给出应答较困难的⽹络中使⽤ UDP。(如:⽆线⽹络)
  • MSN/QQ/Skype 等即时通讯软件的点对点⽂本通讯以及⾳视频通讯通常采⽤ UDP 协
  • 流媒体、VOD、VoIP、IPTV 等⽹络多媒体服务中通常采⽤ UDP ⽅式进⾏实时数据传

UDP传输

img_78.png

UDP报文格式

⽤户数据报 UDP 由两个部分组成:⾸部 + 数据部分。⾸部部分很简单,只有 8 个字节,由四个字段组成,每个字段的⻓度都是两个字节。
img_79.png

字段涵义:

  • 源端口号:需要对⽅回信时选⽤,不需要时全部置 0.
  • 目的端口号:接收⽅的端口号。在终点交付报⽂的时候需要⽤到。
  • ⻓度:UDP 的数据报的⻓度(包括⾸部和数据)其最⼩值为 8(只有⾸部)
  • 校验和:检测 UDP 数据报在传输中是否有错,有错则丢弃。

特点:

tcp 协议是⾯向连接、可靠、字节流

udp 协议是⽆连接、不可靠、数据报⽂字段

性能:

tcp 协议传输效率慢,所需要资源多

udp 协议传输效率快,所需要资源少

应⽤常⽤:

tcp 协议常⽤于⽂件,邮件传输

udp 协议常⽤于语⾳,视频,直播等实时性要求较⾼的场所

相关文章
|
2月前
|
存储 网络协议 算法
UDP 协议和 TCP 协议
本文介绍了UDP和TCP协议的基本结构与特性。UDP协议具有简单的报文结构,包括报头和载荷,报头由源端口、目的端口、报文长度和校验和组成。UDP使用CRC校验和来检测传输错误。相比之下,TCP协议提供更可靠的传输服务,其结构复杂,包含序列号、确认序号和标志位等字段。TCP通过确认应答和超时重传来保证数据传输的可靠性,并采用三次握手建立连接,四次挥手断开连接,确保通信的稳定性和完整性。
88 1
UDP 协议和 TCP 协议
|
14天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
43 13
|
8天前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
19 4
|
22天前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
49 10
|
2月前
|
网络协议
UDP 协议
UDP 协议
119 58
|
1月前
|
网络协议 网络性能优化 C#
C# 一分钟浅谈:UDP 与 TCP 协议区别
【10月更文挑战第8天】在网络编程中,传输层协议的选择对应用程序的性能和可靠性至关重要。本文介绍了 TCP 和 UDP 两种常用协议的基础概念、区别及应用场景,并通过 C# 代码示例详细说明了如何处理常见的问题和易错点。TCP 适用于需要可靠传输和顺序保证的场景,而 UDP 适用于对延迟敏感且可以容忍一定数据丢失的实时应用。
28 1
|
1月前
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
119 3
|
1月前
|
存储 网络协议 算法
更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】
UDP和TCP各有所长,UDP以其低延迟、轻量级的特点适用于对实时性要求极高的应用,而TCP凭借其强大的错误检测、流量控制和拥塞控制机制,确保了数据的可靠传输,适用于文件传输、网页浏览等场景。理解它们的工作原理,特别是UDP的缓冲区管理和TCP的8种策略,对于优化网络应用的性能、确保数据的高效和可靠传输至关重要。开发者在选择传输层协议时,应根据实际需求权衡利弊,合理利用这两项关键技术。
63 5
|
1月前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
65 1
|
2月前
|
监控 网络协议 网络性能优化
如何办理支持UDP协议的网络
在当今网络环境中,UDP(用户数据报协议)因传输速度快、延迟低而广泛应用于在线游戏、视频流媒体、VoIP等实时服务。本文详细介绍了办理支持UDP协议网络的方法,包括了解UDP应用场景、选择合适的ISP及网络套餐、购买支持UDP的设备并进行优化设置,以及解决常见问题的策略,帮助用户确保网络稳定性和速度满足实际需求。