计算机网络读书笔记——数据链路层(4)

来源:互联网 发布:推荐个淘宝卖烟的店铺 编辑:程序博客网 时间:2024/06/08 18:48

以太网的两个标准

  • DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约
  • IEEE的802.3标准。

DIX Ethernet V2标准与IEEE的802.3标准只有很小的差别,因此可以将802.3局域网简称为“以太网”,但严格来说,“以太网”应当是指符合DIX Ethernet V2标准的局域网。

以太网与数据链路层的两个子层

为了使数据链路层更好适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层:
1. 逻辑链路控制LLC(Logical Link Control)子层
2. 媒体接入控制MAC(Medium Access Control)子层

局域网对LLC子层是透明的
与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关,由于TCP/IP体系经常使用的局域网是DIX Ethernet V2而不是802.3标准中的几种局域网,因此现在802委员会制定的逻辑链路控制子层LLC(即802.2标准)的作用已经消失了,所以现在很多厂商生产的适配器(网卡)上就仅装有MAC协议而没有LLC协议。

以太网提供的服务

以太网提供的服务是不可靠的交付,即尽最大努力的交付。当接收站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层(即传输层)来决定。如果高层(传输层)发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当做一个新的数据帧来发送。

星型拓扑

传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。不用电缆而使用无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收,这种以太网采用星型拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub),设备与集线器之间通过两对双绞线的RJ-45水晶接头相连,每个设备与集线器连接的距离不得超过100米。集线器起到了信号放大的作用,集线器可以与集线器相互连接。
以太网星型拓扑

集线器的一些特点

使用集线器的以太网在逻辑上仍是一个总线网,各工作站的网卡执行CSMA/CD协议,集线器很像一个多接口的转发器,集线器工作在物理层,它的每个接口只进行简单的转发比特,而不进行碰撞检测。下图为一个三接口的集线器,可以发现每一个工作站(设备)通过网卡(适配器)发送的数据(电信号形式)对应着其余所有网卡的收数据端(其余某端装有抓包工具的话可以捕获数据)。集线器的工作原理非常简单,只不过当接口变多时,对应的线路也会越多而已。
三接口集线器

10BASE-T星形以太网标准(即就是IEEE制定的802.3i标准)

国际互联网组织给用集线器连接的以太网定义了一个标准为10BASE-T,**10BASE-T中的10代表的是10兆(10Mbps=10Mbit/s)的带宽,BASE代表传输的信号为基带信号(又称数字信号),T代表使用双绞线联网的。**10BASE-T的通信距离稍短,每个计算机到集线器的距离不超过100米,这种10Mb/s速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性,同时它为以太网在局域网中的统治地位奠定基础。除此之外还有:100BASE-FX(百兆以太网,传输基带信号,FX代表光纤),100BASE-T,100BASE-T4等等。

以太网的信道利用率

假定一个10Mb/s以太网同时有10个站在工作,那么每一个站所能发送数据的平均速率似乎应当是总数据率的1/10(即1Mb/s)。其实不然,因为多个站在以太网上同时工作就可能会发生碰撞。当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到100%。一个站在发送帧时出现了碰撞,经过一个争用期2τ后(τ是以太网单程端到端传播时延),可能又出现了碰撞。这样经过若干个争用期后,一个站发送帧才能成功。
以太网信道被占用情况

由上图可知,成功发送一个帧需要占用信道的时间是T0+τ,比这个帧的发送时间多一个τ,因为数据帧在发送方(传输媒体的一端)看来虽然用了T0时间发送完毕了,但是对于接收方(传输媒体的另一端)来说并不是实时就可以接收到的,因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播,而数据的单程端到端传播时延是τ,所以必须经过时间T0+τ后,当一个站的最后一个比特发送后通过传输媒体传输到另一端后,以太网的传输媒体才完全进入空闲状态,才能允许其他站发送数据。由上图可知要提高信道利用率,就必须减小τT0的比,在以太网中定义了参数a,它是以太网单程端到端传播时延τ与帧的发送时间T0之比:

a=τT0

