计算机网络——数据链路层

一. 数据链路层的基本概念

1. 数据链路层的简单模型(数据发送模型)

计算机网络——数据链路层_第1张图片
计算机网络——数据链路层_第2张图片

2. 数据链路层的信道类型
  1. 点对点信道:这种信道使用一对一的点对点通信方式。
  2. 广播信道:这种信道使用一对多的广播通信方式,广播信道上的主机很多,需要专用的共享信道协议来协调主机的数据发送。
3. 链路与数字链路
  1. 链路(link)——是一条点到点的物理线路段,中间没有任何其他的交换节点。

     一条链路只是一条通路的一个组成部分。
    
  2. 数据链路(data link)——除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

     最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。
     一般的适配器都包括了数据链路层和物理层这两层的功能。
    
4. 帧

在网络层,给数据包增加了接收端和发送端的IP地址。在数据链路层里,增加了帧头、帧尾,MAC地址和校验值。
一个完整的帧包括(帧头、帧尾、物理层地址、校验值)
计算机网络——数据链路层_第3张图片

二. 数据链路层的基本问题

1. 封装成帧(framing)

就是在一段数据的前后分别添加帧头和帧尾,构成一个帧,确定帧的界限。
首部和尾部的一个重要的作用就是进行帧定界
计算机网络——数据链路层_第4张图片

2. 透明传输

可能会出现以下问题:
计算机网络——数据链路层_第5张图片
用字节填充法解决透明传输问题:
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制数1B)。
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现在数据之中,那么应该在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除前面的那一个。
计算机网络——数据链路层_第6张图片

3. 差错检测

传输过程中可能会产生bit差错:0变成1,1变成0.
在一段时间内,传输错误的比特率占所传输比特总数的比率称为误码率BER(bit error rate)。
误码率和信噪比的关系很大。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施。

循环冗余检验CRC:
除数必须比后面添加的0的位数多一位,可以是任意的二进制数。每一步运算其实是不进位的加法。下图的001就是FCS帧检验序列。接收端计算101001001(也就是原数据加上FCS)除以1101,如果商为0,意味着传输过程没有差错,就接受,否则丢弃。
计算机网络——数据链路层_第7张图片
帧检验序列FCS(frame check seqeunce):
计算机网络——数据链路层_第8张图片
计算机网络——数据链路层_第9张图片

三. 两种情况下的数据链路层

1. 使用点对点信道的数据链路层(广域网)

图示:
计算机网络——数据链路层_第10张图片

(1) 点对点协议PPP协议(point to point protocol)现用的最多的数据链路层协议
用户使用拨号电话接入因特网时,一般都是使用PPP协议
(2)PPP协议应该满足:
简单;封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;数据压缩协商;
(3)PPP协议不需要满足:
纠错;流量控制;序号;多点链接;半双工或单工连接。
(4)PPP协议的组层部分:
计算机网络——数据链路层_第11张图片
(5)PPP协议帧格式
开始、结束标志字段F = 0x7E
地址字段A = 0xFF,它并不起作用,是固定的
控制字段C = 0x03
PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。
计算机网络——数据链路层_第12张图片
(6)字节填充(类似于透明传输)
此时,信息部分是以字节为单位的。
将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E);
将信息字段中出现的每个0x7D字节转变成为2字节序列(0x7D,0x5D);
将信息字段中出现的每个ASCII码控制字符(小于0x20字符),在前面加入一个0x7D;
(7)0比特填充(类似于透明传输)
此时,信息部分是二进制流。
计算机网络——数据链路层_第13张图片
计算机网络——数据链路层_第14张图片
(8)PPP协议不使用序号和确认机制的原因:
在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理;
在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;
帧检验序列FCS字段可以保证无差错接受。

(9)PPP协议的工作状态
当用户拨号接入ISP(网络运营商)时,路由器的调制解调器对拨号进行确认,建立一条物理连接;
PC机箱路由器发送一些列的LCP(链路控制协议)分组(封装成多个PPP帧);
这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机成为Internet上的一个主机;
通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。
最后释放的事物理层连接。

