计算机网络学习笔记(三)-- 数据链路层

计算机网络学习笔记(一)-- 计算机网络概述
计算机网络学习笔记(二)-- 物理层
计算机网络学习笔记(四)-- 网络层
计算机网络学习笔记(五)-- 运输层

数据链路层使用的信道有两种类型:

  • 点对点信道
  • 广播信道

1. 使用点对点信道的数据链路层

  1. 数据链路和帧

    • 链路 :从一个结点到相邻结点的一段物理线路。

    • 数据链路 :把实现这些协议的硬件和软件加载链路上。
      现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

    • :点对点信道的数据链路层的协议数据单元。

    t05kPf.png
    • 点对点信道通信时的主要步骤
      1. 结点 A 的数据链路层把网络层交下来的 IP 数据报添加首部和尾部封装成帧。
      2. 结点 A 把封装好的帧发送给结点 B 的数据链路层。
      3. 若结点 B 的数据链路层收到的帧无差错,则从收到的帧中提取出 IP 数据报交给上面的网络层;否则丢弃这个帧。
  2. 数据链路层三个基本问题:

    1. 封装成帧

      就是在一段数据的前后分别添加首部(帧开始符 SOH 01)和尾部(帧结束符 EOT 04),然后就构成了一个。(数据部分 <= 长度限制 MTU)首部和尾部的一个重要作用就是进行帧定界。
      帧定界是分组交换的必然要求

      t0IK6e.png
      t0IJtP.png
    2. 透明传输

      为了达到透明传输(即传输的数据部分不会因为包含SOH和EOT而出错),在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制1B)
      透明传输避免消息符号与帧定界符号相混淆

      t0IxHA.png
    3. 差错检测

      现实通信链路中比特在传输中会产生差错,传输错误的比特占比称为误码率BER,为了保证可靠性,通常通过循环冗余检验CRC来做差错检测。
      差错检测防止无效数据帧浪费后续路由上的传输和处理资源

      循环冗余检验CRC

      ​ 在发送端将数据分组,每组 k bit,在待传送数据 M (k bit) 后添加 n 位冗余码,构成一个帧发送出去,因此一共发送 k+n bit。

      ​ 利用模二运算(不进位,不借位)计算 2^n x M / P, 即在待传送数据 M 后加 n 个0作为被除数,除以商定好的除数 P(比 n 多一位),得到的

      余数 R (比 n 少一位)即为冗余码,将其拼接到数据 M 后发送出去。为了进行检错而添加的冗余码常称为帧检验序列 FCS

      ​ 在接收端把接收到的数据以帧为单位进行 CRC 检验:把收到的每一个帧都除以同样的 除数 P(模二运算),然后检查得到的余数 R 如果在传输过程中无差错,那么经过 CRC 检验后得出的余数肯定是0

      ​ 若 M = 101001(即k = 6),除数 P = 1101, 还可表示为 P(X) = X^3 + X^2 + 1,此时被除数 2^n x M 为101001000除以 P 的余数 R 为001。因此加上 FCS 后发送的帧是 101001001。接收端被除数即为 101001001,除以除数 P 得到余数 R。若 R = 0,帧无错,接受;若 R ≠ 0,帧出错(无法判断哪一位出错),丢弃。

      在数据链 路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。

      对于通信质量良好的有线传输链路,不要求数据链路层向上提供可靠传输的服务。改正差错的任务就由上层协议(例如,运输层的 TCP 协议)来完成。 对于通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,数据链路层向上提供可靠传输的服务。

2. 点对点协议 PPP

PPP 协议就是用户 计算机和 ISP 进行通信时所使用的数据链路层协议。
tBaXtI.png

