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

1. 数据链路层基本问题

1.1 数据链路层的简单模型

比如主机H1给主机H2发送信息
在这里插入图片描述
数据流转如下图:
在这里插入图片描述

2.2 为什么需要数据链路层

判断数据是否正确,帧头帧尾是否正确、加上校验和。
主要解决一下问题:

2.1 封装成帧

在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界类似于书架中,比如一排是艺术数,每一排的左边架子和右边架子做很好的物理区分
在这里插入图片描述

2.2 透明传输

比如如果一个完整的帧中出现了缺失是的标记,默认的标记与帧尾一样,如果跳过该缺失标志 呢?
传输过程中会默认加一些特殊字符,在接收端会删掉特殊字符。
在这里插入图片描述

  1. 插入特殊字符:发送端在数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B),表示并不是真的结束,而是数据。
  2. 字节填充:接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
  3. 转义字符特殊处理:如果转义字符也出现数据当中,比如刚好真的有ESC标记,那么应在转义字符前面插入一个转义字符(ESC)。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    在这里插入图片描述

2.4 差错校验

在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1 ,在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
大致思路如下:
不够则商0,够则商1,一直做除法,直到余数位数小于除数位数。
把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2^n*M + R (下图中发送的数据则为101001001)

循环冗余检验 CRC 和帧检验序列 FCS并不等同。

  • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码(下图中的001)。
  • FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法
    在这里插入图片描述
    接收端收到数据之后对收到的每一帧进行 CRC 检验 :
    (1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。
    (2) 若余数 R != 0,则判定这个帧有差错,就丢弃。

2. 数据链路层信道

数据链路层主要有两种数据类型,一种是一对一的点对点通信,另外一种是一对多的广播通信。

链路:一条点到点的物理线路段,中间没有任何的其他交换点。
数据链路(data link) :除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。(比如网线+网卡)

2.1 帧

数据包进入数据链路层会自动加上帧头帧尾,并且加上校验值,构成一个帧。
在这里插入图片描述

3. 以太局域网

只要符合CSMA/CD 协议 的都可以算作是以太网。以太网提供的服务是不可靠的服务,如果没有接受到,则请求重发就行。
只要满足带冲突检测的载波侦听访问的都是以太网。
最初以太网分为两层:

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

3.1 PPP协议(广域网)

点到点协议,主要支持的功能如下:

  • 简单——这是首要的要求
  • 封装成帧
  • 透明性
  • 多种网络层协议
  • 多种类型链路
  • 差错检测
  • 检测连接状态
  • 最大传送单元
  • 网络层地址协商
  • 数据压缩协商

PPP协议帧格式
其中7E表示头部和尾部,FF、03是固定的部分,FCS表示帧检验序列,其中头部的代表协议部分有特殊的含义,含义如下:
PPP 有一个 2 个字节的协议字段。
当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。
若为 0xC021, 则信息字段是 PPP 链路控制数据。
若为 0x8021,则表示这是网络控制数据。

同时,PPP协议也可以解决透明传输问题。
并且,不使用序号和确认机制,一旦出错,直接抛弃即可。帧检验序列 FCS 字段可保证无差错接受
在这里插入图片描述

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

一般用于局域网
接入的方式有两种:

  1. 静态划分信道
  2. 动态媒体接入控制(多点接入)
    - 随机接入
    - 受控接入 ,如多点线路探询(polling),或轮询。
1. 总线型以太网如何检测信号
  1. 载波监听多点接入/碰撞检测 CSMA/CD
    遵循一下原则:
    - “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
    - “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
  2. 在检测过程中会进行碰撞检测
    “碰撞检测”就是当几个站同时在总线上发送数据时,计算机边发送数据边检测信道上的信号电压大小,总线上的信号电压摆动值将会增大(互相叠加),当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
  3. 一旦发现了发生了信号碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
2. 传播延时对载波监听的影响

如图A、B同时发送信号,何时开始接受到碰撞之后返回的结果
其中:使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
如果发送的信号,在2t时间内都没有发现信号冲突,则表示不会发生冲突。(该时间点又称为争用期
在这里插入图片描述
那么发生冲突之后,如何决定下次发送的时间呢?
一般采用的是二进制指数类型退避算法,思路如下:
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。

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

3.3mac层

以48位的二进制组成,前24位代表厂商、后24位扩展标识符。
每一个适配器检查接受到信息的mac地址,主要接受的形式有以下三种:

  • 单播(unicast)帧(一对一)
  • 广播(broadcast)帧(一对全体)
  • 多播(multicast)帧(一对多)

mac帧格式如下:
mac地址的数据帧最小是64个字节,如果来自于网络层的数据没有46个字节,则需要额外的补充字节。
在这里插入图片描述
以下mac帧都是不符合要求的数据帧:

  1. 数据字段的长度与长度字段的值不一致;
  2. 帧的长度不是整数个字节;
  3. 用收到的帧检验序列 FCS 查出有差错;
  4. 数据字段的长度不在 46 ~ 1500 字节之间。
  5. 有效的 MAC 帧长度为 64 ~ 1518 字节之间。
  6. 对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

4. 扩展以太网

可以利用集线器(Hub)扩展以太网,但是存在很多缺点,比如碰撞域增大了,但总的吞吐量并未提高。
采用网桥扩展

  1. 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
  2. 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。可以做到隔绝冲突的作用,

随着发展,网桥不再对接hub,而是直接对接计算机,变成了交换机

5. 高速以太网

比如 100M以太网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值