TCP vs UDP |
您所在的位置:网站首页 › udp是无连接的 › TCP vs UDP |
什么是 TCP?
TCP 是 Transmission Control Protocol 的首字母缩写词,它是一种传输层协议,允许数据包从一个位置发送到另一个位置。 TCP 是面向连接的协议,也就是说它在网络计算机单元之间的任何通信之前建立连接。由于我们把这个协议与 IP 协议结合使用,我们称其为 TCP/IP。 TCP 是怎么工作的?TCP 的主要任务是从应用层收集数据。它将数据拆分成多个数据包,为每个数据包分配一个编号,然后将这些数据包发送到它们的目的地。 同样,在将数据包发送到应用层之前,它会重新组合数据包。鉴于 TCP 是面向连接的协议,这个连接将一直保持,直到发送方和接收方完成数据交换。 它是一种可靠的协议。因为,接收方总是会给发送方提供一条关于数据包的确认消息,要么肯定要么否定,因此,发送方总是能知道数据包是否到达它的目的地,还是说需要被重新发送。 它保证了数据能到达其目的地,而且到达的顺序与发送时相同。它有一套内置的错误检查和恢复体系,负责提供端到端通信。TCP 还提供对流量控制和服务质量的访问。 TCP 支持全双工服务器,既可以当接收者,也可以当发送者。它以点对点的客户端/服务器方式运行。 什么是 UDP?UDP 是 User Datagram Protocol 的首字母缩写词。用户数据报协议(UDP)是 TCP/IP 协议套件的最基本的传输层通信协议。它使用最低限度的通信机制。 UDP 是怎么工作的?尽管 UDP 被认为是一种不可靠的传输协议,但它通过使用 IP 服务来完成其工作,提供了一种尽力而为的传递方法。 在 UDP 中,接收方不生成数据包的确认,发送方也不等待数据包的确认。正是这个不足,使得该协议虽不可靠但是易于处理。 如果确认是否接收到数据这点并不那么重要,这种情况下,我们使用 UDP。它很适用于单向数据流的场景,最适合基于查询的通信。 UDP 不保证数据包的有序传递。它是无状态的,不提供任何拥塞控制机制。 TCP 与 UDP TCP 与 UDP 的区别UDP 是一种无连接协议,而 TCP 是一种面向连接的协议。TCP 比 UDP 要慢,这是两种协议的主要区别之一。 总的来说,UDP 是一种更快、更简单、更高效的协议。但是只有 TCP 允许对丢失的数据包进行重新传输。 TCP 和 UDP 的另一个区别是 TCP 可以确保数据从用户到服务器的有序传输(反之亦然)。UDP 不是为端到端通信而设计的,并不会检查接收方的准备情况,因此它需要相对更少的开销并占用更少的空间。 TCP 与 UDP 的总结 连接TCP 要求在发送方和接收方开始通信之前建立一个良好的连接,它是一个面向连接的协议。 UDP 是一种无连接协议。 保持数据传输的顺序在 TCP 中,由于事先建立了一个良好的连接,接收方以有序的方式接收数据包。 而在 UDP 中,发送方与接收方之间并没有建立良好的连接,接收方将以无序的方式接收数据包。 可靠性每当通过 TCP 接收到数据包时,接收方都会向发送方发送一条确认。万一失败,它会请求重新传输。 而使用 UDP,在这种情况下不会发送确认,它依赖于高层协议来确保可靠性。 错误检查TCP 中有广泛的错误检查规则,而 UDP 中只有基本的错误检查技术,例如校验和。 传输方法在 TCP 中,数据以字节流的形式读取,消息被发送到段边界。 而在 UDP 中,已定义限制的单个 UDP 数据包被发送,在到达接收方时验证其完整性。 广播TCP 不支持广播。当你使用它时,发送方和接收方必须先建立一条连接,在传输结束后又必须终止这条连接。 UDP 支持广播。 TCP 与 UDP 的用例TCP 被用于 HTTPS(安全超文本传输协议)、HTTP(超文本传输协议)、SMTP(简单邮件传输协议)、FTP(文件传输协议)等等。 UDP 用于视频流、视频电话、IP 语音服务(互联网呼叫)、DNS(域名系统)等。 TCP 对比 UDP - 哪个更快?通常来说,UDP 比 TCP 更快,原因如下: TCP 与 UDP 报头大小的差异让我们来分析看看 TCP 数据包和 UDP 数据包各自的报头。 TCP 报头的长度必须至少为 20 字节且不超过 60 字节。 TCP 的报头包括: 源端口 - 表示发送设备的源端口。占 16 位。 目的端口 - 表示接收设备上的目的端口。占 16 位。 序号 - 表示在一个会话中数据段的序号。占 32 位。 确认号 - 该编号包括下一个预期的数据字节的序号,并在 ACK 标志被设置时,用作对先前接收到的数据的确认。占 32 位。 数据偏移 - 该字段表示整个 TCP 报头的大小(32 位字)以及当前数据包在整个 TCP 段上的数据偏移量。占 4 位。 保留 - 供将来使用的位,默认情况下设置为 0。占 3 位。 标志 - 为各种标志保留了 1 位,这些标志有助于 TCP 检查各种活动,例如确认。 校验和 - 该字段包含校验和。 紧急指针 - 如果 URG 标志设置为 1,则指定数据字节。 选项 - 指定了在常规报头中不存在的其他选项。现在让我们来分析一个 UDP 报头。 UDP 的报头包括: 源端口 - 表示发送设备的源端口。占 16 位。 目的端口 - 表示接收设备上的目的端口。占 16 位。 长度 - 指定 UDP 数据包的整体长度。它是一个 16 位的字段,最小值为 8 字节,等于 UDP 报头本身的大小。 校验和 - 发送方在发送之前创建的校验和存储在此字段中。该字段在 IPv4 中是可选的,因此如果它不包含任何值,则设置为 0,并且其所有位都设置为 0。我们可以清楚地看到 TCP 报头与 UDP 报头的开销差异。由于 TCP 报头比 UDP 报头大很多, 它需要更多的时间来处理,这使得了 UDP 比 TCP 更快。 TCP 与 UDP 中的确认在 TCP 中,接收方在接收到的数据段上向发送方发送确认。这确保了数据包已传送到接收方。 如果没有收到确认,发送方会尝试重新传输。这个处理过程使得 TCP 比 UDP 慢得多。别忘了,UDP 不发送任何确认。 规则的例外在某些情况下,TCP 被证实比 UDP 要快。例如,在一个实验中,在一个最大传输单元为 1500 字节的以太网连接上,发送 300 字节的数据包,TCP 比 UDP 大约快 50%。 这是因为 TCP 会尝试缓存数据,填充到整个网段,从而最大化利用了带宽。而另一边,UDP 立即沿线路发送数据包,这些小数据包很多,堵塞了网络。 结论TCP 和 UDP 都有各自的用途。如果主要关注数据接收的可靠性和顺序,你会更希望使用 TCP。 另一方面,如果主要关注的是速度,而且某些数据包的受损或丢失并不那么重要,请选择 UDP。 所以可以看到,你不得不在可靠性和速度这两个之间进行妥协。如果提升其中一个,由于前面的限制,另一个会下降。 例如,在 YouTube 视频中,您可能已经注意到,有多种选项用于设置视频的质量。 当提高质量时,视频会占用更多带宽。这是因为画质较低时,即使某些数据包丢失,我们也会忽略它们。但是如果想要高质量的视频,我们便不能丢失数据包。 感谢阅读!希望你对 TCP 与 UDP 有了一个更好的了解。 原文:TCP vs UDP – Which Protocol is Faster?,作者:Prashanth |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |