路由
路由的定义(摘自维基百科)
?路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。路由发生在OSI网络参考模型中的第三层即网络层。 ?路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。作成硬件的话,则称为路由器。路由通常根据路由表——一个存储到各个目的地的最佳路径的表——来引导分组转送。因此为了有效率的转送分组,创建存储在路由器存储器内的路由表是非常重要的。 ?个人的理解:百度百科上对由的解释,“经历、经过”,路由就是流量从哪里来,到哪里去的整个经过的过程。单个网段用交换机进行转发;跨网段用路由器进行转发。
动态路由和静态路由
默认情况下,路由器只知道与它直连的网段,非直连的网段需要通过 静态路由、动态路由 告诉它。
静态路由
- 需要管理员手动添加路由信息。
- 适用于小规模网络。因为当网络的规模一大:一是配置的工作量很大,二是人工分配IP很可能会出现IP冲突的问题。
动态路由
- 路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息
- 适用于大规模网络
路由表
每个路由器自己维护着一张路由表,大概有字段:(IP、子网掩码、下一跳路由的IP),用于指引将当前数据包发送至哪里。
路由的规则
已知:
- 路由表有记录(IP:192.168.1.0,子网掩码:255.255.255.0,下一跳:A1)、(IP:192.168.3.0,子网掩码:255.255.255.0,下一跳:A2)、(IP:0.0.0.0,子网掩码:0.0.0.0,下一跳:B1)
- 数据包(源IP地址:192.168.3.1,目标IP地址:192.168.1.2)
?当数据包经过该路由器的时候,数据包的目标地址的所属网段 = 目标IP & 路由表子网掩码 = 192.168.1.0,刚好等于路由表的子网掩码,所以下一跳是A1而不是A2。 ?但细心的你们肯定能发现,目标IP地址192.168.1.2 & 0.0.0.0 = 0.0.0.0,刚好也等于第三条记录的网段,为什么下一跳不是B1呢?这就要看下面的路由的优先级。
路由的优先级
根据路由表的IP+子网掩码计算出网段,越具体的网段(即子网掩码0的位数越少)优先级越高。
PS路由小技巧:边缘路由器静态路由可以配:(IP:0.0.0.0,子网掩码:0.0.0.0,下一跳:A1),表示任意请求的下一跳都是A1
理解第一个包丢失的现象
如图,从 192.168.1.10/24 往 192.168.2.10/24 虽然可以 ping 通,但是却丢失了第一个数据包。
原因是:计算机0 往路由器发送了 ARP包,路由器收到后回复了 ARP包,从而计算机0就开始发送 ICMP包,路由器0收到 ICMP包后准备发往计算机1,但是路由器还不知道计算机1的MAC地址,所以要往计算机1发送ARP包,因此就把ICMP包给丢了,所以第一次 ping 会超时。
重要概念
ISP
?互联网提供商,给一般老百姓提供互联网的服务。要提供互联网的服务,需要的前期大量金钱投入和雄厚的技术实力,它们需要搭建机房,挖地铺设光纤、路由器等网络设备,而且要对这些设备进行维护,坏了要修。所以ISP都是大公司去承担这个角色,比如:移动、电信、联通等。 ?而我们要上网,则只要找ISP开通网络即可,不需要自己铺设网线等。(个人理解:普通家庭开通网络其实也就是让ISP在连接我们家的那栋楼的路由器,在用NAT技术给我们分配一个局域网IP,然后我们家就可以上网了)
服务器机房
如下图所示,每个ISP都有很多个自己的机房,或者是混合的机房。比如中国移动在海珠区有一个机房,天河区有一个机房;然后中国联通也同样有一个机房,天河区有一个机房。而你家的网络是在中国移动开通的,而且在天河区,那么下载的时候肯定选择天河区中国移动线路下载是最快的:一是你家网络距离ISP的机房路径最短;二是不需要跨ISP,走多余的机房。
家用无线路由器的逻辑结构
NAT
NAT是什么
NAT(net address Translation网络地址转换协议)。现在的路由器都实现了NAT协议,具有NAT的功能,比如如下图所示: ?假设现在一栋楼有3户,每一户都向ISP开通了网络。ISP给他们分配了IP,分别如图所示。然后他们都访问百度首页,他们的请求都会通过183.240.20.243这个公网IP向百度服务器进行请求,路由器处理他们的请求的时候,会给每个请求分配一个端口然后在用该端口向百度请求,并且路由器会维护着一张NAT表(路由器的请求端口、源IP、源端口)。比如路由器处理192.168.0.2/24:443的请求的时候分配了1000端口,然后路由器用183.240.20.243:1000去请求百度;在处理192.18.0.3/24:443的请求的时候分配了1001端口,然后路由器用183.240.20.243:1001去请求百度。当百度对183.240.20.243:1000进行了响应,则路由器会将响应转发到192.168.0.2/24:443。这样就达到了一个公网IP可以被多个人同时使用的效果。 ?值得说明的是,NAT可以无限套娃,1层NAT转换之后,可以在套第2层NAT。所以说NAT可以使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。 ?同时NAT也可以用在虚拟机中,当虚拟机想上网时,物理机随机给每台虚拟机分配一个端口+维护NAT表即可,然后虚拟机和物理机都可以用物理机的IP进行上网。这也就是在搭建虚拟机的时候上网模式NAT这一选择的含义。
一个与NAT有关的现象
这也解释了一个现象,当你百度查询本地公网IP的时候,往往会出现一个跟你八辈子打不着杆子的IP。是因为你的电脑经过多层NAT转换来到了直连着公网的路由器这里,这个“本地公网IP”就是这个路由器的公网IP。
|