方面一:垂直分层模型 (The “How” - 数据如何传输)

TCP/IP 五层模型(或更理论化的 OSI 七层模型)是理解网络的基石。

  • 核心思想:它将一个极其复杂的网络通信过程,切分成了一系列定义清晰、功能独立的层次。每一层都只关心自己的任务,并使用下一层提供的服务,同时向上一层提供服务。

  • 具体分工:

    • 应用层 (Application Layer): 定义应用程序如何交互。例如,HTTP 协议定义了浏览器如何向 Web 服务器请求页面。
    • 传输层 (Transport Layer): 提供端到端(End-to-End)的通信。例如,TCP 协议确保数据可靠、有序地送达;UDP 协议则提供更快速但不可靠的数据报服务。端口号是这一层的关键。
    • 网络层 (Network Layer): 负责数据包在整个网络中的路径规划和转发。IP 地址是这一层的核心,路由器工作在这一层。
    • 数据链路层 (Data Link Layer): 负责在相邻的两个网络节点之间(例如,您的电脑和家里的路由器之间)传输数据帧。MAC 地址是这一层的关键,交换机工作在这一层。
    • 物理层 (Physical Layer): 负责传输原始的比特流(0和1)。它定义了网线、光纤、无线电波等的物理特性。

这个模型是自底向上构建的,描述了通信的实现机制

方面二:水平通信架构 (The “Who” - 谁在和谁通信)

客户端、服务端、(服务器)等架构,正是这个方面。它描述了网络中各个参与者的角色关系

  • 核心思想: 定义角色与交互模式 (Define Roles and Interaction Patterns)。它不关心数据包如何穿越网络,只关心谁发起请求,谁提供服务,以及它们之间的逻辑关系。

  • 主要模式:

    • 客户端-服务端架构 (Client-Server, C/S): 这是最常见的架构。
      • 服务端 (Server): 被动地等待请求,拥有资源或提供计算能力。通常拥有固定的 IP 地址,并且 7x24 小时在线。
      • 客户端 (Client): 主动地发起请求,消费资源或服务。
      • 特点: 角色分工明确,易于管理和扩展。我们之前讨论的 Web 服务就是典型例子。
    • 对等网络架构 (Peer-to-Peer, P2P):
      • 对等端 (Peer): 网络中没有中心服务器,每个节点既是客户端也是服务器。它们可以直接相互通信,共享资源和服务。
      • 特点: 去中心化,扩展性好,不易产生单点故障。我们讨论的 WebRTC 在建立连接后,其音视频流传输就是 P2P 模式。

这个模型是端到端的,描述了应用的逻辑结构

两者如何关联

无论采用哪种水平通信架构(C/S 或 P2P),其底层的数据传输都必须遵循垂直分层模型(TCP/IP)。

  • 一个客户端向服务器发送 HTTP 请求时,这个请求数据会从应用层开始,依次经过传输层、网络层……打包后发送出去。
  • 一个 Peer 向另一个 Peer 发送 WebRTC 的音视频流时,这些数据流(通常封装在 UDP 包里)同样会经过这个垂直分层模型进行传输。

通信的动态过程

通信模式 (Communication Paradigms)。它描述了数据交换随时间展开的方式。

  1. 请求-响应 (Request-Response): 客户端发起请求,然后等待服务器的响应。一次交互就结束了。这是 HTTP 的经典模式。
  2. 发布-订阅 (Publish-Subscribe): 一个发布者(Publisher)发布消息,多个订阅者(Subscriber)可以接收到这个消息,而发布者无需知道订阅者是谁。常用于消息队列(如 Kafka, RabbitMQ)。
  3. 流式传输 (Streaming): 一旦建立连接,数据会像水流一样持续不断地从一端传输到另一端。例如视频直播、WebSocket 的数据流。

当分析一个系统(比如 WebRTC)时:

  • 它使用了什么架构?(初始是 C/S 获取网页和信令,最终是 P2P 传输媒体)
  • 它的底层遵循什么协议栈?(HTTP, WebSocket, STUN, SRTP 等都运行在 TCP/IP 之上)
  • 它的通信模式是什么?(信令是请求-响应或流式,媒体是流式)

本站由 Edison.Chen 创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

undefined