为什么要使用交换机(交换机和交换机)

作者:一天,本文首发于公众号:网络之路博客前言前面讲解了一个网址访问中的通信过程,接下来几篇来把这个过程里面一些细节的地方讲解下,这些完毕后就开始正式进入路由交换的内容了。相信大家都玩过单机游戏,记得博主最早开始喜欢玩像CS、半条命、帝国时代、魔兽争霸3、英雄无敌这些单机游戏,后来选了计算机专业后,为了更好的学习在第二学期购买了台笔记本,中午跟晚上就喜欢跟宿舍的人一起玩这种联机游戏,下面就从这样的故事来进入今天的主题内容。我们能接触到的物理层两台电脑进行联机,那势必需要用网线把两个电脑的网卡连接起来,大家

作者:某日,本文首发于微信官方账号:网络路博

我在前面的一个网站访问中解释了沟通过程,接下来的几篇文章会解释这个过程的一些细节。这些做完了,我就正式进入路由交换的内容了。相信大家都玩过单机游戏。记得博主最开始喜欢玩CS,半条命,帝国时代,魔兽争霸3,英雄无敌之类的单机游戏。后来选了计算机专业后,为了更好的学习,他们在第二学期买了笔记本。中午和晚上,他们喜欢和宿舍的人玩这种网络游戏。下面是进入今天主题的故事。

我们能触摸到的物理层

当两台电脑联机时,势必需要用一根网线将两台电脑的网卡连接起来。众所周知,在电脑直营店买一台只是多少米的问题,但早期并不是这样。去电脑店买,老板一般会问,你的网线是用来连接电脑的,还是用来连接电脑和其他设备的?这是因为网线有两种线序标准,一种是568A,另一种是568a。如果你是在电脑之间连接,boss会给你做一条交叉线(一端568A,另一端568B),如果你是用交换机或者路由器连接,boss会给你做一条直线(两条线顺序相同)。这是物理层带来的标准,用什么物理介质,用什么样的线连接,使用起来就不会出错。

但是现在你去买网线,老板直接问你要多少米,而不是问你用什么设备接。这是因为现在的网络设备和电脑网卡里有一个功能,叫做自动翻转(线序适配)。设备可以自动相互适应。不管你是用交叉还是直通电缆把电脑连接到电脑,还是电脑连接到交换机或者路由器,都可以互相通信。这个功能可以看作是技术进步,对于施工人员来说可以降低。

在了解了这一集之后,我们终于把两台电脑连接了起来。在网卡上设置好相应的IP、掩码、网关等参数后(相应的参数会在下一篇文章中说明),我们就可以开始一起在线玩了。这种连接形式就是经常听到的局域网(LAN),很多游戏都能找到上面写着LAN online的。

慢慢的,随着宿舍电脑的增多,一台电脑只有一块网卡,没有办法联网两台以上的电脑。不同时间段接触网络的朋友可能会有不同的解决方法。早期其实并没有交换机设备,而是有一个叫Hub的物理层设备(HUB),它有多个接口,可以提供给不同的设备进行连接,从而解决了多台计算机之间的局域网连接问题。然而,该中心有几个大的缺点。

缺点:广播模式(广播域)

除了玩游戏,平时也会分享一些学习娱乐资料。按照正常逻辑,A发送一个文件给D,B和C不会收到,但是B和C也会在hub收到。当A发出数据时,集线器就是一个物理层设备。它并不解封链路层,只是放大接收到的物理信号,通过其他端口广播A接收到的数据。这叫(相当于村里或者学校里的广播站,每个人都能听到,在一个广播的范围内。)

最后的结果是,A本来想单独发给D,但是B和C也收到了。虽然B和C不会读取里面的实际内容(因为MAC地址在解封过程中没有被自己找到,会被丢弃),但是安全隐患很大,会浪费不必要的链接资源。

缺点:冲突域

同样的HUB只是一个信号放大器和半双工工作模式。接收到一个数据后,直接发送,不缓存(它也没有这样的机制)。这将导致一个问题。同一时间只有一台计算机可以将数据发送到集线器进行处理。比如上图中,A和D想同时向C发送文件,HUB收到后会发生冲突。这就是所谓的冲突域。(只了解冲突域的问题,目前的设备已经解决了。)

缺点:共享带宽

HUB的内部结构由一条总线连接,所有接口共享这条总线的带宽。如果总线是10M,这个集线器的总速度就是10M。如果此时连接四个终端,每个终端平均分配的带宽为10/4=2.5M,终端越多,速度越低。

至此,宿舍里的一群人终于可以愉快地在一起玩游戏了,但是在传输文件的时候,通常会占用集线器的带宽,剩下的电脑都无法使用,这让他们很苦恼。在这里,我在这里介绍多集线器,只是为了让你了解网络设备的发展历史,并介绍我们后面要学习的设备,让你印象更深刻。枢纽现在已经是历史的产物了。)

