【计算机网络】UDP协议

简介: UDP协议是传输层的协议,是不可靠的,无连接的,也就是说传输层我们不能改变,也不能扩展,所以只能在应用层进行扩展,而实现方式可以参考TCP协议是如何保证数据进行可靠传输的,如添加确认应答,超时重传,连接管理等机制确保数据可以被接收,从而实现数据的可靠传输

1. UDP协议头部格式

image.png

源端口号:表示数据从哪里发送

目的端口号:表示数据要发送到哪里区

16位UDP长度:表示整个数据报(UDP首部+UDP数据)的最大长度

16位UDP校验和:检测数据是否被破坏,如果UDP报文校验和检测出错,就会直接丢弃


2. UDP协议的特点

2.1 无连接

知道目的主机的IP地址和端口号就可以直接传输数据,不需要像TCP协议那样,通过三次握手建立连接后才可以进行数据的收发


2.2 不可靠

UDP协议没有任何的可靠机制来保证数据的可靠传输,发送端发送数据后,如果因为网络故障等原因无法发送到对方,UDP协议也不会给应用层返回任何错误信息,不像TCP协议那样,通过确然应答机制,超时重传机制,连接管理机制,流量控制和拥塞控制来保证数据的可靠传输


2.3 面向数据报

发送端一次发送的数据,接收端也必须一次接收,应用层交给UDP的报文,UDP原样发送,既不会拆分也不会合并


如使用UDP协议传输100字节的数据:如果发送端一次发送100个字节,接收端就必须一次接收100个字节,而不能循环接收,如循环接收10次,一次接收10个字节


2.4 有接收缓冲区,没有发送缓冲区

UDP协议只有接收缓冲区,没有发送缓冲区


对于发送来说,发送端直接将数据交给系统内核,发送端不关心接收端是否接收到数据,再其发送数据后就不管了,所以不用发送缓冲区来记录数据编号(重传时才有用)

对于接收来说,接收端可以接收到多个数据报,接收端处理数据的速度可能比接收数据的速度慢,此时就需要接收缓冲区来临时保存数据,待处理完该数据,就从缓冲区删掉,另外当接收缓冲区满了,此时接收到的数据就会直接丢弃

2.5 大小受限

UDP协议首部有一个16位UDP长度,代表UDP一次能传输数据的最大长度为64k(包含UDP首部)


3. 基于UDP的应用层协议

NFS:网络文件系统

TFTP:简单文件传输协议

DHCP:动态主机配置协议

BOOTP:启动协议(用于无盘设备启动)

DNS:域名解析协议


4. UDP协议与TCP协议对比

特点对比


UDP:无连接,不可靠,面向数据报,有接收缓冲区,没有发送缓冲区,大小受限

TCP:有连接,可靠,面向字节流,有发送缓冲区和接收缓冲区,大小不受限

使用场景对比


讲过上述特点对比,可以看出TCP协议最大的特点是可靠,也就是保证数据能让对方接收到,而UDP协议最大的特点是传输效率高,速度快


TCP协议使用场景:用于文件传输,重要状态更新等场景

UDP协议使用场景:用于语音传输,视频传输等场景,我们日常中发现视频和语音电话中,往往会有卡顿,但是不影响我们使用


5. 经典面试题

基于传输层UDP协议,如何实现可靠传输?


答:UDP协议是传输层的协议,是不可靠的,无连接的,也就是说传输层我们不能改变,也不能扩展,所以只能在应用层进行扩展,而实现方式可以参考TCP协议是如何保证数据进行可靠传输的,如添加确认应答,超时重传,连接管理等机制确保数据可以被接收,从而实现数据的可靠传输


相关文章
|
2月前
|
负载均衡 网络协议 算法
|
14天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
14天前
|
XML JSON 算法
【JavaEE】——自定义协议方案、UDP协议
自定义协议,序列化,xml方案,json方案,protobuffer方案,UDP协议,校验和,比特翻转,CRC算法,md5算法
|
17天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
74 1
|
27天前
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
111 2
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
77 11
|
2月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
68 3
|
2月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
130 3
|
2月前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
87 4
|
2月前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
53 4
下一篇
开通oss服务