第一章 计算机网络体系结构

167 阅读42分钟

计算机网络在信息时代的作用

  • 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施

  • 计算机网络已经像水、电、煤气这些基础设施一样,成为我们生活中不可或缺的一部分

计算机网络的各类应用

  • 信息浏览和发布
  • 通信和交流
  • 休闲和娱乐
  • 资源共享
  • 电子商务
  • 远程协作
  • 网上办公

计算机网络带来的负面问题

  • 沉迷网络的青少年
  • 黑客
  • 网络谣言
  • 非法网站

因特网概述

网络、互联网和因特网

网络(Network)由若干个结点(Node)和连接这些结点的链路(Link)组成

  • 结点可以是笔记本电脑、台式电脑、网络打印机、交换机等
  • 链路分为有线链路、无线链路,链路有时也称为信道

image.png

网络通常用一朵云进行表示

多个网络需要通过路由器互连起来,就可以构成了一个覆盖范围更大的网络,即互联网(也叫互连网)。因此,互联网是”网络的网络(Network of Networks)“

image.png

互联网也是网络,也可以用一朵云表示

因特网(Internet)是世界上最大的互联网(其用户数以亿计,互连的网络数以百万计)

internet 与 Internet

internet(互联网)是一个通用名词,泛指由多个网络互连而成的网络。在这些网络之间的通信协议可以是任意的

Internet(因特网)是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定的计算机网络,这些网络之间必须采用TCP/IP协议族作为通信规

因特网发展的三个阶段

因特网的基础结构大体上经历了三个阶段的演进:

                                从单个网络ARPAnet向互联网发展
                                			↓
                                逐步建成三级结构的因特网
                               				↓
                                逐步形成了多层次ISP结构的因特网

时间线:

第一阶段:从单个网络ARPAnet向互联网发展

  • 1969年,第一个分组交换网ARPAnet成立

  • 70年代中期,开始研究多种网络之间的互连

  • 1983年,TCP/IP协议成为ARPAnet的标准协议(1983年也是因特网的诞生时间)

第二阶段:逐步建成三级结构的因特网

  • 1985年,NSF围绕六个大型计算机中心建设NSFnet(主干网、地区网和校园网(或企业网))
  • 1990年,APRAnet任务完成,正式关闭
  • 1991年,美国政府将因特网主干网交给私人公司经营,并开始对接入因特网的单位收费

第三阶段:逐步形成了多层次ISP结构的因特网

  • 1993年,NSFnet逐渐被若干个商用因特网主干网替代;政府机构不再负责因特网运营,让各种因特网服务提供者ISP来运营
  • 1994年,万维网WWW技术促使因特网迅猛发展
  • 1995年,NSFnet停止运作,因特网彻底商业化

因特网服务提供者ISP(Internet Service Provider)

普通用户不能直接接入因特网,需要通过ISP接入因特网。ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等连网设备。因特网上的主机都必须有IP地址才能进行通信,任何机构和个人只要向ISP交纳规定的费用,就可以从ISP得到所需要的IP地址

我国主要的ISP有:中国电信、中国联通和中国移动这三大电信运营商

基于ISP的三层结构的因特网

image.png

因特网已经发展成为基于ISP的多层次结构的互连网络

最高级别的第一层ISP的服务面积最大,第一层ISP通常也被称为因特网主干网,一般都能覆盖国际性区域范围,并拥有高速链路和交换设备,第一层ISP之间直接互连

第二层ISP和一些大公司都是第一层ISP的用户,通常具有区域性或国家性覆盖规模,与少数第一层ISP相连接

第三层ISP又称为本地ISP,它们是第二层ISP的用户,且只拥有本地范围的网络,一般的校园网或企业网,以及住宅用户和无线移动用户,都是第三层ISP的用户

一个ISP可以很方便地在因特网拓扑上增添新的层次和分支

一旦某个用户能够接入到因特网,那么他也可以成为一个ISP。所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户能够和他相连

因特网的标准化工作

