摘要:在学习计算机网络的时候,你是不是经常好奇,不同计算机之间是怎么链接在一块的?是不是像计算机体系结构中的总线结构呢?在进行虚拟机配置的时候,vmware和kvm-quem会主动创建一个网桥,然后将虚拟网卡绑定在网桥上,通过nat进行上网。然而,网桥是一个什么样的设备?虚拟网桥又是什么样的设备?如果是虚拟机之间互相发送数据,数据会经过实际的网卡吗?虚拟机上继续新建虚拟机呢:物理机器上虚拟网桥vbr100 ip=192.168.122.1,挂在上面的虚拟网卡IP=192.168.122.100,接着新建虚拟机,产生新的虚拟网桥br200 ,IP=192.168.122.1会不会和前面物理主机上的虚拟网桥发生冲突?交换机和路由器有哪些区别?本文,主要为你解答这些疑问。
信号在传输过程中会不断衰减,为了不让信号衰减对通信产生影响,产生了中继器:仅做放大信号用,把信号传导偏远的地方
试想,如果每个设备只有一个对外接口,那么意味着只能建立一对点好点的通信。为了能够让通信“一对多”,需要将信号复制广播,于是,产生了集线器:把一个端口的信息重复广播到其它7个端口上(假设是8口HUB)。所以HUB也可以叫做multiport repeater。广播会产生冲突,HUB都有碰撞检测功能,有碰撞基本上就是避让,一个人说完了,另一个人再说,所以效率低。
集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(一种检测协议)介质访问控制机制.
基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。
现在,我们有了集线器,但是这带来一个问题,多个集线器连接在一起,但是由于是广播通信,互相冲突,所以我们现在需要一种设备,能够有效隔离子网。让广播通信仅仅在于一个局部:网桥。
网桥也是数据链路层设备,把一个局域网一分为2,中间用网桥连接,这样A发给BCD的数据就不会再广播到EFGH了。
上图是用一个网桥连接的两个网络,网桥的A端口连接A子网,B端口连接B子网,为什么网桥知道哪些数据包该转发,哪些包不该转发呢?那是因为它有两个表A和B,当有数据包进入端口A时,网桥从数据包中提取出源MAC地址和目的MAC地址。
一开始的时候,表A和表B都是空的,没有一条记录,这时,网桥会把数据包转发给B网络,并且在表A中增加一条MAC地址(把源MAC地址记录表中),说明这个MAC地址的机器是A子网的,同理,当B子网发送数据包到B端口时,网桥也会记录源MAC地址到B表。
当网桥工作一段时候后,表A基本上记录了A子网所有的机器的MAC地址,表B同理,当再有一个数据包从A子网发送给网桥时,网桥会先看看数据包的目的MAC地址是属于A子网还是B子网的,如果从A表中找到对应则,抛弃该包(因为该包在HUB中已经被转发),如果不是,则转发给B子网,然后检查源MAC地址,是否在表中已经存在,如果不存在,在表A中增加一条记录。
噢,或许你现在会问了,为什么需要两张表呢,一张表不行么??嗯~刚才把表一分为二是为了便于理解,实际上,真正的网桥里面存的应该是一张表(当然有可能为了提速,或者其他原因,它也可能把信息存为多张表,这个得看它怎么实现了~),如果是一张信息表,表里记录的应该是:MAC-PortNum,所以它是具有学习功能的。
网桥相当于二层交换机它可以在Layer2“桥接”两个网段。它比HUB强一些的是,它分离了两个网段,不会把一个网段内部的packet广播到另一个网段。因此,两个网段之间不会产生不必要的信号冲突碰撞。举例:AB在桥东,CD在桥西,AB对话时,CD也可以对话。AC对话时,BD大致要避让。
注意到,网桥只有两个端口。随着网络设备的发展,逐渐产生了多个端口的“网桥”,但是由于网桥是数据链路层的广播通信,A和G通信的时候,B和F就没法通信——一个桥上多个通信将产生冲突。为了能够实现多对多的通信,于是产生了交换机。
在交换机中,A和B通信的同时,C和D也可以通信——因为它们分别占用不同的端口。这样,交换机渐渐替代了HUB,成为组建局域网的重要设备。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
也就是说,交换机也有一张表,记录的是port-mac。
按照传输数据包的层次,交换机可以分为一、二.....七层交换机。
我们知道,交换机工作在数据链路层次。如果现在A节点向未知节点B通信,如果A和B之间通过N(很大)个交换机才连接在一起,那么只用交换机来实现,那么A将数据包发送之后,在到达所有其他端口,如果其他端口不能识别,那么都将进行转发,这样,最终也可以到达B,但是势必产生很多的冗余数据通信。于是,我们有了路由器。
路由器工作在网络层,可以根据IP来选择对应的端口,当然,这里选择的依据就是路由表。
在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)。
网关顾名思义就是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。