计算机网络(二):数据链路层

中国大学MOOC网站北京交通大学计算机网络课程笔记

1. 数据链路层定义

    在OSI/RM中明确定义: 数据链路层是在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧在信道上的“透明”传输。


2. 基本概率

(1) 链路(link)

    是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。
在这里插入图片描述

(2) 数据链路(data link)

    除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

数据链路 = 链路 + 协议

    链路中通信双方的信道使用形式不同,会相应有不同的控制协议。
    数据链路层使用的信道主要由以下两种类型:

1. 点对点信道
     这种信道使用一对一的点对点通信方式。
在这里插入图片描述

2. 广播信道
    这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
在这里插入图片描述

(3) 帧
帧:数据链路层的数据单位

在这里插入图片描述

在这里插入图片描述
仅从数据链路层观察帧的流动(绿色箭头)
在这里插入图片描述


3. 数据链路层的基本功能。

1. 封装成帧
     封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,确定帧的界限,也就是进行帧定界。因为在物理层中数据都会转化为比特流,帧定界后就可以在比特流中确定一段数据的开始和结束。
在这里插入图片描述
定界方法举例:用特殊的控制字符
在这里插入图片描述
正常情况下,收到完整的帧;
出错情况下,丢弃不完整的帧。

2. 透明传输
     当一个数据在发送的时候,这个数据也是用比特流呈现的,所以数据中可能会出现和定界控制符一样的编码,尤其在多媒体的数据里边,会出现这样的情况。一旦出现这样的状况,此数据就会出现数据丢失等情况,造成数据错误的解读。(内容相关性冲突——不透明)
在这里插入图片描述

解决办法: 字节填充(或字符填充)
  1. 发送端的数据链路层——在内容数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符,如“ESC”(其ASCII编码为00011011)。
  2. 接收端的数据链路层——在讲数据送往网络层之前删除插入的转义字符。
  3. 如果转义字符也出现数据当中,那么应在转义字符前面也插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    在这里插入图片描述

3. 差错控制
数据传输并不总是一帆风顺,总有时候会出现差错,如下图所示。
在这里插入图片描述
在现有网络实现中,数据链路层只提供比特差错检测。主要因为:
(1) 一旦发生比特差错,很难自动恢复。
(2) 中间通信设备不掌握全部通信内容,所以对帧丢失、重复、失序等问题可能不了解。

解决方法:广泛使用循环冗余检测CRC方法
  1. 在发送端,先把数据划分为组。假定每组K个比特。
  2. 假设待传送的一组数据M=101001(现在K = 6)。
    在M的后面再添加供差错检测用的n位冗余码一起发送。
  3. 接收端收到数据后进行检验。
    若没有差错,就接收数据。
    若由差错,就丢弃数据。

4. MAC地址

在局域网中,MAC地址又称为物理地址,或MAC地址,也就是适配器地址。
MAC地址: 48位,在链路层中它会将源地址和目标设备的MAC地址都封装到数据的前面,以达到传输寻址的要求。下图就是MAC帧的封装格式。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值