计算机网络(基础篇)-数据链路层

数据链路层

功能

  • 封装成帧
  • 透明传输
  • 差错检测

封装成帧

  • 帧是数据链路层数据的基本单位
  • 发送端在网络层的一段数据前后添加特定标记形成“帧”
  • 接收端根据前后特定标记识别出“帧”
    封装成帧
  • 帧首部和尾部是特定的控制字符(特定比特流)
    SOH: 00000001 (首部)
    EOT: 00000100 (尾部)

问题:数据里面恰好有这些比特流咋办?

  • 透明传输来解决

透明传输

  • “透明”在计算机领域是非常重要的一个术语
  • 透明传输“即是控制字符在帧数据中,但是要当做不存在的去处理”

假设在帧数据中存在一个尾部控制字符,那在接收端就会解析出错误的帧
在这里插入图片描述
透明传输通过在数据报中的控制字符添加转义字符的方式,来解决这一问题
在这里插入图片描述

差错检测

  • 物理层只管传输比特流,无法控制是否出错
  • 数据链路层负责起“差错监测”的工作

方法

  • 奇偶校验码
  • 循环冗余校验码CRC

奇偶校验码

  • 假设传输数据为00110010,通过计算获得数据为奇数,在数据后添加一个1的比特位,假设传输数据为00111010,通过计算获得数据为偶数,在数据后添加一个0的比特位,通过接收到数据后计算结果是否与增加的比特位相同来校验数据是否出错
    在这里插入图片描述
  • 但是此方法有一定的局限性,假设传输数据为00110010,增加比特位1,数据传输错误,第三位变为0,计算后对比发现错误,假设3,4位都传输错误,计算后对比没有发现错误
    在这里插入图片描述

循环冗余校验码CRC

  • 一种根据传输或保存的数据而产生固定位数校验码的方法
  • 检测数据传输或者保存后可能出现的错误
  • 生成的数字计算出来并且附加到数据后面
  • CRC的错误检测能力与位串的阶数有关
模“2”除法
  • 模“2”除法是二进制下的除法
  • 与算术除法类似,但除法不借位,实际是“异或”操作
  • 例子
    • 二进制的异或操作
      在这里插入图片描述
    • 模“2”除法
      在这里插入图片描述
过程
  • 选定一个用于校验的多项式G(x),并在数据尾部添加r个0

  • 将添加r个0后的数据,使用模“2”除法除以多项式的位串

  • 得到的余数填充在原数据r个0的位置得到可校验的位串

  • 例子
    1.例子1:使用CRC计算101001的可校验位串

    • 第一步(选定一个用于校验的多项式G(x),并在数据尾部添加r个0 ):
      选定如图的多项式G(x),多项式二进制位串为1101,最高阶为3

在这里插入图片描述

  • 在数据的尾部添加3个0
    在这里插入图片描述

  • 第二步(将添加r个0后的数据,使用模“2”除法除以多项式的位串):

    • 对添加零的数据对多项式二进制位串1101进行模“2”除法,余数应该为001,图片上计算错误
      在这里插入图片描述
  • 第三步(生成的数字计算出来并且附加到数据后面):
    在这里插入图片描述
    接收端接收的数据除以G(x)的位串,根据余数判断出错
    在这里插入图片描述

MTU(最大传输单元MTU(Maximum Transmission Unit))

  • 数据链路层的数据帧也不是无限大的
  • 数据帧过大或过小都会影响传输的效率
  • 以太网MTU一般为1500字节

路径MTU

  • 路径MTU由链路中MTU的最小值决定
    在这里插入图片描述

以太网协议

  • 以太网(Ethernet)是一种使用广泛的局域网技术
  • 以太网是一种应用于数据链路层的协议
  • 使用以太网可以完成相邻设备的数据帧传输

MAC地址

  • MAC地址(物理地址、硬件地址)
  • 每一个设备都拥有唯一的MAC地址
  • MAC地址共48位,使用十六进制表示(30-B4-9E-ED-85-CA)

以太网协议

数据格式
  • 如图为以太网协议,数字代表每一个属性所占的字节数
    在这里插入图片描述
  • 如果为网络层IP数据
    在这里插入图片描述
  • ARP请求应答
    在这里插入图片描述
  • RARP请求应答数据

在这里插入图片描述

MAC地址表
  • 地址表为MAC地址与硬件接口的映射表
    在这里插入图片描述
  • 例子
    假设A数据需要传递给C,连接方式如图,MAC地址表如图
    在这里插入图片描述
    在这里插入图片描述
  • A通过网卡发出数据帧
  • 数据帧到达路由器,路由器取出前6字节
  • 路由器匹配MAC地址表,找到对应的网络接口
    • 假设MAC地址表中没有C的硬件接口信息
    • E检查MAC地址表,发现没有C的信息
    • E将收到来自B、C的回应,并将地址记录
  • 路由器往该网络接口发送数据帧

问题

  • 数据链路层只负责相邻物理节点传输,假设如图网络拓扑,A怎么跨设备
    传输数据到C?
    • 网络层解决的问题
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值