作者:一天  首发公众号:网络之路博客(ID:NetworkBlog)

前言

前面讲解了一个网址访问中的通信过程,接下来几篇来把这个过程里面一些细节的地方讲解下,这些完毕后就开始正式进入路由交换的内容了。相信大家都玩过单机游戏,记得博主最早开始喜欢玩像CS、半条命、帝国时代、魔兽争霸3、英雄无敌这些单机游戏,后来选了计算机专业后,为了更好的学习在第二学期购买了台笔记本,中午跟晚上就喜欢跟宿舍的人一起玩这种联机游戏,下面就从这样的故事来进入今天的主题内容。

我们能接触到的物理层

两台电脑进行联机,那势必需要用网线把两个电脑的网卡连接起来,大家都知道,直接电脑店买一根多少米的,接在一起就完事了,但是在早期其实不是这样的,你去电脑店购买的时候,老板通常会问一句,你这个网线是用于电脑之间连接,还是电脑接其他设备,这是因为网线有两种线序标准,一种是568A,一种是568B,如果你是电脑之间连接,老板会给你做成交叉线(一头568A一头是568B),如果你是与交换机、路由器连接,老板会给你做成直通线(两头线序一样),这就是物理层带来的规范标准,采用什么物理介质,以及怎样的线路去连接,这样在使用的过程中就不会出错了。

但是现在你去购买网线的时候,老板直接问你要几米,不会在去问你是用来接什么设备的了,这是因为在现在的网络设备跟电脑网卡里面自带了一种功能,叫做自动翻转(线序自适应),设备之间能够自动的适应,不管是使用交叉还是直通线来让电脑接电脑,还是电脑接交换机、路由器都能够进行通信,这种功能可以看成是技术的进步,给施工人员减轻了很大的工作量。

这个小插曲了解后,终于把两台电脑进行连接,网卡设置对应IP、掩码、网关等参数后(对应的这些参数,在下一篇会讲解)就可以开始联机一起玩了,这种连接的形式,就是常听到的局域网(LAN),并且可以发现很多游戏上面写着局域网联机。

慢慢的随着宿舍的电脑增加,一个电脑只有一个网卡,就没办法进行两台以上的组网了,不同时间段接触网络的朋友,可能解决的办法不一样,在早期的时候,其实是并没有交换机的设备的,而是一种叫做HUB的物理层设备(集线器),它有多个接口,可以提供给不同设备进行连接,这样解决了多台电脑之间局域网连接的问题,但是集线器有几个很大缺点。

缺点一:广播模式(广播域)

除了打游戏以外,大家平时也会共享一些学习、娱乐的资料,按正常逻辑来说,A发一个文件给D,B跟C是不会收到的,但是在集线器里面B跟C也会收到,当A把数据发送出去后,集线器是一个物理层设备,它不会对以链路层做任何的解封装操作,只会将接收到的物理信号进行放大,把A这个口收到的数据从其他口广播出去,这个就叫做广播域。(相当于村里或者学校的广播站,大家都能听到,在一个广播的范围内。)

最终的结果就是A本来想给D单独发的,结果B跟C也收到了,虽然B跟C不会看里面实际的内容(因为从解封装的过程发现MAC地址并不是找的自己,就会丢弃),但是在安全性上面存在很大的隐患,以及会浪费不必要的链路资源。

缺点二:冲突域

同样的集线器(HUB)只是一个信号放大器以及半双工的工作方式,收到一个数据后是直接发送,不做缓存(它也没有这个机制),这就会出现一个问题,在同一时间只能有一台电脑发送数据给HUB处理,比如上图,A与D同时想发送文件给C,HUB收到后就会产生冲突,这个就叫做冲突域。(冲突域这个问题了解就行,在现在的设备里面已经解决了这个问题。)

缺点三:共享带宽

集线器(HUB)内部结构是通过一根总线连接起来的,所有的接口都是共享这总线的带宽,如果总线是10M,那么这个集线器的总速率就是10M,那这个时候如果接了4台终端,那么每台终端平均分配的带宽则是10/4=2.5M,终端越多速率就越低。

