集线器 | 交换机 | 路由器 |
---|---|---|
转发数据 | 转发数据 | 转发数据 |
这三种网络设备,均是为了转发数据而存在,那又有什么区别?
- 集线器(基本淘汰)
- 工作在物理层
- 对于集线器来说,没有帧的概念,仅仅转发bit
- 从一个接口收到的bit会向所有接口转发
- 交换机(二层交换机)
- 工作在数据链路层
- 可以将收到的bit重新整理成数据帧,并根据数据帧中的目的MAC地址(如上图中的MAC-B),精确转发给主机B
- 路由器
- 工作在网络层
- 当两台主机处在不同网段时,便要用到路由器,根据路由表进行转发
如何让两台主机通信?
- 最简单的,直接拉一条网线
如何让多台主机通信?
- 将所有主机接在一条线上,便形成了总线网
总线的特点是:
当一台主机发送数据时,总线上所有主机都能收到此数据帧
在同一时间, 若是有两台计算机同时发送数据,便会产生冲突,发送的数据都会被破坏。此时,便要使用CSMA/CD协议,在冲突发生时,采取相应的措施解决问题
既然提到总线网,那什么是星形网?
- 星形网便是用集线器将所有主机连接起来
- 事实上,对于总线网和星形网,可以忽略物理上的具体实现,从功能的角度看,两者没有区别
- 换句话说,集线器便是将总线网的网线装进了盒子里
- 所以,总线的特点也适用于集线器,同样要使用CSMA/CD协议工作
集线器用电路模拟总线的工作方式
若是将集线器换成交换机会怎么样?
- 集线器无法让两台主机同时发送数据(集线器本质上还是一条总线),但交换机可以做到
- 交换机的每一个端口都是独立的,以下四台主机都可以同时发送数据,并在交换机内部进行精确转发,不会向所有接口转发数据帧
当两个公司的人想要通信,应该如何做?
- 交换机无法处理不在同一网段的数据帧,因为在交换机内部并没有其他网段主机的MAC地址(这与交换机学习MAC地址的方式有关)
- 此时,便要用到路由器,根据IP地址进行转发
两台主机之间通信的过程?
- 首先,源主机判断目的主机与自己是否在同一网段
- 若在同一网段,则目的MAC地址不变(因为交换机可以找到此地址),发送给交换机后,交换机进行精确转发
- 若不在同一网段,则将MAC地址改成 网关的MAC地址
- 网关是源主机提前设置好的,与自己一定在同一网段,所以交换机一定找得到网关
- 源主机将数据帧发送给交换机,交换机将数据帧发送给网关(上图中为路由器),路由器解封装数据帧,发现目的MAC为自己,便收下此数据帧;再解封装IP层数据包,找到目的IP地址,根据路由表转发到不同的接口
目前,交换机已经完全替代了集线器的工作,所以集线器基本淘汰了
而二层交换机无法处理不同网段的数据帧,所以要用到路由器根据路由表进行转发
三层交换机有路由器的一部分功能,也可以进行三层转发,但它无法替代路由器