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 协议常⽤于语⾳,视频,直播等实时性要求较⾼的场所

相关文章
|
17天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
66 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
19天前
|
存储 网络协议 算法
UDP 协议和 TCP 协议
本文介绍了UDP和TCP协议的基本结构与特性。UDP协议具有简单的报文结构,包括报头和载荷,报头由源端口、目的端口、报文长度和校验和组成。UDP使用CRC校验和来检测传输错误。相比之下,TCP协议提供更可靠的传输服务,其结构复杂,包含序列号、确认序号和标志位等字段。TCP通过确认应答和超时重传来保证数据传输的可靠性,并采用三次握手建立连接,四次挥手断开连接,确保通信的稳定性和完整性。
53 1
UDP 协议和 TCP 协议
|
14天前
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
20天前
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
140 73
|
27天前
|
网络协议
UDP 协议
UDP 协议
93 58
|
5天前
|
存储 网络协议 算法
更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】
UDP和TCP各有所长,UDP以其低延迟、轻量级的特点适用于对实时性要求极高的应用,而TCP凭借其强大的错误检测、流量控制和拥塞控制机制,确保了数据的可靠传输,适用于文件传输、网页浏览等场景。理解它们的工作原理,特别是UDP的缓冲区管理和TCP的8种策略,对于优化网络应用的性能、确保数据的高效和可靠传输至关重要。开发者在选择传输层协议时,应根据实际需求权衡利弊,合理利用这两项关键技术。
23 5
|
3天前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
16 1
|
17天前
|
监控 网络协议 网络性能优化
如何办理支持UDP协议的网络
在当今网络环境中,UDP(用户数据报协议)因传输速度快、延迟低而广泛应用于在线游戏、视频流媒体、VoIP等实时服务。本文详细介绍了办理支持UDP协议网络的方法,包括了解UDP应用场景、选择合适的ISP及网络套餐、购买支持UDP的设备并进行优化设置,以及解决常见问题的策略,帮助用户确保网络稳定性和速度满足实际需求。
|
17天前
|
网络协议 网络安全 网络架构
分布式基础-网络通信协议讲解
分布式基础-网络通信协议讲解
分布式基础-网络通信协议讲解
|
20天前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
73 3