计算机网络高频(三)UDP基础

1.UDP的头部格式是什么样的?⭐

UDP 头部具有以下字段:

  • 源端口(Source Port):16 位字段,表示发送方的端口号。
  • 目标端口(Destination Port):16 位字段,表示接收方的端口号。
  • 长度(Length):16 位字段,表示 UDP 数据报(包括头部和数据部分)的总长度,以字节为单位。最小长度为 8 字节(只有头部没有数据),最大长度为 65,535 字节。
  • 校验和(Checksum):16 位字段,用于检测 UDP 数据报在传输过程中是否发生了错误。校验和的计算包括 UDP 头部和数据部分。
  • 数据(Data):可变长度的数据部分,用于传输应用层的数据。

UDP 头部相比于 TCP 头部较为简单,不包含像序列号、确认号、状态标志等机制。UDP 通过提供简单的无连接传输服务,但不提供可靠性、流量控制和拥塞控制等功能。

2. TCP、UDP的区别 ⭐⭐⭐⭐

1.连接性:

  • TCP 是面向连接的协议,通过建立可靠的连接来传输数据。在通信之前,发送方和接收方需要进行三次握手建立连接,并且提供可靠的数据传输、流量控制、拥塞控制等机制。
  • UDP 是无连接的协议,发送方可以直接向接收方发送数据报,不需要进行握手或建立连接。UDP 提供了一个简单的不可靠的数据传输服务,不保证数据的可靠性和顺序性。

2.可靠性:

  • TCP 提供可靠的数据传输,通过序列号、确认机制、重传机制等保证数据的可靠性。如果有数据包丢失或损坏,TCP 会自动重传丢失的数据。
  • UDP 不提供可靠性保证,发送的数据报可能会丢失、重复、乱序等。应用程序负责处理丢失和重复的数据包,并自行处理错误检测和纠正。

3.数据包大小:

  • TCP 没有固定的数据报大小限制,能够适应不同大小的数据传输。
  • UDP 每个数据报的大小被限制在 65,535 字节,超过该大小的数据需要进行分片传输。

4.速度和效率:

  • 由于 TCP 提供的可靠性机制、流量控制和拥塞控制,以及连接的建立和维护,相对于 UDP 而言,其在传输速度和效率方面会有一定的降低。
  • UDP 在没有连接建立和维护的情况下,没有额外的开销,因此在速度和效率方面比 TCP 更高。

3.TCP、UDP的优缺点⭐⭐⭐

TCP 的优点:

  1. 可靠性:TCP 提供可靠的数据传输,通过序列号、确认机制、重传机制等保证数据的可靠性。如果有数据包丢失或损坏,TCP 会自动重传丢失的数据。
  2. 顺序性:TCP 保证数据的顺序传输,接收方会按照发送方的顺序重新组装数据包,确保数据的正确顺序传递给应用程序。
  3. 流量控制:TCP 使用滑动窗口机制进行流量控制,根据接收方的接收能力来控制发送方的发送速度,避免了数据的丢失和拥塞。
  4. 拥塞控制:TCP 使用拥塞窗口机制进行拥塞控制,通过动态调整发送速率来减少网络拥塞,并避免网络崩溃。

TCP 的缺点:

  1. 开销较大:由于 TCP 保证了可靠性、顺序性以及流量控制和拥塞控制等机制,需要消耗较多的计算资源和带宽,增加了网络传输的开销和延迟。
  2. 速度相对较慢:由于 TCP 的可靠性机制和连接的建立和维护,相对于 UDP 而言,其在传输速度上会有一定的降低,特别是在高延迟和高丢包率的网络环境下。

UDP 的优点:

  1. 低延迟:UDP 不进行连接的建立和维护,没有额外的开销,因此在速度和效率方面比 TCP 更高,并且能够实现低延迟传输。
  2. 简单轻量:UDP 的头部较小,并且没有复杂的机制,使得它在资源有限的网络设备和嵌入式系统中更容易实现和处理。

UDP 的缺点:

  1. 不可靠性:UDP 不提供可靠性保证,发送的数据报可能会丢失、重复、乱序等。应用程序需要自行处理丢失和重复的数据包,并自己处理错误检测和纠正。
  2. 不保证顺序性:UDP 不保证数据的顺序传输,因此接收方可能需要重新组装数据包来保证数据的正确顺序。

4.TCP UDP适用场景⭐

TCP 的适用场景:

  1. 文件传输:TCP 可以可靠地传输大文件,确保数据的完整性和顺序性。
  2. Web 浏览:TCP 在 Web 浏览中广泛使用,通过 TCP 可以建立可靠的连接,并传输 HTTP 请求和响应数据。
  3. 电子邮件:TCP 可以可靠地传输电子邮件,确保邮件的完整性和可靠性。
  4. 文件下载和上传:TCP 可以在文件下载和上传时提供可靠的传输,确保数据的完整性和顺序性。
  5. 远程访问:TCP 可以通过远程登录协议(如 SSH)进行远程访问,提供可靠的连接和数据传输。

UDP 的适用场景:

  1. 实时游戏:UDP 在实时游戏中常被使用,实时性要求高于数据的完整性,UDP 的低延迟和无连接性特点能够满足实时游戏的需求。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

c++/嵌入式面经专栏 文章被收录于专栏

本人2022年毕业于山东大学,目前就职intel。打算把之前校招时做的笔记通过专栏发出来,本专栏适合于C/C++、嵌入式方向就业的同学,本篇面经总结数千篇面经的知识集合,实时更新全网最新的嵌入式/C++最新内容,囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,在我看来这些是求职者在面试中必须掌握的知识点。最后呢祝各位能找到自己合适的工作。

全部评论
ACK机制不是一种确认机制吗
点赞 回复 分享
发布于 03-29 15:35 北京
第9条零拷贝不是直接从磁盘到网络缓冲区吧?是使用DMA从磁盘读取到内核缓冲区,然后SG-DMA从内核缓冲区读取到网络缓冲区吧?
点赞 回复 分享
发布于 10-11 21:32 河北

相关推荐

点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
5 5 评论
分享
牛客网
牛客企业服务