zoukankan      html  css  js  c++  java
  • 计算机网络概述---数据链路层

    数据链路层基本概念

    三个基本问题

    封装成帧:在一段数据的前后加上首部和尾部,然后构成帧,首部和尾部的作用就是进行帧的界定;

    透明传输:当传输的数据中含有首部和尾部的字符时,需要进行转义(用字节填充解决,给数据中的特殊字符前面填充转义字符);

    差错控制:传输过程中可能产生比特差错,1变成0,0变成1等情况,在一段时间内,传输错误的比特占所传输比特总数的比值称为误码率,误码率与信噪比有很大的关系;

    为了保证数据传输的可靠性,在计算机传输数据的过程中,必须采用各种差错检验措施(循环冗余检验CRC);FSC为CRC后的结果,帧检验序列FSC是指在数据后面加上冗余码(FSC),循环冗余检验CRC和帧检验序列FCS并不等同;

    CRC:是一种常用的检错方法;

    FSC:是添加在数据后面的冗余码,FSC可以用CRC得出,而CRC并非是得出FSC的唯一途径;

    两种情况下的数据链路层

    使用点对点信道的数据链路层

    现在全世界使用最多的数据链路层协议就是ppp协议,用户使用拨号电话线接入因特网时,一般就是点到点协议;

    ppp协议应该满足的要求 ppp协议不需要满足的要求

    封装成帧

    透明性

    多种网络层协议

    多种类型链路

    差错检验

    检测连接状态

    最大传送单元

    网络层地址协商

    数据压缩协商

    纠错

    流量控制

    序号

    多点线路

    半双工或单工链路

    ppp协议的组成:

    1.数据链路层协议可以用于异步串行或同步串行介质;

    2.它使用LCP(链路控制协议)建立并维护数据链路连接;

    3.网络控制协议(NCP)允许点到点连接上使用多种网络协议;

    ppp协议帧格式:

     

    首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。

    首部中的地址字段A规定为0xFF(即11111111)。
    首部中的控制字段C规定为0x03(即00000011)。
    首部中的2字节的协议字段:
    (1)当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。
    (2)当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。
    (3)当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。
    PPP帧的信息字段部分,信息字段的长度是可变的,不超过1500字节。
    PPP帧的尾部
    尾部中的第一个字段(2个字节)是使用CRC的帧检验序列FCS。
    尾部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的结束。
    注:标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。如果连续出现两个标志字段,就表示这是一个空帧,应当丢弃。

    PPP协议中的透明传输的实现方式
    当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一言的比特组合不出现在信息字段中。

    1 字节填充——PPP使用异步传输
    当PPP使用异步传输时,它把转移符定义为0x7D,并使用字节填充。
    RFC1662规定了如下填充方法:
    (1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。
    (2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。
    (3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x31)。
    由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在接收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。
    2 零比特填充——PPP使用同步传输
    当PPP使用同步传输时,使用零比特填充。
    零比特填充的具体方法:
    (1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。
    (2)只要发现有5个连续的1,则立即填入一个0。
    (3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。
    因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1。

    使用广播信道的数据链路层

    1. 广播信道在局域网的数据链路层中使用

    局域网的拓扑类型有 总线型,环形,星型

    局域网的共享信道的方式为总线型网络为多点接入

    分为以下两种

    随机接入:也就是说信道不是固定的分配给某一个主机而是每个主机都可以随时的发送信息,但是这里的问题是如果同时有多个用户发送信息的话,就会造成碰撞,这样就都会失败,所以说必须要有解决碰撞的协议

    受控接入:受控接入的特点是用户不能够随时的发送信息,而是受到一定的控制,比如说给每个用户一个令牌,或者说轮询

    2. 适配器

    适配器又称为网卡,通过I/O总线与cpu相连接,适配器中包含着计算机的唯一标示Mac地址。

    现在的适配器功能都比较强大,发送和接收帧都可以自己实现而不用cpu这样就节省了cpu的时间。另外适配器还可以进行差错检测。

    适配器拥有过滤功能,能够将不属于本站的收下,不属于本站的帧丢弃

    通常局域网中有三种帧

    1 单播帧(一对一),收到的帧的mac地址与本机的硬件地址相同

    2 广播帧(一对全体),发送给本局域网的所有帧(地址全是1)

    3 多播帧(一对多),发送给局域网的一部分主机

    适配器还可以设置为混杂方式工作,即接收局域网上的所有帧,这样就可以监听别人的信息,这种方式是不好滴

    3. CSMA/CD协议

    以太网是总线型结构,所以说当一台计算机发送信心的时候,所有的计算机都能都监听到,所以说需要有mac地址来知名目的地址。

    只有mac地址与数据帧首部的mac地址相同的时候才会接收其他情况下丢弃。

    为了简便通信以太网采用了无连接工作方式,也就是说发送信息的时候不必要建立连接,差错重传之类的交给高层协议比如说TCP。

    CSMA/CD协议的主要内容

    多点接入:说明是总线型网络

    载波监听:因为每个计算机随时都可以发送信息,所以说为了防止信息失效就采用载波监听,如果说信道中有其他计算机正在传送信息自己就不发送

    碰撞检测:也就是边发送边检测,载波监听的时候会有时间差,也就是说当一个主机发送的时候,传播的其他主机是需要时间的,所以说如果一个主机发送的时候,其他主机并没有检测到(因为时间差),那么其他的主机也有可能发送

    这样的话就会有可能造成碰撞。所以说需要碰撞检测,如果发生碰撞的话就会停止发送,然后等待一段时间重新发送。

  • 相关阅读:
    CF1394A Boboniu Chats with Du 题解
    P3377 【模板】左偏树(可并堆)题解
    P2152 [SDOI2009]SuperGCD 题解
    在其他模块中调用代码
    教程:创建Go模块
    Go入门
    反悔贪心
    codeforces 1569 E. Playoff Restoration (meet-in-the-middle)
    codeforces 1036 F. Relatively Prime Powers (容斥+精度处理+大数边界处理)
    icpc沈阳2020 H. The Boomsday Project (dp+二分)
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/9822884.html
Copyright © 2011-2022 走看看