返回
查看原链接原链接
Bilibili40分59秒 · —

互联网组成:网络的边缘、网络核心与接入网

互联网组成:网络的边缘、网络核心与接入网

互联网从组成类型的角度可划分为三个子系统——网络的边缘、网络的核心、网络的接入(接入网),其中边缘系统上运行的网络应用是网络存在的理由,网络核心负责全球范围内的数据交换,接入网则负责将边缘主机系统接入到网络核心。

核心要点

互联网的两种观察角度

  • 组成角度:将互联网拆分为节点与边,把关联紧密的节点与边组合成小网络,再由这些小网络通过网络互联构成整个互联网。
  • 类型聚类角度:将互联网按组成类型划分为三类子系统——网络的边缘、网络的核心、网络的接入。本节内容围绕这三种类型的子系统展开讲解。

三个子系统的划分逻辑

子系统构成要素核心作用
网络的边缘(边缘系统)所有主机及上面运行的网络分布式应用进程(含支撑应用进程的协议栈)运行网络应用,是网络存在的理由
网络的核心网络交换节点(路由器、交换机等)及其间的链路数据交换
网络的接入(接入网)连接边缘主机系统与网络核心的部分把边缘系统接入到网络核心

三个子系统的整体协作逻辑

  • 边缘系统通过接入网接入到网络核心。
  • 网络核心连接了所有边缘节点,使得任意两个端系统之间能够相互通信。
  • 发送方将数据交给网络核心,核心将数据转发给目标主机。

详细解析

一、为什么需要网络核心(网络为什么需要复用)

  • 全连接方案不可行:如果任何两个节点之间有直接链路才能通信,那么在全球有100亿个节点的情况下需要全连接网络,地球将全部被线缆覆盖,显然不可能。
  • 解决方案——复用与交换:中间必须设置网络交换节点,链路可以被多个通信关系复用。同一条链路既可以服务于某一对节点的通信,也可以服务于其他节点的通信。
  • 网络存在的基本理由:根据需要部署网络交换节点和相应链路,最终实现节点与节点之间的通信关系。

二、各子系统的作用详解

1. 网络的边缘(边缘系统)

是什么: 互联网中“方的节点”(端系统),即所有主机及其上运行的网络分布式应用进程,以及进程下方支撑通信的协议栈。

包含的典型设备: 面包机(智能家电)、智能冰箱、传统PC机、服务器、智能手机、iPad、笔记本电脑等。

为什么存在: 端系统上运行的网络应用(打游戏、电子商务、电子政务、管理系统等)是网络存在的原因。没有端系统设备,就无法联网;底层设备需要联网、收集信息、处理信息。

2. 网络的核心

是什么: 由网络交换节点(“圆的节点”)与其间的链路构成的分布式系统。

主要作用: 数据交换——由原主机发出去的数据能够被正确的目标主机收到。从逻辑上看,就像在原系统和目标系统之间有一个瞬时的切换开关将其连接在一起。

工作原理: 在实际中并不存在一个单一覆盖全球的巨型交换设备。网络核心是由很多网络交换小节点(路由器、交换机)通过链路连在一起构成的分布式系统,由这些分布式系统相互协作,最终实现“数据进去能正确出来”的效果。实际参与协作的节点数量可达数百万个。

3. 网络的接入(接入网)

是什么: 将网络的边缘(主机系统)接入到网络核心的这部分网络。

形式: 可以是有线的,也可以是无线的;可以是移动互联的形式,也可以是有线的形式;接入的网络之后还可以连接更大的网络(如本地local网、区域regional网、全球网)。

三、网络应用的通信模式

从服务视角来看:应用层及以下(包括主机系统和网络设备中第三层及以下的部分)全部属于基础设施,基础设施为分布式应用提供通信服务。

模式一:客户端/服务器模式(C/S模式,Client-Server)

是什么: 一种典型的“主从模式”,由服务器和客户端两种角色构成。

工作方式:

  • 服务器首先运行,守候在相应端口,等待客户端的请求。
  • 服务器是被动的,等待客户端发起请求;客户端是主动的,发出请求。
  • 客户端后启动(须先有服务器在运行才能提供服务)。
  • 客户端的请求对象是服务器的资源,包括:硬件资源(计算能力)、软件资源(处理特殊业务的能力)、数据资源(数据库存储的表数据等)。
  • 服务器响应请求,将运算处理结果、软件处理结果或数据资源返回给客户端。

