传输控制协议(TCP) | 用户数据报协议(UDP) |
---|---|
TCP是一种面向连接的协议。面向连接意味着通信设备应在传输数据之前建立连接, 并在传输数据之后关闭连接。 | UDP是面向数据报的协议。这是因为打开连接, 维护连接和终止连接没有开销。 UDP对于广播和多播类型的网络传输非常有效。 |
TCP是可靠的, 因为它可以确保将数据传送到目标路由器。 | 在UDP中不能保证将数据传送到目标。 |
TCP提供了广泛的错误检查机制。这是因为它提供了流控制和数据确认。 | UDP仅具有使用校验和的基本错误检查机制。 |
数据排序是传输控制协议(TCP)的功能。这意味着数据包按顺序到达接收器。 | UDP中没有数据排序。如果需要订购, 则必须由应用程序层进行管理。 |
TCP比UDP慢。 | UDP比TCP更快, 更简单, 更高效。 |
在TCP中可以重新传输丢失的数据包, 但在UDP中是不可能的。 | 用户数据报协议(UDP)中不会丢失数据包的重传。 |
TCP具有(20-80)字节的可变长度报头。 | UDP具有8个字节的固定长度报头。 |
TCP是重量级的。 | UDP是轻量级的。 |
TCP不支持广播。 | UDP支持广播。 |
HTTP, HTTP, FTP, SMTP和Telnet使用TCP。 | UDP由DNS, DHCP, TFTP, SNMP, RIP和VoIP使用。 |
一个简短的例子, 可以清楚地了解这些差异:
假设有两个房屋, H1和H2, 并且必须从H1到H2发送一封信。但是这两座房子之间有一条河。现在我们如何寄信?
解决方案1:在河上架桥, 然后将其交付。
解决方案2:通过鸽子运送。
将第一个解决方案视为TCP。必须进行连接(桥接)才能传递数据(字母)。
数据是可靠的, 因为它可以直接到达另一端而不会丢失数据或出错。
第二种解决方案是UDP。无需连接即可发送数据。
与需要建立连接(桥接)的TCP相比, 该过程速度更快。但是数据并不可靠:我们不知道这只鸽子会朝着正确的方向前进, 还是会在途中掉信或遇到一些问题。