【计算机网络】UDP报文详解

这篇具有很好参考价值的文章主要介绍了【计算机网络】UDP报文详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一. UDP协议概述

二. UDP报文格式

1. 首部

2. 校验和

三. UDP的缓冲区

结束语


一. UDP协议概述

UDP——用户数据报协议,是传输层的一个重要协议

基于UDP的应用层协议有:DNS,TFTP,SNMP,NTP

协议 全称 默认端口号
DNS Domain Name Service(域名服务) 53
TFTP Trivial File Transfer Protocol(简单文件传输协议) 69
SNMP Simple Network Management Protocol(简单网络管理协议) 通过UDP端口161接收,只有Trap信息采用端口162
NTP Network Time Protocol(网络时间协议) 123

UDP的主要特点:

  1. UDP是无连接的。即发送数据前不需要建立连接,发送数据结束也没有连接释放,因此减少了开销和发送数据前的时延
  2. UDP使用尽最大努力交付。即不保证可靠交付,因此不需要维护复杂的连接状态表(有许多参数)
  3. UDP是面向数据报的。发送方的UDP对应用层交付的报文,在添加首部后直接交付给IP层。UDP对应用层交付的报文,既不合并,也不拆分,而是保留这些报文的边界。也就是说,应用层给UDP多长报文,UDP就发多长,一次发送一个报文,如下图。【计算机网络】UDP报文详解,计算机网络学习之路,计算机网络,udp,网络协议,网络
  4. 在接收方的UDP,对于IP层交付的UDP用户数据报,在去除UDP首部后也直接交付应用层,不作任何处理,一次交付一个完整的报文。因此这就将控制报文长度的工作交给了应用层:应用层要选择合适大小的报文。若报文太长,UDP封装后交给IP层,IP层在传输时可能要进行分片处理,减低了IP层的效率。反之,应用层报文太短,效率也低
  5. UDP没有拥塞控制。因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用很重要,如IP电话,实时视频会议等,要求源主机以恒定的速率发送数据,并且允许在网络拥塞时丢失一部分数据,但不允许数据有太大的时延
  6. UDP支持一对一,一对多,多对一和多对多的交互通信
  7. UDP的首部开销小,只有8字节,比TCP的20字节的首部短

二. UDP报文格式

【计算机网络】UDP报文详解,计算机网络学习之路,计算机网络,udp,网络协议,网络

UDP报文有两大部分组成:报头+有效载荷(数据),其中有效载荷就是应用层交付给UDP协议层的报文

1. 首部

在学习协议报文时,首先要解决两个问题:1. 报头和有效载荷如何分离  2. 有效载荷如何向上交付

第一个问题:报头和有效载荷如何分离

在UDP中,报头的大小是固定的——8字节。所以只要截取前8字节,后面就都是有效载荷了

第二个问题:有效载荷如何向上交付

UDP是传输层的,上层是应用层。而应用层程序会绑定端口号,UDP报头中有16位(bit位)目的端口号,根据端口号做到向上交付


UDP报头由4部分组成:

  1. 源端口号:发送方的端口号
  2. 目的端口号:目的主机的端口号
  3. UDP长度:UDP报文的长度,单位字节,包括报头和有效载荷
  4. UDP校验和:保证报文完整性和正确性,出错就丢弃

如果接收方 UDP 发现收到的报文中的端口号不存在,就丢弃该报文,并由国际控制报文协议 ICMP发送“端口不可达”差错报文给发送方

2. 校验和

UDP用户数据报首部中的校验和的计算方法较为特殊。在计算校验和前,要在UDP用户数据报之前增加12字节的伪首部。伪首部不是UDP报文的真正首部,只是在计算校验和时,临时添加的字段。伪首部既不向下传送也不向上递交,只是为了计算校验和。下图给出伪首部字段内容

【计算机网络】UDP报文详解,计算机网络学习之路,计算机网络,udp,网络协议,网络

UDP的校验和是把首部和数据部分一起检验。

发送方:首先将全零放入首部的校验和字段,再把伪首部以及UDP报文看成是由许多16位的字串拼接起来的。若UDP报文的数据部分不是偶数个字节,还要填入一个全零字节(但此字节不发送)。然后按照二进制反码计算出这些16位字的和。将此和的二进制反码写入校验和字段

接收方:将收到的UDP报文(添加伪首部和可能填充的全零字节)一起按照二进制反码求这些16位字的和。当无差错时其结果应为全1。否则就表明有差错出现,接收方就丢弃这个UDP报文(也可以上交给应用层,但附上差错警告)

        下图给出了一个计算 UDP 校验和的例子。这里假定用户数据报的长度是 15 字节,因此要添加一个全 0 的字节。不难看出,这种简单的差错检验方法的检错能力并不强,当它的好处是简单,处理起来比较快。

【计算机网络】UDP报文详解,计算机网络学习之路,计算机网络,udp,网络协议,网络

三. UDP的缓冲区

UDP报头中,UDP长度为16为,即最长UDP报文时64KB(包含报头),如果长度超过64KB,需要应用层手动分包,多次发送,并在接收方手动拼接