典型案例: Web应用(浏览器是客户端,Web服务器是服务器);电子邮件(邮件客户端与邮件服务器)。

存在的问题:

  • 集中式部署导致扩展成本高:当客户端数量很大时,需要部署“服务器农场”(server farm),如阿里等大型互联网公司拥有数千台服务器分布在全国(如盛大游戏在上海浦东的机房,至少几万台服务器)。
  • 可扩展性差(核心问题):随着请求载荷的增加,服务器性能呈断崖式下降,而非线性下降。当请求超过阈值时,客户端将完全得不到响应(出现无休止的等待)。
  • 可靠性问题:服务器或服务器农场一旦宕机,损失很大——大量用户同时无法访问。
模式二:P2P模式(Peer-to-Peer,对等模式)

是什么: P2P中的“P”指对等体(Peer)。每个分布式应用进程在对等网络中既可能是客户端,也可能是服务器。

工作方式:

  • 从某个会话角度看,一个节点是客户端(向别的节点请求资源)。
  • 从另一个会话角度看,它同时是服务器(向别的节点提供自己拥有的资源)。
  • 每个节点既是客户端又是服务器,资源与载荷被分布到所有节点上。

可扩展性优势:

  • 随着P2P节点增多,请求资源的节点增多,但同时提供服务的节点也同步增多
  • 通信是分布式的,载荷是分布式的,因此不存在C/S模式下可扩展性的致命缺陷。

典型应用: 文件分发系统,如迅雷、电驴、电螺等。

与传统方式对比(为什么P2P下载更快):

  • 传统FTP/Web下载:所有用户都从一个服务器下载文件,用户多时均分服务器能力(100个客户端各享受1%服务能力;1万个客户端各仅享受万分之一服务能力),下载速度极慢。
  • P2P下载:下载客户端同时从多个其他迅雷客户端获取文件的不同片段(三条或更多条路径同时下载),获得带宽的聚集效应,下载速度快得多。

四、基础设施为网络应用提供的两种通信服务

1. 面向连接的通信服务(TCP)

特点: 两个应用进程通信之前需要先“握手”打招呼,建立连接。

建立连接的过程与意义:

  • 发送方先打招呼(“你好”),对方回应(“你好”)。
  • 底层的协议栈为后续通信做好资源准备:分配缓冲区、置位控制变量、设置超时定时器等。
  • 准备完成后,两个应用进程才开始正式通信。

需要注意的概念区分:

  • 面向连接(connection-oriented):只有端系统维护连接状态(TCP实体知道通信状态),中间网络节点不知道也不维护状态。
  • 有连接:不仅端系统知道,中间路径上的所有节点也要维护通信状态。
  • 这是一个重要区别,原文提示后续章节会详细讲解。

TCP提供的服务特性(三大特性):

① 可靠传输(包括保序)

  • 什么叫做可靠:“这里交下来什么,对方就能收到什么”——不重复、不丢失、不出错、不乱序。
  • 为什么需要努力:物理上数据要向下交给IP、交给网卡,编码成物理信号(电磁波、光信号等)在链路中传输,传输过程中可能受到各种干扰而出错、丢失。
  • 如何实现可靠:靠TCP协议实体自身的努力,主要有:发送方发送后要缓存(以便超时或出错后重传)、给发送的数据编号(确认哪些收到,哪些没收到)、接收方排序、检错重传、超时重传等机制。
  • 底层服务不可靠时,TCP依靠自身机制(耗费空间资源、时间资源、实现复杂性)将不可靠的服务变成可靠的服务,其原理为可靠数据传输(RDT,Reliable Data Transfer),将在传输层章节详细讲解。

② 流量控制

  • 问题场景:发送方能力很强(如几十核CPU、大内存、万兆网卡的高性能服务器),接收方能力很弱(如运行在老版本操作系统上的五六年前的旧款手机,内存小、处理能力弱)。如果发送速度过快要淹没接收方。
  • 解决方案:TCP自动协调发送速度与接收方的接收能力——接收方缓冲区紧张时通过协议反馈通知发送方“慢一点”;缓冲区空裕时通知“可以快点”。
  • 作用:使得两个能力悬殊的设备之间能够有序通信。

