生活哲学

TCP和UDP协议的区别

您可能在路由器上设置端口转发或配置防火墙软件时看到过 TCP 和 UDP。这两种协议用于不同的数据类型。

TCP/IP 是设备用来通过 Internet 和大多数本地网络进行通信的一组端口。它以其两个原始协议命名-传输控制协议 (TCP) 和互联网协议 (IP)。 TCP 为应用程序提供了一种通过网络传输(和接收)有序信息包并检查错误的方法。应用程序使用用户数据报协议 (UDP) 通过绕过错误检查来更快地传输数据流。在配置网络硬件或软件时,您会看到差异。

两种协议的相似之处

TCP 和 UDP 都是用于通过 Internet 发送数据位(称为数据包)的协议。两种协议都建立在 IP 协议之上。换句话说,即使你通过 TCP 或 UDP 发送数据包,这个数据包也会被发送到一个 IP 地址。这些数据包的处理方式类似,因为它们从您的计算机转发到中间路由器和目的地。

TCP和UDP协议区别图1

TCP 和 UDP 不是唯一适用于 IP 的协议,但是它们使用最广泛。

TCP 的工作原理

TCP 是 Internet 上最常用的协议。当您在浏览器中请求网页时,计算机将 TCP 数据包发送到 Web 服务器的地址,要求它重新发送站点。 Web 服务器通过发送 TCP 数据包流进行响应,您的 Web 浏览器将这些数据包组合成网页。当您单击链接、登录、发表评论或执行其他任何操作时,您的 Web 浏览器会将 TCP 数据包发送到服务器,然后服务器将数据包发送回 TCP。

TCP 协议可靠性高,TCP 发送的数据包会受到监控,因此数据在传输过程中不会丢失或损坏。这就是为什么即使网络出现问题下载文件也不会损坏的原因。当然,如果收件人完全离线,你的电脑会放弃,你会看到无法与远程主机通信的写入错误信息。

TCP 协议通过两种方式实现这一点。首先,它通过对数据包编号来请求数据包。其次,它通过要求接收者将收到的反馈发送给发送者来检查错误。如果发送方没有收到正确的响应,它可以重新发送数据包以确保接收方正确接收。

Process Explorer 和其他系统实用程序可以显示进程创建的连接类型。在这里,我们可以看到带有 TCP 连接的 Chrome 浏览器打开了许多不同的 Web 服务器。

TCP和UDP协议区别图2

UDP 的工作原理

UDP 协议的工作方式与 TCP 类似,但它忽略了错误检查过程。当应用程序使用 UDP 协议时,发送到接收方和发送方的数据包不必等待以确保接收方已收到数据包,因此它会继续发送下一个数据包。如果接收方错过了一些 UDP 数据包,它们就会丢失,因为发送方没有将它们发回。因此设备可以更快地通信。

UDP 用于速度快且不需要纠错的情况。例如,UDP 常用于直播和网络游戏。

假设,您正在观看实时视频播放,通常使用 UDP 而不是 TCP 播放。服务器向正在查看的计算机发送连续的 UDP 数据包流。如果您失去连接几秒钟,视频将停止或猛拉片刻,然后切换到广播的当前位。如果您只丢失小数据包,则视频或音频可能会暂时失真,因为视频将继续播放而不会丢失数据。

这在网络游戏中也同样有效。如果您错过了一些 UDP 数据包,当您收到新的 UDP 数据包时,玩家角色可以在地图上移动。忽略 TCP 的纠错将有助于加快游戏连接并减少延迟。

差异图3TCP和UDP协议的参考

应用程序使用 TCP 或 UDP,具体取决于其开发人员和应用程序的需求。大多数应用程序需要修复 TCP 的错误和健壮性。如果你激活了像 Wireshark 这样的网络分析工具,你可以看到数据包来回传输时的差异。

  1. 使用 Wireshark 分析网络中的数据包

TCP和UDP协议的区别图4

除非您是网络管理员或软件开发人员,否则这不会对您造成太大影响。如果您配置防火墙或路由器软件,您应该选择“Both”选项,以便防火墙或路由器软件对 TCP 和 UDP 流量应用相同的规则。

查看更多:

  1. 如何在 Linux 中检查打开的端口
  2. 在路由器上更改端口值的说明
  3. 检查系统中是否正在建立连接

相关资讯

评论

回复