zoukankan      html  css  js  c++  java
  • 数据链路层

    一、基本概念

    1.数据链路(data link)

    除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

    2.数据链路层的简单模型

    3.数据链路层的信道类型

    点到点信道:这种信道使用一对一的点对点通信方式。
    广播信道:广播信道上的主机很多,需要专用的共享信道协议来协调主机的数据发送。

    4.数据链路层的作用

    传送帧

    二、什么是帧

    帧包括:帧头、帧尾、物理层地址、校验值,在物理层叫做比特

    三、数据链路层解决的三个基本问题

    1.封装成帧(framing)

    即在一段数据的前后分别添加帧头和帧尾,构成一个帧,确定帧的界限。

    2.透明传输(transmission)

    若帧的内容中出现了与结束符一样的字符,则需设置转义字符ESC告诉接收端这不是结束。接收端在接收时会主动去掉转义字符,来获得帧的实际内容。

     

    3.差错校验

    在数据链路层传递的报文需要在帧尾部添加FCS校验码(通过CRC算法得出)。

    当对端主机收到时,在接收端同样通过CRC算法进行验证,确认传输过程中是否出现错误。

    CRC不是获得FCS的唯一方法。CRC只能做到无差错接受(意思是传输过程没有差错,有差错的一律丢弃);

    要做到可靠传输,必须加上确认和重传机制。

    四、两种情况下的数据链路层

    1.使用点对点信道的数据链路层(广域网)
    (1)PPP协议(point to point protocol),是数据链路层协议,例如用户使用拨号上网。
    (2)PPP协议应该满足:
    封装成帧;透明性;支持多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;数据压缩协商;
    (3)PPP协议不需要满足:
    纠错;流量控制;序号;多点链接;半双工或单工连接。
    (4)PPP协议的组成部分:
    高级数据链路层协议(HDLC)可以用于异步串行或同步串行介质;
    使用LCP(链路控制协议)建立并维护数据链路连接,可以实现身份验证和欠费管理;
    网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如下图;

    (5)PPP协议帧格式
    标志字段F(FLAG) = 0x7E
    地址字段A(ADDRESS) = 0xFF,它并不起作用
    控制字段C(CONTROL) = 0x03
    PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。 

    (6)PPP协议不使用序号和确认机制的原因
    在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理;
    在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;
    帧检验序列FCS字段可以保证无差错接受。
    (7)PPP协议的工作状态
    当用户拨号接入ISP(网络运营商)时,路由的调制解调器对拨号进行确认,建立物理连接;
    PC机箱路由器发送一系列的LCP(链路控制协议)分组(封装成多个PPP帧);
    这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机成为Internet上的一个主机;
    通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址;接着,LCP释放数据链路层连接;最后释放的事物理层连接。

    2.使用广播信道的数据链路层(局域网)

    (1)CSMA/CD协议:(Carrier Sense Multiple Access with Collision Detection)带冲突检测的载波监听/碰撞检测协议
    许多计算机以多点接入的方式连接在一根总线上,每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;

    (2)碰撞检测
    碰撞检测就是计算机边发送数据边检测信道上信号电压的大小。
    当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大;
    当一个站检测到信号地哪呀摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;
    碰撞就是冲突,碰撞检测也称冲突检测。
    检测到碰撞后:
    在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;
    每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送。

    (3)传播时延对载波监听的影响

    在2t时间内,可能存在碰撞。

    (4)CSMA/CD的重要特性
    使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工);
    每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;
    这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

    (5)争用期
    最先发送数据帧的站,在发送数据帧后至多经过时间2t(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞。
    经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;
    以太网的争用期:
    以太网的端到端往返时延2t称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的延长,这也是为什么网线一般不超过100m;
    对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;
    以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;
    最短有效帧长:
    如果发生冲突,一定是前64字节;
    由于一旦发生冲突就立刻停止,所以已发送的数据一定小雨64字节;
    以太网规定了最短有效帧长为64字节,凡事小雨64字节的帧一定是因为冲突而异常终止的无效帧。

    (6)二进制指数类型退避算法
    发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。
    确定基本退避时间,一般是争用期2t;
    定义参数k = min(重传次数,10);
    从整数集合{0,1,…,2^k-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;
    当重传达16次时仍不能成功时就丢弃该帧,并向高层报告。

     五、以太网

    1.以太网的两个标准

    DIX Ethernet V2一般是指这个。
    IEEE 802.3 两个标准差别很小。
    以太网 是满足DIX Ethernet V2标准的局域网。

    2.以太网与数据链路层的2个子层

    逻辑链路控制LLC(Logical Link Control)子层;与媒体接入控制MAC(Medium Access Control)子层。
    与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关,不管什么协议的局域网对LLC子层都是透明的;
    由于局域网标准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2标准的LLC子层作用已经不大了,很多厂商适配器没有LLC协议。

    3.扩展以太网

    (1)在物理层扩展

    距离的扩展:主机使用光纤和一对光纤调制解调器连接到集线器。
    数量的扩展:集线器集联,使网络中计算机增加,变成一个大的冲突域,会造成效率降低。

    (2)在数据链路层扩展

    使用网桥:网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是现检查此帧的目的MAC地址,然后再确定将该帧转发到对应的接口。
    交换机:就是网桥和集线器的合并升级版,能全双工,安全通信。

    六、MAC层

    1.适配器检查MAC地址

    适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:
    如果是发往本站的帧就收下,然后进行其它处理;
    否则丢弃。

    2.MAC帧的格式

    IP数据报的最短长度为46字节。

     

    参考文献:

    1.https://www.bilibili.com/video/av9876107?p=23

    2.https://blog.csdn.net/iwanderu/article/details/103812828

  • 相关阅读:
    oracle中的case when then else end 用法
    oracle中子查询
    oracle中关联查询、分组查询
    oracle中数据字典、数据、序列、索引、视图知识
    Oracle中rownum用法
    自己(转)JAVA中toString方法的作用
    自己(转)String、StringBuffer与StringBuilder之间区别
    JSP九大内置对象和四个作用域
    servlet及xml文件处理流程
    (转载)get和 post方法的不同
  • 原文地址:https://www.cnblogs.com/bbcfive/p/12200949.html
Copyright © 2011-2022 走看看