要提高信道利用率,首先要减小a的值,即减小τ,增大T0。因此必须限制以太网的连线长度,这样可以使端到端的传播时延τ减小,同时以太网的数据帧不能太短,这样可以增加帧的发送时间T0。现在考虑一种理想化的情况,假定以太网各个站发送数据不会产生碰撞(这显然已经不是CSMA/CD,而需要使用一种特殊的调度方法),并且能够非常有效的利用网络的传输资源,即总线一旦空闲就有某一个站立即发送数据。这样,发送一个帧占用线路的时间是T0+τ,而帧本身的发送时间是T0。于是我们可计算出极限信道利用率Smax为:
Smax=T0T0+τ=11+a

虽然实际的以太网不可能有这样高的极限信道利用率,但只有当参数a远小于1才能得到尽可能高的极限信道利用率。反之,若参数a远大于1(即每发生一次碰撞,就要浪费相对较多的传输时间),这时实际的信道利用率就更小了。


数据链路层的MAC子层

MAC层的硬件地址(MAC地址)

以太网组成的网络中的每一台计算机他们的网卡都有一个全球唯一地址,这个地址在网卡生产时就已经嵌入到芯片当中了,网卡的这个地址就称为媒体访问控制地址,又称MAC地址 。MAC地址是由48位二进制组成的(我们所看到的的是16进制表示的MAC地址),IEEE的注册管理机构RA负责向厂家分配48位MAC地址字段的前三个字节(即高位24位),地址字段中的后三个字节(即低位24位)由厂家自行指派,称为扩展标识符,最后必须保证生产出的适配器没有重复地址(全球唯一)。适配器从网络中每收到一个MAC帧就首先用硬件检查MAC帧的目的地址是否正确,也就是说MAC帧是否发送给了正确的接收方,如果检测没问题则接收该MAC帧。
“发往本站的帧”包括以下三种帧

  • 单播帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同。
  • 广播帧(一对全体),即发送给本局域网上所有站点的帧(目标MAC地址为ff ff ff ff ff ff,也就是二进制的全1)。
  • 多播帧(一对多),即发送给本局域网上一部分站点的帧。

MAC帧格式

以太网V2的MAC帧格式

常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准(即以太网V2标准,如上图),另一种是IEEE的802.3标准。这里只介绍使用最多的以太网V2的MAC帧格式。以太网V2的MAC帧比较简单,由五个字段组成,前两个字段分别为6字节长的目的地址源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。例如当类型字段的值是0x0800时,表示上一层使用的是IP数据报,第四个字段是数据字段,其长度在46到1500之间,因为前三个字段和最后一个字段加起来共18个字段,而以太网的帧最短为64字节,所以数据部分最短为64-18=46字节。最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。在传输MAC帧的时候需要在MAC帧首部加上8个字节,这8个字节中前7个字节为前同步码,它的作用是:使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步,以就是“实现位同步”(位同步就是比特同步的意思)。最后1个字节是帧开始定界符,定义为10101011,它的前六位作用和前同步码一样,最后两个连续的1就是告诉接收端适配器:“MAC帧的信息马上就要来了,请适配器注意接收”。MAC帧的FCS字段的检验范围不包括前同步码和帧开始定界符。注意首部加上的这8个字节并不属于MAC帧里包括的内容,帧的内容总共就5个字段,分别是目的地址、源地址、类型、数据、FCS。若MAC帧中数据部分长度小于46个字节,MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。

无效的MAC帧

  1. 帧的长度不是整数个字节。
  2. 用收到的帧检验序列FCS查出有差错。
  3. 数据字段的长度不在46~1500字节之间。
  4. 有效的MAC帧长度为64~1518字节之间。
  5. 对于检查出的无效MAC帧就简单地丢弃,以太网不负责重传丢弃的帧。

帧间最小时间间隔

帧间最小时间间隔为9.6μs,相当于96bit的发送时间。一个站在检测到总线开始空闲后,还要等待9.6μs才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接受缓存来得及清理,做好接收下一帧的准备

原创粉丝点击