物理层到MAC层

第一层(物理层)

?

使用路由器,是在第三层上。我们先从第一层物理层开始说。

?

物理层能折腾啥?现在的同学可能想不到,我们当时去学校配电脑的地方买网线,卖网线的师傅都会问,你的网线是要电脑连电脑啊,还是电脑连网口啊?

?

我们要的是电脑连电脑。这种方式就是一根网线,有两个头。一头插在一台电脑的网卡上,另一头插在另一台电脑的网卡上。但是在当时,普通的网线这样是通不了的,所以水晶头要做交叉线,用的就是所谓的1-32-6 交叉接法

?

水晶头的第 1、2 和第 3、6 脚,它们分别起着收、发信号的作用。将一端的 1 号和 3 号线、2 号和 6 号线互换一下位置,就能够在物理层实现一端发送的信号,另一端能收到。

?

当然电脑连电脑,除了网线要交叉,还需要配置这两台电脑的 IP 地址、子网掩码和默认网关。这三个概念上一节详细描述过了。要想两台电脑能够通信,这三项必须配置成为一个网络,可以一个是 192.168.0.1/24,另一个是 192.168.0.2/24,否则是不通的。

?

这里我想问你一个问题,两台电脑之间的网络包,包含 MAC 层吗?当然包含,要完整。IP 层要封装了 MAC 层才能将包放入物理层。

?

到此为止,两台电脑已经构成了一个最小的局域网,也即LAN。可以玩联机局域网游戏啦!

?

等到第三个哥们也买了一台电脑,怎么把三台电脑连在一起呢?

?

先别说交换机,当时交换机也贵。有一个叫作Hub的东西,也就是集线器。这种设备有多个口,可以将宿舍里的多台电脑连接起来。但是,和交换机不同,集线器没有大脑,它完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去。这是第一层物理层联通的方案。

?

第二层(数据链路层)

?

你可能已经发现问题了。Hub 采取的是广播的模式,如果每一台电脑发出的包,宿舍的每个电脑都能收到,那就麻烦了。这就需要解决几个问题:

?

  1. 这个包是发给谁的?谁应该接收?
  2. 大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则?
  3. 如果发送的时候出现了错误,怎么办?

    ?

    这几个问题,都是第二层,数据链路层,也即 MAC 层要解决的问题。MAC的全称是Medium Access Control,即媒体访问控制。控制什么呢?其实就是控制在往媒体上发数据的时候,谁先发、谁后发的问题。防止发生混乱。这解决的是第二个问题。这个问题中的规则,学名叫多路访问。有很多算法可以解决这个问题。就像车管所管束马路上跑的车,能想的办法都想过了。

    ?

    比如接下来这三种方式:

    ?

  • 方式一:分多个车道。每个车一个车道,你走你的,我走我的。这在计算机网络里叫作信道划分;

    ?

  • 方式二:今天单号出行,明天双号出行,轮着来。这在计算机网络里叫作轮流协议;

    ?

  • 方式三:不管三七二十一,有事儿先出门,发现特堵,就回去。错过高峰再出。我们叫作随机接入协议。著名的以太网,用的就是这个方式。

    ?

    解决了第二个问题,就是解决了媒体接入控制的问题,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,再返给请求的机器。

    ?

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

    ?

    这里还有一个没有解决的问题,当源机器知道目标机器的时候,可以将目标地址放入包里面,如果不知道呢?一个广播的网络里面接入了 N 台机器,我怎么知道每个 MAC 地址是谁呢?这就是ARP 协议,也就是已知 IP 地址,求 MAC 地址的协议。

    在一个局域网里面,当知道了 IP 地址,不知道 MAC 怎么办呢?靠“吼”。

    广而告之,发送一个广播包,谁是这个 IP 谁来回答。具体询问和回答的报文就像下面这样:

    为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存。当然机器会不断地上线下线,IP 也可能会变,所以 ARP 的 MAC 地址缓存过一段时间就会过期。

    ?

局域网

Hub 是广播的,不管某个接口是否需要,所有的 Bit 都会被发送出去,然后让主机来判断是不是需要。这种方式路上的车少就没问题,车一多,产生冲突的概率就提高了。而且把不需要的包转发过去,纯属浪费。看来 Hub 这种不管三七二十一都转发的设备是不行了,需要点儿智能的。因为每个口都只连接一台电脑,这台电脑又不怎么换 IP 和 MAC 地址,只要记住这台电脑的 MAC 地址,如果目标 MAC 地址不是这台电脑的,这个口就不用转发了。

?

谁能知道目标 MAC 地址是否就是连接某个口的电脑的 MAC 地址呢?这就需要一个能把 MAC 头拿下来,检查一下目标 MAC 地址,然后根据策略转发的设备,按第二节课中讲过的,这个设备显然是个二层设备,我们称为交换机

?

交换机怎么知道每个口的电脑的 MAC 地址呢?这需要交换机会学习。

?

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

?

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

原文地址:https://www.cnblogs.com/tianshug/p/12546203.html

时间: 2024-07-30 12:36:44

物理层到MAC层的相关文章

5(计算机网络)从物理层到MAC层

