第三章 数据链路层
-
链路不等于数据链路
- 链路:从一个节点到另一个节点的物理线路(没有进过交换机节点)
- 数据链路:链路以及控制数据在链路上传输的协议构成
-
数据链路层通信方式以及使用的协议
- 点对点信道 (PPP协议)
- 广播信道(CSMA/CD协议)
-
数据链路层解决的问题:
- 封装成帧:在数据的前后加上首部和尾部(有帧定界符 和 帧校验序列等必要的控制信息)
- 目的:接收端在收到了物理层交上来的比特流后,有了帧定界符可以识别帧的开始和结束
- 透明传输:能够传输任意的数据。
- 差错校验:检验接受到的数据在传输过程中是否出错。(只是检验是否出错,并不纠错)
- 封装成帧:在数据的前后加上首部和尾部(有帧定界符 和 帧校验序列等必要的控制信息)
-
MTU:最大传输单元。数据链路层的帧的数据部分长度的最大值,默认值是1500
-
PPP协议(点对点信道)
- PPP:点对点信道的数据链路层协议
- 封装成帧
- 不需要设置目的帧地址
- 差错校验
- 同步串行传输:0比特填充
- 发送端每5个0就插入一个1
- 接收端每5个0就删除一个1
- 异步并行传输:字符填充(字节填充)
- 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x7E)。
- 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)
- 同步串行传输:0比特填充
-
CSMA/CD(广播信道)
-
半双工通信
-
CSMA/CD:载波监听多点接入/冲突检测
- 多点接入:说明这是 总线型网络,许多主机接入到同一根网线上。
- 载波监听:发前监听,发送数据之前,首先检测总线上是否有其他主机在发。
- 冲突检测:边法边监听,一边发送数据,一边检测是否还要其他主机也在发送
-
封装成帧:
- 字段
- 目标MAC地址 6字节
- 源MAC地址 6字节
- 类型:用于说明网络层使用的是那种协议,是IPV4,还是IPV6 占有2个字节
- FCS:帧校验序列 ,4字节
- 数据大小范围 :
- 最小46字节: 以太网帧最小时64,字节,必备的字段占有18字节,所以最小是46
- 如果网络层传层的包大小小于46字节,会在后边补0,凑够46,并会有专门字段,记录实际大小
- 最大字节:这是由网络层决定的,也是MTU
- 以太网帧的有效范围:
- 最小46
- 最大 1500+18(必备字节)=1518字节
- 字段
-
-
以太网帧最短:大小64字节。原因:能够让发送端感知到自己发送的数据和其他主机发送的主机发生了冲突
- 计算:标准以太网的带宽 乘以 2倍的传播时延
-
以太网最长帧:限制最大帧长原因:为了保证 每个主机都可以公平竞争 接入到以太网,如果有个主机长期在发送数据,其他主机就必须等待。
-
MAC帧:
- 48位 全球唯一
- 硬件地址 物理地址 MAC地址 三种等价的说法
-
以太网:一种总线型的局域网,用总线来传输数据帧。
-
总线型 和集线器型
-
标准以太网:带宽10m/s,有效范围是100m,主机到集线器的距离
- 10BASE-T ,10标准以太网的带宽,BASE:传输的是基带信号。T:使用的是双绞线。
-
-
显卡(适配器):
- 工作在 物理层和数据链路层设备
- 功能:
- 实现数据链路层需要实现的功能(透明传输 封装成帧 差错校验 )和物理层需要实现的功能(电信号和数字信号的转换)
- 完成 并行通信和串行通信的转化
- 实现CSMA/CD协议
- 过滤掉目的帧地址不是自己的数据帧。
- 对数据进行缓存
-
集线器
- 物理层设备 和同轴电缆一样
- 转发数据:当收到某个主机发送的数据之后,全部转发给其他所有主机
- 不安全 容易被转包
- 需要使用CSMA/CD协议
- 多个接口共享一个带宽,n个端口是总带宽的1/n
-
网桥:
- 数据链路层设备
- 转发数据:存储转发,先把数据帧存储下来之后 根据转发表 决定从哪个口转发
- 转发表:自学习算法
- 和集线器扩展以太网比 不仅增加了 通信主机的数量,还减少冲突
- 还是需要运行 CSMA/CD协议
-
交换机:
-
多接口的网桥
-
工作在 物理层和数据链路层
-
转发数据:存储转发,先把数据存储下来之后,再根据转发表(MAC地址和接口映射表)决定 从哪个接口转发出去
- 转发表:自学习算法
-
全双工通信 不在需要运行CSMA/CD协议
-
两个主机通行的时候,不影响其他主机之间的通信。
-
多个接口独占带宽
-
广播帧可以转发到全部端口
-
-
集线器和交换机的对比
- 工作层次:集线器 工作在 物理层 ,交换机工作在 物理层和数据链路层
- 转发数据:集线器广播转发, 交换机 存储转发 根据 转发表 决定从哪个接口转发
- 集线器需要使用CSMA//CD协议 半双工,交换机:不需要,全双工
- 集线器 每个接口共享带宽,交换机:每个接口独占带宽
- 集线器 不太安全,可以被转包,交换机:比较安全,抓包抓不到。
-
无比特差错和无传输差错
- 无比特差错:在链路层接受的帧没有传输差错
- 无传输差错:可靠传输,没有失序 乱序和重复问题
考题
-
PPP 协议的主要特点是什么?
- 简单 - 这是首要的要求。
- 封装成 - 必须规定特殊的字符作为顿定界符
- 透明性 - 必须保证数据传输的透明性。
- 差错检测 - 能够对接收端收到的进行检测,并立即丢弃有差错的帧
- 多种类型链路 - 能够在多种类型的链路上运行。
为什么PPP 不适用帧的编号?
由于在数据链路层不需实现可靠传输,PPP 使用编号是没有必要的。
PPP 适用于什么情况?
ppp协议适用于通信线路质量较好的情况下
为什么PPP 协议不能使数据链路层实现可靠传输?
PPP 不提供使用序号和确认的可靠传输
-
当数据链路层使用 PPP 协议或 CSMA/CD 协议时,既然不保证可靠传输,那么为什么对所传输的帧进行差错检验呢?
解答: 对所传输的帧进行差错检验是为了保证 向上交付的数据帧的都是没有传输差错的,反之如果不检验,出错的交付是没有意义的 -
除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题?
解答:最主要的就是要解决定界和透明传输的问题。 -
数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。
解答:1.封装成帧、透明传输、差错检验。
2.优点:及早发现传输中出现了差错,因而可通过数据链路层的重传来纠正差错。 缺点:虽然增加了可靠性,但是牺牲了实时性。 -
数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决?
不封装成帧:就没有帧定界符 ,就无法从比特流中识别出帧的开始和结束;
不实现透明传输:就会出现帧定界错误
不进行差错检验:就无法及早发现错误,造成错误资源在网络上的传送,浪费网络资源 -
如果在数据链路层不进行封装成,会发生什么问题?
解答:如果在数据链路层不进行封装成帧,就没有帧定界符,无法从比特流中识别出帧开始和结束。
不封装装成帧就无法进行差错检验,无法确定数据是否在出错。不封装成帧就不知道帧是否发送结束,也就无法知道何时交付上方