在 TCP/IP 协议族中,可靠传输由运输层的 TCP 协议负责,因此数据链路层的 PPP 议不需要进行纠错,不需要设置序号,也不需要进行流量控制。 PPP 协议不支待多点线路 (即一个主站轮流和链路上的多个从站进行通信),而只支持点对点的链路通信。此外, PPP 协议只支持全双工链路

  1. PPP 协议的组成

    • 一个将 IP 数据报封装到串行链路的方法。
    • 链路控制协议 LCP (Link Control Protocol),用来建立、测试、配置数据链路连接。
    • 网络控制协议 NCP (Network Control Protocol),用来支持不同的网络层协议。
  2. PPP 协议帧格式

    tBPn9U.png

    若出现连续两个标志字段,就表示这是一个空帧,应当丢弃。

    • 首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的)。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始或结束。
    • 首部中的地址字段A规定为0xFF(即11111111),没有携带PPP协议帧的信息。
    • 首部中的控制字段C规定为0x03(即00000011),没有携带PPP协议帧的信息。
    • 首部中的2字节的协议字段:
      (1) 当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。
      (2) 当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。
      (3) 当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。
    • 信息部分不超过1500字节。
    • 尾部中的第一个字段(2个字节)是使用CRC的帧检验序列FCS。

    透明传输的实现方法:

    • 当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。

    字节填充——PPP使用异步传输

    • 当 PPP 用在异步传输时,就使用一种特殊的字符填充法:将每一个 0x7E字节变为(0x7D, 0x5E),0x7D转变成为(0x7D, 0x5D)。ASCII 码的控制字符(即数值小于 0x20 的字符),则在前面要加入0x7D,同时将该字符的编码加以改变。

    零比特填充——PPP使用同步传输

    • 只要发现有5个连续的1,则立即填入一个0。接收端把5个连续的1后的0比特删除。
  3. PPP 协议工作状态

    链路静止 -- 建立物理层 -- 链路建立 -- PC发LCP -- NCP分配IP地址 -- 链路打开,网络层建立。(释放时倒过来)

    tBFzh6.png

3. 使用广播信道的数据链路层

广播信道可以进行一对多的通信,局域网具有广播功能,局域网上的主机可共享连接在局 域网上的各种硬件和软件资源。
  1. 局域网的数据链路层(局域网的数据链路层被拆分为了两个子层)

    • 逻辑链路控制LLC子层:与传输媒体无关。
    • 媒体接入控制MAC子层:与接入到传输媒体有关的内容都放在 MAC 子层,和局域网都对 LLC 子层来说是透明的。
  2. 适配器(网卡)的作用

    包含了***数据链路层***及***物理层***这两个层次的功能。

    tBAyLQ.png
  3. CSMA/CD 协议

    仅当数据帧中的目的地址与适配器 ROM 中存放的硬件地址(MAC 地址)一致时,该适配器才能接收这个数据帧。适配器对不是发送给自己的数据帧就丢弃。

    以太网采用 CSMA/CD协议(载波监听多点接入/碰撞检测) 的方式来协调总线上各计算机的工作。具有两个特点:

    • 提供的服务是尽最大努力的交付,即不可靠的交付。
    • 双向交替通信(半双工)。
    CSMA/CD协议的要点:
    • 多点接入就是计算机以多点接入(动态媒体接入控制)的方式连接在一根总线上。

    • 载波监听就是”检测信道”,不管在发送前,还是在发送中,每个站都必须不停地检测信道。在发送前检测信道,是为了获得发送权。在发送中检测信道,是为了及时发现有 没有其他站的发送和本站发送的碰撞。即碰撞检测。

    • 碰撞检测就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。

    把总线上的单程端到端传播时延记为 τ ,A 发送数据后,最迟要经过 才能知道自己发送的数据和其他站发送的数据有没有发生碰撞。

    tBZtZ4.png

    电磁波在 1km 电缆的传播时延约为 5µs

    以太网的端到端往返时间 称为争用期***,又叫碰撞窗口* 。经过争用期这 段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

    以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。

    • 协议规定了基本退避时间为争用期 , 具体的争用期时间是 51.2 µs 。对于 10 Mbit/s 以太网,在争用期内可发送 512 bit, 即 64字节。也可以说争用期是 512 比特时间。可以直接使用比特作为争用期的单位。争用期是 512bit, 即争用期是发送 512bit 所需的时间。

    • [0,1, …,(2k -1)] 中随机取出一个数,记为 r 。重传应推后的时间就是 r 倍的争用期

      k=Min[重传次数, 10]
    • 当重传达 16 次仍不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。

    最短帧长 64 字节,即 512 bit 。如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于 64 字节。凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。只要收到了这种无效帧,就应当立即将其丢弃。

    强化碰撞:

    ​ 当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送 32 比特或 48 比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。

    tBnhWR.png

    ​ 总线被占用的时间是 TB+ TJ + τ

    规定帧间最小间隔为 9.6 µs, 相当于 96 比特时间。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

    总结:
    tBuw7D.png
  4. 以太网的信道利用率

    a 是以太网单程端到端时延 与帧的发送时间 To 之比:

    tBMVs0.png

    当 a -> 0 时表示只要一发生碰撞,就立即可以检测出来,并立即停止发送,因而信道资源被浪费的时间非常非常少。反之,参数 a 越大,表明争用期所占的比例越大,使得信道利用率明显降低。当数据率一定时,以太网的连线的长度受到限制(否则 τ 的数值 会太大),同时以太网的帧长不能太短(否则 τ 的值会太小,使 To 值太大)。

    tBQccR.png

    只有当参数 a 远小于 1 才能得到尽可能高的极限信道利用率。

