路由器工作于网络层,提供主机到主机的传输服务,在ATM中路由器采用的是虚电路网络(仅在网络层提供主机到主机的连接服务),在因特网中采用的是非连接服务的数据报网络。
虚电路网络(ATM,帧中继):依靠路由器中的vc号维持连接
数据报网络(因特网):由传输层下来的分组都被分配一个网络编址(ip),然后被推入网络中,到第一个网关(路由器的一个端口),进入路由器的交换结构,经路由处理器查找路由表选择对应的交换出口(路由器将目的地址映射到每一个链路接口)
虚电路中的路由器要维持连接状态信息(每一条连接对应的vc号)
数据报网络中的路由器维持转发状态信息(路由表)
由来:虚电路比数据报网络复杂得多,虚电路来源于电话界,它采用了真正的电路,呼叫的建立和呼叫的状态都在网络中的路由器维持,所以他比数据报网络复杂的多(相当于电路交换和分组交换的比较)
当时因特网架构师选择使用网络层服务模型尽可能的简单,将虚电路中的任务交给跟高层的传输层处理(在端系统中),然后简化网络层服务,更多的服务交给上层传输层和应用层去实现,例如WEB应用,电子邮件,dns服务等,这样的好处是当需要添加新的服务时,只需要加一台主机并定义一台新的协议就可以了。
https://blog.csdn.net/wj310298/article/details/50176805
路由器由4个部分组成:输入端口,输出端口,交换结构,路由选择处理器。
交换结构,输入端口和输出端口由硬件来完成(转发数据平台):由于考虑到数据传输的速度,交换结构采用硬件结构才能胜任,实现转发功能
路由器选择(管理控制平台)由软件来完成:路由器的大脑,路由器的处理器,路由器的转发表和操作系统,实现交换功能 最新的sdn(软件定义网络)就是实现硬件与软件分离,一种新的网络构架,将转发与交换分离
Cisco:1984年Len Bosak与他的妻子Sandy Lerner在斯坦福大学工作时,他们建立并出售因特网路由器非给研究员和学术团体
1986年末cisco月收入达250000美元,到1987年年末,cisco以1/3的股份为交换条件获得200w美元风投,后来Cisco持续增长,同时Len Bosak与Sandy lerner与管理层的矛盾日益尖锐,并于1990年上市后lener和Brsak离开公司
多年以来:Cisco在路由器市场之外进行成功的扩张,销售安全,无线缓存,以太网交换机,数据中心基础建设,视频会议和IP语音产品和服务
Cisco 华为 Lucent Juniper
交换结构:
经内存交换:列如Catalyst 8500系列的交换机就是
路由器内部结构:早期路由器都是由计算机,输入输出之间的交换在cpu的直接控制下完成,输入输出端口的功能像在传统操作系统中的I/O设备一样。一个分组到达端口,端口会先通过中断方式向cpu发出信号。于是cpu将该分组复制到内存中,从其首部提取地址编码与内存中的转发表对照找出输出端口。这种情况下,总转发吞吐量总是小与B/2(设内存带宽每秒可写进内存或从内存读取B个分组),读写是共享系统总线的,所以一次只能转发一个分组。不存在这个在读的时候另一个分组在写。
但是现在,目的地址的查找与分组存储(交换)进内存存储位置由输入线路卡来处理。(就像是多核处理共享内存)用一个线路卡上的处理将分组交换写进适当的输出端口的内存中
经总线交换:
经互联网络交换:
输出端口:
何处出现排队:流量负载、交换结构的相对速率和线路速率
假定输入线路速度与输出线路速度是相同的,均为每秒 1in 个分组,有 个输入端口
个输出端口 为进一步简化讨论,假设所有分组具有相同的固定民度,分组以同步的方式到达输入端口 这就是说,在任何链路发送分组的时间等于在任何链路接收分组的时间,在这样的时间间隔内,在一个输入链路上能够到达 个或 个分组 定义交换结构传送速率 WI 为从输人端口到输出端口能够移动分组的速率 如果 尺斟阳阳咐在输入端口处仅会出现微不足道的排队 这是因为即使在最坏情况下,所有 条输入线路都在接收分组,并且所有的分组将被转发到相同的输出端口,每批 个分组(每个输入端口一个分组)能够在下一批到达前通过交换结构处理完毕但是在输出端口处会发生什么情况呢?我们仍然假设 ..itch J. 同样,到个输入端口的每个端口的分组都发向相同的输出端口 在这种情况下,在向输出链路发送一个分组的时间内,将有 个分组到达该输出端口 因为输出端口在一个单位时间(分组传输时间)内只能发送一个分组,这 个到达的分组必须排队(等待)传输到输出链路上。于是,又有 个分组可能在它只能发送已排队的 个分组中的一个的时间内到这种情况会不断持续下去 最终,排队的分组数量会增长得很快,足以耗尽输出端口的可用内存,在这样的情况下分组被丢弃
假定需要路由器缓存来吸收流量负载的波动,一个自然而然的问题就是需要多少缓
多年以来,对缓存长度的经验方法是[盯 3439 J ,缓存数量 应当等于平均往返时延 (RTI ,比如说 250ms) 乘以链路的容量( C)最近的理论和试验研究[ Appenzeller
2004J 表明,当有大量的 TCP (N) 流过一条链路时,缓存所需要的数量是 B=RTT.CI 怦饥 对于通常有大量流经过的大型主干路由器链路(参见如[阳Fr阻叫山a1址 h2 Oω3 ]η) , 值可能非常大,这使得所需的缓存长度的减小相当明显 Appenzeller 4; Wischik 2005; Beheshti 2008 ]从理论、实现和运行的角度提供了可读性很强的有关缓存氏度问题的讨论丢弃到达分组(弃尾策略):涉及算法AQM,RED
路由选择控制平面:
我们已经隐含地假设路由选择控制平面全部驻
留并运行在路由器中的路由选择处理器上 网络范围的路由选择控制平面因此是分布式的,即不同部分(例如路由选择算法)执行在不同的路由器上并且通过彼此发送控制报文进行交互新的网络架构(sdn)
近来, 些研究人员[ Caes81' 2005a; Casado 2009; McKeon 2008 ]已经着手探索新型
路由器控制平面体系结构,其中数据平面连同部分控制平面(例如,链路状态的本地测量报告,转发表的安装和维护)在路由器中实现,部分控制平面能够在路由器外部实现(例如,在能够执行路由计算的集中式服务器中实现) 。一个定义良好的 API 规定了这两个部分彼此交互和通信的方式 这些研究人员争辩说将软件控制平面与硬件数据平面(具有最少的路由器驻留控制平面)分离,能够以集中式路由选择计算代替分布式路由选择计算,从而简化路由选择,通过允许不同的用户定制的控制平面在快速的硬件数据平面上运行,能够进行网络创新