📜  现实生活中的 TCP 和 UDP 示例

📅  最后修改于: 2022-05-13 01:57:02.927000             🧑  作者: Mango

现实生活中的 TCP 和 UDP 示例

今天我们将看到计算机网络中 TCP 和 UDP 的真实示例

在查看 TCP 和 UDP 的真实示例之前,让我们先看看

什么是计算机网络?

计算机网络是一组通过通信链路相互连接以共享数字信息的设备(节点)。
通信链路可以是无线介质或有线介质。在当今时代,无法想象没有计算机网络的世界。从与朋友聊天到进行视频通话,由于计算机网络的存在,一切皆有可能

计算机网络大致分为3种类型。

它们如下:

  • 局域网 (LAN) –
    它是一个私有网络,通常包括办公室、建筑物或校园。速度范围为 100 – 1000Mbps
  • 广域网 (WAN) –
    它涉及在国家、大陆甚至全世界等大地理区域传输数据。
  • 城域网 (MAN) –
    它涉及在城市或城镇内外传输数据,因此得名城域网。它的大小介于 LAN 和 WAN 之间。

网络模型:

  • 网络是硬件和软件的融合。
  • 网络的硬件部分由物理设备组成,例如交换机、集线器和路由器,它们负责将数据信号从一个网络传输到另一个网络
  • 软件部分由网络正常运行所需的协议(规则)组成
  • 因此基于以上几点,网络模型分为两种类型
    1. OSI 参考模型
    2. TCP/IP 参考模型

OSI 参考模型:
开放系统互连模型(OSI 模型)于 1970 年代后期首次引入。它是用于设计稳健且灵活的网络架构的参考模型。它是一种普遍接受的模型,它描述了各种应用程序在 Internet 上的通信。

OSI 模型分为 7 层:

  • 为了降低设计复杂性,网络被组织为层和层次的堆栈。
  • 每层都有自己的一组功能,有助于成功传输数据
  • 每一层都将数据传递到其下方或上方的层。

图层如下:

  1. 应用层——
    它由应用层协议组成,允许网络应用程序在网络中正常工作
  2. 表示层——
    它从应用层接收数据并负责数据的翻译、数据压缩和加密/解密
  3. 会话层——
    它负责建立和管理连接。其功能包括身份验证、授权和会话恢复。
  4. 传输层——
    它从会话层接收数据。它负责将消息从一个进程传递到另一个进程。它通过流量控制、错误控制和分段来控制通信的可靠性。它有两种协议,即TCP和UDP。
  5. 网络层——
    它负责将数据段从一台计算机传输到位于不同网络中的另一台计算机
  6. 数据链路层——
    负责将帧从一跳移动到另一跳。
  7. 物理层——
    它负责将二进制位转换为信号并通过本地媒体传输

TCP/IP 参考模型:
TCP/IP 协议套件中的层与 OSI 模型中的层不完全匹配 最初的 TCP/IP 协议套件被定义为具有四层主机到网络 Internet 传输和应用程序。 TCP/IP 参考模型是理论 OSI 模型的实际实现

传输层:
会话层之下的层称为传输层。该层中的数据称为段。它负责将消息从一个进程传递到另一个进程。它还负责通过流控制、错误控制和分段进行可靠通信。一些最重要的协议是传输控制协议 (TCP) 和用户数据报协议 (UDP)。它进行两种类型的传输,即面向连接的传输和无连接的传输,分别由 TCP 和 UDP 执行。

传输层的一些职责如下:

  • 端到端交付
  • 可靠性
  • 错误控制
  • 流量控制
  • 复用和解复用

传输控制协议(TCP):
它是一种面向连接的协议,用于将数据从一个进程可靠地传输到另一个进程。它需要端口号的帮助进行传输。它在传输级别使用流量控制和错误控制机制。 TCP在发送方和接收方之间传输数据的三个阶段如下:

  • 连接建立 -
    它借助 3 路握手机制来建立连接,其中涉及 SYN、ACK 和窗口大小的交换
  • 数据传输 -
    在这一步,数据的传输发生
  • 连接终止 –
    在这里,通过向接收器发送一个 FIN 数据包来终止数据的传输。