因特网的标准化工作对因特网的发展起到了非常重要的作用

因特网在制定其标准上的一个很大的特点是面向公众

  • 因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载
  • 任何人都可以随时用电子邮件发表对某个文档的意见或建议

因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用

  • ISOC旗下的因特网结构委员会IAB,负责管理因特网有关协议的开发
  • IAB旗下的因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化
  • IAB旗下的因特网研究部IRTF,从事理论方面研究和开发一些需要长期考虑的问题

制定因特网的正式标准要经过4个阶段:

  1. 因特网草案(此时还不是RFC文档)
  2. 建议标准(此阶段开始就成为RFC文档)
  3. 草案标准
  4. 因特网标准

注意:不是所有的RFC都是因特网标准

因特网的组成

从功能上看,因特网可划分为边缘部分和核心部分

边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据,音频或视频)和资源共享

  • 主机可以是台式电脑、大型服务器、笔记本电脑、平板电脑、智能手机、智能手表、物联网智能硬件(空气质量检测仪、智能摄像头等)等

核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和数据交换服务)

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

三种交换方式

电路交换(Circuit Switching)

早期的电话交换网就是典型的电路交换网

image.png

使用电路交换进行通信需要经历三个步骤:

  1. 建立连接

    分配通信资源

  2. 传输数据

    通信双方将独占通信资源,通信资源 不会被其他用户占用

  3. 释放连接

    归还通信资源,以便其他用户可以分配到此通信资源

计算机之间的数据传送往往是突发式的,当使用电路交换来传送数据时,其线路的传输效率一般都会很低,线路上真正用来传送数据的时间往往不到10%甚至1%,因此计算机网络常采用分组交换,而不常采用电路交换进行数据传输

分组交换(Packet Switching)

分组交换最重要的就是路由器(也称为交换节点),它负责将各种网络互连起来,并对接收到的分组进行转发

image.png

上图就是一个简单的分组交换网,简单起见,图中并未画出其中的各个物理网络,而是将其等效为路由器之间的一段链路

图中的路由器R1 ~ R5就是分组交换网中的交换节点

注意:交换节点可以是路由器,也可以是交换机,路由器是网络层的交换节点,交换机是数据链路层的交换节点

报文和分组

通常把用户传输的整块数据称为一个报文,较长的报文通常不适宜直接传输,如果报文太长,则对交换结点的缓存容量有很大的要求,并且在数据的错误处理方面也比较低效

因此在发送报文之前,通常会把较长的报文划分成为一个个更小的等长的数据段,再在每个数据段前面加上一些必要信息(构成首部)后,就构成了一个分组,也可称为“包”(首部也可称为“包头”)。

首部存在的意义之一是为了让交换节点进行查表转发,以便于找到合适的转发接口,通过该接口讲分组转发给下一个交换节点或目的主机。接收方收到所有分组后,需要将首部去除,然后将各分组按顺序还原为原始报文

各个分组并不一定是按照同一条线路进行转发的,只要求分组最终能到达目的主机即可

分组交换各部分所完成的任务:

  • 发送方:构造分组、发送分组

  • 路由器:存储分组、转发分组

  • 接收方:接收分组、还原报文

以图中的主机H1与主机H3进行数据通信为例:

主机H1将分组逐个发送给与其直接相连的路由器R1,此时H1到R1的这段链路被占用,而分组交换网中的其他链路并为被当前通信双方占用

image.png

当路由器R1接收到整个分组时,会暂时将该分组缓存下来,并查询其首部的目的地址字段,以确定要将分组从哪个端口进行转发

假设R1根据自己的转发表的查询结果为“下一跳是路由器R2”,则R1将分组转发给R2,当分组在R1与R2之间进行传送时,仅占用R1与R2这段链路,而不会占用交换网中的其他链路

路由器R2对分组进行存储转发,假设根据查表结果“应转发给路由器R3”,则R2将分组转发给路由器R3

R3接收到分组后,对该分组进行存储转发,最终将其转发给主机H3

