《计算机网络》(第七版)数据链路层笔记

3 数据链路层

  • 本章重点:
    1. 数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点.
    2. 数据链路层的三个基本问题:封装成帧&透明传输&差错检测.
    3. 以太网MAC层的硬件地址.
    4. 适配器/转发器/集线器/网桥/以太网交换机的作用以及使用场合.

3.1 数据链路层的概念

  • 链路(link): 从一个结点到相邻节点的一段 物理链路(有线|无线).
  • 数据链路(data link): link + protocol = data link. 所以数据链路是一段 逻辑链路.
  • 帧(frame): 数据链路层的协议数据单元(PDU).

3.1.1 数据链路层的作用

数据链路层负责相邻节点间的链路上数据帧的(可靠)传输 .以下两种信道实现了帧的传输:

  1. 点对点信道: 两个相邻节点,通过单一链路连接,第三方无法收到任何信息.应用在广域网中,即用户和ISP的通信中.
  2. 广播信道: 链路上所有主机共享通信介质.应用在局域网中.局域网的拓补结构分为早期的总线型和后来的星形.

3.1.2 三个基本问题

封装成帧
  • 数据链路层收到从网络层交下来的数据报,然后把它们封装成数据链路层的帧.并且需要自己完成对帧的定界(而且在每种协议中,帧的格式长度也被规定了).
透明传输
  • 无论是何种bit数据,在经过数据链路层的时候就好像看不见数据链路层一样,对它们的传输毫无妨碍,这就叫透明传输.具体方法有 字节传输(byte stuffing)字符传输(character stuffing) .
差错检测
  • 什么是差错检测:
    • bit的传输可能会出现错误,物理层没有保证100%传输出正确的bit,数据链路层则保证了bit的可靠传输.
      • 比如物理层本来要传一个"1111",但是出现了误码,传出了一个"1110".而只保证可靠的bit传输的数据链路层,它只管自己收到了"1110",所以它必须保证把"1110"传出去,而不管这个"1110"本身的正确与否.这就是数据链路层的差错检测,它并没有为网络层提供可靠的传输服务,只为数据链路层提供了可靠的bit传输.
  • 差错的类型:
    • 比特差错: 上例保证了"无比特差错".
    • 传输差错: 上例没有把"1110"的错误纠正回来,所以并没有保证"无传输差错".
  • 差错检测采用的手段:
    • 在数据的后面添加供差错检测用的n位冗余码.这n位冗余码被称为 帧检验序列FCS(Frame Check Sequence) .
  • 差错检测采用的一种方法:
    • 不同的检错方法会添加不同的FCS,只要这个FCS能保证出错概率极小即可.而 循环冗余检验CRC(Cyclic Redundancy Check) 是方法之一,它使用模2运算来求得FCS,具体实现细节见书本P74&75.

3.2 点对点信道-接入网

互联网用户通常都要连接到某个ISP才能接入互联网,而Client<—>Server的连接并不需要被第三方知道,所以这是一种点对点的通信,它使用 PPP协议(Point-to-Point Protocol) . 在接入网中的帧格式是PPP帧 .

3.2.1 PPP协议的特点

除了最基本的封装成帧|透明传输|差错检测之外,PPP协议还拥有以下特点:

  • 简单: 只保证无比特差错,不保证无传输差错.在整个网络中,它是不可靠的.
  • 多种网络层协议: 能在同一条物理链路上支持多种网络层协议.这部分交给网络控制协议NCP.
  • 多种类型链路: 能够在各种不同的物理链路上运行.这部分交给链路控制协议LCP.
  • 检测连接状态: 必须有一种机制能够及时检测链路的工作状态.这部分也交给链路控制协议LCP.
  • 最大传送单元: 对于基本的封装成帧要求,要规定数据部分的最大长度(非帧总长).
  • 网络层地址协商: 让上层网络层能够通过协商互相知道彼此的网络层地址.
  • 数据压缩协商: 要提供算法(标准不统一)将数据部分压缩.

3.2.2 PPP协议的帧格式

各字段的意义:
  1. 首部:
    1. 标志字段F(Flag): 长度1B,规定为0x7E(01111110).
    2. 地址字段A(Access): 长度1B,规定为0xFF(11111111).
    3. 控制字段C(Control): 长度1B,规定为0x03(00000011).
    4. 协议字段: 长度2B,IP协议规位0x0021(00000000 00100001).
  2. 信息部分(IP数据报)
    1. 最大传送单元MTU(Maximum Transmission Unit) 规定不超过1500B.
  3. 尾部
    1. 帧检验序列FCS: 长度2B,使用的是循环冗余检验CRC算法.
    2. 标志字段F(Flag): 长度1B,规定为0x7E(01111110).
字节填充:
  • 当PPP使用异步传输时,采用字节填充,规定转义字符为0x7D(01111101):
    1. 信息字段中的(0x7E) -> (0x7D,0x5E).
    2. 信息字段中的(0x7D) -> (0x7D,0x5D).
    3. 信息字段中的(ASCII码控制字符) -> (0x7D,该控制字符).
字符填充:
  • 当PPP使用同步传输时,采用零比特填充: 只要发现有5个连续1,则立即填入一个0.

3.2.3 PPP协议的工作状态

  1. 开始是链路静止状态.用户和ISP不存在物理层的连接.
  2. 用户发送请求后,路由器侦测到载波信号,物理层已连接,进入链路建立状态.目的是为了建立链路层的LCP连接.
  3. 链路控制协议LCP开始协商配置选项,一端发送LCP的配置请求帧.另一端发送如下响应:
    • 配置确认帧: 全部接受.
    • 配置否认帧: 全部不接受.
    • 配置拒绝帧: 部分不理解或不接受,需要再协商.
  4. 建立好LCP链路,进入鉴别状态,只允许传送LCP协议的分组&鉴别协议的分组&监测链路质量的分组.鉴别失败则返回链路静止状态,鉴别成功则进入网络层协议状态.
  5. 网络层协议状态,PPP链路两端的网络控制协议NCP根据网络层的不同协议互相交换网络控制分组.这样,PPP链路两端的网络层可以在同一个PPP协议上运行不同的网路层协议.
  6. 网络层配置完毕,链路进入可通信的链路打开状态,两个PPP端点可以相互发送PPP分组了.
  7. 数据传输结束,一端发送终止请求LCP分组,另一端确认该分组后,转到链路终止状态(通信期间出现故障也会转到该状态).当调制解调器的载波停止后,物理层的连接也断开,回到链路静止状态.

3.3 广播信道-局域网

在局域网中的帧格式是MAC帧 .

3.3.1 局域网特性

  • 局域网最主要的特点是: 网络为一个单位所拥有,且地理范围和站点数目均有限.
  • 局域网由如下一些主要优点:
    • 具有广播功能,从一个站点可以很方便的访问全网.各站可以共享连接在局域网上的各种软硬件资源.
    • 便于系统的扩展和逐渐演变,各设备的位置可以灵活调整和改变.
    • 提高了系统的可靠性&可用性&生存性.
  • 局域网工作的层次跨越了数据链路层和物理层,只是因为局域网中有关数据链路层的内容比较丰富,所以放在这一章讨论.
共享信道
  1. 静态划分信道
    1. 频分复用FDM
    2. 时分复用TDM
    3. 统计时分复用STDM
    4. 波分复用WDM
    5. 码分多址CDMA
  2. 多点接入(也称动态媒体介入控制,信道并非在用户通信时固定分配给用户)
    1. 随机接入: 所有的用户可随机的发送信息,但有碰撞风险(传统以太网是随机接入).
    2. 受控接入: 用户发送信息受一定的控制(在局域网中很少使用).
