admin 管理员组

文章数量: 887021

计算机网络原理 - 网络层、链路层

##4.网络层

网络层主要是利用IP上的传输,在路由器中最高达到的层次为网络层,分组交换机只到链路层;IP准确来说不是一个主机的地址,而是一个接口的地址。

4.1 概述

网络层的作用:将分组从一台发送主机移动到一台接收主机。

4.1.1 转发和路由选择

转发:当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路

路由选择:分组从发送方流向接收方时,网络层必须决定这些分组采用的路由或路径,路由选择算法

概述:

转发是路由器本地动作,路由选择是网络范围过程。比如开车从北京到上海,转发相当于在某个路口选择某一条岔路,路由选择相当于规划从北京到上海所有线路的过程

每台路由都有一张转发表。路由器检查分组首部字段值(可能是目的地址或所属连接,看网络层协议)来转发分组,使用该值在转发表索引查询。该值指出了该分组将被转发的路由器输出链路接口

路由选择算法决定了插入路由器转发表中的值。路由器接收路由选择协议报文,来配置转发表。有两种算法:

集中式:统一分配路由表

分布式:路由器自带路由表

一些其他概念:

分组交换机:指一台通用分组交换设备,根据分组首部字段值从输入链路接口转移分组到输出链路接口

链路层交换机:基于链路层字段中的值做转发决定

路由器:基于网络层字段值做转发决定

连接建立:某些网络结构(ATM、帧中继、MPLS)除了转发和路由选择功能,还有连接建立功能。要求从源到目的地沿着所选择路径彼此握手,建立连接

4.1.2 网络服务模型

定义了分组在发送与接收端系统之间的端到端运输特性

网络层可以提供的服务(注意:IP并没有这些服务):

  • 确保交付
  • 具有时延上界的确保交付
  • 有序分组交付
  • 确保最小带宽:模仿发送方和接收方之间一条特定比特率传输链路的行为。发送速率低于该速率,分组不会丢失,且会在预定时延内到达
  • 确保最大时延抖动:确保发送方两个相继分组之间的时间 = 目的地接收到它们之间的时间
  • 安全性服务:使用仅由源和目的地主机知晓的密钥,加密数据报,源加密,目的主机解密。此外还有数据完整性和源鉴别服务

因特网的网络层IP协议提供单一服务,尽力而为服务,无带宽保证,无丢包保证,无顺序保证,不定时,无拥塞指示

其他提供服务的服务模型:
  • 恒定比特率(CBR) ATM网络服务

就是使网络连接看起来就像在发送和接收主机之间存在一条专用的、固定带宽的传输链路,以使用性质相同的虚拟管道来提供分组(ATM术语称为信元)流。

  • 可用比特率(ABR)ATM网络服务

比尽力而为的服务稍好一点的服务。然而与IP不同的是,信元不能重排序。最小传输速率是可以保证的。

4.2虚电路和数据报网络

仅在网络层提供连接服务的计算机网络称为虚电路;仅在网络层提供无连接服务的计算机网络称为数据报网络。

运输层面向连接服务是在位于网络边缘的端系统中实现的;我们很快看到,网络层连接服务除了在端系统中,也在位于网络核心的路由器中实现

4.2.1 虚电路网络

包括ATM、帧中继的体系结构是虚电路网络,在网络层使用连接。IP是数据报网络

虚电路组成:
  • 源和目的主机之间的路径,一系列链路和路由器

  • VC号,该路径每段链路一个号码,属于一条虚电路的分组首部有VC号

  • 该路径每台路由器转发表表项。当跨越一台路由器创建一条虚电路时,转发表增加一个新表项,终止将会删除一条虚电路每条链路上可能有不同VC号,每台路由器必须用一个新的VC号更新每个分组的VC号(which can get from the forwarding tables)也就是一个分组经过一台路由器,首部VC号可能就变了,原因:

  • 逐链路代替该号码减少了分组首部VC字段长度

  • 大大简化虚电路建立。如果要求一个VC号,创建虚电路时路由器需要交换处理大量报文来约定VC号

    虚电路网络中的路由器必须为进行中的连接维护连接状态信息。创建一个连接,转发表加一项;释放一个连接,转发表删一项。该信息将VC号与输出接口号联系起来。即使没有VC号转换,仍有必要维持状态信息,该信息将VC号和输出接口号联系起来。

虚电路3个阶段:
  • 虚电路建立

    发送运输层与网络层联系,指定接收方地址,等待网络建立虚电路

    网络层决定发送方和接收方之间的路径,即虚电路要通过一系列链路和路由器,为每条链路设置vc号

    网络层在路径上每台路由器的转发表增加一个表项

    预留该虚电路路径上的资源

  • 数据传送

    发起呼叫—>入呼叫—>接收呼叫—>呼叫连接—>数据流开始—>接收数据

  • 虚电路拆除

    网络层通知网络另一侧端系统结束呼叫,更新删除路由器上转发表项以表明虚电路不存在(说明路由器转发表项是虚电路的物理体现)

信令报文

端系统向网络发送指示 虚电路启动与终止的报文

路由器之间传递的用于建立虚电路(修改路由器表中的连接状态)的报文

用来交换这些报文的协议称为信令协议

4.2.2 数据报网络

每当端系统要发送分组,为分组加上目的地地址,推进网络

分组从源到目的地传输,通过一系列路由器传递,每台都使用分组的目的地址转发该分组

每个路由器有转发表,将目的地址映射到输出链路接口,路由器将分组向该接口转发