image.png

分组交换与电路交换相比:

  • 优点:

    • 没有建立连接和释放连接的过程

    • 分组传输过程中逐段占用通信链路,有较高的通信线路利用率

    • 交换节点可以为每一个分组独立选择转发路由,使得网络有很好的生存性

  • 缺点:

    • 分组首部带来了额外的传输开销

    • 交换节点存储转发分组时会造成一定的转发时延

    • 无法确保通信时端到端通信资源全部可用,在通信量较大时可能造成网络阻塞

    • 分组可能出现失序,丢失等问题

报文交换(Message Switching)

报文交换是分组交换的前身,报文交换和分组交换一样采用存储转发的交换方式

报文交换是将整块数据添加必要信息后直接进行发送,且报文交换对报文的大小无限制

交换节点必须将整个报文接收完成后才能查找转发表,然后将整个报文转发到下一个节点

因此,报文交换比分组交换带来的转发时延要长很多,需要交换节点具有的缓存空间也大很多

三种交换对比

示意图:

image.png

A,B,C,D分别报文传输所要经过的4个结点,纵坐标为时间

电路交换:通信之前先建立连接;连接建立好之后,使用已建立好的连接进行数据传送;数据传送结束后,需要释放连接。使用电路交换时,中间各交换结点是直通的,比特流可以直达终点

报文交换:可以随时发送报文,无需建立连接;整个报文先传送到相邻交换结点,交换节点全部存储下来后进行查表转发,将其转发到下一个交换结点。使用报文交换时,整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间

分组交换:可以随时发送分组,无需建立连接;构成原始报文的一个个分组,依次在各结点交换机上存储转发,各结点交换机在发送分组的同时,还可接收后续的分组。使用分组交换时,构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也利于进行差错控制

电路交换:

  • 优点:
    • 通信时延小。通信线路为通信双方用户专用,数据直达,因此通信时延小
    • 有序传输。数据只在一条线路上传输,因此不存在失序问题
    • 没有冲突。不同的通信双方拥有不同的信道,不会出现争用物理信道的问题
    • 适用范围广。电路交换既适用于传输模拟信号,也适用于传输数字信号
    • 实时性强。通信双方之间的物理通路一旦建立,双方就可以随时通信
    • 控制简单。电路交换的交换设备及控制均较简单
  • 缺点:
    • 建立连接时间长
    • 线路独占,使用效率低。电路交换一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因此信道利用率很低
    • 灵活性差。连接所建立的物理通路上的任何一个点出现故障,就必须重新建立连接
    • 难以规格化。电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信

报文交换:

  • 优点:
    • 无需建立连接
    • 动态分配线路,提高线路可靠性。当发送方把报文传送给结点交换机时,结点交换机会先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去;如果某条传输路径发生故障,会重新选择另一条路径传输数据
    • 提高线路利用率。通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路
    • 提供多目标服务。一个报文可以同时发送给多个目的地址
  • 缺点:
    • 引起来转发时延
    • 需要较大的存储缓存空间
    • 需要传输额外的信息量。报文需要携带目标地址、源地址等信息

分组交换:

  • 优点:
    • 无需建立连接
    • 线路利用率高。通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路
    • 简化了存储管理。相对于报文交换而言,分组的长度固定,存储分组的缓冲区也固定
    • 加速传输。上一分组的转发操作和下一分组的存储操作可以同时进行
    • 减少了出错概率和重发数据量。分组比报文小,分组出错时,只需针对出错分组单独进行传送
  • 缺点:
    • 引起了转发时延
    • 需要传输额外信息量。将原始报文分割成等长的数据块,每个数据块都要加上源地址、目的地址等控制信息,从而构成分组
    • 对于数据报服务,存在失序、丢失或重复分组的问题,分组到达目的结点时,需要重新还原成原始报文,比较麻烦;对于虚电路服务,虽没有失序问题,但存在呼叫建立、数据传输和虚电路释放三个过程