介质(即传输介质–总线)访问控制
  • CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection)
    • 协议要点
    1. 载波监听CS(Carrier Sense): 在发送前和发送中,每个站必须不停的检测信道是否被占用(发送完后不监听).
    2. 多点接入MA(Multiple Access): 该协议使用在总线型网络中,许多计算机以多点接入的方式连接在一根总线上.
    3. 碰撞检测CD(Collision Detection): 在边发送边监听的过程中,检测信道上电压的情况,如果超过了门限值,说明发生了碰撞.因此碰撞检测也称冲突检测.
    • 重要概念
    1. 争用期(冲突窗口)
      具体的争用期时间为总线的端到端往返传播时延,对于10BASE-T以太网,是51.2μs.
    2. 最短有效帧长
      512bit(64byte)的最短有效帧长,使得发送一帧所需要的最小时间为一个争用期.能避免"不知道发出去的帧产生了碰撞"的情况.对于小于64byte的帧,直接丢弃.
    3. 截断二进制指数退避算法
      从集合[ 0,1,2,3…,(2^k)-1 ] ( k=min[重传次数,10] ) 中随机取一整数r.若发生碰撞,重传推后r个争用期的时间.若重传了16次仍然不能成功(这表明同时打算发送的数据太多),则丢弃该帧,向高层报告.
    4. 强化碰撞
      当发送数据的站一旦检测到碰撞,除了立即停止发送数据,还要再发送32bit或者48bit的人为干扰信号(jamming signal),提醒所有用户总线上发生了碰撞.对于10Mbps以太网,用时3.2μs或4.8μs.

3.3.2 局域网通信

地址-MAC地址
  • MAC地址(媒体接入控制地址): 局域网中,硬件地址又称为物理地址MAC地址.这是一个48位的接口的标识符,即适配器的名称.
  • MAC地址的六个字节: 前3个字节的公司标识符/组织唯一标识符由IEEE的注册管理机构RA统一发送给购买了它的厂家.后3个字节由厂家自行指派.
  • MAC帧的目的地址:
    • "发往本站的帧"里的地址叫做目的地址,根据目的地址的不同,分为三种帧:
    1. 单播帧(一对一): 收到的帧的目的地址就是本地站的适配器地址(MAC地址).
    2. 广播帧(一对全体): 收到的帧里面的目的地址为全1格式(FF-FF-FF-FF-FF-FF).
    3. 多播帧(一对多): 收到的帧里面的目的地址是特殊的,该帧发送给局域网上一部分站点.
格式-MAC帧格式
  • 常用的以太网MAC帧有IEEE802.3标准和DIX Ethernet V2标准,只介绍最常用的DIX Ethernet V2的MAC帧格式.
  • MAC帧格式:
    1. 目的地址字段: 长度6B,发送这个帧的适配器标识.
    2. 源地址字段: 长度6B,接收这个帧的适配器标识.
    3. 类型字段: 长度2B,标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议.
    4. 协议字段: 长度在区间 [ 46,1500 ] 上.最小长度46B是为了满足以太网的最小帧长规定(总长64B),最大长度1500是IP协议的 最大传送单元MTU(Maximum Transmission Unit) 规定.
    5. 帧检验序列FCS: 没有要求采用CRC.

3.3.3 以太网概念

以太网标准
  • DIX Ethernet V2: 由DEC公司&Inter公司&施乐公司于1980年联合提出的10Mbps以太网规约,1982年修改为第二版规约,成为世界上第一个局域网产品的规约.
  • IEEE802.3: 在此基础上,IEEE802委员会的802.3工作组于1983年制定了第一个IEEE的10Mbps以太网标准IEEE802.3.
  • 区别: 最大的区别是IEEE802.3多一个 逻辑链路控制LLC(Logical Link Control) 子层(现在已几乎不再使用).
  • 以太网: 严格意义上,"以太网"是指符合DIX Ethernet V2标准的局域网.
  • 10BASE-T星形以太网(传统以太网): 1990年IEEE制定出星形以太网10BASE-T的标准802.3i."10"代表10Mbps的数据率,BASE表示连接线上的信号是基带信号,T代表双绞线.
  • 帧间最小间隔: 以太网规定了帧间最小间隔为9.6μs.这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备.
