专栏首页云时之间计算机网络自学笔记:路由器工作原理

计算机网络自学笔记:路由器工作原理

路由器有 4 个组成部分。

·输入端口。输入端口要执行将一条输入的物理链路端接到路由器的物理层功能。它也要执行需要与位于入链路另一端接口交互的数据链路层功能。它还要完成转发表查找与转发功能,以便转发到路由器交换结构部分的分组能出现在适当的输出端口。

·交换结构。交换结构将路由器的输入端口连接到它的输出端口。交换结构完全包容在路由器内部,即它是一台网络路由器中的网络。

·输出端口。输出端口存储经过交换结构转发给它的分组,并将这些分组传输到输出链路。因此,输出端口执行与输入端口顺序相反的数据链路层和物理层功能。

当一条链路是双向(承载两个方向的流量)链路时,与链路相连的输出端口通常与输入端口在同一线路卡上成对出现。

·选路处理器。选路处理器执行选路协议,维护选路信息与转发表,并执行路由器中的 网络管理功能

1 输入端口

输入端口的线路端接实现了物理层功能;数据链路处理模块实现了数据链路层功能。

输入端口的查找/转发模块对于路由器的转发功能是至关重要的。在许多路由器中,都是在这里通过查询转发表来确定一个到达的分组经交换结构转发给哪个输出端口。

虽然转发表是由选路处理器计算的,但通常路由器会将一份转发表的拷贝存放在每个输入端口,而且经常更新。

2 交换结构

交换结构位于一台路由器的核心部位。正是通过交换结构,分组才能实际地从一个输入 端口交换(即转发)到一个输出端口中。

交换可以通过许多方式完成:

·经内存交换。最简单、最早的路由器通常是传统的计算机,在输入端口与输出端口之间的交换是在 CPU(选路处理器)的直接控制下完成的。输入端口与输出端口的作用就像传统 操作系统中的 IO 设备一样。一个分组到达一个输入端口时,该端口会先通过中断方式向选 路处理器发出信号。于是,将分组从输入端口处拷贝到处理器内存中。选路处理器则从分组 首部中取出目的地址,在转发表中找出适当的输出端口,并将该分组拷贝到输出端口的缓存 中。

许多路由器都使用内存交换技术。然而,目的地址的查找和将分组存储(交换)进适当的存储位置是由输入线路卡上的处理器来执行的。

·经总线交换。在这种方法中,输入端口经一共享总线将分组直接传送到输出端口,不 需要选路处理器的干预(注意经内存交换时,分组进出内存也必须跨越系统总线)。

虽然选路处理器没有涉及总线传送,但由于总线是共享的,故一次只能有一个分组通 过总线传送。某个分组到达一个输入端口时,如果发现总线正忙于传送另一个分组,则它会 被阻塞而不能通过交换结构,并在输入端口排队。因为每个分组必须跨过单一总线,所以路 由器的交换带宽受总线速率的限制。

现在的技术条件下,总线带宽可能超过 1 G bps,基于总线的交换目前已被相当多的路 由器产品所采用。

·经一个 crossbar 络交换。克服单一、共享式总线带宽限制的一种方法是,使用一个更复杂的互联网络,如过去在多处理器计算体系结构中用来互连多个处理器的网络

3 输出端口

输出端口处理取出存放在输出端口内存中的分组并将其传送到输出链路上。

当交换结构将分组交付给输出端口,速率超过输出链路速率时,就需要排队与缓存管理 功能。

4 何时出现排队

输入端口和输出端口处都能会出现分组排队现象。随着这些队列的增长,路由器的缓存 空间最终将会耗尽,然后出现丢包现象。分组丢失的实际位置(要么在输入端口队列,要么 在输出端口队列)将取决干流负载、交换结构的相对速率和线路速率等几个因素。

输入端口排队主要原因是交换结构不能及时转发数据报。

输出端口排队时,输出端口可以使用某种调度策略,如先来先服务调度;加权公平排队 (WQ)规则等,尽可能在不同端到端连接之间公平地共享输出链路。

分组调度程序在提供服务质量保证方面起着关键作用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度学习与神经网络:正则化小栗子

    云时之间
  • CV学习笔记(八):光流法原理

    在之前的几篇关于OpenCV的文章中我集中介绍了OpenCV中比较常用的操作和函数.在我们基础的学习中,这些函数其实在图像进行预操作的过程中已经够用了.因此在之...

    云时之间
  • CV学习笔记(八):光流法原理

    在之前的几篇关于OpenCV的文章中我集中介绍了OpenCV中比较常用的操作和函数.在我们基础的学习中,这些函数其实在图像进行预操作的过程中已经够用了.因此在之...

    云时之间
  • 什么是端口号

    在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设...

    唐怀瑟
  • 常用端口号及服务

    1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是...

    宸寰客
  • 安装vsftp服务器的时候遇到的问题

    在centos7中安装VSFTP的时候,使用命令行,ftp 然后输入用户名和密码,登陆之后,put文件就可以上次到ftp上面。如下图:

    凯哥Java
  • Meterpreter 端口转发

    如何转发无法远程访问的本地端口。在本地计算机上运行特定服务。在本地网络上,这些服务通常是用于在本地计算机上访问,外网是不能访问的,比如MySQL服务器。出于安全...

    周俊辉
  • Meterpreter 端口转发教程

    如何转发无法远程访问的本地端口。在本地计算机上运行特定服务。在本地网络上,这些服务通常是用于在本地计算机上访问,外网是不能访问的,比如MySQL服务器。出于安全...

    周俊辉
  • TCPView for Windows

    TCPView是一个用来显示系统中所有的TCP和UDP端点(endpoint)列表的Windows程序,包括本地和远程的网络地址,以及TCP连接的状态。在Win...

    张善友
  • 照弹不误:出站端口受限环境下反弹Shell的思考

    “是否允许出站”这件事我一直以为无需过多思考,无非限制出站协议,或者限制出站端口,对于限制端口的目标十有八九也会保留 80、443,向这两个端口反弹基本能拿到 ...

    FB客服

扫码关注云+社区

领取腾讯云代金券