计算机网络:数据链路层

数据链路层是 OSI 分层模型的第二层。该层是最复杂的层之一,具有复杂的功能和责任。数据链路层隐藏底层硬件的详细信息,并将自身表示到上层作为通信介质。

数据链路层在某种意义上直接连接的两个主机之间工作。这种直接连接可以是点对点(point to point)广播(Broadcast)。广播网络上的系统据说位于同一链路上。当数据链路层处理单个冲突域上的多个主机时,它的工作往往会变得更加复杂。

数据链路层负责将数据流逐位转换为信号,并通过底层硬件发送,从而起到承上启下的作用。在接收端,数据链路层从电信号形式的硬件中获取数据,以可识别的帧格式组装它们,然后移交给上层。

数据链路层有两个子层:
  1. 逻辑链路控制Logical Link Control:它处理协议protocols、流量控制flow-control和错误控制error control

  2. 媒体访问控制Media Access Control:它涉及媒体的实际控制

数据链路层的功能(Functionally of Data-link Layer)

数据链路层代表上层执行许多任务。e.g.:

  1. 框架Framing
    数据链路层从网络层获取数据包并将其封装到帧中。然后,它在硬件上逐位发送每个帧。在接收器端,数据链路层从硬件接收信号并将其组装成帧。

  2. 寻址Addressing
    数据链路层提供第 2 层硬件寻址机制。假定硬件地址在链路上是唯一的。它在制造时被编码到硬件中。

  3. 同步Synchronization
    在链路(Data-link)上发送数据帧时,必须同步两台计算机才能进行传输。

  4. 错误控制Error Control
    有时信号在转换中可能遇到问题,位被翻转。检测到这些错误并尝试恢复实际数据位。它还为发件人提供错误报告机制。

  5. 流控制Flow Control
    同一链路上的站可能具有不同的速度或容量。数据链路层确保流量控制,使两台机器能够以相同的速度交换数据。

  6. 多路访问Multi-Access
    当共享链路上的主机尝试传输数据时,它发生冲突的可能性很高。数据链路层提供 CSMA/CD 等机制,以配备访问多个系统之间共享媒体的能力。

