2021-01-27

1.物理层

1.1物理层直连的方式组件一个LAN局域网

网线有两个头。我们只在一端将1号和3号 、2号和6号换一下。另一端是不变的。 网线一共有8根 第1、2根起着收信号的作用,第3、6根起着发信号的作用。我这边的1、2占着你那边的3、6根的位置,你那边发信号我这边就能收到, 同理我这边3、6占着你那边1、2根的位置。那么我这边发信号,你那边就能收到,这不就实现了两台主机通过一根网线实现相互通信了嘛。

1.2集线器组件多台电脑的网络

集线器完全是在物理层工作的,采用广播模式,它会将没一个字节复制到其他端口上。

2.数据链路层

数据链路层解决的三个问题:

1)这个包是发给谁的?谁应该接收?

2)大家都在发,会不会产生混乱的问题?有没有谁先发,谁后发的规则?

3)如果发送产生了错误怎么办?

2.1 解决这个包发给谁?谁该接收?

链路层地址(MAC地址),第二层的网络包的开头就有源机器的MAC地址和目标机器的MAC地址

(上图的数据分别是,目标MAC,源MAC,IP数据包,IP、TCP、UDP、HTTP相关的信息,循环冗余检测)

有了这个目标 MAC 地址,数据包在链路上广播,MAC 的网卡才能发现,这个包是给它的。MAC 的网卡把包收进来,然后打开 IP 包,发现 IP 地址也是自己的,再打开 TCP 包,发现端口是自己,也就是 80,而 nginx 就是监听 80。于是将请求提交给 nginx,nginx 返回一个网页。然后将网页需要发回请求的机器。然后层层封装,最后到 MAC 层。因为来的时候有源 MAC 地址,返回的时候,源 MAC 就变成了目标 MAC,再返给请求的机器。

2.1.1ARP协议解决找到局域网内IP对应的MAC地址

ARP协议采用广播的方式,将自己的信息和查到的IP,封装起来广播到局域网内的所有机器上

在局域网中只知道IP,不知道MAC,就靠ARP协议,吼一声

ARP报文的格式

为了避免每次都是用ARP,机器会对MAC地址进行缓存。(Windows 使用ARP命令执行查看)

随着机器的不断上线下线,IP也会改变。所以ARP的Mac地址缓存会过一段时间过期

2.2解决发送错乱,发送规则问题

多路访问:MAC 的全称是 Medium Access Control,即媒体访问控制。控制什么呢?其实就是控制在往媒体上发数据的时候,谁先发、谁后发的问题。防止发生混乱。这解决的是第二个问题。这个问题中的规则,学名叫多路访问。多路访问的常用协议:

信道划分:多个车道,每个车走一个车道。各走各的

轮流协议:单双号限行

随机接入协议:先发送,看网络拥堵就返回重试。错峰出行。以太网用的就是这个

2.3解决发送错误问题

在第二层网络包的最后又一个CRC(循环冗余检测)

使用XOR(异或)的方式来计算数据包在传输过程中有没有出现错误

2.4交换机

交换机是数据链路层的设备。交换机是用来转发报文的设备。当一台机器进行ARP协议查找对应的MAC地址的时候,经过交换机,交换机会复制多份广播到网络内的多个机器上。

交换机还会学习:

一台 MAC1 电脑将一个包发送给另一台 MAC2 电脑,当这个包到达交换机的时候,一开始交换机也不知道 MAC2 的电脑在哪个口,所以没办法,它只能将包转发给除了来的那个口之外的其他所有的口。但是,这个时候,交换机会干一件非常聪明的事情,就是交换机会记住,MAC1 是来自一个明确的口。以后有包的目的地址是 MAC1 的,直接发送到这个口就可以了。

当交换机作为一个关卡一样,过了一段时间之后,就有了整个网络的一个结构了,这个时候,基本上不用广播了,全部可以准确转发。当然,每个机器的 IP 地址会变,所在的口也会变,因而交换机上的学习的结果,我们称为转发表,是有一个过期时间的。

2.5总结

好了,今天的内容差不多了,我们来总结一下,有三个重点需要你记住:

第一,MAC 层是用来解决多路访问的堵车问题的;

第二,ARP 是通过吼的方式来寻找目标 MAC 地址的,吼完之后记住一段时间,这个叫作缓存;

第三,交换机是有 MAC 地址学习能力的,学完了它就知道谁在哪儿了,不用广播了。

如果一个局域网里面有多个交换机,ARP 广播的模式会出现什么问题呢?

ARP广播时,交换机会将一个端口收到的包转发到其它所有的端口上。比如数据包经过交换机A到达交换机B,交换机B又将包复制为多份广播出去。如果整个局域网存在一个环路,使得数据包又重新回到了最开始的交换机A,这个包又会被A再次复制多份广播出去。如此循环,数据包会不停得转发,而且越来越多,最终占满带宽,或者使解析协议的硬件过载,行成广播风暴。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页