因为UDP是面向数据报的,上层一次交付多少数据,就发送多少数据,所以UDP是没有发送缓冲区的,但是有接受缓冲区,因为需要等待上层处理。所以UDP是全双工的(可同时收发数据)

结束语

本篇博客到此结束,感谢看到此处。
欢迎大家纠错和补充
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。文章来源地址https://www.toymoban.com/news/detail-793354.html

到了这里,关于【计算机网络】UDP报文详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面试-快速学习计算机网络-UDP/TCP

    区别: 应用层,表示层,会话层 合并为了 应用层 数据链路层 和 物理层 合并为了 网络接口层 总结: 1 . TCP 向上层提供 面向连接的可靠服务 ,UDP 向上层提供 无连接不可靠服务 。 2. UDP 没有 TCP 传输可靠,但是可以在实时性要求高的地方有所作为。 3. 对数据准确性要求高,

    2024年02月12日
    浏览(27)
  • 计算机网络各报文段参数

    HTTP报文 HTTP报文分为 请求报文 & 响应报文 请求报文 : 1.请求行:请求方法(常用get/post)、请求URL、HTTP协议版本 2.首部行 3.请求体/实体主体 响应报文 : 1.状态行 2.响应头部 3.响应体 UDP数据报 1.首部 8B ,由4个字段组成(都是2B) 2.长度字段包括首部+数据部分

    2024年02月08日
    浏览(29)
  • 计算机网络——38报文完整性

    数字签名类比于手写签名 发送方数字签署了文件,前提是他是文件的拥有者/创建者 可验证性,不可伪造性,不可抵赖性 谁签署,接收方可以向他人证明是他,而不是其他人签署了这个文件 签署了什么:这份文件,而不是其他文件 简单的对m的数字签名 Bob使用他自己的私钥

    2024年04月12日
    浏览(27)
  • 【计算机网络笔记】DNS报文格式

    DNS 提供域名到主机IP地址的映射  域名服务的三大要素:  域(Domain)和域名(Domain name): 域指由地 理位置或业务类型而联系在一起的一组计算机构 成。  主机:由域名来标识。域名是由字符和(或)数 字组成的名称,用于替代主机的数字化地址(IP 地址)。  域名服

    2024年02月08日
    浏览(32)
  • 【计算机网络详解】——网络层(学习笔记)

    📖 前言:网络层它承担着网络间的数据传输和路由选择等核心任务,通过在传输层协议的基础上添加了路由和转发等功能,使得数据能够在全球范围内的互联网中自由流动。在这篇博客中,我们将深入探讨网络层的工作原理和具体实现,了解其对于现代计算机网络应用的重

    2024年02月10日
    浏览(29)
  • 计算机网络——互联网控制报文协议(ICMP)

    目录 1 ICMP的作用与特点 1.1 ICMP的主要特点 1.2 ICMP报文结构 2 ICMP 报文类型 2. ICMP差错报告报文 2.1.1 目的不可达报文 2.1.2 源抑制报文 2.1.3 超时报文 2.1.4 参数问题报文 2.1.5 重定向报文  2.2 ICMP查询报文 2.2.1 回送请求和应答报文 2.2.2 时间戳请求和应答报文 2.2.3 路由器询问和通告

    2024年02月04日
    浏览(45)
  • 【计算机网络】网络数据交换技术 -- 分组交换、报文交换与电路交换

    电路交换技术、报文交换技术和分组交换技术是计算机网络中常用的三种数据传输技术,它们各自具有不同的特点和应用场景。 电路交换技术:电路交换技术是一种面向连接的数据传输技术,它在通信双方之间建立一条物理连接,通过这条连接进行数据传输。在建立电路之前

    2024年02月03日
    浏览(34)
  • 计算机网络_ 1.3 网络核心 (数据交换_报文、分组交换)

    报文 :源(应用)发送信息整体。 分组:报文分拆出来的一系列相对较小的数据包。 分组交换需要报文的拆分与重组 产生额外开销 统计多路复用(Statistical Multiplexing) A B分组序列不确定,按需共享链路 - statistical multiplexing 报文交换与分组交换均采用存储-转发交换方式 区

    2024年02月12日
    浏览(77)
  • 【计算机网络笔记】数据交换之报文交换和分组交换

    什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 报文:源(应用)发送的信息整体。比如一个文件、一张图片。 报文交换:在传输过程中以报文作为整体,一次性发送到下一个节点,比如路由器。路由器接收到完整的报文之后再发往下一个节

    2024年02月07日
    浏览(36)
  • 计算机网络的故事——HTTP报文内的HTTP信息

    HTTP报文是由多行(CR+LF作换行符)数据构成的字符串文本,HTTP报文可以分为报文首部和报文主体两部分,两者起初是由(CR+LF)划分的,通常并不一定有报文主体。 报文中的参数解释: 请求行:包含请求方法、请求URI和HTTP版本。 状态行:响应状态码、原因短语和HTTP版本 首部

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包