计算机网络之数据链路层

计算机网络之数据链路层

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

同样地,本文只是总结,只包含重要的知识点,具体的知识请仔细研究谢希仁老师的《计算机网络》一书。

  • 帧:协议数据单元

    数据链路层将网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交网络层。

  • 三个基本问题

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

    • 封装成帧

      为了标志开始(SOH)和结束(EOT),在数据的前后分别加上首部和尾部,这样就构成了一个帧。

    • 透明传输

      因为开始和结束标志是控制字符,可能在数据正文中出现且有实际的意义,因此在封装过程中需要跳过这些特殊的字符,否则会导致封装时过早结束封装而遗漏信息。一般都会在控制字符前面加上转移字符。

    • 差错检测

      在传输过程中可能会出现差错,因此需要在发送时提供差错标志,在接收的时候通过验证差错标志来检测正确性, 广泛使用的检错技术是循环冗余检验。

      • 循环冗余检验(CRC)

        发送方:在k位的数据M后添加n个0,则拼接后的k+n位数据M1除以双方约定的n+1位除数P,得到n位余数R,将余数R拼接到M上,发送k+n位最终数据M2。

        接收方:将收到的M2除以约定的除数P,如果无差错则最终结果位0,否则意味着出现了差错。

  • 链路层点对点协议-PPP

    既支持异步链路,也支持同步链路的点对点协议是目前使用最广泛的数据链路层协议,比较重要的是其透明性规定,PPP开始和结束标志都是0x7E(01111110)。

    • 异步传输时,使用字节填充,转义字符定义位0x7D:

      • 将信息字段中的每个0x7E转变为(0x7D,0x5E)
      • 将信息字段中的每一个0x7D转变为(0x7D,0x5D)
      • 将信息字段中的每一个ASCII控制字符前加上0x7D
    • 同步传输时,使用零填充:

      • 在信息字段中,每发现5个连续1,则立即加入一个0
  • CSMA/CD协议-载波监听多点接入/碰撞检测

    最早的以太网是将许多计算机连接到一根总线上,因此只能允许一个主机在总线上发送数据,否则会造成数据混乱。但集线器的出现打破这种窘况,使以太网的拓扑从总线型变为更加方便的星形网络。因此这里只简单介绍一下重点:基本退让时间

    • 基本退让时间(争用期)

      当一端发送除数据后最久要多久才能检测到冲突呢?从传播检测冲突的过程我们可以发现,最久即考虑最坏的情况,那么就是在发送端的信息到达接收端的一瞬间发生了冲突,碰撞信号就会回传给发送端,此时发送到从发送数据到接收碰撞信号经过了2倍传播时延的时间,即2t。

  • MAC:数据链路层中的地址

    在数据链路层中,从端到端需要指定数据的来源和数据的目的,那么需要给发送端和接收端一个地址。而数据链路层的实现依赖于物理层,地址应该与帮助计算机接入网络的硬件——适配器有关,因此厂家给了每个适配器一个硬件地址—MAC地址。

    但因为每个厂家给适配器配置地址的方法不同,导致数据在网络中传递需要不断转换格式,增大了不必要的开销,这就为IP协议的出现埋下了伏笔。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值