不知道你有没有仔细观察过。无论是个人PC的网卡、光猫、路由器,还是服务器,都有一个MAC地址,是网卡厂商出厂的时候烧进去的。也叫硬件地址。MAC地址作为设备在数据链路上的地址标识,需要保证MAC地址在网络中的唯一性,这样才能正确识别数据链路上的设备。

规则一:谁先开始,谁后开始。

如上所述,在Hub环境下,只要有两台设备同时发送数据,就会产生冲突。一种称为CSMA/CD(载波侦听多路访问/冲突检测)的机制被引入第2层以太网。这个机制规定,连接到Hub的终端会不断检查共享线路的状态,如果空当前空闲就发送数据,如果有人在发送就等待。(可以看作是我们的红绿灯,它也有多个方向的路径。如果没有规则,是不是发生事故的几率会大很多?)

规则2:谁发送了这些数据,谁接收了这些数据?

规则# 3:如果在发送这个数据帧的过程中出现了错误,我在收到它之后应该做什么?(二、三都在下面统一回答)

不知道你有没有仔细观察过。无论是个人PC的网卡、光猫、路由器,还是服务器,都有一个MAC地址,是网卡厂商出厂的时候烧进去的。也叫硬件地址。MAC地址作为设备在数据链路上的地址标识,需要保证MAC地址在网络中的唯一性,这样才能正确识别数据链路上的设备。

MAC地址由6个字节组成。前三个字节代表制造商的唯一标识符(例如,上图中的44-8A-5B)。不同的网卡厂商都有具体的组合,后三个字节是厂商自己分配的,这样可以保证厂商生产的网卡MAC地址不会相同。

因为MAC地址太长,有6个字节,一个字节=8位,由0和1组成。比如上面的物理地址是44-8A-5B-D9-91-D9,如果转换成二进制就是01000100-1001010-01011011-。就连业内人士看到这一串二进制位也是一头雾水,所以为了方便查看,各个厂商的MAC地址都是用十六进制表示的,不同的操作系统显示的方式也不一样。这个后续会慢慢遇到。

以太网中MAC地址有什么用?

现在的局域网,使用的协议是以太网II协议,属于数据链路层的协议之一。在早期,有线局域网中有许多相互竞争的协议,如ATM、令牌环和FDDI。这些协议带来的产品要么昂贵,要么速度慢。随着100M标准的推出,以太网进入了快速以太网时代,此时以太网获得了快速的市场支持和市场份额。慢慢称为主流,随后推出千兆以太网和万兆。到目前为止,局域网中可以看到的主流协议是以太网,目前使用的是第二代,也就是以太网II。以太网是一种典型的多路访问网络。就像上面的宿舍,A、B、C、D都连接到Hub,可以互相访问,而不是只有一个,这就带来了一个问题。那么,A、B、C、D是如何识别出这个数据帧是给自己的呢?又是谁送的?这是以太网中MAC地址的功能。它可以根据该地址定位特定的终端设备。因为MAC地址是唯一的,所以我们来看看以太网II的数据帧格式。