至此呢,宿舍一群人总算可以愉快的一起玩游戏,但是传输文件资料的时候,通常就把集线器的带宽给占满了,其余电脑没办法使用,为此呢很苦恼。(这里介绍这里多集线器的事情,只是想大家了解下网络设备的发展史,以及引入出后面我们要学习的设备,这样大家印象会深刻些,集线器是在如今看是已经是一个历史的产物了。)

既然Hub这么不靠谱,在当时候又没有更好的设备去取代,所以这种情况下,数据链路层是定义了一些规则,来尽量解决这个Hub带来的问题。(这里说明下,数据链路层里面协议非常多,本次课程内容出发跟重点都是讲解企业组网,重点放在局域网这块,局域网目前使用的就是以太网协议,后面会介绍,这里先说明下,因为很多朋友可能看过很多初学的文档教材,里面会介绍链路层很多的协议,会弄的有些乱。)

规则一:谁先发,谁后发

上面提到过,在Hub的环境下,只要有两台设备同时发送数据,就会产生冲突,在二层以太网中引入了一个机制,CSMA/CD(载波侦听多路访问/冲突检测),这个机制规定了,接在Hub下的终端不停的检测共享线路的状态,如果目前空闲,则发送数据,如果检测有人在发送,则等待一段时间后继续检查,整体的原理就是,先听后发,边发边听,冲突停发,随机延时后重发。(可以看成我们的红绿灯,同样有多个方向的路径,如果没有规则,那出现事故的几率是不是就大很多了)

规则二:这个数据是谁发送出来的,谁来接收

规则三:如果这个数据帧在发送过程中,出现了错误,收到后怎么办?(二跟三都在下面统一回答)

不知道大家有没有仔细观察过,不管是个人PC的网卡、光猫、路由器、服务器都有一个MAC地址,这是网卡厂家出厂的时候就已经烧录在里面了,也被称为硬件地址。MAC地址在数据链路上作为设备的地址标识符,需要确保在网络中的MAC地址是唯一的,这样才能够正确的识别到数据链路上的设备。

MAC地址由6个字节组成,前面三个字节表示厂商唯一标识符(比如图上面的44-8A-5B),不同网卡厂商都有特定的组合,后三个字节由厂家自己进行分配,这样能够保证厂家生产出来的网卡MAC地址不会相同。

由于MAC地址太长了,有6个字节(Byte),而一个字节=8个比特(bit),由0跟1组成,比如上面的物理地址是44-8A-5B-D9-91-D9,如果说换算成二进制则为01000100-10001010-01011011-11011001-10010001-11011001,不要说非业内人士,就是业内人士看到这一串二进制比特也得看迷糊了,所以为了方便查看,各个厂家的MAC地址都统一用十六进制来表示,并且不同的操作系统表示的方式不太一样,这个在后续会慢慢的遇到。

 MAC地址在以太网中有什么用呢?

在如今的我们局域网中,使用的协议是以太网Ⅱ协议,属于数据链路层中的其中一种协议,在早期的时候有线局域网有多个协议同时存在竞争的,像ATM、令牌环、FDDI,这些协议带来的产品要么价格贵、要么速率低,随着以太网推出100M标准后,进入快速以太网时代,这个时候以太网得到了突飞猛进的市场支持跟占有率,慢慢的称为主流,紧接着推出来了千兆以太网、以及万兆,至今在局域网中能看到的主流协议就是以太网了,目前使用的是第二代,也称为以太网Ⅱ。以太网是一个典型的多路访问的网络,跟上面宿舍一样,A、B 、C、D都接在Hub上面,都能够互相进行访问,而不是说只能访问某一个,那就带来了一个问题,那么A、B、C、D它怎么识别这个数据帧是给自己的呢?又是谁发送的呢?,这个就是以太网中MAC地址的作用,能够根据这个地址定位到某个具体的终端设备,因为MAC地址具有唯一性,下面来看下以太网Ⅱ的数据帧格式。