目的地址(其实就是IP地址)32bit,转发表不可能对每个目的地址有一个表项,因此,路由器用分组的目的地址的前缀与表项进行匹配。当有多个匹配时,使用最长前缀匹配规则。

数据包网络中路由器不维持连接状态信息,但是维护了转发状态信息。实际上每1-5分钟,路由选择算法更新一次转发表。

因为在数据包网络中的转发表能在任何时刻修改,从一个端系统到另一个端系统发送一系列分组可能在通过网络时走不同的路径,并可能无序到达

4.2.3 虚电路和数据报网络的由来

虚电路来源于电话界(真电路)

端系统设备复杂,网络层服务模型应尽可能简单,复杂功能在更高级实现(按序、可靠数据传输、拥塞控制等)

因为简单,所以互联各种链路(卫星、以太网、光纤、无线)和丢包特性的网络变得容易

增加一个新服务器只需连接一台主机到网络,定义一个新的应用层协议即可,使得Web之类的新服务很快在因特网部署

4.3 路由器工作原理

路由器的组成部分
  • 输入端口

    行将一条输入的物理链路与路由器相连接的物理层功能

    执行与位于入链路远端的数据链路层交互的数据链路层功能

    查找功能,查询转发表决定路由器的输出端口,将分组转发到输出端口

  • 交换结构

    将路由器的输入端口与输出端口相连
    分组通过交换结构转发到输出端口

  • 输出端口

    存储从交换结构接收的分组,执行必要的链路层和物理层功能在输出链路上传输这些分组。

    当链路是双向的时,输出端口与输入端口在同一线路卡成对出现

  • 路由选择处理器

    执行路由选择协议

    维护路由选择表、连接的链路状态信息,为路由器计算转发表

路由转发平面

一台路由器的输入端口、输出端口和交换结构共同实现了转发功能,并且用硬件实现

路由控制平面

路由器的控制功能(执行路由选择协议、对上线或者下线链路进行响应、管理功能),在毫秒时间尺度上运行,用软件实现并在选择处理器上执行(一种cpu)

4.3.1 输入端口

查找

查找必须在纳秒级别执行,不仅要用硬件执行查找,而且要对大型转发表使用快速查找算法,而且需要更快的内存访问速度(DRAM、SRAM)。

影子副本:

转发表由路由选择处理器计算和更新,从路由选择处理器经过独立总线复制到(输入)线路卡(影子副本)有了转发表副本,转发决策能在每个输入端口本地做出,无须调动路由选择处理器,避免集中式处理

排队:

查找确定了某分组输出端口,分组就能发送进入交换结构。一个被阻塞的分组必须在输入端口处排队

尽管查找在输入端口可以说是最为重要的,但必须采取许多其它动作:

必须出现物理层和数据链路层处理

必须检验分组的版本号、检验和和寿命字段。后两个字段必须重写

必须更新用于网络管理的计数器

匹配加动作

4.3.2 交换结构

通过交换结构,分组才能实际地从一个输入端口交换(转发)到一个输出端口中

三种交换方式:
  • 经内存交换

一个分组到达输入端口时,该端口会先通过中断方式向路由选择处理器发出信号

分组从输入端口复制到处理代路由器查找交换进内存,是器内存中(现由输入线路卡处理的)

早期路由选择处理器从首部提取目的地址,在转发表查找输出端口,将分组复制到输出端口

  • 经总线交换

输入端口经一根共享总线将分组直接传送到输出端口,无需路由选择处理器的干预

路由器的交换带宽受总线速率限制

  • 经互联网络交换

纵横式交换机,2N条总线组成网络,连接N各输入端口和N个输出端口

每条垂直的总线与每条水平的总线交叉,交叉点通过交换结构控制器开启闭合

某分组到达端口A,需要转发到Y,交换机控制器闭合总线A和Y的交叉点,A在其总线上发送分组,仅由Y接收;同时B也能发分组到X,因为没有公用总线。纵横式网络能并行转发多个分组。但是如果两个不同输入端口的两个分组的目标是同一个输出端口。则一个分组必须在输入端等待

经过不同的端口最后到达同一个目标

4.3.3 何处出现排队

输入、输出端口都能形成分组队列,取决于流量负载、交换结构

随着队列增长,路由器缓存空间会耗尽,出现丢包

需要路由器缓存吸收流量负载波动,需要多少缓存?

少量TCP流:RTT * C(链路容量)

大量TCP流:RTT* C/ (N^1/2)

输出端口排队 ,需要分组调度程序选出一个分组发送。提供服务质量保证

输出端口的一个分组调度程序必须在这些排队的分组中选取一个发送。

分组调度程序在提供服务质量保证上有很大的作用

主动队列管理(RQM):

缓存填满前丢弃(或首部加个标记)一个分组,向发送方提供一个拥塞信号

随机早期检测算法(RED)

平均队列长度在某个范围内时,以某种概率被丢弃/标记。

线路前部阻塞(HOL)

深色阴影分组必须等待。但不仅该分组要等待,左下角队列中排在该分组之后的浅色阴影分组也要等待,即使右侧输出端口中无竞争。这种现象叫做线路前部阻塞(HOL)

4.3.5 路由选择控制平面

网络范围的路由选择控制平面是分布式的,即不同部分(如路由选择算法)执行在不同的路由器上,并且通过彼此发送控制报文进行交互

4.4 网际协议(IP)

因特网中的转发和编址

网络层三个组件

本文标签: 计算机网络 原理 笔记 链路层 网络