#6TCP 与 UDP 之间的区别

lencxlencx2022/06/17

数据能否快速完整地传输取决于你使用的网络协议,是 UDP 还是 TCP。它们都做同样的工作,但方式不同。TCP 更可靠,UDP 更快。

举例

例一

在 A,B 两地之间存在一条河,现在需要将信件从 A 地送达 B 地,应该如何发送信件?

  • 在河上建一座桥,然后将信件送达 - TCP,必须建立连接(桥接)才能传递数据(信件),数据是可靠的,因为它将直接到达另一端而不会丢失数据或错误。
  • 通过鸽子送达 - UDP,发送数据不需要连接,与 TCP 相比,这个过程更快。但是数据并不可靠。我们不知道鸽子是否会朝着正确的方向飞行,途中掉信,或者遇到其他一些问题。

例二

TCP vs UDP

来自于 noruthwhatsoever 的回答:

  • 如果 TCP 瓶子由其他人拿着并且他们要求从中喝水,这将更加准确。 对话会是这样的:
    • “喂,我想喝点水。”
    • “好,你想喝点水。”
    • “是的,我想喝点水。”
    • “好,你准备好喝水了吗?”
    • “是的,我准备喝点水。”
    • “好,我给你倒水。”
    • “好,我准备好接水了。”
    • “好,这里有水。 喝水了吗?”
    • “是的,我有水。”
    • “好吧,你拿到水了。 再见”
  • UDP 只是一个拿着软管试图向你张开的嘴里喷水的人

基础知识

名词解释

  • IPS - 互联网协议套件(Internet Protocol Suite)是网络通讯模型,以及整个网络传输协议家族,为网际网络的基础通讯架构。它常通称为 TCP/IP 协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称 TCP/IP。因为该协定家族的两个核心协定:TCP(传输控制协议)和 IP(网际协议),为该家族中最早通过的标准。由于在网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又称为 TCP/IP 协议栈(TCP/IP Protocol Stack)。
  • TCP - 传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流传输层通信协议,由 IETFRFC 793 定义。在简化的计算机网络 OSI 模型中,它完成第四层传输层所指定的功能。用户数据报协议(UDP)是同一层内另一个重要的传输协议。
  • UDP - 用户资料包协议(User Datagram Protocol)是一个简单的面向资料包的通信协议,位于 OSI 模型传输层。该协议由 David P. Reed 在 1980 年设计且在 RFC 768 中被规范。典型网络上的众多使用 UDP 协议的关键应用在一定程度上是相似的。
  • OSI 模型 - 开放式系统互联模型(Open System Interconnection Model)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于 ISO/IEC 7498-1。该模型将通信系统中的数据流划分为七个层,从分布式应用程序数据的最高层表示到跨通信介质传输数据的物理实现。每个中间层为其上一层提供功能,其自身功能则由其下一层提供。功能的类别通过标准的通信协议在软件中实现。
    • 「七」 应用层(Application Layer) - 提供为应用软件而设计的接口,以设定与另一应用软件之间的通讯。例如:HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3 等。
    • 「六」 表示层(Presentation Layer) - 把数据转换为能与接收者的系统格式兼容并适合传输的格式。
    • 「五」 会话层(Session Layer) - 负责在数据传输中设定和维护计算机网络中两台计算机之间的通讯连接。
    • 「四」 传输层(Transport Layer) - 把传输表头(TH)加至资料以形成封包。传输表头包含了所使用的协定等传送资讯。例如:传输控制协议(TCP)等。
    • 「三」 网络层(Network Layer) - 决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成封包。网络表头包含了网络资料。例如:互联网协议(IP)等。
    • 「二」 数据链路层(Data Link Layer) - 负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成资讯框(Data Frame)。数据链表头(DLH)是包含了实体位址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如乙太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制(Media access control,MAC)子层。
    • 「一」物理层(Physical Layer) - 在区域网络上传送数据帧(Data Frame),它负责管理电脑通讯设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机介面卡等。

TCP / UDP

特征 (Feature) 传输控制协议 (TCP) 用户数据报协议 (UDP)
服务类型 (Type of Service) 面向连接的协议:通信设备在传输数据之前应该建立连接,在传输数据之后应该关闭连接 面向数据报的协议:打开连接、维护连接和终止连接没有开销,对于广播和多播类型的网络传输非常有效
可靠性 (Reliability) 可靠:保证将数据传送到目标路由器 不可靠:无法保证将数据传送到目的地
顺序 (Sequence) 数据包按顺序到达接收器 没有数据排序,如果需要排序,则必须由应用层处理
错误检查 (Error checking mechanism) 广泛的错误检查机制,因为它提供了数据流控制和确认 使用校验和的基本错误检查机制
重传 (Retransmission) 可以重传丢失的数据包 不重传丢失的数据包
流类型 (Stream Type) 字节流 消息流
速度 (Speed) 比 UDP 慢 比 TCP 更快、更简单、更高效
首部长度 (Header Length) 20-60 字节的可变长度 8 字节的固定长度
握手技巧 (Handshaking Techniques) 使用 SYN、ACK、SYN-ACK 等握手 无连接协议,即没有握手
致谢 (Acknowledgment) 存在确认段 没有确认段
重量 (Weight) 重量级 轻量级
广播 (Broadcasting) 不支持 支持
协议 (Protocols) 被 HTTP、HTTPS、FTP、SMTP 和 Telnet 使用 被 DNS、DHCP、TFTP、SNMP、RIP 和 VoIP 使用

互联网是连接设备的网络,每个设备(手机,电脑,服务器等)都通过互联网协议套件(Internet Protocol Suite,IPS)进行通信。TCP 和 UDP 是套件中的主要协议:图片来源

protocols

每台连接到互联网的设备都有一个唯一的 IP 地址。两台设备进行通信时,可能使用 TCP 或 UDP 来进行。

tcp vs udp


参考资料

License Copyright © 2022-present lencx