【网络协议】聊聊从物理层到MAC层 ARP 交换机

物理层

物理层其实就是电脑、交换器、路由器、光纤等。组成一个局域网的方式可以使用集线器。可以将多台电脑连接起来,然后进行将数据转发给别的端口。

数据链路层

Hub其实就是广播模式,如果A电脑发出一个包,B、C电脑也可以收到。那么数据包就是知道给谁使用。

1.这个包是发给谁的,谁应该接收。

2.大家都在发,发送的顺序规则是什么呢

3.发送错误怎么办,有容错机制嘛

而这些问题都是MAC所要解决的,MAC的全称是Medium Access Control,即媒体访问控制 ,控制其实就是解决的是往媒体上发数据的时候,发送顺序的问题,多路访问
信道划分 : 一个车一个车道,各走各的。
轮流协议 : 单双号
随机接入协议

第一个,谁给谁发送数据包

链路层地址,其实就是MAC地址。第二层其实就是目标MAC 和 源MAC 。而类型有TCP、UDP等

整体流程就是因为有目标MAC地址,在广播的时候,就可以发现是把数据发送给自己的,然后进一步拆开数据看IP地址也是自己,端口号也是,所以就开始处理流程,如果是web服务器的话,就返回对应的数据,返回的时候其实也是先将自己MAC地址封装进去,然后在封装来时的源MAC,以及IP 和端口号 返回响应。

如何检查容错

其实使用的就是循环冗余检测 CRC,通过XOR亦或算法。来检测在整个传输数据的过程中是否出现错误。

但是有一种场景,那就是知道了IP地址,但是不知道MAC地址,这个时候其实就是使用ARP协议也就是已知 IP 地址,求 MAC 地址的协议。

整体流程其实就是 1.先查看本地ARP表 2.广播ARP请求 3.ARP应答 4.缓存IP-MAC映射。

因为机器可能下线,所以需要设置一定的缓存期。所以ARP就是在链路层

局域网

虽然使用Hub的方式可以,但是当电脑比较多的时候,使用广播的模式,其实比较浪费数据传输,根本问题其实就是不知道接口对应的机器是哪个MAC地址。所以需要交换器学习。

比如刚开始的时候MAC1电脑给MAC2发送数据,刚开始都不知道对方那个口就是MAC2,先使用广播模式,然后MAC2接收之后,交换机会记录MAC1就是发出的口对应什么MAC地址。时间长了,就会初步形成一个网络结构图。就可以不用广播,直接准确转发。交换机上的学习结构称为转发表

小结

本篇主要介绍了MAC、ARP、交换机。MAC主要解决的是多路访问堵车的问题。ARP通过吼的方式寻找目标MAC地址,也就是知道IP地址不知道MAC。交换机有学习MAC地址的能力。

相关推荐
Douglassssssss1 小时前
【深度学习】使用块的网络(VGG)
网络·人工智能·深度学习
python算法(魔法师版)2 小时前
网络编程入门(一)
大数据·网络·网络协议·计算机网络
网络小白不怕黑2 小时前
Python Socket编程:实现简单的客户端-服务器通信
服务器·网络·python
君鼎5 小时前
muduo库TcpServer模块详解
linux·网络·c++
开***能5 小时前
包装设备跨系统兼容:Profinet转Modbus TCP的热收缩包装机改造方案
服务器·网络·tcp/ip
zyp2468105 小时前
深入理解TCP与UDP:协议对比、头部结构与连接管理
网络协议·tcp/ip·udp
卡戎-caryon5 小时前
【MySQL】02.数据库基础
linux·网络·数据库·mysql·存储引擎
技术宝哥5 小时前
从另一个视角理解TCP握手、挥手与可靠传输
网络·网络协议·tcp/ip
李白你好5 小时前
H3C网络设备(交换机、路由器、防火墙)常用命令整理
运维·网络·智能路由器
終不似少年遊*6 小时前
【从基础到模型网络】深度学习-语义分割-基础
网络·人工智能·深度学习·语义分割·卷积·上采样