数据链路层是如何实现发送端和接收端联手进行检错的_计算机网络链路层

本文详细介绍了数据链路层的功能,包括物理寻址、逻辑处理、差错检测和多路访问控制。重点讲解了CRC校验过程及其优势,并探讨了局域网的工作原理和MAC协议,如CSMA/CD和CSMA/CA。此外,还解释了ARP协议的作用以及交换机在局域网中的作用和自学习过程。
摘要由CSDN通过智能技术生成

计算机网络-链路层

链路层功能

  • 对物理层传输的逻辑控制
    • 物理层只是负责传输比特流
    • 链路层位于物理层上层,负责对物理层传输的比特流进行逻辑处理
  • 物理寻址
    • 在局域网通过mac地址将数据传输到对应的主机上
逻辑处理包括哪些呢?
  • 组帧:封装上层数据报构成数据帧,加首部尾部,组帧以后就可以按帧为单元做逻辑控制
  • 帧同步:以帧为处理单元,需要知道帧的开始结束
  • 差错检测,差错纠正:传输过程中发生错误,需要知道发生了错误,以丢弃或者纠正
  • 多路访问控制:多个结点使用同一段链路,需要进行访问控制,处理信号冲突
  • 可靠交付:发送端需要确保接收端按照预期接收到所有帧信息
  • 流量控制:协调发送速度
局域网为什么不通过IP路由到对应主机上
  • IP地址是逻辑地址,可以随意更改,mac地址是固化在硬件上的不可以更改,是这样吗?
什么是局域网
  • 局域网,LAN,广播域都是同一个意思

  • 物理相连,只使用二层协议就可以通信

  • 不经过路由器,只包含主机和交换机设备的一组设备

  • 广播域叫法由来:通过mac地址进行广播,这个区域的所有设备(主机、交换机)都会收到广播

  • 路由器不会转发mac广播,广播域不跨越路由器,局域网通过网关路由器和外部网络通信

  • 局域网内,主机通过交换机互联

  • cb7d90836f8985f81bc61b869439fced.png

链路层具体实现是什么?

  • 链路层协议一般实现在适配器、网卡等物理设备中
  • 这些物理设备一般同时实现了物理层功能
  • 物理层和链路层逻辑上是紧密相连的,物理上也是紧密相连的

链路层的差错检测

  • 奇偶校验码
  • Internet校验和
  • 循环冗余校验码 CRC(链路层使用CRC)
CRC过程

编码

- 选择 r+1 位比特模式G
  • 数据比特D
  • D左移 r 位,模2除G,余数R
  • (D左移r位 异或 R)就是编码结果

检测

  • 接收端使用 模2除G,可以整除,表示数据没有差错
CRC优势
  • 编码过程:移位运算,异或运算(模2除的过程全部是异或运算)
  • 检测过程:异或运算(模2除)
  • 移位运算和异或运算很容易通过硬件来实现,链路层也是实现在硬件中,emm,nice啊

链路层多路访问控制协议 MAC(multiple access control protocol)

(注意区别mac地址)

  • 信道划分MAC协议
    • TDMA FDMA CDMA WDMA,时分、频分、码分、波分
  • 随机访问(random access)MAC协议
    • 不控制访问
    • 提供冲突检测能力,检测到冲突后可以恢复(有策略的重试)
  • 轮转MAC协议
    • 大家轮着用

区别

  • 信道划分在网络负载高时利用率高,负载低时利用率低

  • 随机访问在网络负载低时利用率高,在网络负载高时,冲突开销增大,利用率降低

  • 轮转的设计初衷在于结合以上两者优点,既不产生冲突,单结点能100%利用带宽

随机访问MAC协议
  • 时隙ALOHA
    • 时间被划分为等长的时隙
    • 每个结点只能在时隙的开始发送帧
    • 发生冲突以后,以下一个时隙以一定概率选择重发该帧
  • 纯ALOHA
    • 不划分时隙,随时可以发送帧
  • 载波监听多路访问协议 CSMA(carrier sense multiple access)
    • 发送前监听信道
    • 信道忙,延迟发送
    • 信道空闲,立即发送
    • 由于传输延迟,仍然可能冲突
    • 冲突需要由接收方反馈
    • 因为发送时没有冲突检测机制,发生冲突的帧会继续发送完(已经冲突了,继续发送是无效的)
  • CSMA/CD (Collison Detection)带冲突检测的CSMA
    • 冲突检测,强调的是边发边冲突检测,检测到冲突以后立即停止发送后续帧
    • 因为发送方(假设A)要检测冲突,(A给B发的时候,B也在给A发),A必须在发送完成之前接收到B的冲突帧,所以发送时间和传播延迟需要满足一定的条件,具体是L/R > 2d/V(L:数据帧长度,R:带宽,d:AB之间距离),从宏观上来看就是发送的帧大小不能太小,AB之间的距离不能过大
    • CSMA/CD协议不适用于无线局域网,因为无线信号(抗衰弱能力差)衰弱的问题,冲突检测不可行
  • CSMA/CA (Collison Avoidance)冲突避免
    • 通过预约来避免冲突
    • 通过向基站发送预约RTS(request to send)帧,进行预约,预约成功以后,独占信道
    • 预约帧也会冲突,但是预约帧很小,冲突的成本很小
    • 无线局域网使用CSMA/CA,多路访问控制协议

ARP协议

  • 解决同一个Lan内已知一个IP地址的前提下如何确定其mac地址的问题
    • Lan中每个IP结点维护ARP表,IP-MAC映射
    • 如果同一Lan中A向B发送数据报(知道B的IP地址),但是不知道B的MAC地址,A会进行mac广播(目的mac地址FF-FF-FF-FF-FF-FF),同一Lan的B收到广播后和自己的IP地址比对,如果一致则应答自己的mac地址
    • A收到B应答的mac地址后会,维护在ARP表中,带过期时间
  • 跨Lan如何获取mac地址
    • A B不在同一个Lan
    • A先发送请求到网关路由器,目的mac地址是网关路由器端口的mac地址,A和A的网关路由器在同一Lan,所以A可以通过ARP协议拿到网关路由器端口的mac地址
    • 然后网关路由器转发到B所在的Lan,再通过ARP协议拿到B的mac地址
    • 链路层协议的mac地址在同一Lan时不变,跨Lan时会发生变化

交换机

交换机是数据链路层设备

再看一下广播域(Lan、局域网)的图,可以看到交换机在局域网的位置(有X的是交换机)

cb7d90836f8985f81bc61b869439fced.png

  • 交换机解决什么问题?

    • 有了交换机之后,所有主机只与交换机连接,有独立的冲突域,只存在单点收发冲突,不会与其它结点冲突
  • 交换机的工作原理

    • 自学习,即插即用
    • 交换表维护端口到mac地址的映射关系
交换机自学习过程
  • 假设A发送帧到B,A先发送帧到交换机,交换机学习到 接收帧的端口和A的mac地址绑定,维护在交换表中
  • 然后转发给B,如果转换表没有B的mac地址和端口的映射关系,就泛洪,向除了接收端口以外的其它所有端口广播该帧,B一定能接收到帧
  • 当所有端口都有接收过帧,所有mac地址对应的端口信息就全部都有了

突然完结,撒花~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值