zoukankan      html  css  js  c++  java
  • 3.1 概述

    链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

    要在链路上传输数据,仅有链路还不够,还需要协议通信协议来控制这些数据的传输。

    若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

    数据链路上传输的数据包叫帧,数据链路层以帧为单位。

    接下来我们来看看数据链路层的三个重要问题:

    首先看封装成帧:

    我们给网络层交给数据链路层的IP数据报添加帧头和帧尾的操作叫做封装成帧。

     

    再来看差错检测:

    发送方将帧从数据链路层交给物理层,如果受到干扰传输过程可能出现误码。比特0可能变为比特1。

    但是接收方如何知道传输过程出现误码呢?

    • 检错码

    发送方在发送数据之前,基于待发送的数据和检错算法得出检错码。并将其封装在帧尾。接收方接收之后,根据帧尾的检错码和检错算法就可以知道帧中是否出现误码。

     

    再来看可靠传输:

    接收方收到有误码的帧,不接受,直接丢掉。如何数据链路层向其上层提供的是不可靠的服务,那么丢弃就直接丢弃了。如果提供的是可靠的服务,那么久还要采取其他措施,让接收方收到本该收到的副本。

    换句话说:误码是不能完全避免的,但是最终接收方接收到发送方发的,就叫可靠传输。

    上面的我们都是基于点对点的数据链路层来讲的

    还有一种使用广播信道的数据链路层,他还会有其它的问题。

    首先就是寻址问题,我们可以在帧头中加上目的地址就知道是谁要接收

     

    其次是两台主机如果同时发送数据,会有数据碰撞的问题。这个我们使用一种特殊的控制协议CSMA/CD协议。也就是载波监听多点接入/碰撞检测

    随着技术发展,交换式局域网在有线传输方式已经取代了共享式局域网。

    那么网络中的交换机又是如何转发帧的呢?

    另外由于无线信道的广播天性,无线局域网仍然使用的是共享信道技术,例如:802.11局域网采用的媒体接入控制协议是CSMA/CA 碰撞避免协议。他的工作原理又是怎样的呢?

    总结几大问题,后续介绍:

     

  • 相关阅读:
    一致性哈希算法
    Discourse 的标签(Tag)只能是小写的原因
    JIRA 链接 bitbucket 提示错误 Invalid OAuth credentials
    JIRA 如何连接到云平台的 bitbucket
    Apache Druid 能够支持即席查询
    如何在 Discourse 中配置使用 GitHub 登录和创建用户
    Apache Druid 是什么
    Xshell 如何导入 PuTTYgen 生成的 key
    windows下配置Nginx支持php
    laravel连接数据库提示mysql_connect() :Connection refused...
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/15399698.html
Copyright © 2011-2022 走看看