TCP提供的服务如下:

  • 使用端口号的进程到进程或端到端通信
  • 将数据作为字节流从源传输到目标
  • 它将来自应用程序的数据分组到称为 Segments 的数据包中。它还为每个数据段添加一个标头,并将其发送到网络层
  • 它提供全双工通信
  • 可靠服务:TCP 使用确认机制,使其可靠
  • 它还提供流量控制、错误控制和拥塞控制。

好处 :

  • 流量控制
  • 错误控制
  • 拥塞控制
  • 进程间通信
  • 数据段的有序传递

缺点:

  • 数据段不会立即传输
  • 更多开销(20-60Bytes)
  • 它有一个大的 TCP 标头

用户数据报协议 (UDP):
它是一种传输层协议。它是一种不可靠且无连接的协议。它比 TCP 更快、更简单、更高效。但是,它不会检查因保存带宽而导致的错误。它广泛用于视频游戏、语音或视频通信等实时服务
UDP 发送的数据包称为用户数据报。

UDP 提供的服务如下:

  • Process to Process 端口到端口的段传输
  • 无连接和最小开销协议
  • 快速简单的传输
  • 没有流量和错误控制,使用 UDP 服务的应用程序负责提供它们
  • UDP 封装和解封装消息。

好处 :

  • UDP 创建的数据包比 TCP 的要小(UDP Header: 8 bytes)
  • 无连接传输
  • 它更快、更简单、更高效

缺点:

  • 无法保证发送方会收到数据
  • 缺乏适当的错误检查机制
  • 丢失的数据包不会被重传
  • 有可能接收到乱序数据包

TCP的真实例子:

  1. 文字交流——
    我们都知道文本通信在当今时代的重要性。不能容忍发送者和接收者之间的任何文本差异。因此,由于其可靠的传输、错误控制和数据的顺序接收,TCP 被用于文本通信。
    示例:Whatsapp、Instagram、谷歌聊天、iMessage。

  2. 传输文件或 FTP –
    当我们不能容忍数据丢失并且接收数据不正确的顺序至关重要时,TCP用于文件传输。 FTP使用两个TCP连接,即控制连接和数据连接。
    控制连接: FTP 发送用户标识和密码等信息。
    数据连接:在此连接中,文件通过网络发送。
    例如:FileZilla 客户端和服务器
  3. 超文本传输协议 (HTTP) –
    它用于访问万维网上的数据。由于 TCP 提供有序数据、错误控制和流量控制以及数据段的重传,它使用 TCP 协议访问 Internet 上的网页。
  4. 简单邮件传输协议 (SMTP)
    是一种应用层协议,用于将电子邮件从一个系统发送到另一个系统。 SMTP 使用 TCP 的服务来启动与 SMTP 服务器的连接。一旦 SMTP 服务器接受连接请求,它就允许发件人发送邮件。
    例如:雅虎、Gmail、Outlook 等

UDP的真实例子:

  1. 线上游戏 -
    我们玩的大部分网络游戏都使用用户数据报协议的服务。由于在线游戏中不能容忍任何延迟,因此 UDP 广泛用于 TCP,而 TCP 速度相当慢。 UDP 不会重新传输丢失的数据,并且是一种无连接协议,因此速度更快。
    例如:所有网络游戏
  2. 视频会议 -
    Skype、Gmeet、Zoom 等视频会议应用都使用 UDP 服务,因为它们是实时应用,不能容忍任何延迟接收数据的情况。
    例如:Skype、Google Meet、zoom 和 Facetime。
  3. IP 语音 (VoIP) –
    它类似于视频会议,Viber、Whatsapp、Google Hangouts 等应用程序使用 UDP 将我们的语音转换为数字数据并通过网络传输,因此得名 VoIP。
    例如:Viber、Whatsapp 语音通话、Wi-Fi 通话。
  4. 域名系统 (DNS) –
    它是一种用于将域名映射到其对应的 IP 地址的服务。它由应用层使用。它也可以被视为具有分层名称服务器的分布式数据库。由于以下原因,DNS 使用 UDP 来获取相应的 IP 地址:

    a) UDP 比 TCP 快得多。毕竟,加载网页时速度很重要
    b) DNS 请求通常是小请求,可以容纳在 UDP 段(标头)中。
    c) UDP虽然不可靠,但在应用层也可以实现

因此,这些是 TCP 和 UDP 的真实示例。

为什么 DNS 使用 UDP 而不是 TCP?