数据链路层的关键点:网卡 + 物理线路 + 协议
(ppp 协议就是其中一种协议)

1、基本概念

(1)数据发送模型

应用层和应用层的通讯

流程:主机1 和 主机2 之间的网络通讯:主机1网卡 ——> 电话网 ——> 路由器 ——> 主机2网卡

H1:
运输层:对数据进行封装 ,分段
传输层:给数据 加上目标网络地址
链路层:给数据 加上MAC地址,封装成帧。

R1:
链路层:根据传输的 MAC 地址,判断数据包是不是自己的
网络层:根据 IP 地址,选择最优路径,再给数据 加上目标网络地址,发给下一个路由器。

总体流程:H1 ——> R1 ——> R2 ——> R3 ——> H2

  • 点对点通信和广播信道

点对点:两个笔记本使用一个网线直连。
广播:中间有一个集线器接了很多设备,就成广播信号了。

我们这一章,只关心数据链路层怎么传输。

底层是什么介质(光纤、同轴电缆、电话线)我们不用管。
底层是什么复用(时分、频分、码分)我们也不用管。

数据链路层具体是指哪一部分呢?


(2)链路和数据链路?

链路:是一个物理线路,比如一根网线

但是只有一个物理线路,它还不能通讯,还缺一个控制它的 通信协议,谁来提供呢?
答案:网卡(网卡上面是有数据链路层的协议的,负责来控制数据传输)


(3)帧

什么是帧:数据链路层传输的数据单位

数据链路层:像是一个数字管道,而在数字管道上传输的数据单位是帧


2、三个基本问题

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


(1)封装成帧


计算机接受过程中:

  • 只有既收到帧首部,又收到帧尾部的时候,才会接受这个帧,只收到其中一个,是不会接受的。

  • 以太网上传输,最大帧长度为 1500 个字节。

为什么要添加帧头和帧尾?

  • 为了保持数据的完整性, 如果只有帧头的话,我们数据丢了一半对方也不知道

(2)透明传输

  • 透明传输其实就是指无论是什么报文都可以传输,非透明传输就是指某些特殊字符不能传输。
  • 在计算机网络中,透明传输在数据链路层提到过,在数据链路层将网络层协议封装成帧时,会在首部和尾部分别添加 SOH 以及 EOT 这两个特殊字符。
  • 接收方是根据这两个字符来确定帧首和帧尾的,如果上层协议发送过来的数据(即链路层的数据部分)包含EOT,那么接收方在解析这个帧的时候就会误以为数据已经结束
  • 所以,如果链路层对这种情况没有特殊处理,那么就可以理解链路层为非透明传输(因为无法传输EOT这个字符)。
  • 但是数据链路层通过对这个字符添加转移符(如果网络层数据中还存在转移符,就再添加一个转移符)的办法来使数据部分可以传输EOT字符,就实现了透明传输。


再论什么是透明传输?

  • 在传输的时候,为数据添加了转义字符。
  • 接收之后再将转移子符去掉。
  • 注意!!!:这三个问题都是在数据链路层解决,由网卡进行解决。
  • 所以对于发送者和接收者来说,不知道底层加了这一层保险。

(3)差错控制


传输过程中:可能产生差错,由环境因素,可能 0 变为1, 1 变为 0。

问题:我们要怎么发现,我们是否在物理线路上发生了差错

解决:CRC 循环冗余检验


关键:在二进制里面,如何实现冗余检验?


数据规则:

  • 模 2 运算:不进位,不退位(1 + 1 = 0,不等于 10 )

  • 一个数 对 一个 n+1 位的数进行模2 运算的出发,所得的余数是 n位。(比除数少一位)


分析冗余计算的流程:

  • 原始数据:110101

  • 自己设定一个除数,有 k 个 bit 位,位数和我们的原始数据长度有关。(我们设定 k = 4)

  • 先固定冗余码全为 0 ,位数为 k-1 位,然后将其添加到原始数据后面。 (我们设定 k-1 = 3)

  • 第一次 原始 bit 数据 + 冗余码 / 除数除不尽会产生余数。 (这个余数叫做 FCS 帧检验序列)

  • 所以我们将余数加回去,余数 + 原始 bit 数据 + 冗余码 / 除数 。 这样就可以除尽了。

余数 + 原始 bit 数据 + 冗余码 = 原始 bit 数据 + 余数
因为原来的冗余码是 000 ,加任何的三位数,都会变为这三位数 。
000 + 001 = 001

  • 如果此时我们除不尽,则说明我们 原始bit 数据已经发生了变化。