2. 使用广播信道的数据链路层(局域网)

(1)局域网的拓扑(局域网的特点)
一般是星形网
计算机网络——数据链路层_第15张图片
(2)共享通信媒体
静态划分信道(麻烦):

频分复用;
时分复用;
波分复用;
码分复用;

动态媒体接入控制(多点接入):

随机接入(主要是被以太网采用);
受控接入,如多点线路探询(polling),或轮询(不采用了)。

(3)认识以太网
最初的以太网是将许多计算机都连接到一根总线上,当初认为这样连接即简单又可靠,因为总线上没有有源器件。
B向D发送数据时,总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机(A、C、E)都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。
这是一种具有广播特性的总线上实现了一对一通信。这种方式不安全。
计算机网络——数据链路层_第16张图片
(4)载波监听多点接入/碰撞检测 (以太网使用CSMA/CD协议)
CSMA/CD:Carrier Sense Multiple Access with Collision Detection
多点接入:许多计算机以多点接入的方式连接在一根总线上。
载波监听:每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;

1. 碰撞检测
碰撞检测就是计算机边发送数据边检测信道上信号电压的大小。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加);
当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;
碰撞就是冲突,碰撞检测也称冲突检测。

2. 检测到碰撞后:
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送。

3. 传播时延对载波监听的影响

计算机网络——数据链路层_第17张图片

(5)CSMA/CD的重要特性
使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工);
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

