OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。

完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。

物理层

记得初中上网吧的时候,总有人喊局域网打CS啦。当时还不太知道什么是局域网,就只知道,可以不用上网,就可以组队玩游戏。

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

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

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

两台电脑之间的网络包,包含MAC层吗?当然包含,要完整。IP层要封装了MAC层才能将包放入物理层。

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

怎么把三台电脑连在一起呢?

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

数据链路层

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

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

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

比如接下来这三种方式:

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

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

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

解决了第二个问题,就是解决了媒体接入控制的问题,MAC的问题也就解决好了。这和MAC地址没什么关系。

接下来要解决第一个问题:发给谁,谁接收?这里用到一个物理地址,叫作链路层地址。但是因为第二层主要解决媒体接入控制的问题,所以它常被称为MAC地址

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

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

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

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

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

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

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

思考:对于物理层,其实也就无非是传输介质的区别,这里面没有太多的协议。而对于链路层,里面会涉及到mac如何寻址,交换机学习,保存路由表。以及路由表过期。

计算机网络-物理层、MAC层相关推荐

  1. 计算机网络 物理层链路层

    计算机网络 物理层 复用 课中给到的示例 检错机制 纠错码 链路层 分组太大帧装不下? 为何帧要限制大小? 以太网 链路层 tracert www.baidu.cn(xxx) 在应用层协议有限定长度标 ...

  2. 【图解计算机网络】物理层和MAC层的亲密关系

    机器有了IP,就能在网络和其他机器通信. 物理层 电脑连电脑时,需要配置这俩电脑的IP地址.子网掩码和默认网关.要想两台电脑能够通信,这三项必须配置成为一个网络,可以一个是192.168.0.1/24 ...

  3. 网络协议 3 - 从物理层到 MAC 层

        在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了.     今天,我们来认识下 物理层 和 MAC 层.     日常生活中,身为 ...

  4. 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

    目录 第一层(物理层) 第二层(数据链路层) 局域网 小结 上一节,我们见证了 IP 地址的诞生,或者说是整个操作系统的诞生.一旦机器有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 故事就从 ...

  5. 63-从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

    5.从物理层到MAC层:如何在宿舍里自己组网玩联机游戏? 开篇词 一旦机器有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 故事就从我的大学宿舍开始讲起吧. 我们宿舍四个人,大一的时候学校不让 ...

  6. 网络笔记(5) 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

    上一节,我们见证了 IP 地址的诞生,或者说是整个操作系统的诞生.一旦机器有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 故事就从我的大学宿舍开始讲起吧.作为一个八零后,我要暴露年龄了. 我 ...

  7. 第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

    上一节,我们见证了 IP 地址的诞生,或者说是整个操作系统的诞生.一旦机器有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 故事就从我的大学宿舍开始讲起吧.作为一个八零后,我要暴露年龄了. 我 ...

  8. 物理层和Mac层的区别

    仅为个人学习 物理层(Physical Layer)是计算机网络baiOSI模型du中最低的一层,位于OSI参考模型的最底层,它直接面向实际zhi承担数据传输的物理媒体(即通信通道),物理层的传输单位 ...

  9. 网络协议 3 - 物理层 和 MAC 层

    在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了.     今天,我们来认识下 物理层 和 MAC 层.     日常生活中,身为 90 后 ...

最新文章

  1. stm32 窗口看门狗学习(一)
  2. 计算机屏幕怎么睡眠状态,解决办法:显示器进入睡眠状态时如何解决问题
  3. 1.3tf的varible\labelencoder
  4. [LeetCode]819. 最常见的单词
  5. 互联网架构设计漫谈 (2)
  6. 向量叉乘公式_向量外积的高中数学运用
  7. UI设计必掌握的软件之一:Axure!
  8. web安全攻防渗透测试实战指南
  9. 2019 TIP之ReID:Learning Modality-Specific Representations for Visible-Infrared Person Re-Identificati
  10. 互联网电影院带来新突破,5G+4K’
  11. 开门的磁卡在哪里配_门禁卡能配吗?
  12. 还我血汗钱!趣店怎么了?关店130家、裁员200人、市值缩水85%!僵尸讲师、假学生......
  13. 我刚刚做了一个艰难的决定
  14. 指针变量的星号是靠近变量名还是靠近类型
  15. 区块链-链上云计算应用技术沙龙
  16. [译]搜索与优化不存在免费的午餐
  17. vs+qt 在改完ui界面后在程序中出现找不到成员变量或者ui界面不更新。
  18. 第八章以太网交换计算题及其解析[计算机网络]
  19. IOS 定位城市和切换城市
  20. java awt 仿360 进度_Android 控件进阶修炼-仿360手机卫士波浪球进度控件

热门文章

  1. bluehost 虚拟主机 php.ini,BlueHost主机设置伪静态的三种方法
  2. 岭回归(Ridge Regression)和Lasso回归
  3. Gradle7.x学习篇02 - task配置
  4. 「Adobe国际认证」让我困惑的颜色:什么是 Pantone?
  5. PHP 常见的面试题汇总
  6. NeurIPS 2022|南大腾讯提出VideoMAE:视频自监督预训练新范式
  7. 免费Android在线视频教程
  8. 2013 Mac Air 装Win7双系统问题-安装程序无法创建新的分区,也无法定位系统 Windows无法安装所需的文件,错误代码0x80070570
  9. 适合计算机专业打的游戏,有哪些适合打游戏的电竞电脑?2020电竞游戏电脑排行榜...
  10. 舍瓦正式宣布告别AC米兰 7载红黑情缘终成历史