路由器是最常见的网络设备了,小到十几块钱的消费级路由器,大到几十万的企业级路由器,不一而足。本文将用一张流程图,详细介绍路由器的工作原理。
我们知道路由器有两种接口,一种是LA口,一种是WAN口。
LAN口可以有多个用来接家庭网络设备,比如台式机、手机、笔记本,其中手机和笔记本是通过wifi连接到路由器的设备也相当于连接到了LAN口上。
WAN口只有一个用来接入运营商网络,已连接到互联网中。如果把路由器的WAN口忽略,只用LAN口,其实路由器就是一台交换机。
TCP/IP协议规定:在计算机网络中,同一个子网中的设备,是可以通过该子网的网关直接通信的。但是,不同子网之间是不可以直接通信的!如果要通信,需要通过网关来进行转达。每个网关上都有两张网卡,分别配置了属于两个子网的IP地址,可以在两个网络之间转发数据包,这样我们就拥有了一个连接了两个子网的网络。
我们来举一个简单的例子,来说明数据在路由转发中的步骤。
第1步:子网一中的一台计算机a发送数据包,数据包中包含了源ip1目标ip2;
第2步:计算机a会根据目标IP判断是否跟自己属于同一个子网,如果是同一个子网,则直接从网卡发出。
第3步:如果不是同一个子网,则需要把数据包的目标mac地址改为网关mac,然后发送给网关。
第4步:网关拿到这一包数据后,再通过路由表查询到这一包数据属于子网二。
第5步:网关修改目标Mac地址为计算机b的Mac地址,修改源mac为自己的Mac,
第6步:数据从子网二的网卡发出,到ip2所对应的计算机b。
以上出现了多次根据目标IP判断数据包应该如何发送的行为,我们就称之为路由行为。
路由器有一个wan口接入互联网,多个LAN口接入本地网络,他们就分别属于两个不同的子网,所以从内网访问互联网就是跨网络的行为,这时候就需要路由器来担任网关的角色,他的行为就叫路由。