(6)争用期
最先发送数据帧的站,在发送数据帧后至多经过时间2τ(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞。
经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;

以太网的争用期:

  • 以太网的端到端往返时延2τ称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的延长,这也是为什么网线一般不超过100m;
  • 对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;
  • 以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;

最短有效帧长:

  • 如果发生冲突,一定是前64字节;
  • 由于一旦发生冲突就立刻停止,所以已发送的数据一定小于64字节;
  • 以太网规定了最短有效帧长为64字节,凡事小于64字节的帧一定是因为冲突而异常终止的无效帧。

(7)二进制指数类型退避算法
发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。

  • 确定基本退避时间,一般是争用期2τ;
  • 定义参数k = min[重传次数,10];
  • 从整数集合{0,1,…,(2^k)-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;
  • 当重传达16次时仍不能成功时就丢弃该帧,并向高层报告。

四. 以太局域网(以太网)

1. 概述
  • 以太网的两个标准

    计算机网络——数据链路层_第18张图片

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

    为了使数据链路层更好的适应多种局域网标准,802委员会把局域网拆分为:

      逻辑链路控制LLC(Logical Link Control)子层;
      媒体接入控制MAC(Medium Access Control)子层。
    

    与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关,不管什么协议的局域网对LLC子层都是透明的。

    由于局域网标准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2标准的LLC子层作用已经不大了,很多厂商适配器没有LLC协议,仅装有MAC协议

  • 以太网提供的服务

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

2. 拓扑
  • 星型拓扑
    计算机网络——数据链路层_第19张图片
  • 集线器的特点
    计算机网络——数据链路层_第20张图片
  • 10Base-T 基于集线器的以太网标准
    它的通信距离稍短,每个站到集线器的距离不超过100m。
    这种10MB/s的无屏蔽双绞线星形网的出现,能降低成本和提高可靠性。
    10Base-T的出现有很大的意义,类似标准有100Base-FX,10Base-T,100Base-T4
3. 信道利用率
  • 定义
    计算机网络——数据链路层_第21张图片
    计算机网络——数据链路层_第22张图片
  • 信道利用率:参数a
    计算机网络——数据链路层_第23张图片
  • 信道利用率的最大值
    计算机网络——数据链路层_第24张图片
4. MAC层
  • MAC层的硬件地址(MAC地址)
    计算机网络——数据链路层_第25张图片
    查看mac地址:在cmd中输入ipconfig /all 就可以查看物理地址了

  • 适配器检查MAC地址
    适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:

      如果是发往本站的帧就收下,然后进行其它处理;
      否则丢弃。
    

    发往本站的帧包括:

      单播帧(unicast)(一对一)
      广播帧(broadcast)(一对全体)
      多播帧(multicast)(一对多)
    
  • MAC帧的格式
    计算机网络——数据链路层_第26张图片
    计算机网络——数据链路层_第27张图片
    6 + 6 + 2 + 46 + 4 =64 byte,这就是为什么IP数据报的最短长度为46字节。

    前8个字节的作用是实现比特同步,第一个字段共7个字节,称为前同步码,作用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。

    计算机网络——数据链路层_第28张图片

  • 无效的MAC帧
    帧的长度不是整数个字节;
    用收到的帧检验序列FCS查出有错误;
    数据字段的长度不在46~1518字节内;
    对于检查出来的无效MAC帧简单的丢弃。

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

5. 数据帧的抓包分析

使用Ethereal 抓包工具
使用抓包工具的驱动:WinPcap

五. 扩展以太网

  • 在物理层考虑扩展
    (1)距离的扩展
    主机使用光纤和一对光纤调制解调器连接到集线器。
    计算机网络——数据链路层_第29张图片
    (2)数量的扩展
    集线器集联:使网络中计算机增加,变成一个大的冲突域,会造成效率降低。
    计算机网络——数据链路层_第30张图片

  • 在数据链路层考虑扩展(优化以太网)
    (1)使用网桥
    网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是现检查此帧的目的MAC地址,然后再确定将该帧转发到对应的接口。

(2)交换机
随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。
交换机就是网桥和集线器的合并升级版,能全双工,安全通信。
特点:

端口带宽独享;
安全;
基于MAC地址转发;
通过学习构建MAC地址表。

六. 快速以太网(fast ethernet)

  • 100Base-T以太网
    速率在100Mb/s以上的以太网称为高速以太网。
    在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。100Base-T以太网被称为快速以太网(fast ethernet)。

100Base-T以太网的物理层:

100Base-TX:使用2对UTP 5类线或屏蔽双绞线STP。
100Base-FX:使用2对光纤。
100Base-T4:使用4对UTP 3类线或5类线。
  • 100Base-T以太网的特点
    可以实现全双工通信(注意,如果交换机上某一路连接着集线器(半双工),则这一路不能实现全双工)而无冲突,此时不使用CSMA/CD协议。
    MAC帧格式不变,仍是802.3 标准。
    最短帧长度不变,但是一个网段的最大电缆长度减少到100m。
    帧间间隔从9.6微秒缩小到0.96微秒。

  • 吉比特Gbit以太网
    允许在1 Gb/s下全双工或半双工工作方式。
    使用802.3标准的帧格式。
    在半双工下使用CSMA/CD协议。
    与10Base-T和100Base-T技术向后兼容。
    当吉比特以太网在全双工方式时,不用载波延伸和分组冲突。

    1000Base-X以太网的物理层(基于光纤通道):

      1000Base-SX:SX表示短波长,传输距离上275m或550m。
      1000Base-LX:LX表示长波长,传输距离上550m或5000m。
      1000Base-CX:CX表示铜线,传输距离25米
    

    1000Base-T以太网的物理层(基于双绞线):

      使用 4对 5类线UTP。
    
  • 吉比特以太网的配置举例
    计算机网络——数据链路层_第31张图片

  • 10Gbit/s以太网

    MAC帧格式不变,仍是802.3 标准。
    使用光纤而不是铜线。
    只能工作在全双工方式,没有争用问题。
    它的出现使工作范围从局域网扩大到城域网和广域网,实现了端到端的以太网传输,优点是:技术成熟;互操作性好;广域网中使用以太网便宜;统一的帧格式。

  • 以太网从10Mb/s到10Gb/s的演变说明了
    可拓展性;
    灵活性(多种传输媒体,全/半双工,共享/交换);
    易于安装;
    稳健性好。

  • Cisco建网的3层模型
    计算机网络——数据链路层_第32张图片

你可能感兴趣的:(计算机网络)