我们来讲一讲如何局域网内的通信

我们从第一层物理层开始讲起

物理层是最基本的接入层,比如网线的插入,在很久以前,网线是可以进行交换线口的,有一根网线,两个头,一头插在了电脑的网卡上,另一头插在了另一个电脑的网卡上,但是一般的网线是不行的,只有水晶头做了交叉线才行,就是1-3 2-6 交叉法, 12 36 分别起着收 发信号的作用,将一端的1-3 2-6 进行交换,就能做到物理层一端发送信号,另一端直接能收到

当然,除了物理上的改变外,还需要配置这两台的IP地址 子网掩码和默认网关

需要这两台电脑配置的IP在一个网段内

一个可以为192.168.1.1/24 另一台为 192.168.1.2/24

然后这两台的电脑的网络包还需要MAC层才能进行通信,至此,两台电脑已经构成了一个最小的局域网,也就是LAN,可以联机网局域网游戏了

这就是两台电脑之间的互联

但是如果再加入几台呢?

这就需要一种名为Hub的东西,就是集线器,可以有多个口,将宿舍的多个电脑连接起来,但是集线器没有大脑,完全在物理层工作,将自己的每一个字节,都复制到其他的端口上去

然后是第二层的工作

这一层就是我们常说的MAC层,因为HUB采用的广播的模式,每一台电脑发出的包,宿舍的每一台电脑都是能收到的

这就可能带来了问题

1.这个包是发给谁的,应该谁来接手

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

3.如果发送的时候出现了问题,怎么办

这里我们先说一下MAC层的全称 Medium Accrss Control 即媒体访问控制,控制上面呢?就是媒体上发送数据的时候,谁先发,谁后发的问题,这就是第二个问题的解决方案,解决的规则,学名叫做多路访问控制,常见的方式就是

1.分多个车道,每个车一个车道,各走各的,叫做信道划分

2.今天单号出行,明天双号出行,轮着来,这就是轮流协议

3.先尝试出门,发现拥堵就回去,等待高峰多去,就是随机接入协议

解决了第二个问题,就是媒体控制的问题解决了,然后就是第一个问题

发给谁,谁接收,这就是一个物理地址,叫做链路层地址,但是是因为第二层主要是为了解决媒体接入控制的问题,叫做MAC地址

图片

接下来是类型,大部分的类型是IP数据包,然后IP中包含了TCP UDP,以及HTTP等,这是里层封装的问题

然后又了目标的MAC地址,才能在广播的时候,对方的网卡打开发现,这个包是给他的,MAC的网卡将包收进来,打开IP,发现IP也是他的,在打开TCP发现也是,最后发给端口

相同,返回一个数据也是,层层封装,到了MAC层,然后来的时候有源MAC,返回的时候,源MAC变成了目标MAC,返回给请求的机器

对于以太网,第二层的后面的CRC,也就是循环冗余检测,通过XOR异或的算法,计算整个包是否在发送的过程中出现了错误,解决了第三个问题

其次是,第三个问题,源机器知道了目标机器的时候,可以将目标地址放在包里面,如果不知道呢?

一个广播的网络内接入了N台设备,我仍然不知道MAC地址是谁,这就需要IP求MAC地址

就是ARP协议

协议如下

图片

一个局域网内,知道了iP地址,不知道Mac地址怎么办?靠吼

发送一个广播的包,谁是这个IP谁来回答,告诉发送端自己的MAC地址

图片

当然,接受到了之后,接受的节点会进行ARP缓存,缓存到一个表中.ARP表

至此,我们的局域网就创建了

但是这种组网的问题,会导致出现一旦机器数目增加了,问题就出现了,因为HUB是广播的

不管某个接口是否需要,所有的主机都会收到包然后判断是不是自己的.

这样就很浪费,而且导致网路很拥堵

那么最好有人能够记录下MAC地址,然后根据策略进行转发

这个设备为MAC层工作,是个二层设备,我们将其称为交换机

交换机怎么知道每个口的MAC地址呢?这就需要交换机来学习

一台MAC1将包发给MAC2电脑的时候,当这个包到达交换机的时候,交换一开始也不知道MAC2的地址,于是需要广播,但是,这时候我们知道了MAC1的地址不是,以后发给目的地址是MAC1的,直接可以找到并发送了

然后了过了一段时间,就有了整个网络的一个结构了,这个时候就不在需要广播了,可以精准的发送,因为IP会改变,所以口也会变,这个转发表也就会有对应的TTL

有了交换机,这样就能接个十几台去上网了

本章总结

1.Mac层可以解决多路访问的堵车的问题的

2.ARP是通过吼的方式获取到目标MAC地址的,然后缓存一段时间

3.交换机是有MAC地址学习能力的,学完就知道在哪里了

课后思考

1,其实除了ARP协议外,还有着已知MAC地址,求IP的,RARP协议可以用它来干什么呢?

2.如果一个局域网里面有多个交换机,会怎么办呢?

1.对于没有硬盘的机器,没法持久化ip到本地,所以只能通过RARP协议来获取到IP地址,RARP协议可以用于局域网管理员想要指定机器IP,却又不想每台都取设置ip的地方,不过也很麻烦,现在普遍还是使用BOOTP或者DHCP了

2,如今有多个交换机,一个数据包从A交换机到B交换机,交换A已经发送了一次广播,B再发送一次广播,如果还有更多的交换机,会导致数据包再回到A,再发送一次,如此循环,最后导致占满了带宽,形成广播风暴

对于广播风暴的解决方案,可以划分vlan,实现多个广播域,每个接口都是一个单独的冲突域

通过自我学习,构建出CAM的表,并且基于CAM的表进行转发数据

利用生成树的算法,构建出物理有环,逻辑无环的网络,网络冗余和数据传输效率都甩出Hub几条街

发表评论

邮箱地址不会被公开。 必填项已用*标注