以太网Ⅱ的数据帧格式

  • 前导码(     Preamble )

前导码由 7 个字节组成,每个字节固定为 10101010 。之后的 1 个字节称为帧起始定界符,这个字节固定为 10101011 。这 8个字节表示以太网帧的开始,也是对端网卡能够确保与其同步的标志。帧起始定界符的最后两位比特被定义为 11 ,作用是告诉接收方进行同步并做好接收数据帧的准备,这里说下,这个是网卡会完成这部分的操作,知道有这个存在就行。(后很多教材里面不会把前导码这个字段标识出来)

  • 目的MAC地址(Destination     address)

由六个字节组成,明确说明这个数据帧是交给谁的(要访问的目的终端设备)

  • 源MAC地址 (Source     address)

由六个字节组成,标明这个数据帧是谁发的(发起这个数据的源设备)

  • 类型(Type)

由2个字节组成,表明了上一层的协议类型,可以让接收方知道上一层使用的什么,用对应的协议进行读取。(这里是不是解答了第二篇里面最后问道的其中一个问题了,在数据帧里面会标明上层的协议,而不用等解封装后到了上一层才知道)

  • 数据(Data)

实际的数据内容,数据帧能够容纳的最大数据范围是46~1500个字节,如果说数据部分不足46个字节,会进行填充,满足最小的长度要求。

  • FCS ( Frame Check     Sequence ) CRC

用于校验除前导码以太的所有帧信息,保证传输的帧的完整性和正确率,如果发现数据帧不完整或者错误,就直接丢弃,不交给上层处理,减少没必要的消耗。(这个就是规则三里面的,由FCS来解决出现了错误后怎么办的问题)

交换机的出现

Hub的问题上面都知道了,Hub本身的工作模式还是最大的问题,一旦局域网的终端机器增多,那么冲突的几率就越大,即使有了这些机制的出现,可以避免冲突,但是增加了等待延时,糟糕的情况就是主机有个很大的文件在传输,那么其他的终端设备就得一直等待传输完毕,使用效率非常低下,这样的设备满足不了市场的需求,这个时候交换机(switch)就出现了,交换机跟HUB有本质上面的区别。

(1)能够读取数据帧

Hub工作在物理层的设备,而交换机是工作在数据链路层以及以上的设备,它是具有读取数据帧的功能的,并且能够使用以太网协议,这样就算数据帧有错误的地方,可以通过FCS来进行校验,有问题的直接丢弃,而Hub则不行,直接就广播出去了。

(2)工作在全双工以及独立的接口硬件,速率得到了提升

Hub上面介绍过是工作在半双工,它只有物理电信号放大的作用,所以导致了冲突域的出现,而交换机不一样,从内部结构就改变了这个问题,它把每个接口独立出来,有单独的芯片处理,把每个口之间给独立出来了,好处是(1)1口给2口发送数据的时候,不会影响到其他接口,隔离了冲突域,并且,其他口也可以同时发送数据。(2)每个口可以工作在全双工模式,可以同时接收与发送数据  (3)带宽不在是跟Hub一样,共享的形式了,比如交换机是百兆交换机,那么每个接口都可以独享100M,如果交换机是千兆,每个接口则可以独享1000M。这样就解决了局域网规模增大,由于冲突带来的问题,并且带宽也得到了提升。

(3)具有学习地址的功能

Hub它收到一个数据的时候是直接广播到其他接口,这种模式显然影响整个网络,安全隐患大,交换机改变了这种模式,由于它工作在链路层,也使用了以太网协议,它能够去学习MAC地址,并且通过学习把它记录在自己的数据表中,这样交换机就知道,哪个口是对应哪个MAC了,当A去访问D的时候,交换机收到这样一个数据帧后,读取到里面的目的MAC是发给D的,D在4号接口,直接交给D的接口即可,而不用把数据从其他接口广播的形式发送了。

