UDP协议重点总结(附实例) 墨蓝 2023-09-25 14:25 54阅读 0赞 #### 文章目录 #### * 前言 * 一、网络的原生情况 * 二、UDP协议 * * 2.1 UDP的特点 * * 2.1.1 不可靠性 * 2.1.2 无连接(不是缺点) * 2.1.3 面向数据报(优点) * 2.1.4 缓冲区 * 2.1.5 大小受限 * 2.2 UDP协议端格式 * 2.3 关于校验和 * 2.4 基于UDP的应用层协议 * 三、UDP总结(如何发送接收的) * 后言 -------------------- ## 前言 ## 回顾2022年,展望2023年,博主给大家带来了网络中传输层的重点总结,附上博主本人的实例,帮助大家更好的理解数据是怎么在网络中传输的。 > 博主个人社区:[开发与算法学习社区][Link 1] > > 博主个人主页:[Killing Vibe的博客][Killing Vibe] > > 欢迎大家加入,一起交流学习~~ ## 一、网络的原生情况 ## 网络中的数据,是经过路由器之间,一跳一跳地,接力一样地,传送到目标主机上的。 **这带来了两个问题:(站在网络层的视角上讨论)** **✦ 网络传送是不可靠的** 1. 你的发送了数据,对方不保证一定能收到 2. 不能保证严格按照发送时的顺序被对方接收到 由于路可能不同,所以很难保证按照出发的顺序到达 ![在这里插入图片描述][0ff63edb4dd249978ab2b4327a68e47b.png] **✦ 网络传送是不安全的** 1. 你发送的所有数据,沿途的路由器都可以进行查看或者修改,窃听,篡改 2. 别人可以伪造成你发送的数据 **这两个问题需要交给网络层以上(传输层、应用层)去解决** 这篇文章博主将详细总结一下传输层的重点协议 ## 二、UDP协议 ## UDP全称:User Datagram Protocol 用户报文协议 UDP是一个很简单的传输层协议,它只是做到了传输层最基本的职责 (在 host to host 连通的情况下,实现了process to process) ### 2.1 UDP的特点 ### UDP传输的过程类似于**寄快递**。 ![在这里插入图片描述][0d05f752602d46d98d0b16357a068ee9.png] #### 2.1.1 不可靠性 #### **网络层本身是不可靠的,UDP 又没做过任何的处理,所以UDP是不可靠的!!** 并不是UDP做了什么,才变得不可靠了,而是UDP什么都没做,所以网络层的不可靠特性直接表达给了应用层,所以站在应用层的角度,我们才说UDP是不可靠的! #### 2.1.2 无连接(不是缺点) #### 区别于TCP连接,UDP没有任何可靠机制,发送端发送数据报以后,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息。(但无连接效率高,不需要连接带来的资源损耗,成本低) #### 2.1.3 面向数据报(优点) #### 应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并; 用UDP传输100个字节的数据: > 如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节;而不能循环接收10次,每次接收10个字节。 #### 2.1.4 缓冲区 #### UDP只有接收缓冲区,没有发送缓冲区: > * UDP**没有**真正意义上的 **发送缓冲区**。发送的数据会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作; > * UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃; ![在这里插入图片描述][e022a8d29c5c4467a9fdeab4c5a24549.png] UDP的socket既能读,也能写,这个概念叫做 **全双工** #### 2.1.5 大小受限 #### UDP协议首部中有一个16位的最大长度。也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部)。 ### 2.2 UDP协议端格式 ### ![在这里插入图片描述][07297568358b4a06896c4a3f407758e6.png] > * 端口号,表示源主机和目的主机的某个进程的端口号 > * 16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度; > * 如果校验和出错,就会直接丢弃; **所有网络协议的报头中都要具备的职责:如何进行解包(怎么把数据中的header和payload分开)?** 答:由于header长度是**定长**(固定长度),前8个字节一定是header,剩下的一定是payload。 ### 2.3 关于校验和 ### 通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。 基本原理就是利用hash函数(checksum函数就是一种hash函数),只要相同的数据,经过函数处理之后,一定得到相同的结果(hash值:checksum) **举个例子**: 发送方发送的时候: 1. hash(数据) - 》 checksum\_1 2. 把checksum\_1 填在UDP的header中 3. 发送 接收方接受的时候: 1. hash(数据) -》 checksum\_2 2. 如果checksum\_1 == checksum\_2 就接受,如果不等于,说明数据一定不是源数据了,数据损坏 ### 2.4 基于UDP的应用层协议 ### * NFS:网络文件系统 * TFTP:简单文件传输协议 * DHCP:动态主机配置协议 * BOOTP:启动协议(用于无盘设备启动) * DNS:域名解析协议 当然,也包括自己写UDP程序时自定义的应用层协议。 ## 三、UDP总结(如何发送接收的) ## ![在这里插入图片描述][bb0f36cca0384713bae391f0a86eb986.png] ![在这里插入图片描述][17c70c3af1cb4934ad62d6766244d208.png] ## 后言 ## 以上就是UDP协议的重点总结了,文章要是有什么疑问或者问题,欢迎大家私信博主,有帮助的话麻烦各位**点赞+收藏**一波,有助于推荐给更多正在学习的朋友,关注不迷路~~ [Link 1]: https://bbs.csdn.net/forums/killingvibe?joinKey=bxrj0yyjeyrk-2o9q4217kn-1-a7ba228d3f0db23bd3e669796abef74b [Killing Vibe]: https://blog.csdn.net/qq_43575801 [0ff63edb4dd249978ab2b4327a68e47b.png]: https://img-blog.csdnimg.cn/0ff63edb4dd249978ab2b4327a68e47b.png [0d05f752602d46d98d0b16357a068ee9.png]: https://img-blog.csdnimg.cn/0d05f752602d46d98d0b16357a068ee9.png [e022a8d29c5c4467a9fdeab4c5a24549.png]: https://img-blog.csdnimg.cn/e022a8d29c5c4467a9fdeab4c5a24549.png [07297568358b4a06896c4a3f407758e6.png]: https://img-blog.csdnimg.cn/07297568358b4a06896c4a3f407758e6.png [bb0f36cca0384713bae391f0a86eb986.png]: https://img-blog.csdnimg.cn/bb0f36cca0384713bae391f0a86eb986.png [17c70c3af1cb4934ad62d6766244d208.png]: https://img-blog.csdnimg.cn/17c70c3af1cb4934ad62d6766244d208.png
相关 UDP协议 (User Datagram Protocol 即用户数据报协议)是传输层的重要协议之一(还有一个重要协议是TCP) 落日映苍穹つ/ 2024年04月25日 08:44/ 0 赞/ 103 阅读
相关 UDP协议 网络传输中,由于一些外部干扰,就可能会出现数据传输出错的情况。因此,就需要有办法,能够识别出出错的数据。校验和,就是这样的一种检查手段。校验和本质上是一个字符串,体积比原... ゝ一世哀愁。/ 2024年04月23日 21:19/ 0 赞/ 104 阅读
相关 TCP协议重点总结(万字总结-附实例) 文章目录 前言 一、网络的原生情况 二、TCP协议 2.1 TCP的特点 2.2 TCP协议段格式 2.3 TC 迷南。/ 2023年09月25日 14:25/ 0 赞/ 36 阅读
相关 UDP协议重点总结(附实例) 文章目录 前言 一、网络的原生情况 二、UDP协议 2.1 UDP的特点 2.1.1 不可靠性 2 墨蓝/ 2023年09月25日 14:25/ 0 赞/ 55 阅读
相关 IP协议重点总结(附实例) 文章目录 前言 一、IP地址 1.1 概念 1.2 作用 1.3 格式 1.4 组成 1. 深藏阁楼爱情的钟/ 2023年09月25日 14:21/ 0 赞/ 84 阅读
相关 UDP协议 UDP (User Datagram Protocol)用户数据报协议,在数据传输时彼此之间不需要建立连接,传输前需要把数据定义成数据报,并且传输效率高,但是不安全。 Dat 野性酷女/ 2023年08月17日 16:10/ 0 赞/ 128 阅读
相关 UDP协议 前面我们介绍了了TCP协议,深入浅出TCP协议,为什么需要TCP协议?知道TCP是面向连接的提供可靠性服务的传输层协议,今天讲下同属于传输层的另一个协议——UDP。 正文 素颜马尾好姑娘i/ 2023年02月26日 10:25/ 0 赞/ 26 阅读
相关 UDP协议 一、通信协议。 -- UDP协议 TCP -> Tranmission Control Protocol UDP -> User Data Protocol IP 水深无声/ 2022年12月13日 14:02/ 0 赞/ 250 阅读
相关 UDP协议 UDP 是面向数据报的传输层协议(TCP是面向字节流的协议)。面向报文的传输方式是指应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。 UDP不提供错误 以你之姓@/ 2022年08月21日 01:29/ 0 赞/ 341 阅读
相关 UDP协议 1)UDP协议概述 ![20190807084647592.png][] 2)UDP服务器与客户端程序 服务器端: String 谁践踏了优雅/ 2021年11月05日 13:26/ 0 赞/ 434 阅读
还没有评论,来说两句吧...