网络体系结构

互联网概述

网络的网络

计算机网络由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机或路由器等。

网络把许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机。

互联网基础结构发展的三个阶段

  • 第一阶段:从单个网络 ARPANET 向互联网发展的过程。
  • 第二阶段:建成了三级结构的互联网。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。
  • 第三阶段:逐渐形成了多层次 ISP 结构的互联网。

互联网服务提供者 ISP (Internet Service Provider)可以从互联网管理机构申请到很多IP地址,以及路由器等连网设备,任何机构和个人只要向某个 ISP 交纳规定的费用,就可从该 ISP 获取所需 IP 地址的使用权,并可通过该 ISP 接入到互联网。

根据提供服务的覆盖面积大小以及所拥有的 IP 地址数目的不同,ISP 也分成为不同层次的 ISP:主干 ISP、地区 ISP 和本地 ISP。

互联网的组成

从互联网的工作方式上看,可以划分为两大块:

  • 边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。

互联网的边缘部分

处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统,“端”就是“末端”的意思(即互联网的末端)。

端系统在功能上可能有很大的差别:

  • 小的端系统可以是一台普通个人电脑,具有上网功能的智能手机,甚至是一个很小的网络摄像头。
  • 大的端系统则可以是一台非常昂贵的大型计算机。
  • 端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),当然也可以是某个 ISP。

边缘部分利用核心部分所提供的服务,使众多主机之间能够互相通信并交换或共享信息。

端系统之间通信的含义

“主机 A 和主机 B 进行通信”实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。由于“进程”就是“运 行着的程序”,因此这也就是指:“主机A的某个进程和主机B上的另一个进程进行通信”。

端系统之间的两种通信方式

在网络边缘的端系统之间的通信方式通常可划分为两大类:

  • 客户-服务器方式(C/S方式),即Client/Server方式,简称为 C/S 方式。
  • 对等方式(P2P方式)即Peer-to-Peer方式 ,简称为 P2P 方式。

1.客户-服务器方式
客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。客户是服务的请求方,服务器是服务的提供方。服务请求方和服务提供方都要使用网络核心部分所提供的服务。

