概述

  • 把物理层和数据链路层比作市内交通,网络层就可以比作连接不同城市交通的中转车站
  • 网络层可以把来自其他网络中的数据传送到下一个途经的网络或本网络中的目的节点
  • 网络层必须知道通信子网的拓扑结构,并且在拓扑结构中选择适当的路径

网络层概述

  • 网络层是从功能上定义的一个逻辑层次,依靠路由器实现,每个路由器至少可连接两个网络,就像一个城市的中转车站可以连接多个城市内的交通一样。
  • 那为什么要这样一个网络层呢?就是因为不同网络有不同的网络层协议和地址规范,一个网络中的用户若不能识别其他网络的通信协议和地址规范,就不能把数据从一个网络传送到另一个网络中。
  • 每个网络都通过其网络地址,即NSAP(网络服务访问点)来标识,网络中的每个节点都有一个NSAP,在TCP/IP 中就是IP地址
  • 不同网络间进行访问时通过IP地址来进行寻址
  • 在网络层中传输的是数据包(Packet,又称分组),一个数据包是一个数据帧经过网络层协议重封装后得到的
  • 主要作用:

    • 屏蔽网络差异,提供透明传输,因为不同网络有不同的规范要求,网络层就是为了解决这种不同差异
      • 网络层向传输层提供的服务有两类
        • 面向连接的网络服务(途径路由器的路径是固定的)
          • 虚电路服务
          • 使所有数据包按顺序到达目的节点的可靠数据传送方式
          • 进行数据交换的两个结点之间存在着一条专为它们服务的虚电路
        • 无连接的网络服务(途径路径非固定)
          • 数据报服务
          • 数据报服务是网络层提供的一种无连接的网络服务,只能提供不可靠的数据传送方式
          • 目的节点收到的数据包不一定按序到达,还可能出现数据包丢失的现象
    • 为网络间通信提供路由选择
      • 路由选择又称路径选择
      • 根据一定的原则和路由选择算法在多个结点的通信子网中选择一条到达目的节点的最佳路径的过程
      • 确定路由选择的策略称为路由算法
    • 数据包封装和解封装
      • 来自传输层的报文通常是已根据对应网络链路的MTU(最大传输单元)被分为多个数据段,然后在网络层中对这些数据段头部添加一些网络层协议控制信息就组成了数据包
    • 拥塞控制
      • 避免网络传输路径中数据的传输延迟或死锁
      • 针对在网络传输路径中的端到端传输效率的控制

        网络层数据交换及相关技术

  • 数据交换技术主要是指网络中间结点所提供的数据交换功能

  • 线路交换
    • 最原始的数据交换方式
    • 在进行数据交换前需要在一对用户之间建立起一条专用的数据通路
    • 建立起一条端到端的直通物理线路。
  • 存储–转发
    • 网络结点运用程序先将途径的数据流按传输单元(可以是报文或报文分组)接收并存储下来(同检验该数据单元的校验和)
    • 一个数据单元接收完后根据相关的路由算法选择一条合适的路由路径将数据转发出去
    • 通信子网中的结点是通信控制处理机(如路由器、三层交换机)
    • 具有路由功能,可以动态选择报文分组通过通信子网的最佳路径
    • 可以有效地进行拥塞控制
    • 可以是报文或报文分组
      • 报文传输方式是不管发送数据的长度是多少,都把它当作一个逻辑单元发送
      • 报文分组传输方式是限制一次传输数据的最大长度,如果传输数据超过规定的最大长度,发送结点就将它分成多个报文分组发送
    • 报文交换(对应报文)
      • 其长短可能不一致
      • 用户发送的数据不是直接发送给目的节点的,而是先在中间结点上进行缓存
      • 由中间结点在线路空闲时把数据发送出去
      • 报文交换无须同时占用整个物理线路
    • 分组交换(报文分组)
      • 采用路由技术
        • 数据包头部加上源节点和目的节点的IP地址,然后通过路由技术一级级地把数据转发下去
      • 不依靠路由技术
        • 先在源节点和目的节点间的所有路由器间建立一条虚拟的通信通道
        • 采用虚电路方式进行分组交换
        • 采用虚电路这种服务方式的分组无须添加源和目的地址信息,但仍需要添加报文号、分组号信息
  • 虚电路分组交换
    • 对于面向连接的服务(如拨号通信)则需要采用虚电路服务进行分组交换
    • 在虚电路分组交换中,分组被发送之前,必须在发送方与接收方之间建立一条专用的逻辑连接
    • 并且以一个在所有经过的节点或结点上均唯一的虚电路标识符(Virtual Circuit Identifier,VCI)进行标识
    • 这条VC所代表的就是所有经过的节点和结点的串连
    • 从某个结点到其他结点间可能有无数条虚电路存在
    • 在虚电路分组交换中,一次通信的所有分组都通过所创建的这条虚电路路径进行传输
    • 过程
      • 建立虚电路
      • 传输数据
        • 每个分组除了包含数据部分外,还包含所采用的VC号,不再需要进行路径选择
      • 拆除虚电路
        • 本次数据全部传输完后,其中任意一个结点均可发送拆除虚电路的请求分组来结束这次连接
    • 主机每收到一个分组后需要向源主机应答确认,可靠性高
    • 拥塞控制能力较差
  • 数据包分组交换

    • 数据报就是在数据前部增加了源地址和目的地址信息字段的报文分段,可以作为独立的数据进行传输
    • 数据报单独通过路由路径发送,无须先创建传送的虚电路,但网络结点要为每个数据报做独立的路由选择。
    • 在这种交换方式中,各数据报各行其道,很难保证全部按顺序到达目的节点,有些数据报甚至还可能在途中丢失。
    • 无须为每次通信建立单独的逻辑连接,所以数据交换效率较高,特别适用于突发性通信
    • 目的节点在收到数据报后也不需发送确认

      网络层协议及报文格式

  • IP协议

    • 使用 数据报分组交换方式, 是一个无连接的服务
    • 主要功能就是把数据报在互连的网络上传送,将数据报在一个个IP模块间传送直到传送到目的模块
    • 具体功能
      • 寻址
      • 数据报封装
        • 由于无连接服务,封装后形成的是IP数据报(有主机地址等信息)
      • 分段和重组
        • 当一些尺寸较大的数据报要在某个MTU值比较小的网络链路上传输时就可能需要对原来的数据报进行拆分
    • ipv4的不足
      • 公网ip不够了
      • IPv4发展初期的分配规划的问题,造成许多IPv4地址块分配不连续,不能有效聚合路由,导致路由表表项数量过多
      • 地址结构不合理,A、B、C、D和E这五种本身的分类结构就存在严重缺陷
      • 配置复杂
      • 服务质量差
      • 不支持端到端安全
    • ipv4 报文格式
      • image.png
      • image.png
    • IPv4数据报的最大长度为216–1字节即65535字节(即64KB)
    • IPv6
      • image.png
  • IP数据报的“帧封装”原理
    • 只需把来自网络层的整个IP数据报(包括包头部分和数据部分)当作数据链路层帧的数据(data)部分,然后在前面加上与数据链路层对应的协议头即可
    • 如果一个网络中收到的数据报太大,不能在目的网络中一次传输的话,就要对原来的包进行拆分,分成一个个小的数据报再进行传输,还需要在每个分段的包头部分对标志字段和段偏移字段值进行对应的修改。
    • 如果是最后一个分段,则“标志”字段的第一位(最低位)置0,中间一位置0(表示此分段是最后一个分段)
  • ARP协议
    • Address Resolution Protocol,地址解析协议
    • 将IP地址解析为以太网MAC地址(或称物理地址)的协议,发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。APR就是实现这个功能的协议
    • image.png
    • 无论是主机,还是交换机都会有一个用来缓存同一网段设备IP地址和MAC地址的ARP映射表,用于数据帧的转发
    • 通过广播的方式获取ip和mac地址的映射关系
  • ICMP协议
    • Internet Control Message Protocol, Internet控制报文协议
    • 用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息
    • 常见的报文
      • 响应请求
      • 目标不可到达、源抑制和超时报文
      • 时间戳请求

