大家好,我是SaSa,今天也来试一下发这里的文章。主要是我有,一直没发过。
正题开始。
大家都应该知道,
一提到路由器,
大家都想到是个,
![]()
但是,
实际上,
![]()
这玩意也叫做路由器。
那么家里的这个家用路由器也是路由器,
其实它的功能何止路由器,
它的功能包含,
构建局域网+分配IP(DHCP),
扩散WiFi,
交换局域网,
NAT映射,
转发数据。
相当于,
家用路由器=
路由器+AP+交换机+DHCP服务器+
NAT映射服务器+交换机。
是一台复合所有网络功能的设备。
![]()
但是,
家用路由器和专业路由器还是有区别的。
虽然都是路由器,
家用路由器用于局域网和互联网联通,
而专业路由器(骨干路由器)
负责数据从一个地方转发到另一个地方。
![]()
每个圆圈就是路由器,
路由器就是负责转发数据到对应位置的!
那么到底是如何区分,
把数据包发给谁的。
首先,
看到这里有几个专业路由器,
环路接在一个网里,
![]()
旁边接了几个电脑。
因为专业路由器,
只知道转发数据包,
它上面的所有网口都是不一样的,
而且也不分什么wan和lan。
那么,
所有电脑都没有IP。
所以我们给所有设备分配了一个IP,
包括路由器和电脑。
![]()
那么,
一个设备就会发给路由器一个数据包,
告诉右边的电脑,
左边电脑是192.168.5.101,
右边电脑是192.168.2.101。
路由器一看IP,
懵了,
不知道设备在哪。
没错。
(你肯定会有疑问,
为啥家用路由器没有这种问题,
很简单,
只有LAN和WAN,
选啥路啊?!
专业路由器是很多个网口,
对应不同的网类型)
所以,
这时候,
一个东西叫路由表的东西出来了。
干啥的呢?
就是告诉路由器,
怎么发数据包的。
以左边192.168.5.1路由器为例子:
![]()
(后缀也是子网掩码,
用来标记IP段)
可以认为,
地图。
相当于,
你需要告诉路由器,
左边的数据如果要发到右边,
要怎么转发,
走哪个网口,
哪个口快。
所以,
你想,
每个路由器给他写一个路由表,
行了。
数据真的发送过去了。
但是,
你看这里有5台路由器,
但是实际上如果有N台,
你是不是想一台一台写路由表,
每台设置数据?
累死。
![]()
(图片经过简单夸张,
实际上不同设备不能设置一样IP)
而且,
如果真的是自己写上去的,
叫做静态路由,
但是,
路由器只会看路由表发数据,
假如我把一台路由器拿去维修了,
而没设置对方服务器的情况,
访问另一个服务器,
不就,
![]()
延迟直接暴增,
或者路由器不会转发。
所以,
不能完全靠静态路由,
得让路由器自己去学出路由表。
那么,
路由表怎么自动生成?
首先,
我先给每个路由器写一张小路由表,
这张路由表包含终点的距离,
同时包含连接自己的主机,
附近的路由器这些。
例如有个路由器192.168.5.1是这样:
![]()
然后,
每个路由器互相分享自己的路由表,
对方看见后添加修改表格,
然后修改自己的数据。
例如192.168.1.1发过来的表是:
![]()
然后修改自己的表,
大于自己的忽略,
小于自己的加一并写上去。
![]()
(实际上还需要排序)
这个玩意就叫做RIP技术。
(简单理解就是告诉我家门口路怎么走)
但是,
问题也有,
视野太小,
相当于井底之蛙。
例如你连接着192.168.5.1的路由器,
要找192.168.10.101的设备,
结果发给了192.168.1.1的设备,
192.168.1.1的找不到,
就返回目标不可达。
为了解决这个问题,
一个新的东西出来了,
叫做OSPF。
和RIP的区别,
就是这下子
会把远的路由器的路由表都发过来,
同时会综合考虑延迟,距离,
带宽(上限网速)等多方面考虑。
就像你去外地,
要先看地图,
然后再查飞机和火车票哪个便宜哪个快。
![]()
相当于,
路由器就通过这种方式,
在数据库里生成了一张很大的地图,
并且标记上路途花费。
所以一台路由器里面就存了
有用的大路由表,
不需要手动配置。
当然还有IS-IS,
和OSPF很接近。
只不过使用用途和原理有区别。
刚刚的这些都是内部网关协议,
叫做IGP。
但是,
假如说,
看到这里有三个网,
这三个网都有各自的路由器,
但是,
三个网是不同运营商的,
如果直接连起来,
岂不是路由器互相瞧不起,
不交换表?
这样左边的电脑也发送不到右边电脑。
![]()
所以,
这里就出了外部网关协议。
干啥的呢?
要问对方路由器同意交换可达信息,
交换报文,
但是,
这个是基础的,
只能知道网段可达,
几乎没法选路。
所以,
这里就使用边界网关协议。
其中里面有边界路由和边界路由代表。
其中边界路由代表就是用来
发言发送路由表用的。
![]()
整个过程简述一下,
路由代表会整理路由表数据,
并发送过来,
对面的路由器收到后和自己的路由表对比,
并且覆盖慢的数据,
同时也会检查是否有自己的路由器,
防止环路。
接下来说一下,
现在的路由器是怎么弄的?
全都来一套。
很简单,
首先,
如果两台路由器是直接连接,
就会生成路由表,
上面写着直连和对应物理接口号。
![]()
然后就是静态路由,
就是人设置的。
同时,
刚刚说过自动生成路由表的模式,
又生成了一些路由表。
那么,
我发送一个数据,
经过路由器,
按照直连-静态-自动生成的顺序查表。
如果都查不到?
数据甩进垃圾桶,
返回“目标不可达”。
如果你设置了路由器
不打回“目标不可达”,
那么,
你连数据到哪了都不知道。
那么,
针对这种数据发送到哪都不知道,
说不定扔垃圾桶了,
所以我们设置了一个路由
就叫做缺省路由。
数据会发送到缺省路由,
缺省路由负责处理不知道的数据。
那么,
路由器大概就长这个样子:
![]()
这下子,
你从某个路由器处发送了个数据到对面的网,
路由器收到后,
会依次往下查,
如果发现是给下一个路由器
而不是端口,
就会再查下一个路由器所在的位置对应端口,
就是二查路由表。
然后路由器一站一站转发,
最后到达目标电脑。
所以,
路由器,
可以认为换乘站,
就像你去外地旅游坐火车,
不停地换乘,
最终到达目的地。
而火车站就相当于路由器节点。
而火车站大屏就是路由表。
等一下,
你有没有发现一件事,
路由器的英文是router,
那么route不就是
路由,路线吗?
这下你应该就知道路由器是干啥的了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.