计算举例:



所以发送端此时要发送的数据为: 原始数据+余数

接受到拿到数据之后:进行 原始数据+余数 / 除数 。去判断是否有余数,即是否为 0 ,或者不为 0。

如果结果不为 0 ,我们则丢弃这一段数据, 让发送方重新发送一次。


总结:CRC 校验的特点:

  • CRC 只管判断是否出错,并不操心到底是哪里出错了,发现出错之后直接丢弃

  • 直接丢弃不就丢包了吗? 丢不丢包,数据链路层不管

注意:CRC 校验并不是 百分之百 可靠,如果差错正好是除数的倍数,我们就没有办法发现。


3、点到点通信(ppp协议)

数据链路层的关键点:网卡 + 物理线路 + 协议
(ppp 协议就是其中一种协议)

是一种数据链路层的协议,ppp协议(point to point protocol)。
应用于拨号上网。
如果我们直接插网线,不适用拨号,就不是使用ppp 协议。

举例:
通过电话线上网: 电脑通过电话线,直接连到运营商。(用户点到点运营商)
ppp 协议实现的功能:

  • 给我们主机分配一个 IP 地址。
  • 记账功能:如果我们欠费,就不让我们继续使用网络
  • 记录使用时间:我们通过拨号上网,发帖的时间,发帖的 IP 地址,运营商就可以知道。

(比如有人使用网络发帖,运营商那边就可以知道该数据包的IP地址,发送时间)


数据链路层的关键点:网卡 + 物理线路 + 协议 (ppp协议 就是其中一种)

既然是数据链路层的协议,那么就一定要解决数据链路层的三个基本问题

  • 多种类型链路:可以使用在光纤、同轴电缆、电话线等。
  • 检测连接状态:拨号上网的时候,欠费、密码错误、网线没插好、弹出的框都不一样
  • 最大传输单元:不大于 1500 个单元。
  • 数据压缩协商:节省数据带宽。(比如有 连续 00000000000,我就可以进行压缩)

在数据链路层 ppp 协议,又分成了 3 层。

(1) 提供一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是信息部分,长度受最大传送单元MTU的限制。PPP支持异步链路(无奇偶校验的8比特数据)和面向比特的同步链路。

(2) 链路控制协议LCP(Link Control Protocol),当线路不再需要时,挑出这些线路,测试它们,商议选择,并仔细地再次释放链路控制协议。

(3) 一套网络控制协议NCP(Network Control Protocol),其中每一个协议支持不同的网络层协议,如IP、OSI的网络层等。

(4) 认证协议


(1)ppp 协议的帧格式

字段 长度 说明
F:flag 1字节 标志一个帧的开始或结束,固定为0x7E
A:address 1字节 地址字段A是固定不变的,固定为0xFF。(因为点到点,地址已经固定)
C: 1字节 控制字段C是固定不变的,固定为0x03
协议 2字节 协议字段不同,后面信息部分表示的数据类型不同。
协议
0x0021 IP数据报
0xC021 链路控制数据LCP
0x8021 网络控制数据NCP
0xC023 安全性认证PAP
0xC025 LQR
0xC223 安全性认证CHAP

问题:信息段(有效数据) 中出现了标志段的值,被误以为是标志段怎么办?

第一种办法:字节填充法

  • 当信息字段中出现 0x7E 时,将每一个0x7E字节转变成2字节序列0x7D,0x5E)。

  • 若信息字段中出现一个 0x7D 的字节,则将其转变成2字节序列(0x7D,0x5D)。

  • 若信息字段中出现ASCII码的控制字符(即数值小于0X20的字符),则该字符前面需要加入一个0x7D字节,同时将该字符的编码加以改变(+20)。
    例如:出现0x03,就要把它转为2字节序列(0x7D,0x23)

第二种办法:0比特填充法

适用于传输数据是比特流(图像的位图数据),此时传输数据就不是有效字符了。

  • PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送),此时使用0比特填充法。

  • 在发送端扫描整个信息字段,当有5个1连续出现时,立即填入一个0保证信息字段中不会出现6个连续1。 (7E:0111 1110 当中有连续的 6个 1)

  • 在接收端删除连续5个1后面的0

(2)ppp 协议的工作状态

  • 演示路由器怎么配置 ppp 协议
    不要求掌握。

4、广播通信

  • 局域网的拓扑

  • 认识以太网

