TCP和UDP的区别如下:
比较基础 | 传输控制协议 (TCP) | 用户数据报协议 (UDP) |
---|---|---|
服务类型 | TCP 是一种面向连接的协议。面向连接的意思是通信设备在传输数据之前应该建立连接,在传输数据之后应该关闭连接。 | UDP是面向数据报的协议。这是因为打开连接、维护连接和终止连接没有开销。 UDP 对于广播和多播类型的网络传输非常有效。 |
可靠性 | TCP 是可靠的,因为它保证将数据传送到目标路由器。 | 在 UDP 中无法保证将数据传送到目的地。 |
错误检查机制 | TCP 提供了广泛的错误检查机制。这是因为它提供了数据流控制和确认。 | UDP 只有使用校验和的基本错误检查机制。 |
确认 | 存在确认段。 | 没有确认段。 |
数据的顺序 | 排序是传输控制协议 (TCP) 的一项功能。这意味着数据包按顺序到达接收器。 | UDP 中没有数据排序。如果需要订单,则必须由应用层管理。 |
速度 | TCP 比 UDP 慢。 | UDP 比 TCP 更快、更简单、更高效。 |
重传 | 在 TCP 中可以重传丢失的数据包,但在 UDP 中则不行。 | 在用户数据报协议 (UDP) 中没有丢失数据包的重传。 |
标头长度 | TCP 有一个 (20-60) 字节的可变长度标头。 | UDP 有一个 8 字节的固定长度标头。 |
重量 | TCP 是重量级的。 | UDP是轻量级的。 |
握手技术 | 使用诸如 SYN、ACK、SYN-ACK 之类的握手 | UDP是一个无连接协议,即没有握手。 |
广播 | TCP 不支持广播。 | UDP 支持广播。 |
协议 | TCP 被 HTTP、HTTPS、FTP、SMTP 和 Telnet 使用。 | UDP 被 DNS、DHCP、TFTP、SNMP、RIP 和 VoIP 使用。 |
流类型 | TCP 连接是字节流。 | UDP 连接是消息流。 |
开销 | 低但高于 UDP。 | 非常低。 |
一个简短的例子来理解这些差异:
- 假设有两所房子,H1 和 H2,并且必须从 H1 向 H2 发送一封信。 但这两个房子之间有一条河。 现在我们如何发送这封信?
- 解决方案1:在河上建一座桥,然后就可以交付了。
- 解决方案2:通过鸽子交付。
将第一个解决方案视为 TCP。 必须建立连接(桥接)才能传递数据(信件)。
数据是可靠的,因为它将直接到达另一端而不会丢失数据或错误。
第二种解决方案是UDP。 发送数据不需要连接。
与 TCP 相比,这个过程要快,我们需要建立一个连接(网桥)。 但数据并不可靠:我们不知道鸽子是否会朝着正确的方向前进,或者它会在途中掉信,或者在旅行中遇到一些问题。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264210.html