第一层:物理层
这个应该属于计算机网络最底层通信。
最初的时候,两台电脑可以直接通过交叉网线进行连接,从而组成一个较小的局域网(LAN),后面电脑逐渐变多之后,就有一个叫做HUB的东西,集线器实现多台电脑的连接。
但是多台电脑连接的时候,集线器会把数据发送到所有的接口,无论你是不是需要数据,无论你是不是通信目标。这中间就会造成一个混乱,所以需要数据链路层解决这些问题:
- 数据包发给谁的?
- 都在发数据,会不会混乱?
- 发的时候出错了,怎么解决?
第二层:数据链路层(MAC层)
第一个问题:数据包发给谁的?
这个问题是通过MAC地址解决。
- 知道目标机器的MAC地址,可以直接写到数据包进行传送;
- 不知道目标机器的MAC地址,这就要借助ARP协议,能够通过IP地址,求MAC地址。
【】查看本地ARP表,看有没有目标机器MAC。
【】广播ARP请求:首先通过广播的方式,向整个局域网广播,数据包包括目标机器的IP地址。
【】ARP应答:指定Ip地址的目标机器,返回自己的MAC地址。
【】缓存IP-MAC映射。
第二个问题:都在发数据,会不会混乱?
采用多路访问的方式解决。
【】信道划分。
多个信道,互不干扰。
【】轮流协议。
单个信道,按时间轮流使用。
【】随机接入协议。
发现在占用,那就等会再传。
第三个问题:出错怎么办?
有CRC校验的啊,出错了就丢了重传。
交换机的使用:
尽管采用上述的方法,但是机器一旦多起来,几百个的时候,冲突就很明显了。这时候就需要一个交换机进行解决问题。
交换机会记录每一个接口的设备的MAC地址,接收到数据包之后,会将数据包转发到指定的MAC地址的接口设备中。
交换机比较聪明,他会记住每一个接口的MAC地址,会记住一段时间然后再更新。这个就是转发表,有过期时间,会定期更新。
交换机是二层设备,工作在数据链路层。
本文为作者个人学习记录,仅供参考。如有错误,欢迎指正。