以太网ⅱ的数据帧格式

  • 序言(序言)
  • 前同步码由7个字节组成,每个字节固定为10101010。下一个字节称为帧起始定界符,这个字节固定为10101011。这8个字节代表以太网帧的开始,也是对等网卡可以保证与之同步的标志。帧起始定界符的最后两位定义为11,用来告诉接收器同步并准备接收数据帧。在这里,这是网卡会完成这部分操作,只要它知道这是存在的。(序言字段在许多后来的教科书中不会被识别)

  • MAC地址(目的地址)
  • 它由六个字节组成,清楚地表明该数据帧被传送给谁(要访问的目的终端设备)。

  • MAC地址(源地址)
  • 它由六个字节组成,指示谁发送了该数据帧(发起该数据的源设备)。

  • 类型(类型)
  • 由2个字节组成,表示上层的协议类型,以便接收方知道上层用的是什么,用相应的协议读取。(你在这里回答了第二篇文章的最后一个问题吗?上层协议会在数据帧中标记出来,不用等到解封装后到达上层。)

  • 数据(数据)
  • 实际数据内容,一个数据帧能容纳的最大数据范围是46~1500字节。如果数据部分少于46字节,将被填充以满足最小长度要求。

  • 帧校验序列
  • 它用于检查除报头以太网之外的所有帧信息,以确保传输帧的完整性和准确性。如果发现数据帧不完整或错误,会直接丢弃而不交给上层处理,减少不必要的消耗。(这在规则3里。FCS将解决错误发生后该做什么的问题。)

    开关的出现

    上面大家都知道,Hub本身的工作模式还是最大的问题。一旦局域网中的终端机数量增加,发生冲突的概率就会更大。即使有了这些机制的出现,冲突是可以避免的,但是等待延迟会增加。最坏的情况是主机有一个很大的文件在传输,其他终端设备要等待传输完成,使用效率很低。这样的设备满足不了市场需求。这时会出现一个开关。

    (1)能够读取数据帧

    集线器是工作在物理层的设备,而交换机工作在数据链路层或更高层。它有读取数据帧的功能,可以使用以太网协议,这样即使数据帧有错误,也能被FCS检查出来,任何问题都可以直接丢弃,而Hub不能,所以可以直接广播。

    (2)全双工独立接口硬件工作,速度提升。

    如前所述,Hub工作在半双工,它只有放大物理电信号的功能,这就导致了冲突域的出现。但是开关不一样,从内部结构上改变了这个问题。它用单独的芯片把每个接口分开处理,把每个端口分开。优点是:(1)一个端口向两个端口发送数据时,不会影响其他接口,隔离了冲突域,其他端口也可以同时发送数据。(2)每个端口都可以工作在全双工模式,可以同时接收和发送数据。(3)带宽不再是和Hub一样的共享形式。比如交换机是百兆交换机,每个接口可以享受100M,如果交换机是千兆,每个接口可以享受1000 m,这样就解决了局域网规模增大和冲突带来的问题,带宽也提高了。

    (3)具有学习地址的功能。

    当集线器接收到数据时,它会将数据直接广播到其他接口。这种模式明显影响全网,存在很大的安全隐患。开关改变了这种模式。因为它工作在链路层,也使用以太网协议,所以它可以通过学习来学习MAC地址并记录在自己的数据表中,这样交换机就知道哪个端口对应哪个MAC。当A接入D时,交换机收到这样的数据帧后,读取的目的MAC发送给D,D在4号接口,所以可以直接投递到D的接口,而不需要从其他接口广播发送数据。

    在这一点上,交换机从取代集线器开始就已经在企业网络中使用,而在今天的网络设备中,交换机不再简单的概括为数据链路层,因为企业网络中已经有了先进的三层交换机,可以处理IP包,读取四层的端口号信息,但核心思想不变。我们将在正式进入开关章节时详细解释这些。

    知识点拓展

    (1)半双工和全双工

    作为理解,当前的网络环境通常在全双工下工作。半双工是指数据在同一时间只能单向传输,要么上传,要么下载(Hub设备),就像单车道一样。同时,只有一辆车可以通过或来。如果双方同时通过,某个时候就会发生冲突。全双工是指交换机可以同时发送和接收数据,这样可以得到更高的传输效率,没有冲突,速度高,延迟小。就像在两条车道上,来来往往的车互不影响。

    (2)总结集线器和交换机的特点。

    其实上面已经介绍了集线器开关的工作原理和特点。这里有一个有点类似的类比。该中心有点类似于一个大型办公区。这时候经理有事情要和老板沟通,势必会分散其他员工的注意力,想听听里面的内容。这样会影响员工的办公效率,同时也没有隐私可言。老板说话的时候员工不能打扰,会产生矛盾。

    慢慢的,公司发展起来了。在这里,交易所仍然作为一个大的办公区,高层人员有独立的办公室。想找人交流,只需要去对应的门牌号(MAC地址)找对应的人进入房间交流,不会影响其他人,办公室之间也不会冲突。

    (3)关于速率问题(Bye/bit)

    这个单元问题属于物理层介质。不知道你有没有找到过。例如,我们计算机中的文件大小单位是MB和GB。这个存储单位是字节,但是在我们的学习网络中,它是最小的比特单位,1字节=8比特,所以你可能会混淆。明明拉了100M的带宽,怎么下载的时候只能达到10~12MB左右?这是因为带宽的单位是比特,不是字节,而下载数据的单位是字节,中间相差8倍。这里作为补充理解,后面转换或者做一些带宽限制的时候会用到。

    (4)每层数据的名称。

    数据的发送和接收是一个封装和解封装的过程。每层数据都有不同的名称,在物理层称为比特,在数据链路层称为帧。(其他层面的介绍会说明,这个理解就够了)

    其余细节(正在考虑中)

  • 上面提到的网卡中设置IP地址、掩码、网关参数的作用是什么?既然已经有了MAC地址,为什么还需要IP地址?(下一个关键内容)
  • A发送文件给D,A初始化的时候怎么知道D的MAC是这个?(接下来几篇文章的重点内容)
  • 交换机如何获知A、B、C和D的MAC地址?(开关章节会详细解释)

  • 交换机的一个接口可以学习多个MAC吗?如果交换机移动位置,它会做什么?(开关章节会详细解释)
  • 一个接口可以学习多台MAC吗?如果位置被移动,交换机会做什么?(开关章节会详细解释)
  • 作者:某日,本文首发于微信官方账号:网络路博