路由和路由算法

  • 将分组从源节点路由到目的节点中,大多数网络采用的是数据报分组交换方式,数据报分组需要经过多跳才能到达目的地的
  • 路由功能的实现是依靠路由器或三层交换机中的路由表进行的
    • 静态路由
      • 手动配置
      • 路由路径固定不变
    • 动态路由
      • 动态生成
  • 给定一组路由器及连接路由器链路的情况下,找出一条从源节点到目标节点的最佳路径。通俗地讲,就是把路由器选择最佳路径的策略称为路由算法
    • 非自适应路由算法(静态路由)
      • 不能根据网络流量和拓扑结构的变化更新路由表,仅使用静态路由表的路由算法,又称固定式路由选择算法
      • 静态路由
        • 管理员在路由器上手动一条条创建的路由表项,包括目的节点或网络IP地址、下一跳IP地址或接口
      • 扩散(Flooding)法
        • 路由器接口收到一个报文分组后,即向它所有接口(包括接收该分组的源接口)进行复制扩散
      • 随机走动(Random Walk)法
        • 向所有与之相邻的结点中随机选择出一个将分组转发出去
      • 最短路径(Shortest Path)法
        • 将源节点到网络中所有结点的最短通路都找出来,作为这个结点的路由表
      • 基于流量的路由(Flow-based Routing)法
        • 而基于流量的路由算法则结合了网络拓扑结构和通信流量两方面的因素进行路由选择
    • 自适应路由算法(动态路由)
      • 通常所说的动态路由均属于自适应路由算法类型,可根据网络流量和拓扑结构的变化更新路由表
      • 分散式路由算法
        • 每个路由器只与直接相连的路由器交换路由信息,每个路由器只有相邻路由器的路由信息
        • 距离矢量路由算法
          • 每经过一个路由器(也可以是提供路由功能的三层交换机,下同),就加一跳
          • 跳数有一定的限制,超过了则认为路由不可达
      • 总体式路由算法
        • 每个路由器都拥有网络中某个区域或者整个网络中所有其他路由器的全部信息以及网络的流量状态
        • 链路状态路由算法
          • 不仅是要根据所经过的路由器多少,还要根据路径中各段链路的状态来计算最佳路由路径
        • 分级路由算法
          • 路由器被分成很多组,称为区域。每个路由器都只有自己所在区域路由器的信息,而没有其他区域路由器的信息
  • 路由表(Routing Table)是一个存储在路由器或者联网计算机中的电子表格(文件)或类似的数据库
    • 无论是静态路由,还是各种动态路由,都会在路由器的路由表中保存
    • 每个静态路由表项至少包括以下信息:
      • 网络ID:目标网络的IP
      • 子网掩码
      • 判断子网
      • 下一跳 地址

