路由器的原理(路由器如何工作)

2024-06-04 04:26:31

一、路由器的原理


路由器的概念及基本构成
  路由器是一种用于网络互连的计算机设备,它工作在 OSI 参考模型的第三层

  (网络层),为不同的网络之间报文寻径并存储转发。

  作为路由器,必须具备:

  Ⅰ 两个或两个以上的接口:用于连接不同的网络。

  Ⅱ 协议至少实现到网络层:只有理解网络层协议才能与网络层通讯。

  Ⅲ 至少支持两种以上的子网协议:异种子网互联。

  Ⅳ 具有存储、转发、寻径功能 :实现速率匹配与路由寻径。

  Ⅴ 一组路由协议:包括域内路由协议、域间路由协议。
路由器的作用
  Ⅰ 异种网络互连:主要是具有异种子网协议的网络互连。

  Ⅱ 子网协议转换:不同子网间包括局域网和广域网间协议转换。

  Ⅲ 路由(寻径):路由表建立、刷新、查找。

  Ⅳ 速率适配:不同接口具有不同的速率,路由器可以利用自己 缓存及流控协议适配。

  Ⅴ 隔离网络:防止广播风暴,网络安全(防火墙)。

  Ⅵ 报文分片与重组:接口的 MTU 不同,超过接口的 MTU 的报文会被分片,到达目的地的报文会被重组。

  Ⅶ备份、流量流控:主备线路的切换及复杂的流量控制。
路由器工作原理
  路由器中时刻维持着一张路由表,所有报文的发送和转发都通过查找路由表。从相应端口发送。这张路由表可以是静态配置的,也可以是动态路由协议产生的。物理层从路由器的一个端口收到一个报文,上送到数据链路层。数据链路层去掉链路层封装,根据报文的协议域上送到网络层。网络层首先看报文是否是送给本机的,若是,去掉网络层封装,送给上层。若不是,则根据报文的目的地址查找路由表,若找到路由,将报文送给相应端口的数据链路层,数据链路层封装后,发送报文。若找不到路由,报文丢弃。

电子产品世界

路由器工作原理
手机与无线通信 作者:何富和 时间:2015-05-27来源:电子产品世界
  导读:说起路由器,大家对它一定非常熟悉吧,上网都靠他,但它是靠什么原理工作的呢,它的工作流程是怎样呢?今天小编带大家了解一下路由器的工作原理。

路由器的概念及基本构成
  路由器是一种用于网络互连的计算机设备,它工作在 OSI 参考模型的第三层

  (网络层),为不同的网络之间报文寻径并存储转发。

  作为路由器,必须具备:

  Ⅰ 两个或两个以上的接口:用于连接不同的网络。

  Ⅱ 协议至少实现到网络层:只有理解网络层协议才能与网络层通讯。

  Ⅲ 至少支持两种以上的子网协议:异种子网互联。

  Ⅳ 具有存储、转发、寻径功能 :实现速率匹配与路由寻径。

  Ⅴ 一组路由协议:包括域内路由协议、域间路由协议。

路由器的作用
  Ⅰ 异种网络互连:主要是具有异种子网协议的网络互连。

  Ⅱ 子网协议转换:不同子网间包括局域网和广域网间协议转换。

  Ⅲ 路由(寻径):路由表建立、刷新、查找。

  Ⅳ 速率适配:不同接口具有不同的速率,路由器可以利用自己 缓存及流控协议适配。

  Ⅴ 隔离网络:防止广播风暴,网络安全(防火墙)。

  Ⅵ 报文分片与重组:接口的 MTU 不同,超过接口的 MTU 的报文会被分片,到达目的地的报文会被重组。

  Ⅶ备份、流量流控:主备线路的切换及复杂的流量控制。

路由器工作原理
  路由器中时刻维持着一张路由表,所有报文的发送和转发都通过查找路由表。从相应端口发送。这张路由表可以是静态配置的,也可以是动态路由协议产生的。物理层从路由器的一个端口收到一个报文,上送到数据链路层。数据链路层去掉链路层封装,根据报文的协议域上送到网络层。网络层首先看报文是否是送给本机的,若是,去掉网络层封装,送给上层。若不是,则根据报文的目的地址查找路由表,若找到路由,将报文送给相应端口的数据链路层,数据链路层封装后,发送报文。若找不到路由,报文丢弃。