若要连续传送大量的数据,并且数据传送时间远大于建立连接的时间,则使用电路交换可以有较高的传输效率

报文交换和分组交换都不需要建立连接,在传送突发数据时可以提高通信线路的利用率

将报文划分为若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,这有利于差错控制,同时还具有更好的灵活性(因为不同分组的转发路径可以是不一样的,但最终都将到达目的主机)

计算机网络的定义和分类

计算机网络的定义

计算机网络的精确定义并未统一

计算机网络的最简单定义是:一些互相连接的、自治的计算机的集合

  • 互连:是指计算机之间可以通过有线或无线的方式进行数据通信
  • 自治:是指独立的计算机,它有自己的硬件和软件,可以独立运行使用
  • 集合:是指至少需要两台计算机

image.png

不同阶段的定义不同,这反映当时的网络技术发展水平

计算机网络的较好定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(如传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用

  • 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机、具有网络功能的传感器以及智能家电等等智能硬件,这些硬件一定包含中央处理单元CPU
  • 计算机网络并非专门用来传输数据,而是能够基于数据传送进而实现各种各样的应用

计算机网络的分类

按交换技术分类:

  • 电路交换网络
  • 报文交换网络
  • 分组交换网络

按使用者分类:

  • 公用网

    公用网是指电信公司出资建造的大型网络。所有愿意按电信公司的规定交纳费用的人都可以使用这种网络,因此公用网又称为公众网

  • 专用网

    专用网是指某个部门为本单位的特殊业务工作的需要而建造的网络,这种网络不向本单位以外的人提供服务

按传输介质分类:

  • 有线网络(双绞线网络、光纤网络)
  • 无线网络(WiFi、蓝牙)

按覆盖范围分类:

  • 广域网(WAN)

    广域网的范围通常为几十公里到几千公里,可以覆盖一个国家、地区甚至横跨几个洲,所以有时也称为远程网。广域网是因特网的核心部分,其任务是为核心路由器提供远距离的高速连接,互连分布在不同区域的城域网和局域网

  • 城域网(MAN)

    城域网的范围通常是一个城市,可跨越集合街区甚至整个城市,其作用距离为5至50公里,城域网通常作为城市骨干网,互连大量企业、机构和校园局域网

  • 局域网(LAN)

    局域网一般用微型计算机或工作站通过高速通信线路相连,速率通常在10Mb/s以上,但地理上则局限在较小的范围内,距离一般在1公里左右。局域网通常为某个单位单独拥有、使用和维护

  • 个域网(PAN)

    个域网通常是个人区域网的简称,其覆盖范围通常为10米,个域网主要用于在个人工作的地方把属于个人使用的笔记本电脑、键盘、鼠标、耳机以及打印机等电子设备用WiFi或蓝牙等无线技术连接起来的网络,因此也常称为无线个域网WPAN

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

按拓扑结构分类:

  • 总线型网络

    image.png

    总线型网络使用单根传输线把计算机连接起来

    优点是建网容易、增减结点方便、节省线路

    缺点是重负载时通信效率不高,总线任意一处出现故障,则全网瘫痪

  • 星型网络

    image.png

    星型网络是将每个计算机都以单独的线路与中央设备相连,中央设备早期是计算机,后来是集线器,现在一般是交换机或路由器

    这种网络拓扑的优点是便于网络的集中控制和管理,因为端用户之间的通信必须经过中央设备

    缺点是成本高,中央设备对故障敏感

  • 环型网络

    image.png

    环型网络是将所有计算机的网络接口连接成一个环,最典型的例子是令牌环局域网

    环可以是单环,也可以是双环,环中信号是单向传输的

  • 网状型网络

    image.png

    网状型网络,一般情况下,每个结点至少有两条路径与其他结点相连,多用在广域网中

    优点是可靠性高

    缺点是控制复杂、线路成本高

四种网络拓扑均是最基本拓扑,它们可以相互连接成为更复杂的网络

计算机网络的性能指标

性能指标用来从不同的方面来度量计算机网络的性能

常用的计算机网络的性能指标有8个:

  • 速率
  • 带宽
  • 吞吐量
  • 时延
  • 时延带宽积
  • 往返时间
  • 利用率
  • 丢包率

速率

比特和速率

比特是计算机中数据量的单位。一个比特就是一个二进制数字的一个1或0

常用的数据量单位:Byte(字节,简写为B),bit(比特,简写为b

  • 8 bit = 1Byte

  • 1 KB = 2^10^ BK = 2^10^ = 1024)

  • 1 MB = K * KB = 2^20^ B

  • 1 GB = K * MB = 2^30^ B

  • 1 TB = K * GB = 2^40^ B

速率是指数据的传送速率,即每秒传送多少个比特,也称为比特率、数据率或数据传输速率(信息传输速率)

常用的速率单位:bit/sb/sbps

  • 1 kb/s = 10^3^ b/sk = 10^3^ = 1000)
  • 1 Mb/s = k * kb/s = 10^6^ b/s
  • 1 Gb/s = k * Mb/s = 10^9^ b/s
  • 1 TB/s = k * Gb/s = 10^12^ b/s