③ 拥塞控制(congestion control)

  • 问题场景:发送方和接收方能力都没问题,但中间的通信链路是公用的,可能被其他通信占用而堵塞。如果发送方仍以高速发送,数据到了交换节点处理不过来就会被丢弃。
  • 解决方案:TCP协议实体能感知路径上的通断/拥塞状况——路径通畅时反馈应用进程可加快发送;路径拥堵时反馈应用进程减慢发送速度(“这路都堵了,你慢点发”)。
2. 无连接的通信服务(UDP)

是什么: 应用进程之间通信不需要握手、不打招呼,上来直接发送(只要发出的报文符合对方的规范即可),对方收到后直接回应。这种交互方式为UDP(用户数据报协议)所提供。

UDP提供的服务特点:

  • 无连接:无需建立连接即可发送。
  • 不可靠:发出去就发出去了,不管对方是否收到;丢了就丢了。
  • 无流量控制:不管接收方的接收能力如何,上方应用注入多快就传多快。
  • 无拥塞控制:不考虑网络路径的通行能力。

UDP存在的理由(适用场景):

① 实时多媒体应用/实时流媒体应用

  • TCP因为可靠机制需要付出大量时间代价(编号、排序、定时重传、超时等),因考虑接收方和网络状态而节制发送,对时间敏感的实时多媒体应用难以承受。
  • UDP没有流量控制和拥塞控制,应用产生多少数据就立刻传多少,不必等网络或接收方的“许可”,适合每时每刻都在产生数据的实时应用。

② 事务性应用

  • 典型如域名解析(DNS)查询——一次请求/响应即可完成。若用TCP则需要建立连接(连接建立的往返时间开销),查询本身却很简短,非常浪费。
  • UDP无连接,查询发过去、结果回来即完成,效率更高。

核心观点: “基本上没有什么好和坏,只有适合不适合。”可靠性要求高、能容忍时间开销的应用适合TCP;实时性强、事务性强的应用适合UDP。

五、各协议适用场景总结

协议服务特性适用场景/理由不适用场景
TCP面向连接、可靠(含保序)、流量控制、拥塞控制对可靠性要求高的应用(应用进程无需自己处理检错纠错等可靠性问题)实时多媒体应用(时间代价不可接受);简单事务性查询(连接建立开销浪费)
UDP无连接、不可靠、无流量控制、无拥塞控制实时多媒体/流媒体应用;事务性应用(如域名解析查询)对可靠性要求高或需要流量控制的应用

方法与步骤

从网络构成角度理解互联网三部分的步骤

  1. 分类聚类:按节点的类型(“方的”端系统 vs “圆的”网络交换节点)进行分类。
  2. 划分子系统:所有主机及其应用进程构成边缘系统;交换节点与链路构成网络核心;连接两者之间的部分构成接入网。
  3. 明确逻辑关系:边缘通过接入进入核心,核心将所有边缘节点连接在一起,使任意两个端系统能够互相通信。
  4. 理解各层职责:网络应用(边缘)是目的;接入网解决“如何连进去”的问题;网络核心解决“找到目标并交换数据”的问题。

案例与数据

  • C/S模式下服务器集群规模:阿里巴巴的服务器通常达到数千台且分布在全国;盛大游戏鼎盛时期在上海浦东的服务器机房中,每个机房有几千台,总计可能达数十万台(至少几万台),被称为“服务器农场”(server farm)。
  • P2P下载模式的典型代表:迅雷、电驴、电螺等分布式文件分发系统。
  • P2P并发下载的带宽聚集:下载客户端同时从多个迅雷客户端各取文件一个片段(3条或更多条路径同时下载),可获得下载速度的带宽聚集效应。

限制与待确认问题

  • 原文明确说明本书将展开讲解但当前章节未深入的主题:TCP实现可靠传输的机制(RDT原理)、拥塞控制的具体实现方式将在传输层章节详细讲解;接入网的链路具体形式(有线和无线的具体媒体形式、工作方式与工作原理)在后续章节展开;域名解析(DNS)客户端查询采用UDP的实现细节将在应用层章节介绍。
  • 面向连接与有连接的区别:本讲仅明确两者概念不同(面向连接——仅端系统维持连接状态,中间节点不知情;有连接——中间路径上的所有节点都维护通信状态),细节留待后续内容展开。
  • 数据在传输过程中丢失的具体原因:原文提到“有各种各样的原因”导致数据传输出错或丢失,但未在本讲中具体展开,标注为将在后续内容中说明。