故事就从我的大学宿舍开始讲起吧.作为一个八零后,我要暴露年龄了. 我们宿舍四个人,大一的时候学校不让上网,不给开通网络.但是,宿舍有一个人比较有钱,率先买了一台电脑.那买了电脑干什么呢? 首先,有单机游戏可以打,比如说<拳皇>.两个人用一个键盘,照样打得火热.后来有第二个人买了电脑,那两台电脑能不能连接起来呢?你会说,当然能啊,买个路由器不就行了. 现在一台家用路由器非常便宜,一百多块的事情.那时候路由器绝对是奢侈品.一直到大四,我们宿舍都没有买路由器.可能是因为那时候技术没有现在这么发达,导

802.11 MAC层介绍(二)

上一篇: <802.11 MAC层介绍(一)> 4. MAC帧类型 在上一篇[3.1  Frame Control字段]中介绍了Type和Subtype共同决定了帧类型 而不同类型的帧MAC头部是不同的 主要有如下几种类型帧 - 管理帧(Management Frame) - 控制帧(Control Frame) - 数据帧(Data Frame) tip: 关于帧类型的详细信息请参看规范<802.11-2012.pdf> 4.1 管理帧 管理帧的基本结构如下图 4.1.1 Bea

WiFi MAC层介绍

1. 访问机制 CSMA/CA:  Carrier Sense Multiple Access with Collision Avoidance WiFi采用带冲突避免的载波监听多路访问机制来控制对传输媒介的访问 不同于以太网,WiFi没有明确的冲突碰撞检测机制 WiFi MAC层指定了如下规则来检测冲突碰撞 - 使用介质前,speaker必须指示将使用多久,通知其他潜在speakers在使用介质所需要等待的时间 - 直到前一个speaker指示的时间后,其他speaker才能使用介质 - 当收

网络协议概述:物理层、连接层、网络层、传输层、应用层详解(转载)

这篇文章主要介绍了网络协议概述:物理层.连接层.网络层.传输层.应用层详解,本文用生活中的邮差与邮局来帮助理解复杂的网络协议,通俗易懂,文风幽默,是少见的好文章,需要的朋友可以参考下 信号的传输总要符合一定的协议(protocol).比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议.协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母.比如SOS(***---*

网络协议分为哪几层---物理层,连接层,网络层,传输层,应用层详解

这篇文章主要介绍了网络协议概述:物理层.连接层.网络层.传输层.应用层详解,本文用生活中的邮差与邮局来帮助理解复杂的网络协议,通俗易懂,文风幽默,是少见的好文章,需要的朋友可以参考下 信号的传输总要符合一定的协议(protocol).比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了"敌人入侵"这一抽象信号.这样一个"狼烟=敌人入侵"就是一个简单的协议.协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字

IEEE 802.15.4协议学习之MAC层

    MAC负责建立于网络的同步,支持关联和取消关联.MAC层的安全以及控制物理信道访问机制.信道访问机制主要有以下几种:       1. 有序的物理无线信道访问机制     2. 协调器启动和维护PAN信息机制     3. 允许设备加入或者离开PAN机制     4. 分配和释放保护时隙机制 基于非竞争机制的PAN协调器的GTS来访问信道 PAN协调器利用超帧结构来限定GTS的信道时间,超帧结构如下: 在CAP期间,发送帧使用CSMA-CA来访问信道. 在CFP期间,发送至使用GTS时隙

ZigBee MAC层(上)

1. 介绍 ZigBee MAC层,即IEEE 802.15.4 MAC层,这里主要介绍了802.15.4-2003版本 MAC层处理所有对物理无线信道的访问控制,并负责下面的任务 - 为协调器生成网络信标 - 与网络信标同步 - 与PAN 网络关联和分离 - 设备安全支持 - 使用CSMA-CA机制进行信道访问 - 处理和维护GTS机制 - 在两个对等MAC实体间提供可靠链路 2. 服务 MAC层通过MCPS-SAP和MLME-SAP提供SSCS(Service Specific Conver

以太网MAC层帧格式

MAC层的硬件地址又称为物理地址或者MAC地址 IEEE02标准为局域网规定的48位的全球地址,指的是局域网上每台计算机在固化在适配器的ROM中的地址 IEEE为“0”,地址段表示单个站地址.为“1”表示组地址,进行多播. MAC地址48位 如果48位全为1,表明为广播地址 如果第8位位1,表明为组播地址 IEEE规定地址字段的第一个字节的最低位为I/G位 该位为0时,地址字段表示单个站地址. 该位为1时,表示组地址,用来进行多播 IEEE只分配前三个字节中的23为,I/G分别为0,1时,一个地

mac层到ath9k层,ath9k层到硬件层

如上图,整个 mac 层分成两个部分——UMAC 和 LMAC.LMAC 分成 MAC 下半部分和硬件抽象层. 硬件抽象层和ath9k层的连接 在hw.h中的函数struct ath_hw_ops() ath9k层和mac层的连接 在mac80211.h中函数struct ieee80211_ops()可以看到这个函数非常重要,当然如果我们想ath9k和mac层通信,可以在这个函数上直接添加对应的模块. Mac层和cfg80211通信 在cfg80211.h 中的函数struct ieee802