注意:区分数据量单位的“K”,“M”,“G”,“T”与数据率单位的“k”,“M”,“G”,“T”的区别

数据传输速率受三个方面的影响,其值为min[主机接口速率,线路带宽,交换机或路由器的接口速率]

即设备的数据传输速率取决于三者中的最小者

带宽

带宽在模拟信号系统中的意义:某个信号所包含的各种不同频率成分所占据的频率范围,单位:HzkHzMHzGHz

带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,即在单位时间内从网络中的某一点到另一点所能通过的最高数据率,单位:b/skb/sMb/sGb/sTb/s

吞吐量

吞吐量是指在单位时间内通过某个网络接口的实际数据量

吞吐量受网络带宽的限制

时延

时延是指数据从网络的一端传送到另一端所耗费的时间,也称为延迟

源主机发送分组到目的主机的过程中,会产生以下时延:

  • 源主机或路由器将分组发往传输线路,这需要花费一定的时间,这段时间称为发送时延

    发送时延 = 分组长度(b) / 数据传输速率(b/s

  • 代表分组的电信号在链路上传输,这段时间称为传播时延

    传播时延 = 信道长度(m)/ 电磁波传播速度(m/s

    电磁波在自由空间中的传播速度为 3 * 10^8^ m/s

    电磁波在铜线上的传播速度为 2.3 * 10^8^ m/s

    电磁波在光纤上的传播速度为 2 * 10^8^ m/s

  • 当分组进入路由器后,会在路由器的输入队列中排队缓存并等待处理,在路由器确定了分组的转发接口后,还需要将分组传送到输出队列中排队缓存并等待转发,这两段排队缓存及等待转发所耗费的时间就是排队时延

    排队时延不方便计算

  • 路由器从自己的输入队列中取出排队缓存并等待处理的分组后,会进行一系列处理工作,例如检查分组是否误码、提取分组首部中的目的地址,为分组查找相应的转发接口,以及修改分组首部中的部分内容等,这需要花费一定时间,这段时间称为处理时延

    处理时延不方便计算

一般来说,源主机和目的主机之间的路径会由多个链路和多个路由器组成,因此会有多个传播时延、排队时延以及处理时延

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

假设:主机连续发送分组,分组等长,各链路长度相同,带宽也相同,忽略路由器的排队时延和处理时延

若n个分组,m段链路,则总时延为:n个分组的发送时延 + (m - 1) × 1个分组的发送时延 + 1段链路的传播时延 × m

image.png

注意:路由器只有接收完一整个分组后,才能对该分组进行转发

时延带宽积

时延带宽积是传播时延与带宽的乘积,即时延带宽积 = 传播时延 × 带宽

若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特

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

可以将链路看作是一个圆柱形管道,管道的长度就是链路的传播时延,即以时间作为单位来表示链路长度,管道的横截面积就是链路的带宽

因此时延带宽积就是该管道的容积,表示这段链路可以容纳的比特数量

image.png

往返时间

往返时间RTT是指从发送端发送分组开始,到发送端收到接收端发来的相应确认分组为止,总共耗费的时间

接收端收到发送端发送过来的数据后,还需要向发送端发送确认分组,即向发送端发送自身已经收到数据的信息

可以使用ping命令测量本计算机与某个目的主机的连通性与往返时间RTT

image.png

注意:往返时间一般不考虑分组在发送端的发送时延以及确认分组在接收端的发送时延(确认分组通常很小,考虑进去问题也不大)

利用率

利用率分为链路利用率和网络利用率

  • 链路利用率:用来表示某链路有百分之几的时间是被利用的(即有数据通过的)
  • 网络利用率:网络中所有链路的链路利用率的加权平均

image.png

当网络的通信量较少时,产生的时延并不大

如果网络通信量不断增大,则分组在交换节点(路由器或交换机)中的排队时延就会随之增大,因此网络引起的时延就会增加

令D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、D0和网络利用率U之间的关系:D = D0 / (1 - U)

  • 当网络的利用率达到50%,时延就要加倍
  • 当网络的利用率超过50%,时延急剧增大
  • 当网络的利用率接近100%时,时延就趋于无穷大
  • 因此,一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%,如果超过了,就要准备扩容,增大线路的带宽

因此,链路利用率并非越高越好,当某链路利用率增大时,该链路引起的时延也会迅猛增加

信道利用率也不能太低,这会使宝贵的通信资源白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内

丢包率

丢包率即分组丢失率,是指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率

丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等

分组丢失主要有两种情况:

  1. 分组在传输过程中出现误码,被传输路径中的结点(路由器或目的主机)检测出误码而丢弃
  2. 分组到达一台存储队列已满的交换节点时被丢弃(网络阻塞)

丢包率反映了网络的拥塞情况:

  • 无拥塞时路径丢包率为0
  • 轻度拥塞时路径丢包率为1%~4%
  • 严重拥塞时路径丢包率为5%~15%

当网络的丢包率较高时,通常无法使网络应用正常工作

计算机网络体系结构-常见的计算机网络体系结构

OSI体系结构(开放系统互连参考模型)

OSI参考模式是一个7层协议的体系结构

                                        应用层
                                        表示层
                                        会话层
                                        运输层
                                        网络层
                                      数据链路层
                                        物理层

OSI模型是法律上的国际标准

TCP/IP协议族(TCP/IP参考模型)

TCP/IP参考模型是一个4层协议的体系结构

                                        应用层
                                        运输层
                                        网际层
                                      网络接口层

TCP/IP协议族是事实上的国际标准

TCP/IP协议族的网络接口层相当于是OSI参考模型的物理层和数据链路层的合并

TCP/IP协议族的应用层相当于是OSI参考模型的表示层、会话层以及应用层的合并

由于TCP/IP体系结构的网络层使用的协议是IP协议,而IP协议的中文意思是网际协议,因此其网络层也称为网际层

TCP/IP协议族各层包含的协议:

TCP/IP体系结构的网络接口层并没有规定什么具体内容,目的是为了可以互连全世界的各种网络接口,因此TCP/IP体系结构在本质上只有上面的三层

image.png

网际层的IP协议可以将不同的网络接口进行互连,并上其上的TCP协议和UDP协议提供网络互连服务

TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的某些协议提供可靠传输的服务,UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的某些协议提供不可靠传输的服务

IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不用的网络接口,即IP over everything,另一方面为各种网络应用提供服务,即everything over IP

由于TCP/IP体系结构中包含有大量的协议,而IP协议和TCP协议是其中非常重要的两个协议,因此用TCP和IP这两个协议来表示整个协议家族,简称TCP/IP协议族

ICMP协议是TCP/IP协议族的网际层中的一个协议

PPP协议是TCP/IP协议族的网络接口层的一个协议

原理体系结构

由于TCP/IP为了互连各种网络接口,其网络接口层并没有规定什么具体内容,这对我们学习计算机网络来说是不利的,因此,结合OSI和TCP/IP的优点,提出一种五层协议的原理体系结构

5层原理体系结构将TCP/IP协议族中的网络接口层划分为了数据链路层和物理层

                                        应用层
                                        运输层
                                        网络层
                                      数据链路层
                                        物理层

适于教学

注:

  • 路由器的作用是实现网络互连,因此其只包含物理层,数据链路层和网络层即可
  • 计算机网络的体系结构就是计算机网络及其构件所应完成的功能的精确定义,这些功能的实现细节(例如采用何种硬件或软件),则是遵守这种体系结构的具体实现问题,并不属于体系结构本身所描述的内容

image.png

image.png

计算机网络的体系结构-分层的必要性

计算机网络是个非常复杂的系统。早在最初的ARPAnet设计时就提出了分层的设计理念

“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理

体系结构中各层需要处理的问题

  1. 物理层 —— 解决使用何种信号来表示比特0和1的问题

    采用什么传输媒体(介质)(严格来讲,传输介质并不包含在体系结构之中)

    采用什么物理接口

    采用什么信号表示比特0和1

  2. 数据链路层 —— 解决数据包在一个网络或一段链路上传输的问题

    如何区分网络中的各主机(主机编址,如MAC地址)

    如何从比特流中区分出地址和数据(数据封装格式)

    (在总线型网络中)如何协调各主机争用总线(媒体接入控制)

    (在交换式以太网中)以太网交换机的具体工作流程(自学习和转发帧)

    如何检测数据是否误码(差错检测)

    出现传输差错如何处理(可靠传输和不可靠传输)

    接收方如何控制发送方注入网络的数据量(流量控制)

  3. 网络层 —— 解决数据包在多个网络之间传输和路由的问题

    如何区分网络和网络中的各主机(网络和主机共同编址,如IP地址)

    路由器的具体工作流程(路由选择协议、路由表和转发表)

  4. 运输层 —— 解决进程之间基于网络的通信问题

    如何区分不同的应用进程(进程的标识,如端口号)

    出现传输差错如何处理(可靠传输和不可靠传输)

  5. 应用层 —— 解决通过应用进程的交互来实现特定网络应用的问题

    进程之间如何交互(应用层协议)

    进程之间如何进行会话和数据表示(应用层协议)

计算机网络的体系结构-分层思想举例

以主机中浏览器应用进程与Web服务器中的Web服务器进程之间基于网络的通信为例:

主机(从上到下封装):

  1. 主机中的应用层按HTTP协议的规定,构建一个HTTP请求报文,用来请求Web服务器执行相应操作

    应用层将HTTP请求报文交付给运输层处理

    image.png

  2. 运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段,TCP首部的作用主要是为了区分应用进程以及实现可靠传输

    运输层将TCP报文段交付给网络层处理

    image.png

  3. 网络层给TCP报文段添加一个IP首部,使之成为IP数据报,IP首部的作用是IP寻址和路由

    网络层将IP数据报交付给数据链路层处理

    image.png

  4. 数据链路层给IP数据报添加一个首部和一个尾部使之成为帧,首部和尾部的作用是MAC寻址和帧校验

    数据链路层将帧交付给物理层

    image.png

  5. 物理层将帧看作比特流,若网络是以太网,则物理层还会给比特流前面添加8字节的前导码,前导码的作用是为了使接收方的时钟同步让其做好接收帧的准备

    物理层将添加有前导码的比特流变成相应的信号发送到传输媒体,信号通过传输媒体到达路由器

    image.png

路由器(从下到上解封后再从上到下封装):

  1. 物理层将信号变换为比特流,然后去掉前导码,将其交付给数据链路层,这实际上交付的是帧

    image.png

  2. 数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报

    image.png

  3. 网络层解析IP数据报的首部,从中提取目的网络地址,然后查找自身的路由表,然后确定转发端口,以便进行转发

    网络层还要对首部中的某些字段进行修改,例如生存时间等

    之后将IP数据报交付给数据链路层

    image.png

  4. 数据链路层将IP数据报添加一个首部和尾部,使之成为帧

    数据链路层将帧交付给物理层

    image.png

  5. 物理层将帧看作是比特流,物理层给比特流前添加前导码(假设是以太网),物理层将该比特流变换成为相应的信号发送到传输媒体,信号通过传输媒体发送到Web服务器

    image.png

Web服务器(从下到上解封):

  1. 物理层将信号变换为比特流,然后去掉前导码,将其交付给数据链路层,这实际上交付的是帧

    image.png

  2. 数据链路层将帧的首部和尾部去掉(并解析)后,将其交付给网络层,这实际上交付的是IP数据报

    image.png

  3. 网络层将IP数据报的首部去掉(并解析)后,将其交付给运输层,这实际上交付的是TCP报文段

    image.png

  4. 运输层将TCP报文段的首部去掉(并解析)后,将其交付给应用层,这实际上交付的是HTTP请求报文

    image.png

  5. 应用层将HTTP请求报文进行解析,然后给主机发回HTTP响应报文

    image.png

与之前的过程类似,HTTP响应报文在Web服务器层层封装后通过路由器发送到主机,主机层层解封后得到HTTP响应报文

image.png

计算机网络的体系结构-专用术语

三个最具代表性的分类名称:实体、协议、服务

实体

实体是指任何可发送或接收信息的硬件软件进程

对等实体是指收发双方相同层次中的实体

image.png

比如:通信双方的物理层和数据链路层的网卡就是对等实体,通信双方应用层的应用进程也是对等实体

协议

协议是指控制两个对等实体进行逻辑通信的规则的集合

如应用层的对等实体使用应用层协议(HTTP、SMTP)的控制下进行逻辑通信...

image.png

之所以称为“逻辑通信”,是因为不存在这种直接的通信方式,它只是一种间接的通信,这么做的目的是方便单独研究网络体系结构的某一层,而不用考虑其它层

协议的三要素:

  • 语法

    定义所交换信息的格式(定义了所交换的信息由哪些字段、字段的长度以及何种顺序构成)

    以下是IPv4数据包的首部格式

    image.png

  • 语义

    定义通信双方所要完成的操作

  • 同步

    定义通信双方的时序关系

    例如:HTTP协议规定,必须由主机先向服务器发送HTTP请求报文,服务器收到请求报文后才能给主机发回HTTP响应报文

服务

在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务

如物理层对等实体在物理层协议的控制下向数据链路层提供服务

要实现本层协议,需要使用下面一层所提供的服务

如数据链路层对等实体在享受物理层提供的服务的基础上,通过被数据链路层协议的控制进行逻辑通信,并给网络层提供服务

应用层的上层为用户,即应用层对等实体在享受运输层提供的服务的基础上,通过被应用层协议的控制进行逻辑通信,并给用户提供服务

image.png

协议是“水平的”,服务是“垂直的”

实体看得见下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是”透明“的

同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点SAP,它用于区分不同的服务类型

  • 数据链路层的服务访问点为帧的“类型”字段
  • 网络层的服务访问点为IP数据报首部中的“协议字段”
  • 运输层的服务访问点为“端口号”

服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语

协议数据单元PDU:通信双方对等层次之间传送的数据包称为该层的协议数据单元PDU(Protocol Data Unit)

各层PDU名称:

  • 应用层:应用报文(message)
  • 运输层:TCP报文段(segment)或UDP用户数据段(datagram)
  • 网络层:IP数据报或分组(packet)
  • 数据链路层:帧(frame)
  • 物理层:比特流(bit stream)
  • 以上数据包均可称为协议数据单元PDU

服务数据单元SDU:同一系统内(通信的一方),层与层之间交换的数据包称为服务数据单元SDU(Service Data Unit)

image.png