第4章 网络层:数据平面

第4章 网络层:数据平面

  • 网络层服务:
    • 在发送主机和接收主机对之间传送段(segment)
    • 在发送端将段封装到数据报中
    • 在接收端,将段上交给传输层实体
    • 网络层协议存在于每一个主机和路由器
    • 路由器检查每一个经过它的IP数据报的头部
  • 网络层的关键功能
    • 网络层功能:
      • 转发: 将分组从路由器的输入接口转发到合适的输出接口
      • 路由: 使用路由算法来决定分组从发送主机到目标接收主机的路径
        • 路由选择算法
        • 路由选择协议
  • 网络层:数据平面、控制平面
    • 数据层面:
      • 本地,每个路由器功能
      • 决定从路由器输入端口到达的分组如何转发到输出端口
      • 转发功能:
        • 传统方式:基于目标地址+转发表
          • IP协议根据转发表决定了IP数据报在此路由器上的局部转发
        • SDN方式:基于多个字段+流表
    • 控制平面:
      • 网络范围内的逻辑
      • 决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间的端到端路径
      • 2个控制平面方法:
        • 传统的路由算法: 在路由器中被实现
          • 路由算法决定端到端路径
        • software-defined networking(SDN): 在远程的服务器中实现

2. 路由器结构

  • 高层面(非常简化的)通用路由器体系架构
    • 路由:运行路由选择算法/协议 (RIP, OSPF, BGP)-生成路由表
    • 转发:从输入到输出链路交换数据报-根据路由表进行分组的转发
  • 输入端功能:
    • 根据数据报头部的信息如:目的地址,在输入端口内存中的转发表中查找合适的输出端口(匹配+行动)
    • 基于目标的转发:仅仅依赖于IP数据报的目标IP地址(传统方法)
      • 当给定目标地址查找转发表时,采用最长地址前缀匹配的目标地址表项
    • 通用转发:基于头部字段的任意集合进行转发
  • 最长前缀匹配:
    • 在路由器中经常采用TCAMs(ternary content addressable memories)硬件来完成
      • 内容可寻址:将地址交给TCAM,它可以在一个时钟周期内检索出地址,不管表空间有多大
      • Cisco Catalyst系列路由器: 在TCAM中可以存储多达约为1百万条路由表项
  • 输入端口缓存:
    • 当交换机构的速率小于输入端口的汇聚速率时, 在输入端口可能要排队
      • 排队延迟以及由于输入缓存溢出造成丢失!
    • Head-of-the-Line (HOL) blocking: 排在队头的数据报阻止了队列中其他数据报向前移动
  • 交换结构
    • 将分组从输入缓冲区传输到合适的输出端口
    • 交换速率:分组可以按照该速率从输入传输到输出
      • 运行速度经常是输入/输出链路速率的若干倍
      • N 个输入端口:交换机构的交换速度是输入线路速度的N倍比较理想,才不会成为瓶颈
    • 3种典型的交换机构
      • 通过内存交换:
        • 第一代路由器: 在CPU直接控制下的交换,采用传统的计算机
        • 分组被拷贝到系统内存,CPU从分组的头部提取出目标地址,查找转发表,找到对应的输出端口,拷贝到输出端口
        • 转发速率被内存的带宽限制 (数据报通过BUS两遍)
        • 一次只能转发一个分组
      • 通过总线交换:
        • 数据报通过共享总线,从输入端口转发到输出端口
        • 总线竞争: 交换速度受限于总线带宽
        • 1次处理一个分组
        • 1 Gbps bus, Cisco 1900; 32Gbps bus, Cisco 5600;对于接入或企业级路由器,速度足够(但不适合区域或骨干网络)
      • 通过互联网络(crossbar等)的交换:
        • 同时并发转发多个分组,克服总线带宽限制
        • Banyan(榕树)网络,crossbar(纵横)和其它的互联网络被开发,将多个处理器连接成多处理器
        • 当分组从端口A到达,转给端口Y;控制器短接相应的两个总线
        • 高级设计:将数据报分片为固定长度的信元,通过交换网络交换
        • Cisco12000:以60Gbps的交换速率通过互联网络
  1. 输出端口:
    1. 当数据报从交换机构的到达速度比传输速率快就需要输出端口缓存
    2. 由调度规则选择排队的数据报进行传输
    • 输出端口排队:
      • 当多个输入端口同时向输出端口发送时,缓冲该分组(当通过交换网络到达的速率超过输出速率则缓存)
      • 排队带来延迟,由于输出端口缓存溢出则丢弃数据报!
    • 调度机制:
      • 调度: 选择下一个要通过链路传输的分组
      • FIFO (first in first out) scheduling: 按照分组到来的次序发送
    • 调度策略:
      • 优先权调度:优先发送最高优先权的分组。
      • 循环发送策略。
    • 丢弃策略:如果分组到达一个满的队列,哪个分组将会被抛弃?
      • tail drop: 丢弃刚到达的分组
      • priority: 根据优先权丢失/移除分组
      • random: 随机地丢弃/移除
  2. IP:
    • IP分片和重组(Fragmentation & Reassembly):
      • 网络链路有MTU (最大传输单元) –链路层帧所携带的最大数据长度
      • 大的IP数据报在网络上被分片(“fragmented”) ;一个数据报被分割成若干个小的数据报, “重组”只在最终的目标主机进行
      • IP头部的信息被用于标识,排序相关分片。
  3. IPV4:
    • IP 编址:
      • IP 地址: 32位标示,对主机或者路由器的接口编址
      • 接口: 主机/路由器和物理链路的连接处
        • 路由器通常拥有多个接口
        • 主机也有可能有多个接口
        • IP地址和每一个接口关联
      • 一个IP地址和一个接口相关联
    • 子网(Subnets)
      • IP地址:
        • 子网部分(高位bits)
        • 主机部分(低位bits)
      • 什么是子网(subnet) ?
        • 一个子网内的节点(主机或者路由器)它们的IP地址的高位部分相同,这些节点构成的网络的一部分叫做子网
        • 无需路由器介入,子网内各主机可以在物理上相互直接到达
      • 子网掩码:
        • 32bits , 0 or 1 in each bit
          • 1: bit位置表示子网部分
          • 0:bit位置表示主机部分
        • 原始的A、B、C类网络的子网掩码分别是
          • A:255.0.0.0 :11111111 00000000 0000000 00000000
          • B:255.255.0.0:11111111 11111111 0000000 00000000
          • C:255.255.255.0:11111111 11111111 11111111 00000000
        • CIDR下的子网掩码例子:
          • 11111111 11111111 11111100 00000000
        • 另外的一种表示子网掩码的表达方式
          • /#
          • 例:/22:表示前面22个bit为子网部分
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值