子网寻径及路由
  标准的寻径表表目是一个二维组(信宿网络地址,下一驿站地址),其中不携带子网信息,不能满足子网寻径。引入子网编址以后,子网寻径表的每一表目中加入子网模,于是子网寻径表表目变为三维组:子网模、信宿网络地址、下一驿站地址。

  路由算法、路由协议、寻径

  路由器依据路由表来为报文寻径,路由表由路由协议建立和维护。路由协议的设计则是依据某种路由算法。

  选径是否是最佳:

  以什么参数来衡量路由,如时延、距离、中间网关数等。

  简洁性:路由算法应设计的尽可能简洁。

  强壮性:路由算法必须具有鲁棒性,应经得起各种网络环境的考验。

  快速收敛性:即所有路由器就最优路径达成一致的过程路由算法如果收敛的慢,就会引起路径循环或网络消耗。

  灵活性、弹性:路由算法能否适应网络环境的各种变化,例如网络带宽、路由器的缓存、网络时延等发生变化,路由算法能否根据这些变化做出调整。路由表包含的信息用来交换路由信息和选择最佳路由路由表是路由器的核心,其中的路由信息来源有两种:一种是手动添加的静态路由,另外一种是路由器运行过程中由动态路由协议学习而得来。路由算法使用了许多不同的权决定最佳路由。

  通常采用的权如下:

  Ⅰ 路径距离:指所经过的每条链路的权值之和,有的路由协议指节点数目;

  Ⅱ 可靠性:指网络链路是否容易出故障;

  Ⅲ 时延:指网络链路造成的网络延时;

  Ⅳ 带宽:指链路传输信息流容量的能力;

  Ⅴ 承载量:指网络资源如路由器的繁忙程度;
路由器与相关网络设备的比较
  Hubs(中继器):对应 7 层模型的物理层,它的作用是放大电信号。主要用于连接具有相同物理层的 LAN。Hubs 还将以太网的总线结构变成星状结构。Bridges(Switches):是一种在数据链路层实现互连的存储转发设备,广泛用于局域网的扩展。Bridges 从一个网段接收完整的数据帧,进行必要的比较和验证,然后决定是丢弃还是发送给另外一个网段。Bridges 具有隔离网段的作用。在网络上适当地使用 Bridges 可以调整网络负载,提高传输性能。

  Router(路由器):与 Bridges 相比,路由器实现网络互连是发生在网络层,它实现了相对复杂的功能:路由选择、多路重发、错误检测等。路由器的异构网互连能力、阻塞控制能力和网段的隔离能力要强于 Bridges。路由器可以阻止网络风暴、支持多协议、提供多种接口。


二、路由器做什么工作


【好玩的网络】系列面向普通人的网络科普视频。

本期知识点

路由器的作用是什么?

如何实现跨子网通信?

路由器的工作原理简介, route表。

好玩的网络第三期!不定期更新。视频传送门。

本系列视频/教程

路由器参数解读传送门。

嗨,大家好!我是你们的小伙伴果子。上一期视频,我们对IP地址,网段,子网有了一定的认识,我们知道,只要配置好IP地址和子网掩码,使两台主机的IP地址属于同一个网段,这两台主机就能通讯了。这一期,我们讲讲跨子网通讯和路由器。

1.引言

我们之前讲过交换机,交换机是一个数据转发设备,在OSI模型中的第二层,数据链路层工作,通过MAC地址和交换机端口号的对应关系来转发数据包,忘记的小伙伴可以看我的第1期视频。而我们今天要讲路由器在OSI模型中的第3层“网络层”工作,是一个三层转发设备。我们所说的多少层,不是说设备只在这一层工作,而是最少能到达到这一层。

路由器在OSI模型中的工作层级

2.路由器的结构与分类:

路由器的本质就是一台电脑,通常插着两张网卡,其中一张网卡连接广域网WAN,另外一张网卡连接局域网LAN。WAN的IP地址由上级网络分配,LAN的IP地址我们可以自己设置。家用路由器一般有自己的默认Lan口IP地址,一般是192.168.1.1/24,在包装说明书或路由器背面的铭牌中都有写明,此地址也是路由器的默认管理地址。

路由器的本质,另外家用路由器是路由交换一体机

更高级的路由器可以有多个WAN口,甚至可以添加虚拟网卡,可以实现“单线多播”负载均衡叠加网速等更高级的功能。另外,路由器也分为硬件路由器和软路由。所谓的硬路由就是我们直接从网上购买到的路由器,主要实现路由功能。而软路由则是在普通电脑上安装openwrt,爱快等路由器系统,实现路由功能的设备,主要是为了实现广告过滤,搭建网络隧道等功能。我们以后会在centos系统中实现部分功能。

3.路由器的功能1:寻址与转发3.1.路由规则

