TCP 和 UDP 之间的区别
TCP 与 UDP 之间的主要区别
- TCP 是面向连接的协议,而 UDP 是无连接的协议。
- TCP的速度比较慢,而UDP的速度比较快。
- TCP 使用握手协议,如 SYN、SYN-ACK 和 ACK,而 UDP 不使用握手协议。
- TCP 会进行错误检查,也会进行错误恢复。另一方面,UDP 会进行错误检查,但会丢弃错误的数据包。
- TCP 有确认段,但 UDP 没有任何确认段。
- 当我们比较 TCP 和 UDP 协议时,TCP 是重量级的,而 UDP 是轻量级的。
这里我分析了TCP与UDP的区别,并综合评估它们的优缺点。
什么是TCP?
TCP / IP协议 帮助您确定特定计算机应如何连接到互联网以及如何在它们之间传输数据。当多个计算机网络连接时,它可以帮助您创建虚拟网络。
TCP/IP 代表 Transmission 控制协议/Internet 协议。它专门设计为一种模型,用于在不可靠的网络间提供高度可靠的端到端字节流。
TCP 如何工作?
TCP 连接是在 三向握手。这是发起和确认连接的过程。一旦建立连接,数据传输就开始了,当传输过程完成后,通过关闭已建立的虚拟电路来终止连接。
TCP 的特点
根据我的个人经验,以下是 TCP 的一些关键特性:
- 发货确认
- 重新传输
- 网络拥塞时传输延迟
- 轻松检测错误
TCP的应用
以下是我曾经使用过的 TCP 的应用:
- 它可以帮助您建立或设置不同类型的计算机之间的连接。
- Opera独立于操作系统的测试
- 支持多种路由协议。
- 它使得组织之间能够实现网络互联。
- 可独立操作。
- 支持多种路由协议。
- TCP 可用于在两台计算机之间建立连接。
TCP 的优点
根据我丰富的个人经验,TCP 的优点如下:
- 它可以帮助您建立或设置不同类型的计算机之间的连接。
- 它独立于 操作系统.
- 它支持多种路由协议。
- 它使得组织之间能够实现网络互联。
- TCP/IP 模型具有高度可扩展的客户端-服务器架构。
- 可独立操作。
- 支持多种路由协议。
- 它可用于建立两台计算机之间的连接。
TCP 的缺点
根据我的经验,使用 TCP 有以下缺点:
- 如果没有明确询问所有传输中的数据,TCP 就不会结束传输。
- 您不能将其用于广播或多播传输。
- TCP 没有块边界,因此您需要创建自己的块边界。
- TCP 提供了很多您不需要的功能。它可能会浪费带宽、时间或精力。
- 在这种模型中,传输层不保证数据包的传送。
- 替换 TCP/IP 中的协议并不容易。
- 它没有提供与其服务、接口和协议的明确分离。
什么是UDP?
UDP 是一种面向数据报的协议。它用于广播和多播类型的网络传输。UDP 的完整形式是 用户数据报协议 (数据报是与分组交换网络相关的传输单元。)UDP 协议的工作方式与 TCP 几乎类似,但它抛弃了所有错误检查内容、所有往返通信和传递能力。
UDP 如何工作?
UDP 使用简单的传输方法,无需隐含的握手对话即可保证顺序、可靠性或数据完整性。UDP 还假设错误检查和更正并不重要,或者在应用程序中执行,以避免在网络接口级别进行此类处理的开销。它还兼容数据包广播和多播。
UDP 的功能
以下是我们发现的 UDP 的一些重要特性:
- 支持容忍数据包丢失的带宽密集型应用程序。
- Less 延迟
- 它发送大量的数据包。
- 数据丢失的可能性
- 允许小额交易(DNS查找)
UDP的应用
以下是我使用过的UDP应用程序:
- UDP 方法主要用于时间敏感的应用程序以及回答来自较大客户端群的小型查询的服务器。
- UDP 兼容数据包广播,可在整个网络发送,也可进行多播发送。
- 它还用于域名系统、IP 语音和在线游戏。
UDP 的优点
从我使用 UDP 的经验来看,UDP 具有以下优点:
- 它从不限制您使用基于连接的通信模型;这就是分布式应用程序中的启动延迟较低的原因。
- UDP 数据包的接收者不会对它们进行管理,其中也包括块边界。
- UDP 还可以进行广播和多播传输。
- 可能会发生数据丢失。
- 小额交易(DNS查询)
- 带宽密集型应用程序,可承受数据包丢失
UDP 的缺点
根据我的观察,UDP 的缺点如下:
- 在 UDP 协议中,数据包可能无法传送或传送两次。数据包可能无序传送,因此您无法收到任何提示。
- 路由器对 UDP 相当粗心,因此如果发生冲突,它们永远不会重新传输。
- UDP 没有拥塞控制或流量控制,因此实现是用户应用程序的工作。
- UDP 最容易遭受严重的数据包丢失。
TCP 和 UDP 之间的区别
在密切研究过这些协议之后,我可以概述 UDP 和 TCP 之间的主要区别:
TCP | UDP |
---|---|
它是一种面向连接的协议。 | 它是一种无连接协议。 |
TCP 将数据以字节流的形式读取,并将消息传输到段边界。 | UDP 消息包含逐个发送的数据包。它还会在到达时检查完整性。 |
TCP 消息通过互联网从一台计算机传输到另一台计算机。 | 它不是基于连接的,因此一个程序可以向另一个程序发送大量数据包。 |
TCP 按照特定顺序重新排列数据包。 | UDP 协议没有固定的顺序,因为所有数据包都是彼此独立的。 |
TCP 的速度较慢。 | UDP 速度更快,因为无需尝试错误恢复。 |
报头大小为 20 字节。 | 报头大小为 8 字节。 |
TCP 是重量级的。TCP 需要三个数据包来建立套接字连接,然后才能发送任何用户数据。 | UDP 是轻量级的。没有跟踪连接、消息排序等。 |
TCP 进行错误检查并进行错误恢复。 | UDP 执行错误检查,但会丢弃错误的数据包。 |
确认段 | 无确认段 |
使用 SYN、SYN-ACK 和 ACK 等握手协议 | 无需握手(因此是无连接协议) |
TCP 是可靠的,因为它保证将数据传送到目标路由器。 | UDP 无法保证数据传送到目的地。 |
TCP 提供广泛的错误检查机制,因为它提供流控制和数据确认。 | UDP 只有一种错误检查机制,用于校验和。 |
如何在 TCP 和 UDP 之间进行选择
现在,我们将探讨 TCP 和 UDP 协议如何相互叠加。
- TCP 对我们来说是一个理想的选择,尽管它有相关的开销,其中大部分开销都在连接中,但我们发现我们的应用程序可以在任何时间内保持连接。
- UDP 非常适合用于多媒体,例如 网络电话.
- 当客户端和服务器同时独立发送数据包时使用 TCP 套接字;偶尔的延迟是可以接受的。(例如,在线扑克)。
- 如果客户端和服务器可能分别发送数据包,并且偶尔的延迟也是不可接受的(例如多人游戏),则应该使用用户 UDP。