简单聊聊 TCP 和 UDP 必知必会的几个知识点

1,542 阅读3分钟

本文正在参与 “网络协议必知必会”征文活动

TCP 和 UDP

今天就来聊聊一个最常见的问题:TCP 和 UDP 的几个必备知识点

这个问题网上已经有很多解释啦,今天就来谈谈自己的理解和一些知识总结

TCP和UDP都是传输层的协议,它们起到的最基本功能都是将IP提供的主机-主机传递服务扩展到端-端的进程级,通俗来说,就是把数据段从一个电脑上面的一个应用传递到另一个电脑上面的一个应用上面。

可以先看一下最常用的OSI七层模型

  • 链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。
  • 网络层:负责路由以及把分组报文发送给目标网络或主机。
  • 传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文。
  • 应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。

图片.png


TCP

TCP 用于应用程序之间的通信。

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。三次握手、四次挥手

当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方"握手"之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。

这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。


UDP

UDP协议全称是用户数据报协议。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

在OSI模型中,在第四层——传输层,处于IP协议的上一层。 UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。


TCP 和 UDP 的区别解析

简单介绍一下TCP和UDP的特点可以更好的对比他们的区别!

UDP特点:

  1. 面向无连接
  2. 面向报文,
  3. 不可靠性,
  4. 有单播,多播,广播的功能
  5. 头部开销小,传输数据报文时是很高效的。

TCP特点:

  1. 面向连接
  2. 仅支持单播传输
  3. 面向字节流
  4. 可靠传输
  5. 提供拥塞控制
  6. TCP提供全双工通信

下面看一下对比表格,更清晰的看到区别

特点UDPTCP
是否连接无连接面向连接
是否可靠不可靠传输,不使用流量控制和拥塞控制可靠传输,使用流量控制和拥塞控制
连接对象个数支持一对一,一对多,多对一和多对多交互通信只能是一对一通信
传输方式面向报文面向字节流
首部开销首部开销小,仅8字节首部最小20字节,最大60字节
适用场景适用于实时应用(IP电话、视频会议、直播等)适用于要求可靠传输的应用,例如文件传输

总结

关于TCP和UDP的区别就简单介绍这些

一般在面试的时候也只是问一下他们的特点和区别

我们要抓住重点去学习,想了解更深的一层就需要下功夫去网络协议研究啦~