【图解计算机网络】物理层和MAC层的亲密关系,ubuntulinux基础教程

Hub采取广播模式,若每一台电脑发出的包,局域网内每个电脑都能收到,那就麻烦了。必须解决如下问题(MAC层要解决的):

包发给谁?谁接收?


这里用到一个物理地址 - 链路层地址。但因该层主要解决媒体接入控制,所以常被称为MAC地址

解决这个问题牵扯该层的网络包格式。

比如以太网,该层的最开始,就是目标MAC地址、源MAC地址。

大部分的类型是IP数据包,然后IP里面包含TCP、UDP,以及HTTP等。

有了目标MAC地址,数据包在链路上广播,MAC的网卡才能发现,这个包是给它的。MAC的网卡接收这个包,然后打开IP包,发现IP地址也是自己的,再打开TCP包,发现端口是自己,也就是80,而nginx就是监听80。

于是将请求提交给nginx,nginx返回一个网页。然后将网页需要发回请求的机器。然后层层封装,最后到MAC层。因为来时有源MAC地址,返回时,源MAC就变成目标MAC,返给请求的机器。

有无发送顺序?


MAC,Medium Access Control,媒体访问控制。就是控制在往媒体上发数据时,谁先发、谁后发。这个规则称为多路访问。比如如下方案:

  • 多车道

每个车一个车道,你走你的,我走我的。这叫信道划分

  • 今天单号出行,明天双号出行

这叫轮流协议

  • 不管啥事,有事儿先出门,发现特堵,就回去。错过高峰再出

这叫随机接入协议,以太网就是这种。

这就解决了媒体接入控制的问题。MAC层就是用来解决多路访问的堵车问题的。

[](htt

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

ps://blog.csdn.net/qq_33589510/article/details/118112103)发送时出错,咋办?


对于以太网,该层的最后是CRC,计算整个包是否在发送过程出错。

当源机器知道目标机器,可将目标地址放入包,若不知道呢?

一个广播的网络里面接入了N台机器,如何知道每个MAC地址是谁?即已知IP地址,求MAC地址的协议。

即:在一个局域网里,当知道了IP地址,不知道MAC咋办。

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

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

交换机

==================================================================

Hub是广播的,不管某个接口是否需要,所有Bit都会被发出去,然后让主机自行判断是否需要。

这种方式,当路上车少时没问题,但车一多,产生冲突概率就高了。把不需要的包转发过去,也属于浪费。看来Hub这种一股脑转发的设备是不行的,需要更智能的。因为每个口都只连接一台电脑,这台电脑又不怎么变更IP和MAC地址,只需记住这台电脑的MAC地址,若目标MAC地址不是这台电脑,这口就不用转发了。

所以需要知道目标MAC地址是否就是连接某个口的电脑的MAC地址。这就要一个能把MAC头拿下来,检查目标MAC地址,然后根据策略转发的设备 - 交换机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值