以太网是局域网的一种, 最初的以太网是将许多计算机都连接到一根总线上,这种连接方法简单又可靠。

优点:不用划分信道,谁也可以进行通信。

缺点:在这一根链路上,只能有两个电脑在通信。还有容易被其他电脑进行抓包,所以不可靠。


(1)以太网使用 CSMA/CD 协议

CSMA/CD 即 载波侦听 多点接入/冲突检测 (Carrier Sense Multiple Access with Collision Detectio)

  • 多点接入:许多计算机以多点接入的方式,连接在一根总线上面。

  • 载波侦听:发送端在发送数据前对总线进行监听,若监听到其他计算机在发送数据,则等待一段随机时间后,确认总线空闲时才开始发送数据

提问:如果总线总的带宽是 10M ,该总线上面有10台计算机,那么平均每台计算机的带宽是多少?

10 M / 10 = 1M ; 最理想的情况之下,平均每台的带宽是 1M 。
如果发送数据时候,产生碰撞,就会有空闲时间产生,白白浪费带宽。

举例:如果以太网分布很广,网线之间有 1000 米,电信号在网线上传输的时间就会被拉长。

A先给B 发数据,在快到 B 的时候,此时 B 同时给 A 发数据。 在传输线上发送碰撞。

所以以太网一般不超过 100 米,也是有道理的。


CSMA/ CD 的特点:
不能不进行全双工通信,只能进行半双工通信。(一个时刻,只能有一个方向传输)


(2)争用期、最短有效帧长

争用期

  • 发送端,在发送数据帧之后,最多经过时间 2t (两倍的传播延时时间)就可以知道到底有没有受到碰撞。(2t 称之为 争用期)
  • 在争用期这段时间之内,如果没有发现碰撞,才能肯定这次发送不会发送碰撞。
  • 对于 10Mb/s 的以太网,在争用期内可发送 512 bit,即 64 字节
  • 总结:如果在 64 字节之内没有发生冲突,本次传输就不会发生冲突

最短有效帧

  • 如果发生冲突,就一定在 64 字节之内。
  • 由于一检测到冲突就立即中止发送,这时候发送的数据一定小于 64 字节。
  • 所以以太网会将小于 64 字节的帧,认为时无效帧,从而将他丢掉。

5、以太局域网(以太网)

(1)概述



注意:现在很多厂商生成的适配器上,仅装有 MAC 协议,而没有 LLC 协议。


(2)集线器的星型拓扑

之前使用的是总线型:但是有 容易被抓包、速度低的缺点。

  • 星型拓扑

    集线器的内部结构:
    网卡:有两个接口:一个是发送、一个接收。
    仍然像传统以太网:所有的机器都能接收,容易被窃取。
    工作在物理层:集线器像网线一样,没有任何智商,看不懂传输的协议,不管什么地址。

(3)信道利用率


以太网发送一帧数据所需要的时间:

信道利用率,参数 a (a越小,利用率就越高)

分析:发送速率,因为是电磁波传输,所以速率已经定死了。想要降低 a 有两种办法:

  • 减短物理线的长度
  • 增加一帧数据的长度


这种情况是不可能出现的,在传输过程中肯定有冲突


(4)MAC 层

当网卡一出厂的时候,在芯片上面就已经烧写了一个全球唯一的 MAC 地址

疑问:网卡厂商那么多,怎么知道这个 MAC 地址有没有被使用呢

  • MAC 地址一共有 48 位 bit 位。 前24位代表不同的厂家,后24位由厂家自己指定。
  • 如果我们想要生成网卡,先让 IEEE(注册管理机构)给分配一个 24 的号,我们才能自己生成。

适配器检查 MAC 地址
适配器就使网卡,网卡收到 MAC 地址之后,就会和自己进行匹配。


MAC 地址冲突造成的网络故障:

有一台笔记本电脑,在 A 教室上网不同,在其他地方上网都可以通。怎么回事呢?

问题排查:
(1)是不是网线的事情?

不是,因为换别人可以上网的网线,也不能使用。

(2)既然不是网线的故障,那肯定就是笔记本的问题了。 但是笔记在其他地方可以正常上网。

MAC 地址发生了冲突, 疑问不是说每个网卡的MAC 地址都是唯一的吗?怎么还会冲突呢?
1、首先肯定在芯片上面的 MAC 肯定是不能修改的。
2、我们只是让计算不使用网卡的地址,而是使用我们人工指定的 MAC 地址

