UDP协议 素颜马尾好姑娘i 2023-02-26 10:25 64阅读 0赞 前面我们介绍了了TCP协议,深入浅出TCP协议,为什么需要TCP协议?知道TCP是面向连接的提供可靠性服务的传输层协议,今天讲下同属于传输层的另一个协议——UDP。 正文 1 什么是UDP? UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,传输可靠性没有保证。 2 UDP报文头 UDP报文分为UDP报文头和UDP数据区域两部分。报头由源端口、目的端口、报文长度以及校验和组成。 UDP头部的标识如下: 16位源端口号:源主机的应用程序使用的端口号。 16位目的端口号:目的主机的应用程序使用的端口号。 16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度为8字节,所以该字段的最小值为8。 16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。 3 为什么需要UDP? UDP(User Datagram Protocol)传输与IP传输非常类似,它的传输方式也是"Best Effort"的,所以UDP协议也是不可靠的。 我们知道TCP就是为了解决IP层不可靠的传输层协议,既然UDP是不可靠的,为什么不直接使用IP协议而要额外增加一个UDP协议呢? 1、一个重要的原因是IP协议中并没有端口(port)的概念。IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用。一个端口就代表了这样的一个通信通道。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。 2、对于一些简单的通信,我们只需要“Best Effort”式的IP传输就可以了,而不需要TCP协议复杂的建立连接的方式(特别是在早期网络环境中,如果过多的建立TCP连接,会造成很大的网络负担,而UDP协议可以相对快速的处理这些简单通信) 3、在使用TCP协议传输数据时,如果一个数据段丢失或者接收端对某个数据段没有确认,发送端会重新发送该数据段。TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于迟延敏感的应用,少量的数据丢失一般可以被忽略,这时使用UDP传输将能够提升用户的体验。 4 UDP应用场景: 当应用程序对传输的可靠性要求不高,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。 UDP适合于实时数据传输,如语音和视频通信,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。例如:我们在看视频的时候偶尔丢一两个包也不影响体验。 常用的使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP。 UDP端口号有:53(DNS)、69(TFTP)、161(SNMP)。 5 UDP协议不可靠,可靠性由谁保障 UDP将数据从源端发送到目的端时,无需事先建立连接,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接收到重复数据的情况。 UDP传输的可靠性由应用层负责,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。 6 UDP协议优缺点: 优点:UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,开销更小,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。 缺点:UDP报文没有可靠性保证、顺序保证和流量控制字段等, 7 UDP工作原理 主机A发送数据包时,这些数据包是以有序的方式发送到网络中的,每个数据包独立地在网络中被发送,所以不同的数据包可能会通过不同的网络路径到达主机B。这样的情况下,先发送的数据包不一定先到达主机B。 因为UDP数据包没有序号,主机B将无法通过UDP协议将数据包按照原来的顺序重新组合,所以此时需要应用程序提供报文的到达确认、排序和流量控制等功能。 通常情况下,UDP采用实时传输机制和时间戳来传输语音和视频数据。 8 UDP和TCP有什么区别呢 相同点: UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。 不同点: 1、TCP 是面向连接的传输控制协议,而UDP 提供了无连接的数据报服务; 2、TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作; 3、UDP 具有较好的实时性,工作效率较 TCP 协议高; 4、UDP 段结构比 TCP 的段结构简单,因此网络开销也小。 9 实战 下面在华为ENSP模型器上去搭建下环境抓一个UDP报文进行解析,之前介绍过ENSP模拟器的下载和使用 【必备软件】华为eNSP模拟器安装和介绍(内附下载链接),通过wireshark抓包的方式看下数据是如何封装的?网络工程师必备技能|如何在华为ENSP模拟器上通过wireshark抓包 拓扑如图所示:PC1和PC2互联。PC1的IP地址是192.168.1.2/24,MAC地址54-89-98-B0-52-A7; PC2的IP地址是192.168.1.3/24,MAC地址54-89-98-2D-4C-71。 PC1的地址配置为192.168.1.2/24; PC2的地址配置为192.168.1.3/24; 通过UDP发包工具在将PC1作为源向PC2发送UDP报文,源和目的端口为518; 如图所示,在PC1和PC2的互联接口上进行抓包,获取发送的数据报文如下; 打开一个详细的报文,我们看下UDP的报文格式。可以看到:UDP源端口号为518,目的端口号为518,UDP包长度为36字节,8字节UDP报文头+28字节数据。 总结 本章主要介绍了传输层的另一个协议:UDP,UDP其实可以看成是对TCP协议的补充,是一种无连接的不可靠的协议,具体延迟小,效率高等特点。 **原文链接:\[https://blog.csdn.net/sinat\_38673660/article/details/107094567\]**(https://blog.csdn.net/sinat\_38673660/article/details/107094567)
相关 UDP协议 (User Datagram Protocol 即用户数据报协议)是传输层的重要协议之一(还有一个重要协议是TCP) 落日映苍穹つ/ 2024年04月25日 08:44/ 0 赞/ 138 阅读
相关 UDP协议 网络传输中,由于一些外部干扰,就可能会出现数据传输出错的情况。因此,就需要有办法,能够识别出出错的数据。校验和,就是这样的一种检查手段。校验和本质上是一个字符串,体积比原... ゝ一世哀愁。/ 2024年04月23日 21:19/ 0 赞/ 139 阅读
相关 UDP协议 UDP协议 文章目录 UDP协议 一、UDP协议 二、UDP的首部格式 1.首部字段 三、UDP协议的特点 1.无连 悠悠/ 2024年02月23日 02:45/ 0 赞/ 27 阅读
相关 UDP协议 ![在这里插入图片描述][54b363736e2148a3a82cb2451df1fb8e.gif_pic_center] 文章目录 一、前沿知识 应 太过爱你忘了你带给我的痛/ 2023年09月27日 14:24/ 0 赞/ 182 阅读
相关 UDP协议 UDP (User Datagram Protocol)用户数据报协议,在数据传输时彼此之间不需要建立连接,传输前需要把数据定义成数据报,并且传输效率高,但是不安全。 Dat 野性酷女/ 2023年08月17日 16:10/ 0 赞/ 156 阅读
相关 UDP协议 前面我们介绍了了TCP协议,深入浅出TCP协议,为什么需要TCP协议?知道TCP是面向连接的提供可靠性服务的传输层协议,今天讲下同属于传输层的另一个协议——UDP。 正文 素颜马尾好姑娘i/ 2023年02月26日 10:25/ 0 赞/ 65 阅读
相关 UDP协议 一、通信协议。 -- UDP协议 TCP -> Tranmission Control Protocol UDP -> User Data Protocol IP 水深无声/ 2022年12月13日 14:02/ 0 赞/ 285 阅读
相关 UDP协议 UDP 是面向数据报的传输层协议(TCP是面向字节流的协议)。面向报文的传输方式是指应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。 UDP不提供错误 以你之姓@/ 2022年08月21日 01:29/ 0 赞/ 384 阅读
相关 《网络协议》UDP 协议 概述 UDP 是无连接、不可靠的数据报传输层协议,为应用程序发送和接收数据报,只是将数据报的分组从一台主机发送到另一台主机,但并不保证数据报能够到达另一端,任何 清疚/ 2022年08月14日 03:51/ 0 赞/ 386 阅读
相关 UDP协议 1)UDP协议概述 ![20190807084647592.png][] 2)UDP服务器与客户端程序 服务器端: String 谁践踏了优雅/ 2021年11月05日 13:26/ 0 赞/ 485 阅读
还没有评论,来说两句吧...