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

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

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

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

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

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

    首先看封装成帧:

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

     

    再来看差错检测:

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

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

    • 检错码

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

     

    再来看可靠传输:

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

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

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

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

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

     

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

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

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

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

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

     

  • 相关阅读:
    【GruntMate】一个让你更方便使用Grunt的工具
    HTML5小游戏【是男人就下一百层】UI美化版
    【Grunt】关于Grunt可视化的尝试
    在腾讯ubuntu云服务器上面部署asp.net core 2.1网站
    存储过程中执行动态Sql语句
    我的2016年总结
    程序员的成长阶梯和级别定义
    让IE8在win7下面能显示使用window.showmodaldialog弹出窗口的地址状态栏
    更改计算机名称后 导致 sql server 2008 R2 用windows账户不能附加的错误解决办法
    【转】通过js获取系统版本以及浏览器版本
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/15399698.html
Copyright © 2011-2022 走看看