怎么修改 MAC 地址? 参考博客


MAC 帧格式

名称 作用
前导码 每个字节的比特模式为“10101010”。作用:实现收发双方的时钟同步
帧起始定界符字段SFD 比特模式为“10101011”。作用:指示一帧的开始
目的地址字段DA 标识接收站点的地址。它可以是单个的地址,也可以是组地址或广播地址
源地址字段SA 标识发送站点的地址。但它的长度必须与目的地址字段长度相同。
类型/长度字段LEN 标识数据字段的字节数长度。 (协议类型)
数据字段 为了使协议正常操作,帧长度不能太短,对于10Mbps的CSMA/CD网中,帧的最小长度为64.

6、扩展以太网

1、如何让以太网变得远一点(通过光纤)(光猫:光电转换)

2、三个小的冲突域,变成了一个大的冲突域。

  • 怎么理解冲突域:在这个冲突域当中,如果有两台计算机在通讯,其他都不能通信

  • 合成大的冲突域:使通信的效率变低了,意味着冲突更多了。

  • 使用集线器来扩展,一个冲突域的计算机,不宜超过 30台

(1)网桥

在数据链路层进行扩展 ,集线器属于在物理层进行扩展。(因为集线器和网线一样,没有任何识别功能)

网桥是一个智能的设备

  • 一开始网桥内部并没有各个机器的 MAC 地址,但是网桥在通信过程中会进行自动学习,记录各个主机的 MAC 地址。

  • 所以一开始,网桥可能会进行广播,对所有机器进行发送。(这是记录的过程)

  • 当网桥里面记录了所有主机的 MAC 地址之后,就可以对相应的冲突域转发, 不继续进行广播。



网桥自学习的算法

(2)交换机

现在我们很少看到网桥这个设备了,我们现在使用交换机

交换机的特点

  • 并不会对所有计算机进行转发,而是一对一进行转发。
  • 所以,其他电脑就不能对冲突域当中的计算机,进行抓包了。
  • 自带有存储转发的功能:当多个数据传来的时候,先放到交换机的缓存区域,然后排队转发
  • 使用交换机之后,我们每个计算机可以实现全双工通信

举例:查看交换机的 MAC 地址表

7、虚拟局域网

(1)什么 VLAN

虚拟局域网是建立在交换机上面的,首先我们的交换机必须支持 VLAN ,并且可以划分网段

举例:一个公司有一个交换机,然后有销售部、研发部、人事部。我们想将这个三个部门划分三个网段。(但是本质上还是在一个网段,只是用软件将他分割开来)


理解:

  • VLAN ,可以将一个交换机划分为一个一个小的交换机
  • PC0 给 VLAN1 发送一个广播的时候, 只会在自己这个小的交换机进行广播,并不到 VLAN 2 那个小的交换机
  • 此时,PC 0 就不能和 PC2 通信了。(VLAN1 和 VLAN2 被划分开来)

演示:

(2)多个交换机划分 VLAN

  • 交换机与交换机之间,可以用一根线连接起来。

8、高速以太网

(1)快速以太网

  • 10Mb/s 是标准以太网。
  • 100mb/s 叫做快速以太网。
  • 1000mb/s 叫做吉比特以太网。

(2)吉比特以太网

吉比特以太网的数据传输速率是快速以太网的10倍,可达到1Gb/s。吉比特以太网保留了传统10BASE-T以太网的基本特征,具有相同的帧格式和类似的组网方法。

吉比特以太网定义了基于双绞线的物理层标准1000BASE-T和基于光纤通道的物理层标准1000BASE-X:


组网的三层模型:

接入层:端口一定要多,解耦我们对应的电脑。
汇聚层:将我们一栋楼的交换机汇聚起来。
核心层:将很多栋楼的 汇聚层 交换机连接起来。