至此呢,交换机从取代集线器开始到如今一直在企业网中使用,并且在如今的网络设备中,交换机不在是单纯的归纳到数据链路层了,因为在企业网中还有高级点的三层交换机,能处理IP数据包,以及能读取四层的端口号信息,但是核心的理念还是不变的,这些我们在正式进入交换机篇的时候会详细讲解。

知识点扩充

(1)半双工跟全双工

这个作为了解即可,现在的网络环境正常情况下都是工作在全双工,半双工是指数据在传输过程中同时只能像一个方向传输,要么上传要么下载(Hub设备),就好比一个单车道的路,同时只能一辆车过去,或者是过来,如果两边同时通过,那么就在某个点就出现了冲突了。全双工指交换机可以发送数据的同时也能接收数据,这样可以得到更高的传输效率,没有冲突、速度快、延迟小,就好比双车道上,来来往往的车辆互不影响。

(2)总结下Hub与交换机的特点

Hub与交换机的工作原理跟特点其实上面都已经介绍过了,这里就在举一个有点接近的比喻,Hub有点类似于一个大的办公区域,这个时候经理有事情跟老板沟通,势必会让其他员工分心,想听听有什么内容,这样就影响了员工的办公效率,同时也没有私密性,员工也不能在老板谈话的时候去打扰它,这样会造成冲突。

慢慢的公司发展起来了,这里交换机还是作为一个大的办公区域,高层人员都有了独立的办公室,想要找到某个人沟通,只需要去往对应的门牌号(MAC地址)就能找到对应的人进入房间沟通,不会影响到其他人,办公室之间也不会相互冲突。

(3)关于速率问题(Bye/bit)

这个属于一个物理层介质的单位问题,不知道大家有没有发现过,比如我们电脑里面的文件大小单位都是MB、GB,这个属于存储以字节作为单位,但是在我们学习的网络中,是以最小的比特做单位的,1字节=8比特,所以你可能会困惑,明明我拉了条100M的带宽,但是实际在下载的时候怎么只能达到10~12MB左右,这就是因为带宽的单位用的是比特,而不是字节,而下载数据用的单位是字节,中间相差8倍,这里作为一个补充了解下,后续在换算或者做某些带宽限制的时候用的上。

(4)关于每一层数据的称呼

数据的发送与接收都是一个封装与解封装的过程,每一层数据都有不同的称呼,在物理层叫做比特,在数据链路层叫做帧。(其他层面的介绍到了会进行说明,这个了解即可)

遗留下来的细节问题(思考下)

  • 在上文提到的网卡设置IP地址、掩码、网关的参数,有什么作用呢?已经有了MAC地址为什么还要IP地址呢?(下一篇关键内容)

  • A发送文件给D,在初始化的情况下,A怎么就能够知道D的MAC就是这个呢?(下几篇关键内容)

交换机它是如何学习到A、B、C、D的MAC地址的呢?(交换机篇会详细讲解)

  • 交换机的一个接口能否学习到多个MAC呢,那假设移动位置后,交换机会怎么处理?(交换机篇会详细讲解)

文章版权归网络之路博客/网络之路Blog(公众号/其他平台同名,)所有,转载请标明出处,谢谢,交流群可以加个人微信ciscohuaweih3c,博主拉你进群。

介绍
《华为华三企业网路由交换实战系列(基础+入门版)》是博主原创的针对华为华三组网系列应用部署为主的系列课程,结合实际环境出发,加上了博主部署经验以及会遇到哪些问题等进行综合,做到学以致用,给各位看官朋友一个不一样的学习体验。