数据链路(data-link)和帧(data frames)

  • 数据链路层模型
  • 链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
  • 数据链路(data-link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
  • 数据链路层传送的是帧

封装成帧,差错控制,透明传输

  • (1) 封装成帧

    • 将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
      如上图所示data首尾
  • (2) 透明传输
    • 帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
      *
  • (3) 差错控制
    • 循环冗余检验 CRC
      目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
    • 帧检验序列 FCS
      在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。

点对点协议 PPP(Point to Point Protocol)

PPP 协议的特点

  • 互联网用户通常需要连接到 ISP(Internet Service Provider) 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

PPP 协议的帧格式

F(Flag) 字段为帧的定界符规定(0x7E)
01111110
标志一个帧的开始。A 和 C 字段0xFF,0x03。
FCS 字段是使用 CRC 的检验序列
信息部分的长度不超过 1500尾部F0x7E,标志一个帧的结束。

PPP 协议的工作流程

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

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

局域网的数据链路层

局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

数据链路层的两个子层
1. 逻辑链路控制 LLC (Logical Link Control)子层
2. 媒体接入控制 MAC (Medium Access Control)子层。

适配器
网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。

CSMA/CD 协议

  • CSMA/CD 表示载波监听多点接入 / 碰撞检测

    • 多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。
    • 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
    • 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

具体内容
* 记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为争用期。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
* 当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, …, (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。

使用广播信道的以太网

使用集线器的星形拓扑

  • 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。
    这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)

以太网的信道利用率

  • 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间Tav。
  • 发送一帧占用线路的时间是 T0 + τ ,而帧本身的发送时间是 T0。于是我们可计算出理想情况下的极限信道利用率 Smax为:Smax=T0/(T0+t)=1/(1+a)

以太网的 MAC 层

  • MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
  • 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 物理地址。

以太网帧格式:

  • 类型 :标记上层使用的协议;
    数据 :长度在 46-1500 之间,如果太小则需要填充;
    FCS :帧检验序列使用的是 CRC 检验方法;

扩展的以太网

在物理层扩展以太网

  • 用多个集线器可连成更大的局域网

    • 用集线器组成更大的局域网都在一个碰撞域中

      • 优点

        • 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
        • 扩大了局域网覆盖的地理范围。
      • 缺点
        • 碰撞域增大了,但总的吞吐量并未提高。
        • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

在数据链路层扩展以太网

在数据链路层扩展局域网是使用网桥。
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。

网桥优点
1. 过滤通信量。网桥可以使局域网的一个网段上各工作站之间的信息量局限在本网段的范围内,而不会经过网桥溜到其他网段去。
2. 扩大了物理范围,也增加了整个局域网上的工作站的最大数目。
3. 可使用不同的物理层,可互连不同的局域网。
4.提高了可靠性。如果把较大的局域网分割成若干较小的局域网,并且每个小的局域网内部的信息量明显地高于网间的信息量,那么整个互连网络的性能就变得更好。
网桥缺点
1. 由于网桥对接收的帧要先存储和查找站表,然后转发,这就增加了时延。
2. 在MAC子层并没有流量控制功能。当网络上负荷很重时,可能因网桥缓冲区的存储空间不够而发生溢出,以致产生帧丢失的现象。
3. 具有不同MAC子层的网段桥接在一起时,网桥在转发一个帧之前,必须修改帧的某些字段的内容,以适合另一个MAC子层的要求,增加时延。
4. 网桥只适合于用户数不太多(不超过几百个)和信息量不太大的局域网,否则有时会产生较大的广播风暴。

交换机Switch


交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。

虚拟局域网

虚拟局域网只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。

高速以太网

100BASE-T 以太网

速率达到或超过 100 Mb/s 的以太网称为高速以太网
可在全双工方式下工作而无冲突发生。因此,不使用 CSMA/CD 协议。

吉比特以太网

  • 允许在 1 Gb/s 下全双工和半双工两种方式工作。
  • 在半双工方式下使用 CSMA/CD 协议(全双工方式不需要使用 CSMA/CD 协议)。

10 吉比特以太网

(10 Gigabit Ethernet,缩写为10GbE、10 GigE或10GE)10 吉比特以太网只工作在全双工方式不使用 CSMA/CD 协议。

使用高速以太网进行宽带接入

  • 以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级。
  • 采用以太网接入可实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本。

集线器在转发帧时,不对传输媒体进行检测。

网桥在转发帧之前必须执行 CSMA/CD 算法。

计算机网络:数据链路层相关推荐

  1. 计算机网络-数据链路层

    title: 计算机网络-数据链路层 date: 2018-04-12 15:55:15 tags: 每天都感觉时间很紧迫,进步不大,浪费的时间太多了,能做的就是每天进步一点点 --stackfing ...

  2. 计算机网络——数据链路层介质访问控制

    文章目录 前言 一.介质访问控制概述 二.信道划分介质访问控制 1.频分多路复用(FDM) 2.时分多路复用(TDM) 3.波分多路复用(WDM) 4.码分多路复用(CDM) 三.随机访问介质访问控制 ...

  3. 计算机网络——数据链路层局域网、以太网、PPP协议和HDLC协议、链路层设备

    文章目录 前言 一.局域网简介 1.局域网的基本概念和特点 2.局域网的主要要素 3.局域网的分类与 IEEE 802 标准 4.LLC 子层和 MAC 子层 二.以太网 三.无线局域网 四.PPP ...

  4. 计算机网络——数据链路层(三个基本问题)

    计算机网络数据链路层的三个基本问题 (1) 封装成帧 (2) 透明传输 (3) 差错控制 一.封装成帧 封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧.确定帧 ...

  5. 计算机网络数据链路层题库

     免费版:华文慕课计算机网络数据链路层课后题 目录 网络课课后题 王道与其他 综合应用题 网络课课后题 1. 以下哪点不是链路层需要解决的问题 A.介质访问控制

  6. 计算机网络 数据链路层(一)点对点协议与广播信道

    计算机网络(五) 学习计算机网络过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流. -- 数据链路层 -- 文章目录 计算机网络(五) -- 数据链路层 -- 1. 使用点对 ...

  7. 计算机网络数据链路层之使用广播信道的数据链路层(含MAC帧格式)

    计算机网络数据链路层之使用广播信道的数据链路层(含MAC帧格式) 局域网的数据链路层 局域网最主要的特点是: 网络为一个单位所拥有: 地理范围和站点数目均有限. 局域网具有如下主要优点: 具有广播功能 ...

  8. 王道计算机网络 数据链路层整理 超详细版

    数据链路层的基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传 ...

  9. 用计算机心如止水,计算机网络数据链路层

    1.数据链路层使用的信道类型: 点对点信道(1对1) 广播信道(1对多),如:集线器.交换机 2.链路与数据链路: 链路:点对点的物理线路段,中间无任何其他交换结点 数据链路:通信协议 + 软件 + ...

  10. 计算机网络-数据链路层 1

    数据链路层 习题自测 问题 1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?"电路接通了"与"数据链路接通了"的区别何在? 2.数据链路层中的链路控制包 ...

最新文章

  1. 中国程序员最容易发音错误的单词
  2. 2018android wear手表,谷歌正开发三款智能手表 Wear OS系统逐步脱离Android范畴
  3. bootstrap配置Nacos出现Param ‘serviceName‘ is illegal, serviceName is blank
  4. c++ protected_合理使用protected关键字,确保类属性的安全性
  5. css绘制正方体_设计师仅使用CSS绘制了8个标志性X战警
  6. CVPR 2020 | 北航提出:通过由粗到精特征自适应进行跨域目标检测,表现SOTA!
  7. php软件开发--tp5
  8. OpenShift 4 Tekton (5) - Task/Pipeline/Workspace/PipelineResource
  9. as3程序主类,执行顺序
  10. 动态规划之最长回文串
  11. 搭建Typescript+React项目模板(5) --- 团队规范
  12. 怎么删除CSDN已上传的资源
  13. mybatis 注解使用
  14. OpenHarmony啃论文俱乐部玩法攻略
  15. pdf.js预览pdf文件流(base64)
  16. 类似组卷网实现快速组卷功能,实现试题,试卷,课件快速录入、搜索、分类查询,支持mathtype和latex2word。
  17. P3324 [SDOI2015]星际战争二分答案+网络流
  18. Markdown实用快捷键
  19. iOS开发——openssl生成CSR (pkcs10) 请求证书
  20. CogCreateSegmentTool工具

热门文章

  1. python中len用法_简单介绍Python中的len()函数的使用
  2. php 汉王云名片_利用PHP自动生成印有用户信息的名片
  3. CSDN蓝桥杯算法题——题解Java版本——切面条
  4. C++实现大数运算(加减乘除求余)
  5. Office快捷键大全之三(Access快捷键上篇)
  6. 如何写一封好的情书?Python三步爬取全网情诗信息
  7. (翻译)分块模式(Chunking)
  8. Ubuntu22.04.1无法找到Ubuntu软件中心-Ubuntu Software
  9. php 数组课件,php学习 数组课件第1/2页
  10. 中华名将索引 - 第一批:孙武