1.OSI七层模型以及每一层的作用(主要是数据链路层和网络层)
2.这个就是最简单的网络了,仅仅只有交换机,所有电脑都被交换机连起来就组成了一个小型的局域网,到这里还没有用到IP地址,因为IP是在第三层(网络层)的,而交换机是在第二层的(数据链路层),计算机发出的数据包中最外层是目的MAC地址和源MAC地址,往里面一层是目的IP和源IP,因为交换机是工作在二层的,所以只能看到MAC地址这一层数据,交换机是不管里面写的是什么IP地址的,只根据MAC地址进行转发。交换机收到数据包进行转发的方式是查看目的MAC地址,根据MAC地址表(ARP表)来进行查表转发,找到这个目的MAC地址在表上对应的接口,就从那个接口转发出去。如果表上没有那个MAC地址,就把这个数据包从除了这个数据包进来的那个接口以外的其他接口发出去。
MAC地址表类似于上图,这个方便理解,这个MAC地址表默认是自动学习生成的,交换机刚开机的时候这个MAC地址表其实是空的,因为它不知道哪些设备会和自己连接,交换机从一个接口收到数据包时,会查看这个数据包的源MAC地址和目的MAC地址,目的MAC用于转发,上面讲过了,源MAC地址就是交换机先看看自己的MAC地址表上面有没有这个MAC地址,如果有就看这个MAC地址对应的接口是不是现在这个数据包进来的那个接口,如果是就不管,不是的话就更新一下,如果MAC地址表上面没有这个MAC地址,就把这个MAC地址和接口添加到表中,以后有目的地址是这个MAC的数据包就可以查表然后就知道要从这个接口发出去了。
交换机如果像上面一样连成了一个环的话在原来是很可怕的,因为这会让数据包一直在里面循环转圈,如果是广播的话因为每个交换机都会把广播从自己的所有接口发出去,另一个交换机收到这个广播报文以后也同样会从自己所有接口发出去,然后第一个交换机和第三个交换机是连起来的,所以也会收到这个广播报文,然后又从自己所有接口发出去,就这样这一个同样的广播报文会被复制的越来越多而且一直循环直到设备死机。现在的交换机都有一个叫STP(生成树)的协议,默认是开启的,这个协议就是用来防止环路的,其实交换机和路由器上面运行协议就相当于电脑上面运行软件是类似的,这个协议通过在逻辑上堵塞环路上其中一个接口来打破这个环,让所有的交换机连接方式变成跟树枝一样,不会有环存在,这样就可以避免环路。
但是现实的网络不可能这么简单,上面这个图就是一个最简单的网络了,一般小区或者学校因为人很多,需要很多端口,所以需要很多交换机,然后这些交换机又连接到一个交换机上,这个交换机交汇聚交换机,如果像学校这种用户很多的网络可能有多个汇聚交换机,然后所有汇聚交换机再往上连接到核心交换机上,就是这样一层一层的,有的很大的网络就是这样一层一层向上汇聚。然后最上面的交换机连到路由器,路由器再连接到Internet互联网,这样才能上网。再说说路由器的功能,路由器是在IP层面转发数据包的,是第三层的(网络层),路由器是用来连接不同的局域网的,比如有两个不同网段的用户之间需要互相访问的话就需要通过路由器在IP层面通过查看IP地址来转发,同一个局域网内部之间相互访问其实是不需要经过路由器的,由交换机来完成就行了。路由器上面有个路由表,记录了每个网段的数据包要从哪个接口出去,路由表上面每一条路由都记录有目标网段,距离,以及接口,路由表收到一个数据包的时候就查看这个数据包的IP地址,因为路由器工作在第三层,更高级,所以可以看到数据包中第三层的信息,也就是目的IP 和源IP,看到目的IP以后就查找路由表,选择对应的接口发出去。
路由表可以手动配置,也可以使用动态路由协议自动生成并维护,手动配置的就叫静态路由,配置以后是不会变的,动态路由会由路由协议来维护,会根据拓扑的变化(比如本来是这个接口连接到一个网段,后来线路变化以后从另一个接口到这个网段会更近一些),路由协议就能根据这些变化自动调整路由表。路由协议就好像语言一样,所有路由器都运行这种协议的话,互相之间就能听懂对方在说什么,大家就可以一起商量数据包到底从哪条路走比较快,通过不断交流来调整路由表。
常见的路由协议有:RIP(最简单但也是最老的,不太好用,基本不用了,仅仅偶尔有很小的网络才会用),OSPF(用得最多的,比较好,开源的),EIGRP(可以说是最好最快的,但是是思科专有的,别的路由器不能用,最近几年才开源,所有厂商都可以用了,但是OSPF在这之前已经占据大半的江山了,所以EIGRP就没那么普遍),BGP,ISIS。BGP和ISIS主要用于大型网络,比如中国的网络和美国的网络之间连接起来这种。因为互联网上有很多很多的局域网,所以也会有很多的路由器互相连接,比如学校的路由器连到福州市的路由器,然后福建所有市的路由器再连起来就这样组成一张很复杂的网络,这张网络上面的路由表就由运维人员手动维护或者运行路由协议来维护,通常是静态和动态的路由都有。还有一个默认路由的概念,默认路由就是路由表上没有到这个网络的路由的话就全都用默认路由来走,一般会把默认路由设置为外网出口,就是我的路由表上没有去这个网络的路的话就全都走这个默认路由,因为互联网上网段太多了,你的路由器根本装不下那么多具体的条目,所以就直接从外网接口丢出去,让运营商的路由器帮你转发到你要去的网络,这就是上网的过程。
另外,路由器通常在局域网里面担任网关的角色,网关从概念上来讲就是连接不同局域网的设备,局域网内的电脑把路由器设置为网关(这个我们给电脑配置IP地址那里就有配置网关),想要和其他网络通信就要先把数据包发给路由器,路由器根据路由表转发到其他网络。一般汇聚层和核心层的交换机是三层交换机(具有网络层功能的交换机,相当于交换机和路由器的结合体),所以很多网络也会把网关设置在三层交换机上。有的网络可能要连到多个运营商,所以出口的地方可能有多个路由器,分别连到不同的运营商。
校园或者小区网络或者公司网络就类似于上面这种,接入层交换机连到汇聚层交换机,汇聚层交换机连到核心层交换机,然后再连到路由器再出去。有没有注意到上面每个接入层交换机会同时连到两个汇聚层交换机,这个是为了冗余,比如左边的线坏了我还可以从右边的线走,这样就提高网络的可靠性。网关也是可以冗余的,比如上图核心层的两个交换机就可以同时当网关,这两台三层交换机运行网关冗余协议,正常运转的时候只有一台作为网关来工作,当这台网关挂了的时候另一台马上就充当起网关的角色,让网络能够继续运转。
上面这个图就是一个经典的很简单的小型网络
稍微大点就是上面这样
上面这是很简单的校园网拓扑
常见的校园网络就是下面这些,可以看出来都是这种,接入层——汇聚层——核心层——出口,这种基本架构是不会变的