zoukankan      html  css  js  c++  java
  • 数据链路层工作原理

    1.封装成帧
    封装成帧:就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
    接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
    分组交换的一个重要概念:就是所有在因特网上传送的数据都是以分组(即ip数据报)为传送单位。
    网络层的ip数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,就构成了一个完整的帧。
    帧长等于数据部分长度加上帧首部和帧尾部的长度,而首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。
    首部和尾部还包含许多必要的控制信息,在发送帧时,是从帧首部开始发送。
    各种数据链路层协议都要对帧首部和帧尾部的格式有明确的规定。
    为了提高帧的传输效率,应当使帧的数据部分长度尽可能大于首部和尾部的长度。但是,每一种链路层协议都规定了帧的数据部分的长度上限▁最大传送单元MTU(Maximum Transfer Unit)。

     

    当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。

    控制字符SOH(start of header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(end of transmission)表示帧的结束。他们的十六进制编码分别是01(二进制是00000001)和04(00000100)。

    当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发完一个帧时突然出现故障,中断了发送。但随后很快又恢复正常,于是重新从头开始发送刚才未发送完的帧,由于使用了帧定界符,在接收端就知道前面收到的数据是个不完整的帧(只有首部SOH,没有传输结束符EOT),必须丢弃。而后面收到的数据有明显的帧定界符(SOH和EOT),因此这是一个完整的帧,应当收下。

    2.透明传输,用字节填充法解决透明传输的问题(ESC转义字符)。

    3,差错检测

    差错检测:可分为两大类,一类就是最基本的比特差错,另一类就是收到的帧并没有出现比特错误,但却出现了帧丢失、帧重复或帧失序。

    比特差错:就是比特在传输过程中可能会产生差错,即1可能会变成0,0可能会变成1。比特差错是传输差错中的一种。

    误码率BER(Bit Error Rate):就是在一段时间内,传输错误的比特占传输比特总数的比率。例如,误码率为10^(-10)时,表示平均每传送10^10个比特就会出现一个比特的差错。误码率与信噪比有很大的关系,如果提高信噪比,就可以使误码率减小。

    问题:实际的通信链路并非理想的,它不可能是误码率下降到零。

    问题分析:为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用葛总检测措施。

    解决方法:目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检测技术。

    注:在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

    补充:OSI的观点是必须把数据链路层做成是可靠传输的,因此在CRC检测基础上,增加了帧编号、确认和重传机制。收到正确的帧就要向发送端发送确认。发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,知道收到对方的确认为止。

    这种方法在历史曾经祈祷很好的作用,但现在的通信线路的质量已经大大提高了,由通信链路质量不好引起差错的概率已经大大降低。

    英特网广泛使用的数据链路层协议都不适用确认和重传机制,即不要求数据链路层向上层提供可靠传输的服务(因为这要付出的代价太高,不合算)。如果在数据链路层传输数据时除了差错并且需要进行改正,那么改正差错的任务就由上层协议(如,运输层tcp协议)来完成。实验证明,这样可以提高通信效率。

  • 相关阅读:
    分布式任务调度系统xxl-job相关问题补充
    分布式任务调度系统xxl-job源码探究(一、客户端)
    分布式任务调度系统xxl-job源码探究(二、服务中心)
    分布式任务调度系统xxl-job搭建
    Rocketmq日志收集与logback集成Demo
    [JavaWeb基础] 006.Struts1的配置和简单使用
    [JavaWeb基础] 005.Hibernate的配置和简单使用
    [工具推荐]003.Tortoisegit使用教程
    移动推广关键指标
    [Objective-C] 009_Foundation框架之NSDictionary与NSMutableDictionary
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/6718955.html
Copyright © 2011-2022 走看看