冲突域
  • 会产生冲突的最小范围.在多台计算机通过设备互联时,会建立一条通道.如果该通道只允许一个帧通过,那么该通道是一个冲突域.
广播域
  • 如果一个帧的目的地址是这个网段的广播地址或者全1地址,这就叫做广播.广播域是指一条广播帧发出,能够收到这个帧的站的范围.

3.3.4 拓展以太网

传统以太网-共享总线
  • 即使用hub的10BASE-T星形以太网,表面上是星形,但是逻辑上仍是总线型网络(依然使用CSMA/CD协议).为了通信的简便,采取了两种措施:
    1. 采用无连接的工作方式,不必先建立连接.
    2. 使用曼彻斯特编码的信号.
物理层拓展-集线器(hub)
  1. 特点:
    1. 表面上看,使用集线器的局域网在物理上是一个星形网,但是逻辑上仍然是一个总线网,各适配器共享逻辑上的总线,使用的还是CSMA/CD协议.
    2. 集线器有多个接口,因此一个集线器很像一个多接口的转发器(对信号起到转发的作用,使得信号能够传播得更远).
    3. 集线器工作在物理层,它的每个接口仅仅简单的转发比特,不进行碰撞检测(仍然是由各适配器上的CSMA/CD协议来检查).
    4. 集线器采用专门的芯片,使得接口收发的信号不至于互相干扰.并且集线器可以热插拔.
  2. 优点:
    1. 使得不同的以太网连接成了一个逻辑上为总线型的以太网,能够进行通信.
    2. 扩大了以太网覆盖的地理范围.
  3. 缺点:
    1. 因为逻辑上为总线型,所以扩大了冲突域,故最大吞吐量不会提高(因为在整个以太网中,有一个站发报文时,其他的站都不能发).
    2. 如果数据率不同的以太网被互连起来,那么总带宽=min{所有带宽}.
链路层拓展-交换机
  1. 网桥
    网桥根据目的地址,对收到的MAC帧进行转发和过滤.当网桥收到一个帧时,并不是向所有的接口广播这个帧,而是根据该帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤).
  2. 以太网交换机
    交换式集线器(switching hub)常称为以太网交换机(switch)第二层交换机(L2 switch),强调这种交换机工作在数据链路层.它实质上是一个多接口的网桥,所以使用交换机的以太是真正的星形网络(因而没有碰撞了,也不需要CSMA/CD协议).
  3. 特点:
    1. 全双工模式,相互通信的主机独占传输媒体,无碰撞地传输数据.
    2. 接口有存储器,能在输出端口繁忙时把到来的帧进行缓存.
    3. 是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的.
    4. 由于一个用户在通信时是独占而不是和其它网络用户共享传输媒体的带宽,因此总带宽=sum{所有带宽}.
    5. 从共享总线以太网转到交换式以太网时,所有接入设备的软件&硬件&适配器都不需要任何改动.
  4. 自学习算法: (假设是一个空交换机)
    1. 从接口X收到一个帧.
    2. 首先读到帧的目的地址,在表中找不到目的地址,所以对接口X以外的其他接口广播该帧.
    3. 然后读到帧的源地址,在表中找不到源地址,所以将源地址&接口X&有效时间写入交换表.
    4. 发现接口Y接收了该帧,在表中找不到接口Y,所以将目的地址&接口Y&有效时间写入交换表.
    5. 对于X和Y发送的帧,不需要再重复上述步骤,直接一对一发送.对于其他站发送的帧,重复上述步骤.
  5. 生成树协议STP(Spanning Tree Protocol)
    1. 定义
      是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴.
    2. 工作原理
      任意一交换机中如果到达根网桥(解释见工作过程)有两条或者两条以上的链路.生成树协议都根据算法仅仅保留一条,把其他切断,从而保证任意两个交换机之间只有一条单一的活动链路.因为这种生成的这种拓扑结构,很像是以根交换机为树干的树形结构.故为生成树协议.
    3. 工作过程
      首先进行根网桥的选举,其依据是 网桥优先级(bridge priority) 和MAC地址组合生成的桥ID,桥ID最小的网桥将成为网络中的 根桥(bridge root) .在此基础上,计算每个结点到根桥的距离,选择冗余最小的成为通信路径(相应的端口状态变为forwarding-“转发中”,此时逻辑上是连通的),其它的就成为备份路径(相应的端口状态变为blocking-“关闭中”,此时仅仅是物理上连通了,逻辑上断开).
