您的位置:首页 > 运维架构 > 网站架构

从浏览器输入网址到显示网站页面之间到底发生了什么?系列(四)

2018-03-25 17:31 756 查看
  我们已经了解了在客户端中的协议栈和网卡,也介绍了发送网络包以及如何将网络包在网卡中转换成光(电)信号从网线传输出去,所以,我们这一篇文章开始重点讲解集线器,交换机,路由器这三个网络设备。在数据传输过程中,它们担任着十分重要的角色。先从集线器讲起。

 集线器


  集线器(又称Hub)是工作在物理层的一种网络设备。它类似一种集合中转站,具有多个端口连接多台主机,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点几种在以它为中心的节点上,我们知道,信号在网线的传输过程是会受到干扰的,如噪声的干扰,学过通信原理的同学不会陌生,通俗点说网线越长,传输距离越长,信号就会衰减的越多,甚至会失真,普通的网线(像双绞线)一般超过一百米就有一定的衰减了,(我们一般用的网线有三种,分别是光纤这种比较贵的但是速度最快的,还有普通的双绞线和以及比较耐用的同轴电缆,同轴电缆一般用于电视监控。)
(1)集线器的工作原理它属于一种中心设备,一般来说集线器是使用在局域网中的,假设一台集线器接了八台主机,当主机1发送信号到达集线器后,集线器会对信号进行广播,其他七台主机都会收到消息,但是它们会根据Mac地址查看是不是发给自己的 ,如果不是就忽略它。它只会原封不动对信号进行广播,就算信号失真了(通俗说就是信号衰弱了,判断不出某个比特是1还是0).它还是照常发送。举个例子,快递员不会对包裹的东西进行查看,他不知道里面送的是什么,就算里面的东西坏了他也不晓得,他只会把他送到目的地。那么检测包是否有错的机制在哪呢?你忘了吗?其实数据帧尾部的FCS(帧检验序列)才是用来检测错误的,如果包有错误,位于协议栈的TCP模块就会要求对该包进行重发。(2)集线器的特点集线器(多口中继器)是属于半双工模式的,也就是说不能同时进行数据的发送与接收,而且是共享带宽的,也就是说,集线器不管有多少个端口,所有端口都是共享一条带宽,一个100M的带宽的Hub,有十个端口,那么这十个端口就共享这100M,平均来说每个端口为10M。再举个简单的例子,有一百块工资,你有十个员工,实际上帮你干了活的只有一个员工,但是你还是要把100块平分给这十个人,是不是感觉很不合理。为了搞定这种不合理,后面才有交换式中继器(也就是交换机)的出现。

 交换机(switch)



  交换机就不会像集线器那样傻瓜式广播了,(其实我们现在都不用集线器了),他会进行有目的转发,是工作在数据链路层的,交换机有多个端口,每个端口都具有桥接功能,可以连接一个局域网或一台高性能服务器或工作站。实际上,交换机有时被称为多端口网桥。我们知道在使用Vmvare虚拟机的时候有一种网络模式叫桥接,那么桥接是什么呢?
 桥接:  定义:桥接网络是指本地物理网卡
b1b2
和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,也就是说物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机,所以两个网卡的IP地址也要设置为同一网段。
  通过桥接,我们可以让虚拟机使用不用认证的网络,(锐捷的不行,如果你使用了桥接模式,虚拟机也会让你认证锐捷,然后把物理机的踢掉),但是在学校想让虚拟机能上网也是可以的,去连上学校的WiFi然后虚拟机网络模式选择NAT模式就行了。哈哈这些都是闲话啦。现在继续说交换机。
(1)交换机的原理  前面我们说,交换机会进行有选择性的转发,那是因为在交换机内部有一张Mac地址和端口对应的表,表的大概结构为:

MAC地址端口控制信息
00-60-97-A5-43-3C2...
00-00-C0-16-AE-FD7...
00-02-B3-1C-9C-F98...
...,.....
  所以我们只要根据Mac地址就可以知道这个数据帧应该使用哪个端口进行转发,但是数据到达交换机后并不会马上进行转发,而是先会暂时放在缓冲池中,跟网卡不一样的是,交换机的端口没有Mac地址,,所以它不会对发送给他的包进行查看是不是发给自己的,而是会全盘接收,但是根据对应表进行转发,这时候可能有人会问,难道这个表一开始就有的吗?难道所有的目的MAC地址都会有对应的端口记录吗?这个问题提的十分不错,其实,这个Mac地址表也是慢慢形成的,如果有没有在这个表中记录的目的Mac地址,那么它会像集线器那样进行傻瓜式广播,当获取到响应包后,再把这个地址记录写进这个表中,而且这个表的记录也不是永远不变的,它会定时的进行删除。 (2)交换机的特点 交换机是工作在数据链路层的设备,而且是全双工模式的,也就是说它可以同时进行数据的发送和接收,并且它是独享宽带的,也就是说一百块终于不用平分了,谁干活就给谁,并且交换机可以同时执行多个转发操作,这是什么意思呢?因为交换机只将包转发给具有特定MAC地址的设备连接的端口,那么其他的端口不就是空闲的,这些端口也可以转发其他的包啊,这样的话效率不是更高,路口那么多个,只用一个不是很傻。集线器就没办法了,因为它要广播,也就是同样的包每个路口都要送一个,如果同时输入多个信号,也就是同个时刻两辆车出入,就会发生碰撞了。所以整体来说,交换机是比集线器优异很多的。但是无论是交换机还是集线器都是在同个局域网工作的?快递公司送包裹又不能只送一个地区的,得跨省啊,那怎么办?没事,这时候,路由器该出来了。

路由器(Route)



  路由器根据实际用途分为很多种,一般我们最常见的就是几百块的家用路由器了,如上图,实际上企业上使用的路由器比这个高级多了,而且功能齐全,还有防火墙那些机制,但是为了大家看起来比较熟悉,我找了一张家用路由器的图。那么路由器是什么呢?实际上它是连接外网的一种设备,不同子网之间的数据传输必须使用路由器来进行转发。有看过自己家的了路由器的铜须知道,它有着两种端口,一种叫LAN端口,一种叫WAN端口,LAN就是局域网的意思啦,我们一种把外面的接口连接到WAN,自己家的设备接到LAN,每个LAN都有自己的IP地址分配,类似于同个大网段的不同子网一样,估计有很多人已经十分了解路由器的简单配置了,其实我也没怎么见过企业级的路由器是长啥样的,但是他们的主要功能还是一样的。
(1) 路由器的原理    当网络包经过了集线器和交换机后,如果想和不同网段的主机进行通信,那么就需要路由器对其进行转发,那么路由的转发原理是什么呢?
 其实就是路由表,类似与交换机,不过交换机是基于以太网设计的,而路由器是基于ip设计的,也就是说,路由器转发的原理是通过ip首部的目标ip地址来进行匹配端口转发的,那么路由表是长什么样的呢?大致如下,

目标地址子网掩码网关接口跃点数
10.10.1.0255.255.255.0--------e21
10.10.1.101255.255.255.255--------e21
192.168.1.0255.255.255.0--------e31
192.168.1.10255.255.255.255---------e31
0.0.0.00.0.0.0192.0.2.1e11
路由器转发的时候只会匹配网络号,而忽略主机号,那要怎么看懂这个表呢?我这里简单讲解一下,首先你得先明白什么是子网掩码,子网掩码实际上是用来获取网络号的位数的,例如255.255.255.0实际上转换成二进制就是(11111111.11111111.11111111.00000000),根据网络号为1,主机号为0规则,我们可以快速知道,它代表这个子网的网络号有24位,主机号有8位,然后如果将一个具体的IP地址来与这个子网掩码进行相与,例如:192.168.1.5来与它相与(及时1-1=1 1-0=0 0-0=0)可获取到192.168.1.0这个ip其实就是192.168.1.5的网段。这时候看一下上面表格的第四栏,不是刚好与之相同吗?那好这个包应该通过e3这个接口转发出去,大概就是这样的原理,这时候也许你会有疑问?最下面那一行是干嘛的呢?          其实最后一个是默认路由,也就是当你在表中找不到记录时,就会交给默认路由让它进行处理,有关路由的内容其实还有很多,但是这里我就不讲那么多了。
(2)路由器的特点  与交换机不同,路由器的端口都具有Mac地址,所以它只接收与自身地址匹配的包,遇到不匹配的包就会直接丢弃,路由器之间的连接形成了庞大的网络体系,但是路由器只负责将包送达通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由交换机实现,也就是路由器和交换机的协作,才有了现在的数据传输路径。当我们在路由表中查到了下一个路由器或者主机的IP地址后,我们还需要通过ARP来查询出它的Mac地址,并将它写入Mac首部中,这表示ip对以太网的委托只是将包传输到下一个路由器就行了(大多数是这样的,实际上如果两个主机中间只有一个路由器的情况是很少的),通过这一个过程的反复执行,最终数据包会到达最终的通信对象中。
关于集线器,交换机,路由器的简单介绍就写到这里了,下一篇文章讲网络包如何通过用于介入互联网的路由器,最终进入互联网内部的,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