(嵌入式八股)第7章 计算机网络(二)(后续计算机网络相关持续补充在这里)

7.11 什么是UDP?

UDP(User Datagram Protocol),即用户数据报协议,是一种无连接的传输层协议。与TCP不同,UDP不提供可靠的连接管理、数据顺序控制或流量控制。它提供了一种面向事务的简单、不可靠的信息传送服务。UDP传输数据时,数据被打包成数据报进行发送,并且每个数据报的边界是明确的,应用层传输的数据不会被拆分或合并。

UDP的主要特点

  • 无连接:UDP是无连接的协议,数据在传输之前不需要建立连接。它发送数据时无需确认接收方的准备状态,也不进行数据的重传。
  • 不可靠传输:UDP不保证数据的可靠性。它不进行丢包重传、数据顺序控制等功能,因此某些数据可能丢失、重复或者乱序。
  • 面向报文:UDP是面向报文的协议,对于应用层发送的报文段,它不会拆分或合并。每个应用层传递的报文都按原样交给网络层。
  • 低延迟:由于UDP没有建立连接、数据确认等机制,所以它相对TCP更快速,适用于需要低延迟的实时通信应用,如音视频流、在线游戏等。

UDP报文格式

伪头部

伪头部并不是UDP报文本身的一部分,它是为了进行校验而临时加上的。伪头部的结构包括:

  • 源IP地址(4字节)
  • 目标IP地址(4字节)
  • 协议字段(1字节,表示UDP协议为17)
  • UDP长度(2字节,表示UDP报文的长度)
  • 伪头部和UDP头部一起参与校验和的计算。这个伪头部仅仅用于校验,不会被传输或存储。

    UDP头部

  • 源端口(Source Port)(2字节):指定发送方的端口号,发送方的应用程序或服务标识。如果发送方不需要接收对方的响应,可以将源端口置为0。
  • 目的端口(Destination Port)(2字节):指定接收方的端口号,接收方的应用程序或服务标识。
  • 报文长度(Length)(2字节):指定UDP报文的总长度(包括UDP头部和数据部分),单位是字节。
  • 校验和(Checksum)(2字节):用于检测UDP报文在传输过程中是否发生错误。如果发现错误,UDP会丢弃该数据报。校验和计算涉及UDP数据部分、伪首部和UDP头部,确保数据的完整性。
  • 数据

    UDP的数据部分包含传输的实际数据。如果数据部分的长度为奇数,UDP会在数据的末尾补充一个字节(填充0)来确保数据长度为偶数。因为校验和的计算是基于16位(2字节)为单位,所以数据长度需要是16位的倍数。 UDP的应用

    UDP因其快速传输的特点,广泛用于实时数据传输和不要求严格可靠性的应用。常见的应用包括:

  • DNS(域名解析服务):通过UDP请求解析域名信息,UDP的无连接和高效性非常适合DNS的需求。
  • DHCP(动态主机配置协议):分配IP地址时使用UDP进行无连接的广播通信。
  • 剩余60%内容,订阅专栏后可继续查看/也可单篇购买

    作者简介:仅用几个月时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验100+,收藏20+面经,分享求职历程与心得。 专栏内容:这是一份覆盖嵌入式求职过程中99%问题指南,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。

    全部评论
    计网的八股,他们会考察流量控制的细节吗😫
    点赞 回复 分享
    发布于 03-24 09:31 广东

    相关推荐

    评论
    6
    6
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务