高速以太网
  1. 概念
    也称100BASE-T以太网快速以太网(Fast Ethernet).能够兼容10BASE-T以太网.
  2. 最短帧长
    保持不变,10BASE-T的端到端最大长度是5km,代价是100BASE-T最远只有100m.
  3. 争用期
    由于数据率提高了十倍,故对于长度相同的帧,发送的时间减少了十倍,争用期为5.12μs.
  4. 帧最小间隔
    同上,帧最小间隔现在为0.96μs.
吉比特以太网
  1. 特点:
    1. 允许在1Gbps下以全双工和半双工两种方式工作.
    2. 使用IEEE802.3协议规定的帧格式(没有使用DIX Ethernet V2规定的帧格式).
    3. 在半双工方式下使用CSMA/CD协议,而在全双工方式下不使用.
    4. 技术上向下兼容10BASE-T和100BASE-T.
  2. 两种成熟技术:
    1. 来自现有的以太网(DIX Ethernet V2标准规定的).
    2. 美国国家标准协会ANSI指定的光纤通道FC(Fibre Channel).
  3. 载波延伸(carrier extension):
    • 使用条件: 仅在半双工方式下(全双工方式不会碰撞,所以也无需使用).
    • 使用该技术的原因: 吉比特以太网半双工工作时,必须进行碰撞检测,故有两种方法:减小最大电缆长度,增大帧的最小长度.但是由于数据率相比于100BASE-T提高了10倍,减小最大电缆长度会使电缆长度不能超过10m.增大帧的最小长度会使帧长提高到640B造成浪费.所以使用载波延伸.
    • 技术原理: 使最短帧长仍保持64B(向下兼容),将争用期增大到512B(增大了8倍).发送的MAC帧长度小于512B时,在MAC帧后进行填充(并不是填充在IP数据报后,所以不会影响有效载荷).
  4. 分组突发(packet bursting):
    • 使用条件: 仅在半双工方式下(全双工方式不会碰撞,所以也无需使用).
    • 使用该技术的原因: 如果仅使用载波延伸,那么虽然能够向下兼容,但是依然无法解决开销问题.这个问题由分组突发来解决.
    • 技术原理: 当很多短帧要发送时,第一个短帧使用载波延伸进行填充.但是随后的一些短帧则保持最小帧间隔紧跟着发送.

3.3.5 虚拟局域网VLAN(Virtual LAN)

  1. 含义
    是由一些局域网网段构成的与物理位置无关的逻辑组.
  2. 帧格式-802.1Q帧(是格式改进过的MAC帧)
    1. 目的地址字段: 长度6B,发送这个帧的适配器标识.
    2. 源地址字段: 长度6B,接收这个帧的适配器标识.
    3. VLAN标记(tag)字段: 长度4B.
      1. 前两个字节为IEEE802.1Q标记类型,总是设置为0x8100(10000001 00000000).
      2. 后两个字节里,前3bit为用户优先级字段;第4bit为规范格式指示符CFI(Canonical Format Indicator);最后12bit是该虚拟局域网的VLAN标识符(VLAN ID),标志该帧所属的VLAN.
    4. 类型字段: 长度2B,标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议.
    5. 协议字段: 长度在区间[46,1500]上.最小长度46B是为了满足以太网的最小帧长规定(总长64B),最大长度1500是IP协议的**最大传送单元MTU(Maximum Transmission Unit)**规定.
    6. 帧检验序列FCS: 没有要求采用CRC.
  3. 如何划分
    通过第三层的设备(路由器|三层交换机)来进行划分.这样的划分使得只有VLAN内部可以在数据链路层相互通信,不同VLAN之间的通信需要借助于上层.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值