网络中路由器的工作原理
大家好,我是情报小哥!
01
路由器
前面小哥跟大家介绍了一下集线器和交换机的工作原理,今天该带来大家非常熟悉的路由器了,熟悉归熟悉,路由器在网络中到底是怎样工作的,估计还有一些朋友不是特别了解的。
集线器和交换机大部分都只能工作在同一网段,如何从一个网段访问到另外一个网段呢?这个时候就需要使用到我们的路由器。
路由器也叫做网关设备(Gateway),它是不同网段通信的桥梁。
上图源于网络,仅供学习参考,侵删
如上图所示应该是大家非常熟悉的示意图了,目前大部分的路由器都是路由器+交换机的模式,WLAN口用于接外网,LAN口连接到当前局域网,一般LAN口有多个,为了满足用户可以多台主机设备链接到当前局域网。
值得注意的是路由器工作在网络层,通过IP地址来识别网段进行处理。
02
网关
一个网段连接到路由器上的位置,我们称为网关,访问其他网段的主机就必须要通过这个网关来进行数据的转发,你可以把路由器上的网关看成是一个转发的主机,它也有其IP地址,一般我们设置为该网段常规IP地址的最大值或者最小值(如掩码为255.255.255.0则一般选192.168.1.254或者192.168.1.1)。
比如在windows中的网关配置:
03
路由器工作详解
路由器其实内部存在多块网卡,实现转发可以看成从一张网卡转发到另外一张网卡并进行发送。
当一台主机发送数据到其他网段的主机或者服务器,首先网络层判断是否是本局域网网段IP,如果不是,就把数据发送给对应的网关。
当数据从网络层发往链路层,在链路层中首先查找本机的arp表中是否存在网关的mac地址,如果没有找到网关的mac地址,就会使用arp协议广播数据从而获得网关的mac地址并更新ARP表,然后把所要发送的数据进行打包,其中网关的mac地址作为目的mac地址进行发送。
这里我们以PC1向另外一个网段中的PC5发送报文,数据到达链路层以后会判断不是当前网段IP,所以会封装网关的mac地址,从而发到对应网关,也就是上图中的192.168.1.3的网卡,那么路由器接收到该数据以后该如何转发呢?
路由器首先会判断报文的目的IP是否在该路由器所拥有的网关接口处于同一网段,如果有则直接转发,所以PC1所发的报文路由器会直接转发给PC5。
那如果PC1发送报文给PC4,对于路由器该如何处理呢?
同样与前面的的PC1访问PC5类似,路由器1通过接收到的目的IP查找是否有接口的网段匹配,如果找不到就通过查找路由器中的路由表(类似于路标)根据目的IP网段找到所要转发的网关接口即下一跳地址(Next Hop),此时报文的目的mac地址为下一跳的地址,而源地址为当前接口的mac地址,如果在下一个路由器还没有找到对应的网段,路由器会重复上面的过程根据路由表继续转发。
同样当数据报文从PC4应答PC1相应的路由器2也会在路由表中存在相应网段对应的下一跳转发。
值得注意的是 : 在不同的网段中报文中的IP地址是不会发生变化的,也就是目的IP和源IP不会发生改变,只是对应的MAC地址发生变化。
前面小哥跟大家说过路由器工作在网络层,IP表示着对应的主机,一旦变化则无法再识别,而mac地址只是标识对应的物理通信硬件,所以不同网段的报文发送需要经过不同的设备,自然就需要改变报文中的mac地址来进行转发。
所以当你要在不同网段访问其他主机或者设备就需要中间加入路由器。
最 后
这里小哥就介绍了一下路由器的工作原理等知识,希望本文能够对你有帮助!
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
关注公众号,后台回复「1024」获取学习资料网盘链接。
欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~
嵌入式Linux
微信扫描二维码,关注我的公众号
还没有评论,来说两句吧...