现在电脑多了,上面的方法肯定不行。我们可以用一个枢纽,小家伙。所有计算机都连接到此集线器。集线器通过广播发送信息,每台计算机通过集线器向网络发送信息。
这样就建成了物理层,也就是一层设备。但我们不得不考虑以下问题。
1.消息应该发送给谁?谁会收到消息?
2.多台机器同时发送消息会出现混乱吗?有顺序机制吗?
3.发送消息过程中出现错误怎么办?
链路层以上三个问题其实是第二层,也就是网络链路层,也就是mac层要考虑的问题。让我们先来看一个消息体的组成:
对于我们称之为“多址”的第二个问题,有以下解决方案
一个是渠道划分,分为多个渠道。你走你的路,我走我的路,互不干扰。
二是轮换协议,即在此期间,部分渠道可用,一段时间后,其他渠道可用。
第三,它是一个“随机访问协议”。不管发生什么,都会送。过不去就回去。
以太网是第三种协议。
对于以太网,最后一段是CRC,即循环冗余检测。它通过异或XOR算法检测传输过程中是否存在错误,主要解决第三个问题。
另一个问题是,如果我已经知道目标MAC地址,我会把它放在请求头中。如果我不知道,那么我就要通过IP获取MAC地址,这是ARP协议。为了避开每次访问的ARP协议,主机会将获取的MAC地址缓存在本地,并定期清理。
到目前为止,可以用hub搭建一个稍微大一点的局域网。但是,集线器有一个缺点,即所有请求都是广播的,不管接收方是谁,它们都会被转发。导致每个主持人判断这个请求是不是我需要的。一是资源浪费,一旦机器多了,必然不会混乱。你仍然需要一个能记住MAC地址的设备。这是第二层设备交换机。当交换机转发请求时,除了广播消息之外,它还将首次记录目标mac,以便发送到该目标MAC的下一个数据包不必转发到其他机器。一段时间后,交换机会通过学习拥有所有主机的MAC地址,然后每次转发只会转发到目标MAC主机。因此,您可以放心地通过交换机构建更大的局域网。