2.对等连接方式
对等连接 (peer-to-peer,P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件 ( P2P 软件) ,它们就可以进行平等的、对等连接通信。双方都可以下载对方已经存储在硬盘中的共享文档。 对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又是服务器。

例如主机 C 请求 D 的服务时,C 是客户,D 是服务器。但如果 C 又同时向 F提供服务,那么 C 又同时起着服务器的作用。

互联网的核心部分

网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。

在网络核心部分起特殊作用的是路由器。它是一种专用计算机。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

典型交换技术包括:电路交换、分组交换、报文交换等。

计算机网络的类别

几种不同类别的网络

计算机网络有多种类别。典型包括:

  • 按照网络的作用范围进行分类
  • 按照网络的使用者进行分类
  • 用来把用户接入到互联网的网络

按照网络的作用范围进行分类

广域网 WAN(Wide Area Network):作用范围通常为几十到几千公里。
城域网 MAN(Metropolitan Area Network):作用范围一般是一个城市,作用距离约为 5~50 公里。
局域网 LAN(Local Area Network) :局限在较小的范围(如 1 公里左右)。
个人区域网 PAN(Personal Area Network) :范围很小,大约在 10 米左右。

若中央处理机之间的距离非常近(如仅 1 米的数量级),则一般就称之为多处理机系统,而不称它为计算机网络。

计算机网络的性能

计算机网络的性能一般是指它的几个重要的性能指标,主要包括:速率、带宽、吞吐率、时延、时延带宽积、往返时间 RTT、利用率。

速率

计算机发送出的信号都是数字形式的。

比特(bit)来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 或 0。

速率是计算机网络中最重要的一个性能指标,指的是数据的传送速率,它也称为数据率或比特率 (bit rate)。速率的单位是bit/s,或kbit/sMbit/sGbit/s等。速率往往是指额定速率或标称速率,非实际运行速率。

带宽

在计算机网络中,带宽用来表示网络中某通道传送数据的能力。表示在单位时间内网络中的某信道所能通过的“最高数据率”。单位是bit/s,即 “比特每秒”。

一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。

吞吐量

吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。

吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。

吞吐量受网络的带宽或网络的额定速率的限制。

例如,对于一个1 Gbit/s的以太网,就是说其额定速率是1 Gbit/s,那么这个数值也是该以太网的吞吐量的绝对上限值。因此,对1 Gbit/s的以太网,其实际的吞吐量可能只有100 Mbit/s,甚至更低,并没有达到其额定速率。

时延

时延 (delaylatency) 是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。有时也称为延迟或迟延。

网络中的时延由以下几个不同的部分组成:发送时延、传播时延、处理时延、排队时延。

发送时延也称为传输时延。发送数据时,数据帧从结点进入到传输媒体所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。

传播时延是电磁波在信道中传播一定的距需要花费的时间。

处理时延:主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。

排队时延:分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待 转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信 量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。

数据在网络中经历的总时延就是发送时延、传播时延、处理时延和排队时延之和。

总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

在总时延中,究竟是哪一种时延占主导地位,必须具体分析。

时延带宽积

链路的时延带宽积又称为以比特为单位的链路长度。

时延带宽积 = 传播时延 * 带宽

对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到充分的利用。

往返时间

互联网上的信息不仅仅单方向传输,而是双向交互的。因此,有时很需要知道双向交互一次所需的时间。

往返时间 RTT (round-trip time) 表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。

在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。

利用率

利用率分为信道利用率和网络利用率。

信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。

网络利用率则是全网络的信道利用率的加权平均值。

信道利用率并非越高越好。根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。

若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D 和 D0 之间的关系:

当网络的利用率接近最大值1时,网络的时延就趋于无穷大。因此我们必须有这样的概念:信道或网络的利用率过高会产生非常大的时延。

计算机网络的体系结构

计算机网络体系结构的形成

为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。

法律上的国际标准 OSI 并没有得到市场的认可。非国际标准 TCP/IP 却获得了最广泛的应用。TCP/IP 常被称为事实上的国际标准。

协议与划分层次

计算机网络中的数据交换必须遵守事先约定好的规则。 这些规则明确规定了所交换的数据的格式以及有关的同步问题。

网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。

计算机网络的体系结构是计算机网络的各层及其协议的集合。 体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。实现是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

具有五层协议的体系结构

OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构。

各层的主要功能:

  • 应用层:应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。对于不同的网络应用需要有不同的应用层协议。如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。我们把应用层交互的数据单元称为报文。
  • 运输层:负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
    网络层:负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
  • 数据链路层:简称为链路层,在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层 就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,而且要纠错),那么就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。
  • 物理层:在物理层上所传数据的单位是比特。发送方发送1 (或0)时,接收方应当收到1 (或 0)而不是0 (或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理层下面的物理媒体当作第0层。

应用进程的数据在各层之间的传递过程中所经历的变化。

OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU(Protocol Data Unit)。

任何两个同样的层次把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层”(peer layers)之间的通信。

各层协议实际上就是在各个对等层之间传递数据时的各项规定。

实体、协议、服务和服务访问点

实体表示任何可发送或接收信息的硬件或软件进程。

协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则就定义了发送者或接收者所要完成的操作,例如,在何种条件下,数据必须重传或丢弃。

在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。

协议和服务在概念上是不一样的

协议的实现保证了能够向上一层提供服务。
使用本层服务的实体只能看见服务而无法看见下面的协议。即下面的协议对上面的实体是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
上层使用服务原语获得下层所提供的服务。

服务访问点

同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP(Service Access Point)。

服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。

OSI把层与层之间交换的数据的单位称为服务数据单元 SDU(Service Data Unit)。

SDU 可以与 PDU 不一样,例如,可以是多个 SDU 合成为一个 PDU,也可以是一个 SDU 划分为几个 PDU。

TCP/IP 的体系结构

由于 OSI 参考模型把服务划得过于琐碎,先定义参考模型再定义协议,有点理想化。TCP/IP 模型则正好相反,通过已有的协议归纳总结出来的模型,成为业界的实际网络协议标准。

TCP/IP 是有由 IETF 建议、推进其标准化的一种协议,是 IP、TCP、HTTP 等协议的集合。TCP/IP 是为使用互联网而开发制定的协议族,所以互联网的协议就是 TCP/IP。

网络接入层

TCP/IP 是以 OSI 参考模型的物理层和数据链路层的功能是透明的为前提制定的,并未对这两层进行定义,所以可以把物理层和数据链路层合并称为网络接入层。网络接入层是对网络介质的管理,定义如何使用网络来传送数据。但是在通信过程中这两层起到的作用不一样,所以也有把物理层和数据链路层分别称为硬件、网络接口层。TCP/IP 分为四层或者五层都可以,只要能理解其中的原理即可。

设备之间通过物理的传输介质互连, 而互连的设备之间使用 MAC 地址实现数据传输。采用 MAC 地址,目的是为了识别连接到同一个传输介质上的设备。

网络层

相当于 OSI 模型中的第 3 层网络层,使用 IP 协议。 IP 协议基于 IP 地址转发分包数据,作用是将数据包从源地址发送到目的地址。

TCP/IP 分层中的网络层与传输层的功能通常由操作系统提供。 路由器就是通过网络层实现转发数据包的功能。

网络传输中,每个节点会根据数据的地址信息,来判断该报文应该由哪个网卡发送出去。各个地址会参考一个发出接口列表,MAC 寻址中所参考的这张表叫做 MAC 地址转发表,而 IP 寻址中所参考的叫做路由控制表。MAC 地址转发表根据自学自动生成。路由控制表则根据路由协议自动生成。MAC 地址转发表中所记录的是实际的 MAC 地址本身,而路由表中记录的 IP 地址则是集中了之后的网络号(即网络号与子网掩码)。

传输层

相当于 OSI 模型中的第 4 层传输层,主要功能就是让应用程序之间互相通信,通过端口号识别应用程序,使用的协议有面向连接的 TCP 协议和面向无连接的 UDP 协议。

面向连接是在发送数据之前, 在收发主机之间连接一条逻辑通信链路。好比平常打电话,输入完对方电话号码拨出之后,只有对方接通电话才能真正通话,通话结束后将电话机扣上就如同切断电源。

面向无连接不要求建立和断开连接。发送端可于任何时候自由发送数据。如同去寄信,不需要确认收件人信息是否真实存在,也不需要确认收件人是否能收到信件,只要有个寄件地址就可以寄信了。

应用层

相当于 OSI 模型中的第 5–7 层的集合,不仅要实现 OSI 模型应用层的功能,还要实现会话层和表示层的功能。HTTP、POP3、TELNET、SSH、FTP、SNMP 都是应用层协议。

TCP/IP 应用的架构绝大多数属于客户端/服务端模型。 提供服务的程序叫服务端, 接受服务的程序叫客户端。客户端可以随时发送请求给服务端。

封装与解封装

通常,为协议提供的信息为包头部,所要发送的内容为数据。每个分层中,都会对所发送的数据附加一个头部,在这个头部中包含了该层必要的信息, 如发送的目标地址以及协议相关信息。在下一层的角度看,从上一分层收到的包全部都被认为是本层的数据。

数据发送前,按照参考模型从上到下,在数据经过每一层时,添加协议报文头部信息,这个过程叫封装。

数据接收后,按照参考模型从下到上,在数据经过每一层时,去掉协议头部信息,这个过程叫解封装。

经过传输层协议封装后的数据称为段,经过网络层协议封装后的数据称为包,经过数据链路层协议封装后的数据称为帧,物理层传输的数据为比特。

TCP/IP 通信中使用 MAC 地址、 IP 地址、端口号等信息作为地址标识。甚至在应用层中,可以将电子邮件地址作为网络通信的地址。

实际数据传输举例

实际生活中,互联网是使用的 TCP/IP 协议进行网络连接的。我们以访问网站为例,看看网络是如何进行通信的。

访问 HTTP 网站页面时,打开浏览器,输入网址,敲下回车键就开始进行 TCP/IP 通信了。

应用程序处理

首先,应用程序中会进行 HTML 格式编码处理,相当于 OSI 的表示层功能。编码转化后,不一定会马上发送出去,相当于会话层的功能。在请求发送的那一刻,建立 TCP 连接,然后在 TCP 连接上发送数据。接下来就是将数据发送给下一层的 TCP 进行处理。

TCP 会将应用层发来的数据顺利的发送至目的地。实现可靠传输的功能,需要给数据封装 TCP 头部信息。 TCP 头部信息包括源端口号和目的端口号(识别主机上应用)、序号(确认哪部分是数据)以及校验和(判断数据是否被损坏)。随后封装了 TCP 头部信息的段再发送给 IP 。

IP 将 TCP 传过来的数据段当做自己的数据,并封装 IP 头部信息。 IP 头部信息中包含目的 IP 地址和源 IP 地址,以及上层协议类型信息。

IP 包生成后,根据主机路由表进行数据发送。

网络接口对传过来的 IP 包封装上以太网头部信息并进行发送处理。以太网头部信息包含目的 MAC 地址、源 MAC 地址,以及上层协议类型信息。然后将以太网数据帧通过物理层传输给接收端。发送处理中的 FCS 由硬件计算, 添加到包的最后。设置 FCS 的目的是为了判断数据包是否由于噪声而被破坏。

包的接收流程是发送流程的反向过程。

收到以太网包后,首先查看头部信息的目的 MAC 地址是否是发给自己的包。如果不是发送给自己的包就丢弃。如果是发送给自己的包,查看上层协议类型是 IP 包,以太网帧解封装成 IP 包,传给 IP 模块进行处理。如果是无法识别的协议类型,则丢弃数据。

收到 IP 包后,进行类似处理。根据头部信息的目的 IP 地址判断是否是发送给自己包,如果是发送给自己的包,则查看上一层的协议类型。上一层协议是 TCP ,就把 IP 包解封装发送给 TCP 协议处理。

假如有路由器,且接收端不是自己的地址,那么根据路由控制表转发数据。

收到 TCP 段后,首先查看校验和,判断数据是否被破坏。然后检查是否按照序号接收数据。最后检查端口号,确定具体的应用程序。

数据接收完毕后,发送一个 “ 确认回执 ” 给发送端。如果这个回执信息未能达到发送端,那么发送端会认为接收端没有接收到数据而一直反复发送。

数据被完整接收后,会把 TCP 段解封装发送给由端口号识别的应用程序。

应用程序处理

应用程序收到数据后,通过解析数据内容获知发送端请求的网页内容,然后按照 HTTP 协议进行后续数据交互。

网络构成

搭建一套网络涉及各种线缆和网络设备。下面介绍一些常见的硬件设备。硬件设备所说的层数是参照的 OSI 参考模型,而不是 TCP/IP 模型。

设备 作用
网卡 使计算机联网的设备
二层交换机 从数据链路层上延长网络的设备
路由器/三层交换机 通过网络层转发数据的设备
四至七层交换机 处理传输层以上各层网络传输的设备

通信介质与数据链路

设备之间通过线缆进行连接。有线线缆有双绞线、光纤、串口线等。根据数据链路不同选择对应的线缆。传输介质还可以被分为电波、微波等不同类型的电磁波。

传输速率:单位为 bps ,是指单位时间内传输的数据量有多少。又称作带宽,带宽越大网络传输能力就越强。

吞吐量:单位为 bps ,主机之间实际的传输速率。吞吐量这个词不仅衡量带宽, 同时也衡量主机的 CPU 处理能力、 网络的拥堵程度、 报文中数据字段的占有份额等信息。

网卡
任一主机连接网络时,必须要使用网卡。可以是有线网卡,用来连接有线网络,也可以是无线网卡连接 WiFi 网络。每块网卡都有一个唯一的 MAC 地址,也叫做硬件地址或物理地址。

二层交换机

二层交换机位于 OSI 模型的第 2 层(数据链路层)。它能够识别数据链路层中的数据帧,并将帧转发给相连的另一个数据链路。

数据帧中有一个数据位叫做 FCS ,用以校验数据是否正确送达目的地。二层交换机通过检查这个值,将损坏的数据丢弃。

二层交换机根据 MAC 地址自学机制判断是否需要转发数据帧。

路由器 / 三层交换机

路由器是在 OSI 模型的第 3 层(网络层)上连接两个网络、并对报文进行转发的设备。二层交换机是根据 MAC 地址进行处理,而路由器 / 三层交换机则是根据 IP 地址进行处理的。 因此 TCP/IP 中网络层的地址就成为了 IP 地址。

路由器可以连接不同的数据链路。比如连接两个以太网,或者连接一个以太网与一个无线网。家庭里面常见的无线路由器也是路由器的一种。

四至七层交换机

四至七层交换机负责处理 OSI 模型中从传输层至应用层的数据。以 TCP 等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理。例如,视频网站的一台服务器不能满足访问需求,通过负载均衡设备将访问分发到后台多个服务器上,就是四至七层交换机的一种。还有带宽控制、广域网加速器、防火墙等应用场景。

打赏
  • Copyrights © 2017-2023 WSQ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信