在网络中,除了通信双方以外,还有很多其他设备起着至关重要的作用,没有它们就无法实现以太网通信,深入了解它们,更能加深我们对网络通信的理解
直连
用一根网线连接在两台主机的端口,我们称之为网口,每台主机的内部有一个芯片,用来发送和接收数据,我们称之为网卡,这就是最简单的网络连接方式
集线器
两台主机通信可以直连,如果多台主机通信呢?总不能每台主机设计N个网口,这样肯定是不行的
既然无法每台主机设计多个网口,能否设计一个设备,具备多个网口,所有的主机只要连接在这个设备的网口上,不就可以通信了嘛
集线器(HUB),将网线集结起来,实现最初级的网络互通,集线器是通过网线传送数据的,所以它工作在物理层
集线器还有一个作用:将收到的信号放大后再传递出去,扩大网络的传输距离。网线的最大传输距离是100M,有了集线器这个中继设备,可以扩大网络传输距离
缺点
集线器虽然可以提供多个网口和扩大传输距离,但是由于工作在物理层,它并不能分辨具体信息发给谁,只能广播出去。由于处于同一网络,当一台主机发消息时,其他主机不能发送消息,否则信息间会产生碰撞,碰撞后,数据都会粉碎,造成数据丢失
这里不得不提一下两个概念,冲突域和广播域
集线器从某个端口收到数据时,会从除接收端口外的所有端口,进行转发,网络中称之为“泛洪转发”
连接到集线器的所有电脑就是处于同一冲突域,共享一个广播域
从泛洪转发中可以得知,HUB所有的端口都在同一个广播域中,而且不具备分割冲突域的能力,这个时候,交换机就应运而生了
交换机
交换机(Switch),从根本上解决了所有端口都在同一冲突域的弊端,每一个接口的网段,都是一个独立的冲突域,怎么实现的?答案是MAC地址表
优点
交换机,在集线器原有的功能上,增加了自动寻址能力和交换作用,交换机不会识别IP地址,但它可以学习MAC地址,并把其和对应的端口存在内部地址表中,通过在发送者和接收者之间建立临时交换路径,实现数据帧直接由源地址到达目的地址
交换机通过学习MAC地址实现转发,可以看出工作在数据链路层
MAC地址表
交换机内部维持着一张MAC地址表,每个端口接收到数据帧时,首先把源MAC地址与此端口号记录在MAC地址表内,同时在MAC地址表内,查找目的MAC地址对应的端口号,找到后,从此端口号转发出去,实现冲突域的分割,进而实现单播
总结
集线器
- 工作在物理层
- 共享一个冲突域,共享一个广播域
- 半双工
交换机
- 工作在数据链路层
- 每个接口都是一个单独的冲突域,默认一个广播域
- 全双工
路由器
交换机默认一个广播域,这就要求交换机端口上的所有主机在同一个子网中,那么不同网段的主机要如何连接通信呢?这就是路由器的用途
路由器(Router),连接不同类型网络并能够选择数据传送路径的设备,所以路由器工作在三层网络层
也就是说,不同网段必须用路由器传输数据,否则无法通信,它是很多子网的出口,充当网关的角色,所谓网关,就是连接主机的路由器接口地址是内网地址,外网口为其他网络的地址。如果连接运营商的接口,则路由器主要功能负责让主机连接外网,地址为向运营商申请的地址
路由器在网络层转发时,基于路由表转发,但是路由器也可以充当交换机使用
总结
交换机
- 工作在数据链路层
- 同一个网段内主机的通信
- 根据MAC地址表工作
- 分割冲突域,共享广播域
路由器
- 工作在网络层
- 不同网段主机的通信
- 根据路由表工作
- 不转发广播报文,会丢弃
猫
猫,学名调制解调器,作用:将数字信号(电脑想要发送的信息)转换成模拟信号(网线中的电流脉冲)从而使信息在网线中传输。由于计算机的一切信号都要由电流脉冲传送出去,因而猫是必须的。目前的家用路由器一般都是路由猫,即路由器兼顾了猫和简单交换机的功能