路由器最主要的作用就是实现跨网段的数据传输与转发。就像交通路标一样,指引着车辆和行人的行动,这种指引行为就叫路由,路由器通过路由表来记录转发规则。我们先来看看路由表长什么样吧。因为普通路由器无法查看路由表,所以我在centos7系统上进行演示。

路由器主要是为了实现跨子网的传输

我们在centos系统中输入route -n命令,就可以查询路由表,查询到的路由表有8列,其中第1列Destination为目的地址,第2列Gateway为网关地址,也叫“下一跳”,第3列Genmask为网关掩码,第8列Iface为网卡接口。

查询路由表的方法,路由表

我们将第1列与第3列合并起来,会惊奇地 发现,第一列不就是网络地址吗?忘记的同学可以翻看第2期视频。Flag带有G的规则代表网关规则,若数据包的目的IP地址与路由表中目的地址匹配,路由器会将数据包转发到Gateway中的网关地址。如果flag不带G,说明本条规则不是网关规则,目标地址肯定就在本地链路,通过同一个交换机相连。

如何看路由表

举个例子,如果想发送数据给百度的服务器39.156.69.79,匹配到的目的地址是0.0.0.0/0,那么这个数据包就会被转发给网卡eth0,走默认网关192.168.0.1.

局域网内发送消息给百度

如果数据包的目的地是我的办公室的主机,IP地址为192.168.2.12,那么会同时符合两个目的网段,0.0.0.0/0和192.168.2.0/24,但是路由器会优先匹配更精确的规则,所以数据包通过tun0网卡转发给网关192.168.10.12.

数据包发送到办公室

3.2网络数据包的长距离传输:

网络数据包长距离传输的过程中,会经过一个个的路由器,我们拿局域网内一台主机和百度的通讯举个例子,假设局域网内一台主机192.168.0.4/24要访问公网上的百度主机39.156.69.79.主机查询自己的路由表,把数据包发送给谁呢?

主机查询自己的路由表,把数据包发送给默认网关192.168.0.1(路由器LAN端IP地址)。路由器收到数据包后,继续发送给更上级的默认网关(运营商的路由器),经过多个路由的传递,最终百度主机就会收到信息了。

我们在centos系统中,可以使用traceroute -n http://baidu.com的命令查看中途经过了哪些路由器。我们很清晰地看到,第一个经历的路由器就是我们自己的路由器192.168.0.1,第二个路由器是运营商的路由器,27.19.176.1,中间的路由器都是城市路由的节点。

到百度主机经历的路由器

3.3.路由规则的获得

路由器如何获得路由规则?

路由器想要实现路由功能,首先路由器本身得知道数据应该向哪里传。路由器得知这些信息的方式大致有3种,第一种方式是直连路由;第二种是通过手动添加路由规则,也就是静态路由。第三种是通过动态路由协议获得的路由,一般在城市或大型企业网络运用比较多,家庭网络甚至小型企业根本用不上,我们主要了解一下前两种方法。

第一种方式是直连路由。

当主机正确配置好一个IP地址后,会自动生成一条目的地址为该子网的路由。例如树莓派的网卡eth0通过dhcp获得192.168.0.4/24的ip地址,那么会自动产生一条目的地址为网段192.168.0.0/24的路由。如果我在网卡tun0上手动设置IP地址为192.168.10.4/24,也会增加192.168.10.0/24的路由。

第二种方式是手动添加静态路由。

例如我添加目的地址为我办公室的子网192.168.2.0/24,网关地址为192.168.10.12,因为树莓派本机根本不知道192.168.2.0/24的子网在哪里,所以必须手动设置。再例如,在mac系统中,手动配置IP地址时,填写的网关或路由,会生成路由表中的默认路由。

4.路由器的功能2:DHCP服务器功能

路由器的第二个功能为DHCP服务器。

DHCP的全称为Dynamic Host Configuration Protocol,也叫动态主机配置协议。 路由器有自带的DHCP服务器,为接入的设备自动分配IP地址,若要使用此功能,需要在路由器上开启DHCP功能。通过DHCP服务器,可以将配置好的IP地址池,子网掩码,网关信息,DNS信息下发给下联的网络设备。需要注意的是,即便路由器的DHCP功能是开启的,主机仍然可以强制手动设置IP地址,子网掩码等,只要这些和路由器管理地址处于同一个网段,IP地址不冲突,仍然可以正常和路由器通讯以及上网。特别值得注意的是,同一个LAN中,最多只能有一个DHCP服务器处于开启状态,否则可能会导致下联的设备不能正确的获取网络配置,从而导致无法上网。

路由器的DHCP功能

5.路由器的功能3:源地址转换NAT

