✅TCP和UDP的区别是什么?

典型回答

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是两种主要的网络传输协议,都位于传输层。

✅介绍一下OSI七层模型?

他们主要有以下区别:

  1. 连接类型
    • TCP 是一种面向连接的协议。在发送数据之前,它需要建立连接,这通过三次握手过程完成。结束后通过四次挥手断开连接。
    • UDP 是无连接的协议。它发送数据而不预先建立连接。
  2. 可靠性
    • TCP 提供可靠的数据传输,通过确认和重传机制来确保数据的正确送达。
    • UDP 不保证数据的可靠送达。它发送数据但不确认接收方是否收到,因此可能会丢失数据包。
  3. 速度和效率
    • TCP 由于其握手和确认机制,速度通常比UDP慢,但更可靠。
    • UDP 由于缺乏复杂的错误检查和恢复机制,通常比TCP更快,适用于对实时性要求较高的应用。
  4. 数据流控制和拥塞控制
    • TCP 有流量控制和拥塞控制机制,可以调整数据传输速率以避免网络拥堵。
    • UDP 没有内置的流量控制或拥塞控制机制。

✅介绍下TCP是如何实现拥塞控制的?

  1. 头部大小
    • TCP 头部较大,最小为20字节,因为它包含更多的控制信息。
    • UDP 头部较小,仅8字节,使得其开销更小。

在使用场景上,TCP 通常用于需要高可靠性的应用,如网页浏览、电子邮件、文件传输等。UDP 适用于实时应用,如视频流、在线游戏和语音通话,其中一些数据丢失是可以接受的。


TCP UDP
连接类型 面向连接,需要三次握手和四次挥手 无连接
可靠性 可靠的数据传输 不保证数据可靠性送达
头部大小 20-60字节长度 固定8字节
速度 比UDP慢 比TCP快
顺序性 所有数据包按特定顺序传递给接收者 数据报以无特定顺序送达
错误检测机制 提供了流量控制、拥塞控制 只有基本的错误检测机制,如校验和
上层协议 HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VoIP
应用场景 web浏览器、文件传输、邮件 网络游戏,视频流,语音通话等

原文: https://www.yuque.com/hollis666/xkm7k3/kfcgfo9oyinw2csf