网络拥塞控制方法和原理

  • 概述
    • 网络拥塞现象是指到达通信子网中某一部分的数据包数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象
    • 是因为通信子网中所承受的负荷(即通信子网中正在传输的数据包数)超出了网络的吞吐能力(包数/秒)
    • 主要原因是 结点的缓存区容量太小,输出链路的信道带宽不够,处理机的速度不够快
  • 方法
    • 但拥塞控制与流量控制不是完全等同的,拥塞控制需要确保通信子网能够承载用户提交的通信量,是一个全局性问题,涉及主机、路由器,以及与降低网络传输性能有关的所有因素;而流量控制与点到点的通信量有关,主要解决快速发送方与慢速接收方的问题,是局部问题
    • 缓冲区预分配法
      • 常用于虚电路分组交换网中
      • 要求呼叫请求分组所途经的每个结点为此条虚电路预先分配一个或多个数据缓冲区
    • 分组丢弃法
      • 在路由器的缓冲区已被占满时,只需将后面到来的数据包丢弃,仅在缓冲区腾出空间后再重新接收数据分组
    • 定额控制法
      • 通过通信子网中设置适当数量称为许可证的特殊信息来实现的
  • 死锁就是一些结点由于没有空闲缓冲区而无法接收和转发数据包的现象,死锁的结果是结点间相互等待,既不能接收数据包也不能转发数据包

网络层设备及主要技术

  • 在网络层中,目前最主要的设备就是路由器和三层交换机
  • 由于路由器是位于网络边界的设备,作为网络的唯一出口和入口,所以它的工作负荷也相当重
    • 高速IP路由器中多借鉴ATM的方法,采用交叉开关方式实现各端口之间的线速无阻塞互连
  • ASIC技术
  • 分布式处理技术
  • 交换式结构和调度算法
  • 高密度和多端口
  • 光路由器技术