韩立刚计算机网络——第三章:数据链路层相关推荐

  1. 【计算机网络】南航计算机网络第三章 数据链路层

    文章目录 计算机网络第三章 数据链路层 3.1 使用点对点信道的数据链路层 帧--数据链路层的协议数据单元 基本问题 封装成帧 透明传输 差错检测 3.2 点对点协议PPP(Point-to-Poin ...

  2. 计算机网络第三章数据链路层习题答案

    计算机网络第三章数据链路层习题答案 3-02数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点. 答:链路管理 帧定界 流量控制 差错控制 将数据和控制信息区分开 透 ...

  3. 计算机网络第三章——数据链路层(仅记录我所认为重要的知识点)

    计算机网络第三章--数据链路层 数据链路层使用的信道类型 点对点信道 广播信道 数据链路层位置 数据链路层的3个基本问题 数据链路和帧 链路 数据链路 数据链路层传输的是帧 封装成帧 透明传输问题 差 ...

  4. 计算机网络第三章 数据链路层重点复习(点对点)

    目录 前言 系列文章目录 3.1 使用点对点通信的数据链路层 3.1.1 点对点通信的主要步骤 3.1.2 三个基本问题 3.2 点对点协议PPP 3.2.1 PPP协议的特点 3.2.2 PPP协议 ...

  5. 计算机网络——第三章 数据链路层(详细附图)

    第三章 数据链路层 3.1 数据链路层概述 3.1.1 本章问题 封装成帧 差错检测 可靠传输 广播信道的数据链路层 网桥和交换机的工作原理 3.2 封装成帧 封装成帧 透明传输 面向字节的物理链路 ...

  6. 计算机网络 第三章 数据链路层

    有一说一,王道的计算机网络个人感觉不尽如意,数据链路层的内容安排实在是有些乱,里面并不是按照课本来的,而是穿插了很多其它章节的知识. 3.1 数据链路层的功能 数据链路层在物理层提供服务的基础上,向网 ...

  7. 计算机网络 第三章 数据链路层总结

    第3章 数据链路层 数据链路层的地位 数据链路层是实现设备之间通信的非常重要的一层 数据链路层使用的信道 点对点信道 这种信道使用一对一的点对点通信方式 广播信道 使用一对多的广播通信方式 因此必须使 ...

  8. 计算机网络第三章——数据链路层

    数据链路层 一.学习目标: 二.概念 三.数据链路层的几个共同问题 3.1 数据链路 链路 数据链路 3.2 帧 3.3 三个基本问题 3.3.1 封装成帧 3.3.2 透明传输 3.3.3差错检错 ...

  9. 韩立刚计算机网络笔记-第06章 动态路由和静态路由

    第06章 动态路由和静态路由 6.1路由-网络层实现的功能 网络层功能就是给传输层协议提供简单灵活的.无连接的.尽最大努力交付的数据包服务. 通俗一点来讲,网络中的路由器为每一个数据包单独的选择转发路 ...

  10. 韩立刚计算机网络笔记-第02章 物理层

    第02章 物理层 2.1物理层的基本概念 物理层定义了与传输媒体的接口有关的一些特性. 机械特性.指明接口所用接线器的形状和尺寸,引脚数目和排列,固定的锁定装置等等,平时常见的各种规格的接插部件都有严 ...

最新文章

  1. 宝宝都能看懂的机器学习世界
  2. SpringMVC如何实现restful接口
  3. 课时 12:可观测性-监控与日志(莫源)
  4. FGPA异步信号问题
  5. 星尘小组第八周翻译-数据页和数据行
  6. mysql连接不断线_某些小时后MySql连接自动掉线
  7. Angular启动过程介绍
  8. html怎么无损插入背景音乐,HTML插入背景音乐方法【全】
  9. Linux内核态下的文件操作
  10. 揭秘手机行业未来AI之路
  11. cocostudio学习
  12. xy坐标转换经纬度C语言,经纬度与坐标转换公式
  13. 数据库系统和数据库管理系统的定义以及数据库管理系统的作用
  14. 介绍一个很好的英语学习软件——单词风暴
  15. 提取文件原生ico图标
  16. PT100铂热电阻三种测温方法介绍
  17. 关于赴日IT软件开发
  18. 约会应用 Tinder 发展迅速
  19. Kali忘记root密码强制更改办法
  20. 结合实例,直观理解正态分布、卡方分布、t分布、F分布和对应的Z检验、卡方检验、t检验、F检验

热门文章

  1. R语言-上海二手房数据分析
  2. t-SNE非线性降维
  3. 微信名片、公众号二维码美化生成器!
  4. Linux挂在netapp存储,使用NFS4协议在NETAPP存储下不能MOUNT的分析和解决
  5. 2023-2029年中国拼团游行业市场运行态势及发展趋向分析报告
  6. freeswitch与eyebeam
  7. nifi集群_nifi架构
  8. 基于comsol软件利用射线追踪方法仿真偶极子天线在一个实验室中的电场分布
  9. 面向接口编程的一些总结
  10. 工业相机 - - 线阵相机