路由器第三个重要功能,就是利用NAT技术为本地局域网做源IP地址转换SNAT。

NAT的全称是Network Address Translation,S的含义是source,也叫IP伪装技术。我们知道,局域网主机ip地址192.168.0.4/24是一个私有地址,可能邻居家也有这个地址。假设发送到公网的地址也是用这个地址的话,百度主机要给我们返回数据包的时候,由于目的地址是私有地址,中途根本不知道会传到哪里。所以,数据包在出路由器之前,路由器会将该数据包的源IP地址伪装成路由器WAN口的公网IP地址,这样百度想要返回数据包时,目的地址是公网IP地址了,数据包就能顺利传回来了。路由器收到传回来的数据包后,会自动做目的地址转换DNAT,将目的地址从公网IP转换为刚才发送消息的主机192.168.0.4,这样内部主机就能顺利接收信息了,路由器内部所有的设备也都能通过这种方式上网了。

局域网能访问公网的原理

6.路由器的功能4:目的地址转换,端口映射,DMZ主机

路由器第四个重要功能,是端口映射或dmz主机。

这个也是利用NAT技术做目的IP地址转换或目的端口转换。不过此行为的目的是为了从公网主动访问内网。一般情况下,一台计算机从公网想要主动连接局域网内的一台计算机是不可能的,因为数据包的目的IP地址是公网地址,发送到路由器WAN口后,路由器以为这个数据包是传给自己的,然而实际却不是给自己的。在路由器上配置端口映射后,当公网主动传来数据包时,路由器判断是否要将数据转发给内部主机。假设在路由器上配置dmz主机,内网主机地址为192.168.0.4,那么路由器收到公网发送的数据包后,会把数据包的目的IP地址改为192.168.0.4,重新封装后转发给内部的树莓派。此行为相当于将树莓派主机直接映射在公网环境中,这样就能实现从公网主动访问内部主机了。

公网能主动访问局域网主机的原理

7.无线路由器:无线桥接和有线桥接

无线路由器和有线路由器,除了无线发射功能外没有本质区别,只是在LAN口桥接了一个无线网,能够收发无线信号而已。

无线桥接和有线桥接功能理解起来也非常简单,唯一的目标是想办法把两个路由器的LAN合并到一起。

我们只需要知道下面两个关键点,就能掌握好桥接。

1.在一个lan中IP地址必须唯一,因此,从路由的LAN必须和主路由属于同一网段并IP地址唯一。

2.在一个lan中最多只能有一个dhcp服务器,因此要把从路由的DHCP功能关闭。

无线桥接和有线桥接

8.本期总结

到现在为止,我们已经可以实现跨子网的访问了,并知道如何去配置路由器。

如何配置静态路由和dmz主机?如何从公网访问内网主机以及稳定的ddns?

欢迎关注博主,学习更多网络知识!有问题,欢迎评论区讨论!

本期视频问题及参考答案:(私“Q1”看答案) 问题1:使用桥接,从路由的Wan口充当什么角色?“从路由”充当什么角色?

问题2:我在最后讲无线桥接时,在视频中讲到“必须”要保证路由器的LAN口ip地址和主路由Lan口IP地址在同一网段而且唯一。真的是这样吗?请大家思考一下,如果主路由配置不变192.168.0.1/24(开启dhcp),从路由强制设置Lan口IP地址为192.168.5.1(关闭dhcp)。这时,1.通过从路由无线网接入的设备(设备获取IP方式为dhcp或自动获取),是否能正常上网?2.设备获取到的IP地址属于哪个网段?3.现在如何访问从路由管理界面?

下一期视频,带大家分析家庭组网,包括如何设计接线,设备摆位等等,非常简单!希望你们有收获。

后期再对评论中的一些其他方法一一做解释,比如改掩码,静态路由等等。

路由器参数解读传送门。

图文编辑: 旋律果子 猫小爪

欢迎关注博主,一起学习网络知识!有问题,欢迎私信、在评论区留言讨论

旋律果子: 网络Geek/Linux开发者/中国科学院大学在读博士/科技数码博主/国家二级建造师/优质科技领域创作者



三、路由器工作原理


路由器工作原理:

网络中的设备相互通信主要是用它们的IP地址,路由器只能根据具体的IP地址来转发数据。IP地址由网络地址和主机地址两部分组成。在Internet中采用的是由子网掩码来确定网络地址和主机地址。子网掩码与IP地址一样都是32位的,并且这两者是一一对应的,子网掩码中“1”对应IP地址中的网络地址,“0”对应的是主机地址,网络地址和主机地址就构成了一个完整的IP地址。

路由器简介:

路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。

这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。