4. 以太网的MAC层

  • MAC地址
    MAC地址又叫做硬件地址或物理地址,实际上就是适配器地址或适配器标识符EUI-48。高位24位:注册管理机构 RA,组织唯一标识符 OUI,低位24位:由厂家自行指派,称为扩展标识符。

    路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。

  • MAC帧的格式

    tBGEQJ.png

    以太网V2的MAC帧由五个字段组成。前两个字段分别为6字长的目标地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。后面数据字段46~1500字节,帧检验序列FCS字段4个字节(使用 CRC 检验)。

    接收方可以很容易地通过发送方网络适配器的接口上的电压是否变化找到以太网帧的结束位置。在这个位置往前数 4 字节 (FCS 字段长度是 4 字节),就能确定数据字段的结束位置。因此MAC帧首部中不需要帧长度字段。

    当数据字段的长度小千 46 字节时, MAC 子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。

    为了接收端迅速实现位同步,从 MAC 子层向下传到物理层时还要在帧的前面插入8字节(由硬件生成),它由两个字段构成。

    • 第一个字段是 个字节的前同步码 (1 交替码),它的作用是“实现位同步”(比特同步)。
    • 第二个字段是帧开始定界符,定义为 10101011 。它的前六位的作用和前同步码一样,最后的两个连续1的就是告诉接收端适配器: “MAC 帧的信息马上就要来了,请适配器注意接收'。MAC 帧的 FCS 字段的检验范围不包括前同步码和帧开始定界符。

    无效的 MAC 帧:

    • 帧的长度不是整数个字节;
    • 用收到的帧检验序列 FCS 查出有差错;
    • 收到的帧的 MAC 客户数据字段的长度不在 46 ~ 1500 字节之间。

    对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

5. 扩展的以太网

扩展的以太网在网络层看来仍然是一个网络。
  1. 在物理层扩展以太网

    扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器。

    光纤调制解调器的作用就是进行电信号和光信号的转换

    tBYkr9.png

    优点:

    • 跨网络通信。
    • 扩大了以太网覆盖的地理范围。

    缺点:

    • 扩大了碰撞域。
    • 不同的局域网使用不同的以太网技术(如数据率不同),那么就不可能用集线器将它们互连起来(速率向下兼容)。
  2. 在数据链路层扩展以太网

    网桥(自学习算法)
    以太网交换机(第二层交换机 ),即多接口网桥,强调这种交换机工作在数据链路层。
    • 特点

      1. 全双工方式通信。
      2. 并行。
      3. 相互通信的主机都是独占传输媒体,无碰撞地传输数据。
      4. 接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。
    • 自学习功能

      tBt5p8.png

      ​ A 先向 B 发送一帧,从接口 1 进入到交换机。交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧(在 MAC 地址这一列中,找不到目的地址为 B 的项目)。然后,交换机把这个帧的源地址 A 和接口 1 写入交换表中并向除接口,以外的所有接口广播这个帧。C 和 D 丢弃该帧,因为目的地址不对。只有 B 才收下这个目的地址正确的帧。此即为过滤

      ​ 以后不管从哪一个接口收到帧,只要其目的地 址是 A, 就应当把收到的帧从接口 1 转发出去。

      ​ B 向 A 发送帧时,交换机把这个帧的源地址 B 和接口 3 写入交换表中,此时不再广播,因为交换表中已经存在 A 的地址。

  3. 虚拟局域网VLAN

    每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个 VLAN,而与物理位置无关。

    tBUZan.png

    VLAN 标记的前两个字节总是设置为 0x8100 (即二进制的 10000001 00000000) ,称为 IEEE 802.1Q 标记类型。

    VLAN 标识符 VID(VLANID) ,它唯一地标志了这个以太网帧属于哪一个 VLAN。

    由于用于 VLAN 的以太网帧的首部增加了 4 个字节,因此以太网的最大帧长从原来的 1518 字节 (1500 字节的数据加上 18 字节的首部)变为 1522 字节。

