TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议) 都是传输层的重要协议,它们都是用来将数据从源主机发送到目标主机的,但它们存在以下几点不同:

  1. 连接机制不同:TCP 是面向连接的协议,需要在客户端和服务器之间建立一个稳定的连接,然后再进行数据传输;而 UDP 是无连接的协议,数据包可以直接发送给目标主机,不需要事先建立连接。
  2. 数据传输方式不同:TCP 采用可靠的数据传输方式,即在传输过程中使用序号、确认号和重传机制等控制手段来保证数据的可靠传输;而 UDP 采用不可靠的数据传输方式,数据包可能会丢失或重复,不提供数据可靠性保障。
  3. 数据传输效率不同:由于 TCP 需要进行连接、序号确认等额外的数据包传输,因此在数据传输效率方面相对于 UDP 要低一些。
  4. 数据大小限制不同:UDP 对数据包的大小有限制,最大只能传输 64KB 的数据,而 TCP 的数据包大小没有限制。
  5. 应用场景不同:TCP 适用于要求数据传输可靠性高的场景,如网页浏览、文件下载、电子邮件等;而 UDP 适用于实时性要求较高的场景,如视频会议、在线游戏等。

TCP 和 UDP 的使用场景如下图所示: image.png

特殊说明

以上内容来自我的《Java 面试突击训练营》,这门课程是有着十几年工作经验(前 360 开发工程师),10 年面试官经验的我,花费 4 年时间打磨完成的一门视频面试课。学完训练营的课程之后,基本可以应对目前市面上绝大部分公司的面试了,并且课程配备了 9 大就业服务,帮助上千人找到 Java 工作,其中上百人拿到大厂 Offer,学员最高薪资 70W 年薪,面试课目录和 9 大服务如下:

加我微信咨询:vipStone【备注:训练营】