作为初学者,物理层与数据链路层要了解哪些相关推荐

  1. 【计算机网络】网络层 : 网络层设备 ( 路由器 | 输入端口处理 | 输出端口处理 | 物理层、数据链路层、网络层 设备对比 | 路由表 与 路由转发 )

    文章目录 一.路由器 二.路由器 输入端口处理 三.路由器 输出端口处理 四.物理层.数据链路层.网络层 设备对比 五.路由表 与 路由转发 一.路由器 "路由器" 概念 : 路由 ...

  2. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    阅读目录 一.网络编程 一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想 ...

  3. 物理层、数据链路层间的PHY、MAC、MII、RMII、SMII、GMII、RGMII以及I2S总线、SFP接口

    物理层与数据链路层间的PHY.MAC.MII.RMII.SMII.GMII.RGMII 一.PHY(Physical Layer,物理层) 二.MAC(Media Access Control.媒体访 ...

  4. 网络通信原理与IP地址的分配原理,网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

    互联网协议入门 介绍:https://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html 每一层要进行通信,每一层都 ...

  5. OSI七层模型详解物理层、数据链路层、网络层、传输层.....应用层协议

    OSI七层模型详解(物理层.数据链路层.网络层.传输层.....应用层协议与硬件) OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型 ...

  6. 关于CAN和CANFD物理层和数据链路层的对比分析

    关于CAN和CANFD物理层和数据链路层的对比分析 物理层:CAN和CANFD的物理层相同,只是进行了协议升级.所以硬件方面并未发生改变.需要一个CAN收发器.CAN控制器.其中CAN控制器是CAN局 ...

  7. 1. 《计算机网络》概述,物理层,数据链路层

    文章目录 第1章 概述 1.1 计算机网络的作用 1.2 互联网概述 1.3 互联网的组成 1.5 计算机网络的分类 1.6 计算机网络的性能 速率 带宽 吞吐量 时延 时延带宽积 往返时间RTT 利 ...

  8. 一二层攻击及防御(物理层、数据链路层)

    OSI参考模型介绍 开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model), ...

  9. 网络OSI七层模型详解(物理层、数据链路层、网络层、传输层.....应用层协议与硬件)

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  10. 使用CANOE scope测试物理层与数据链路层

    使用CANOE scope测试物理层与数据链路层 准备 步骤 准备 硬件:CANOE(1630).CAN Disturbance Interface(6501).PicoScope 软件:CANOE ...

最新文章

  1. 用eclipse玩转Python,让习惯java开发的童鞋拥有一个更爽的开发体验
  2. 盘点《头号玩家》里的 VR 技术,现在就能造个 Oasis 出来
  3. JAVA---AWT 图形绘制
  4. smartClient 2--可视化组件
  5. boost::mp11::mp_max_element相关用法的测试程序
  6. SVN提交,提示“remains in conflict”错误
  7. 同步(Synchronization)和异步(Asynchronous)
  8. java calendar_Java Calendar getDisplayNames()方法与示例
  9. DeepMind为明年的AAAI,准备了一份各种DQN的混血
  10. iOS UIView异步绘制实现圆角的方案
  11. ERP计划参数如何在线更新
  12. 【优化算法】混合增强灰狼优化布谷鸟搜索算法(AGWOCS)【含Matlab源码 1331期】
  13. linux网络三次握手,linux网络编程系列(四)--tcp包头、三次握手、四次挥手、状态...
  14. 如何测试GPS的RAIM功能-->如何使用GSS7000测试RAIM
  15. 万能命令免费下载百度文库任意文档
  16. 如何下载IEEE ACCESS模板
  17. win7电脑怎么录屏?如何使用电脑录屏软件
  18. 条件概率,乘法公式——概率论与数理统计(宋浩)
  19. 左宗棠:大清朝最后一棵顶梁柱
  20. 头晕和眩晕是怎样的感觉?3件小事来缓解!

热门文章

  1. 「原创」大数据岗位总结和相关书籍推荐
  2. Web Services教程
  3. PumpLinx离心泵水利仿真优化设计视频教程
  4. 大数据基础知识总结和大数据方面的核心技术
  5. css 霓虹灯转动效果,使用SVG + CSS实现动态霓虹灯文字效果
  6. ucore lab 2
  7. python 将xls、xlsx、doc、docx文件转为pdf
  8. 软件测试面试题(软通动力,博彦科技,奇虎,瑞星,中软)
  9. 绿色版的PDF格式文件转换器
  10. Python爬取哔哩哔哩视频的相关信息后续