6. 高速以太网

此部分转载自CSDN,原文地址(如侵删)

1. 100M以太网

快速以太网(100M)标准

名称

传输介质

网段最大长度

特点

100BASE-TX

铜缆

100m

两对UTP5类线或屏蔽双绞线

100BASE-T4

铜缆

100m

四对UTP3类线或5类线

100BASE-FX

光纤

2000m

两根光纤,发送和接收各用一根,全双工,长距离

(1)100BASE-T是在双绞线上传送100Mb/s基带信号的星型拓扑的以太网,仍使用IEEE802.3的CSMA/CD协议,它又称为快速以太网(FastEthernet)

(2)使用交换机组建的100BASE-T以太网,可在全双工方式下工作而无冲突发生。因此,CSMA/CD协议对全双工方式工作的快速以太网是不起作用的因为其帧格式和以太网一样,所以依然称交换机组成的网络为以太网

(3)以太网的最短帧与带宽和链路长度有关。100M以太网比10M以太网速率提高10位,要想和10M以太网兼容,就要确保最短帧也是64字节,那就将电缆最大长度由1000m降到100m,因此以太网的争用期依然是51.2μs,最短帧依然是64字节。

2. 吉比特以太网

吉比特以太网(1000M)标准

名称

传输介质

网段最大长度

特点

1000BASE-SX

光缆

550m

多模光纤(10和62.5μm)

1000BASE-LX

光缆

5000m

单模光纤(10μm)、多模光纤(50和62.5μm)

1000BASE-CX

铜线

25m

使用两对屏蔽双绞线电缆STP

1000BASE-T

铜线

100m

使用四对UTP5类线

(1)吉比特(1000M)以太网的特点

  ①允许在1Gb/s下全双工和半双工两种方式下工作。

  ②使用IEEE802.3协议规定的帧格式

  ③在半双工方式下使用CSMA/CD协议全双工方式不需要使用CSMA/CD协议

  ④与10BASE-T和100BASE-T技术向后兼容。

(2)“载波延伸”

 

  ①吉比特以太网工作在半双工时,就必须进行碰撞检测。数据速率提高了,要想和10M以太网兼容,就要确保最短帧也是64字节,这只能减少最大电缆长度,以太网最大电缆就要缩短到10m,短到几乎没有实用价值。

  ②吉比特以太网为了增加最大传输距离将最短帧由64字节增加到512字节

  ③如果数据帧不超过512字节,则在FCS域后面添加“载波延伸”域,当主机发送完短数据帧后,继续发送载波延伸信号,冲突信号传回来时,发送端就能感知到了。

(3)分组突发

 

  ①如果发送的数据帧都是小于64字节的短报文时,那么链路的利用率就会很低,因为“载波延伸”域占用了大量的带宽。于是,千兆以太网引入了“分组突发”机制来改善这个问题。

  ②当很多短帧要发送时,第一个短帧采用“载波延伸”方法进行填充后面的一些短帧可以一个接一个发送它们之间只要留必要的帧间最小间隔即可。这样就形成一串分组突发,直到达到1500字节或稍多一些为止。从而提高链路的利用率。

  ③“载波延伸”和“分组突发”仅用于千兆以太网的半双工模式;而全双工模式不需要使用CSMA/CD协议,也就不需要这两个特性。

3. 10吉比特以太网

万兆以太网标准

名称

传输介质

网段最大长度

特点

10GBASE-SR

光缆

300m

多模光纤(0.85μm)

10GBASE-LR

光缆

10km

单模光纤(1.3μm)

10GBASE-ER

光缆

40m

单模光纤(1.3μm)

10GBASE-CX4

铜线

15m

使用四对双芯同轴电缆

10GBASE-T

铜线

100m

使用4对6A类的UTP双绞线

(1)10GE的帧格式与10Mb/s、100Mb/s和1Gb/s以太网的帧格式完全相同。10GE还保留了802.3标准规定的了以太网最小和最长帧长。

(2)由于数据率很高,10GE不再使用铜线而只使用光纤作为传输媒体。它使用长距离(40km)的光收发器与单模光纤接口,以便能够工作在广域网和城域网的范围。

(3)10GE只工作在全双工模式,因此不存在争用问题,也不使用CSMA/CD协议。这就使用10GE的传输距离不再受碰撞检测的限制而大大提高了