输入端口
输入端口的详细视图:
输入端口的功能:
输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层
在这个地方,路由器使用转发表来查找输出端口.使得到达的分组将能经过交换结构转发到该输出端口 。
转发表的更新与使用
转发表是由路由选择处理器计算和更新的,但转发表的一份影子副本通常会被存放在每个输入端口。
转发表从路由选择处理器经过独立总线(例如一个 PCI总线)复制到线路卡
影子副本
有了影子副本,转发决策能在每个输入端口本地做出,无须调用中央路由选择处理器,因此避免了集中式处理的瓶颈 。
快速查找算法
在概念上查找表是简单的,但是在实际应用中需要在非常短(例如几纳秒)的时间内完成查询,因此除了硬件设计外还需要一些对大型转发表使用的超出简单线性搜索的技术(快速查找算法的综述能够在[ Gupta 2001 , Ru卧 Sanchez 2011 ]中找到)
同时也需要对内存访问时间尤为关注
嵌人式片上 DRAM
更快的 SRAM (用作一种 DR灿4 缓存)内存
三态内容可寻址存储器 (Tenary Contenl Aclclress Memory 1 TCAM) 也经常被用于查找
输出端口阻塞
一旦分组经过查询确定了输出端口就能够发送进入交换结构
在一些设计中,如果来自其他输入端口的分组正在使用该交换结构,则该分组被阻塞,需要在输入端口处排队,等待调度
输入端口的动作
查找
通过自己的影子副本确定分组输出端口
最重要的功能
出现物理层和链路层处理
检查分组的版本号、检验和以及寿命字段 ,并且重写后两个字段
更新用于网络管理的计数器(如接收到的 IP 数据报的数目) 。
"匹配加动作"的抽象
注意到输入端口查找IP地址然后发送该分组进人交换结构( “动作” )的步骤是一种更为一般的"匹配加动作"抽象的特定情况。
这种抽象执行在许多网络设备中。
在链路层交换机中,除了发送帧进入交换结构去往输出端口外,还要查找链路层目的地址,并采取几个动作 。
在防火墙中,肯部匹配给定准则(例如源/目的IP地址和运输层端口号的某种组合)的入分组可能被阻止转发,而防火墙是一种过滤所选择的人分组的设备 。
在网络地址转换 (NAT )中,一个运输层端口号匹配某给定值的人分组,在转发(动作)前其端口号将被重写 。
交换结构
交换结构概述
交换结构位于一台路由器的核心部位 。
正是通过这种交换结构,分组才能实际地从一个输入端口交换(即转发)到一个输出端口中 。
交换可以用许多方式完成
三种交换技术
图例
经内存交换
最简单、最早的路由器是传统的计算机,其间交换工作由CPU完成
输入与输出端口的功能就像在传统操作系统中的1/0 设备一样 。
内存从输入端口接收分组并提取首部值,将其缓存到对应的输出端口
一次仅能执行一个内存读写所以一次只能转发一个分组
现代经由内存交换的路由器
与早期路由器的一个主要差别是,目的地址的查找和将分组存储(交换)进适当的内存存储位置是由输入线路卡来处理的 。
在某些方面,经内存交换的路由器看起来很像共享内存的多处理机,用一个线路卡上的处理将分组交换(写)进适当的输出端口的内存
经总线交换
输入端口经一根共享总线将分组直接传送到输出端口,不需要路由选择处理器的干预 。
交换方式
让输入端口为分组预先计划一个交换机内部标签(首部) ,指示本地输出端口,使分组在总线上传送和传输到输出端口 。
该分组能由所有输出端口收到,但只有与该标签匹配的端口才能保存该分组 。
然后标签在输出端口被去除,因为其仅用于交换机内部来跨越总线
在总线交换下,路由器中只能同时进行一个分组的转发,因为每个分组都会完全占用整个总线。
但对于运行在小型局域网和企业网巾的路由器来说,通过总线交换通常是足够的 。
经互联网络交换
经互联网络交换是为了克服单一,共享式总线带宽限制
纵横式交换机就是一种由 2N 条总线组成的互联网络,它连接 N 个输入端口与 N 个输出端口
每条垂直的总线在交叉点与每条水平的总线交叉,交叉点通过交换结构控制器(其逻辑是交换结构自身的一部分)能够在任何时候开启和闭合 。
当某分组到达端口 A ,需要转发到端口 Y ,交换机控制器闭合总线 A 和 Y 交叉部位的交叉点,然后端口 A 在其总线上发送该分组,该分组仅由总线 Y 安排接收 。
输出端口不同的分组可以同时转发,但输出端口相同的分组还是需要等待