主要内容

TCP/IP和UDP比较

传输控制协议(TCP或TCP/IP)和用户数据报协议(UDP或UDP/IP)都是基于互联网协议(IP)的传输协议。使用TCP/IP和UDP接口来读写二进制数据和ASCII数据。您可以读写服务器、计算机、仪器,并使用流媒体视频和音频、销售点系统和其他业务应用程序等应用程序。

万博1manbetx支持的平台上

以下平台支持TCP/IP和UDP接口。万博1manbetx

  • Linux®

  • macOS

  • 窗户®10

界面比较

TCP/IP和UDP的比较如下:

  • 连接vs无连接—TCP/IP是基于连接的协议,而UDP是无连接的协议。在TCP/IP中,通信链路的两端在通信过程中必须始终保持连接。使用UDP的应用程序准备一个数据包并将其发送到接收方的地址,而不首先检查接收方是否准备好接收数据包。如果接收端没有做好接收数据包的准备,则该数据包将丢失。

  • 流与包—TCP/IP是面向流的协议,UDP是面向包的协议。这意味着TCP/IP被认为是从连接的一端传输到另一端的长数据流,以及相反方向的另一个长数据流。TCP/IP堆栈负责将数据流分解成包并发送这些包,而另一端的堆栈负责利用包头中的信息将包重新组合成数据流。另一方面,UDP是一种面向数据包的协议,应用程序本身将数据分成数据包并将它们发送到另一端。另一端不需要将数据重新组合成一个流。注意,当底层协议是UDP时,一些应用程序可能会将数据作为流表示。然而,这是UDP之上的附加协议层,而不是UDP协议本身固有的东西。

  • TCP/IP是一个可靠的协议,而UDP是不可靠的—通过TCP/IP发送的数据包包含唯一的序列号。在通信开始时,将起始序列号通信给另一方。接收方确认每个包,并且确认包含序列号,以便发送方知道哪个包被确认。这意味着在途中丢失的任何数据包都可以重新传输(发送方将知道它们没有到达目的地,因为它没有收到确认)。此外,不按顺序到达的数据包可以由接收方按适当的顺序重新组装。

    此外,可以建立超时,因为发送方知道(从最初的几个包中)发送一个包和接收其确认平均需要多长时间。另一方面,UDP发送数据包,不跟踪它们。因此,如果数据包到达时没有顺序,或者在传输中丢失,接收端(或发送端)无法知道。

注意,“不可靠”的意思是“不保证会成功”,而不是“很多时候会失败”。实际上,只要接收套接字处于活动状态,并且在数据到达时迅速处理数据,UDP就相当可靠。

相关的话题