zoukankan      html  css  js  c++  java
  • 六、数据链路层功能与协议

    1、数据链路层的功能

    数据链路层在物理层提供服务的基础上向网络层提供服务。

    作用:加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路。让它对网络层表现为一条无差错的链路。

    1.1、为网络层提供的服务

    1.1.1、无确认的无连接的服务:源机器发送数据帧之前不用先建立链路连接,目的机器收到数据帧后也不要发回确认。

    对丢失的帧,数据链路层不负责重发而交给上层处理,用来实时通信或者误码率较低的通信信道。以太网就是这种机制服务

    1.1.2、有确认无连接的服务:源机器发送数据帧不需要建立链路连接,但是目的机器收到数据帧后必须发回确认。

    源机器在所规定的时间内没有收到确认信号,就会重新传丢失的帧。用来提高传输的可靠性。这种服务常用在误码率高的通信信道,比如无线通信。

    1.1.3、有确认的面向连接的服务:帧传输分为三个过程:建立数据链路,传输帧,释放数据链路。

    这种服务用语通信要求,可靠性,实时性较高的情况下。

    注:有连接就一定要有确认

    1.2数据链路层的链路管理

    1.2.1、数据链路层,连接的建立,维持,释放,三个过程叫做链路管理,主要还是面向连接的服务

    两个工作栈之间进行传输信息的时候,必须将网络层的分组(package)封装成帧(Frame),然后用帧的格式进行传送。

    在数据的前后分别加上帧头和帧尾,就构成了帧。

    1.2.2、帧头和帧尾的作用:确定帧的界限,也就是帧定界。

    HDLC标准帧格式:前后都有标志位F(01111110)

    透明传输:不管所传数据是什么样的比特组合,都可以在连路上传送

    1.3、流量控制

    由于发送方和接收方的工作速率和缓存空间的差异,可能出现发送方发送能力大于接收方的能力。如果不对链路上的信息流量限制,前面来不及接收的帧就会被后面不断发送的帧淹没,造成帧的丢失而出错。

    流量控制:就是限制发送方的数据流量,使其发送速率不超过接收速率。

    其实流量控制其它层也提供这个功能,只不过控制的对象不同而已。对于数据链路层:控制的是相邻两个节点之间

    的数据链路上的流量。而对于传输层:控制的是从源端口到目的端口的流量。

    流量控制的基本方法:接收方控制发送方发送数据的速率

    常见方式:停止等待协议,滑动窗口协议

    1.3.1、停止等待协议:发送方发送一帧,都要等待接收方得应答信号,才能发送下一帧。同样,接收方每接收一帧,都要反馈一个应答信号,这种传输效率很低。

    1.3.2、滑动窗口协议:任何时刻,发送方都维持一组连续的允许发送的帧的序号,这个叫发送窗口

    同样接收方也维持一组连续的允许接受帧的序号,叫接收窗口。发送窗口用来对发送方进行流量控制。

    可靠传输机制:确认机制,超时重传机制。

    1、多帧滑动窗口-选择重传协议SR

    2、多帧滑动窗口-后退N帧协议GBN

    后退N帧式ARQ中,发送方不需要再收到上一个帧的ACK后才能开始发送下一帧,也就是可以连续发送帧。

    1.4、差错控制

    由于信道噪声等因素,帧传输可能出现错误。

    位错:帧的某些位出现了差错,采用循环冗余校验CRC,通过自动重传请求ARQ方式来重传错误的帧

    注:介质访问控制MAC(Medium Access Control)

    信道划分介质访问控制有四种:频分多路复用FDM,时分多路复用TDM,波分多路复用WDM,码分多路复用CDM

    2、随机访问MAC

    在随机访问协议中,不采用集中控制方式解决信息发送的次序问题。所有用户都可以根据自己的意愿随机发送信息,占用信道全部速率。在总线网中,当有两个或者多个用户同时发送信息的时候,就会产生帧的冲突。这导致所有冲突用户的发送均失败。

    为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复的重传他的帧。知道帧没有碰撞到通过。

    这些规则就是随机访问MAC协议。

    重用的协议:ALOHA协议,CSMA协议,CSMA/CD协议,CSMA/CA协议

    这些协议的核心思想都是:胜利者通过争用获得信道,进而获得信息的发送权,所以说随机访问MAC协议,也叫争用型协议。

    MAC采用信道划分机制,那么节点之间的通信,要不就是共享空间,要不就共享时间,要不就两个都共享。

    随机MAC:实质上是一种广播信道转化为点到点信道的行为。

    因为交换机可以转发广播,随机访问MAC,可以将广播转化为point to point 

    2.1、ALOHA协议:随机接入系统协议

    2.2、CSMA协议:

    如果每个站点在发送前都先侦听一下公用的信道,那么发送信道空闲后再发送,那么将会大大减小冲突的可能。从而提高信道的利用率。

    载波侦听多路访问(Carrier Sense Multiple Access,CSMA)

    CSMA协议对ALOHA协议的一种改进,也就是多了一个载波侦听装置。

    2.3、CSMA/CD协议:载波侦听多路访问/碰撞检测

    是对CSMA协议的改进方案,适用于总线型网络或者半双工网络环境

    载波侦听:也就是发送前先侦听,每次发送数据之前都要先检查一下总线上是否有其他站点在发送数据,如果有

    则暂时不要发送数据,等待信道变为空闲的时候再发送。

    碰撞检测:就是一边发送一边侦听,适配器在发送数据的时候变检测信道上的信号电压的变化情况,用来判断自己在发送数据的时候其他站点是否也在发送数据。

    CSMA/CD工作流程:先听后发,边听边发,冲突停发,随机重发

    总线的传播时延对CSMA/CD的影响很大,CSMA/CD中的站不能同时发送和接收

    所以CSMA/CD的以太网是不进行全双工通信,只能进行半双工通信

    2.4、CSMA/CA协议

    CSMA/CD协议已经应用在使用有线连接的局域网中,但是要在无线局域网的环境下,却不能用。

    CSMA/CD协议,尤其是碰撞部分,因为无线局域网中,接受信号的强度远远小于发送信号的强度。而且在无线介质上信号强度变化范围很广,要实现碰撞检测,那么在硬件上要花费很大。

    在无线通信中,并非所有的站点都可以侦听到对方,也就是隐蔽站的问题。

    CSMA/CA协议,广泛用于无线局域网。

    把碰撞检测改成了碰撞避免(Collision Avoidance,CA)

    碰撞避免:不是指协议可以完全避免碰撞,而是指协议的设计要尽量减少碰撞的发生概率。

    CSMA/CA采用二进制指数退避算法。通过预约信道,ACK帧,RTS/CTS帧,三种机制来实现碰撞避免

    RTS/CTS帧,主要用来解决无线网的隐蔽站问题。

    预约信道,ACK帧,都是必须要实现的

    预约信道:发送方在发送数据的同时想起他站点通过告知自己传输数据需要的时间长度,方便让其他站点在这段时间内部发送数据,避免碰撞。

    ACK帧:所有站点在正确接收到发送给自己的数据帧后,都需要向发送方应答一个ACK帧。

    总结:

    CSMA/CA协议的基本思想:发送数据的时候先广播告知其他节点,让其他节点在某个时间段内不要发送数据,避免碰撞。

    CSMA/CD协议的基本思想:发送前先侦听,边发送边侦听,一旦出现碰撞马上停止发送。

    3、轮询访问MAC:令牌传递协议

    在轮询访问中,用户不能随机的发送信息,是通过集中控制的监控站,以循环的方式轮询每个节点。然后决定信道的分配。

    当某个节点使用信道的时候,其他节点都不能使用信道。典型的轮询MAC协议是令牌传递协议,令牌环局域网。

    令牌传递协议:一个令牌在各个节点以一个固定的次序交换。令牌是个特殊的比特组成的帧,当换上的站希望传递帧的时候,就必须等待令牌,一旦收到令牌,站点就可以启动发送帧。

    轮询MAC适合复杂很高的广播信道,负载很高的信道就是多个节点在同一时刻发送数据概率很大的信道。

    如果广播信道采用随机MAC,发生冲突的概率很大,而采用轮询MAC则可以更好满足各个节点的要求。

    轮序的实质:不共享时间,空间。实质上就是在随机MAC的基础上,限定了有权利发送数据的节点只能有一个

    即使是广播信道,都可以通过MAC使得广播信道逻辑上变成点对点的信道。所以说数据链路层研究的是点对点之间的通信。

    4、局域网(Local Area Network,LAN)

    4.1、局域网的特点:

    1、为一个单位所拥有的,地理范围和站点数目有限

    2、所有的站共享较高的总带宽,也就是共享较高的数据传输率

    3、较低的时延和较低的误码率

    4、各站为平等关系而不是主动关系

    5、能进行广播和组播

    4.2、局域网的拓扑结构:

    星型,环形,总线型,星型+总线型复杂复合

    4.3、局域网的传输介质:

    双绞线,同轴电缆,光纤,其中双绞线是主流

    局域网的介质访问控制方法:CSMA/CD,令牌总线,令牌环

    这是交换机常用于局域网,而局域网接入广域网要用路由器

    CSMA/CD,令牌总线访问控制方法用于总线型网络

    令牌环用于环形局域网

    4.4、以太网

    使用范围最广的局域网,逻辑拓扑是总线型结构,物理拓扑是星型,或者扩展星型

    令牌环(Token Ring):逻辑拓扑是环形,物理拓扑是双环

    FDDI(光纤分布数字接口):逻辑拓扑是环形,物理拓扑是双环

    由于以太网在局域网市场中垄断地位,几乎成为局域网的代名词

    LLC子层也叫逻辑链路控制子层,由于他的作用不大,所以现在的网卡只有MAC协议没有LLC协议。

    以太网逻辑上采用总线型拓扑结构,以太网中所有计算机共享同一条总线,信息以广播方式发送。

    以太网简化了通信并且使用了CSMA/CD方式对总线进行访问控制。

    计算机与外界局域网的连接是通过主机里的一块网络适配器(Adapter),也叫网卡NIC

    网卡上有处理器和存储器,他工作在数据链路层的网络组件。

    网卡是局域网连接计算机和传输介质的接口,不仅能实现于局域网传输介质之间的物理连接和电信号匹配

    还涉及帧的发送与接收,帧的封装与拆封,介质访问控制MAC,数据的编码和解码,数据缓存等功能。

    全世界的每一块网卡在出厂的时候都有一个唯一的代码,叫做价值访问控制MAC地址。

    MAC地址用来控制主机在网络上的数据通信。

    数据链路层的设备:网卡,网桥,交换机。

    网桥,交换机都是使用各个网卡的MAC地址。网卡控制着主机对介质的访问,因此网卡也工作在物理层,只关注比特流。

    以太网常用的传输介质:粗缆,细缆,双绞线,光纤

    MAC地址:物理地址,6个10进制数组成。速率达到或者超过100Mb/s的以太网叫高速以太网。

    5、广域网(Wide Area Network,WAN)

    广域网是Internet的核心部分,通过长距离运送主机所发送的数据,连接广域网各个节点的交换机的链路都是高速链路

    距离是几千公里的光缆线路。广域网覆盖方位很广,远远超过一个城市。

    广域网的组成:节点交换机+链路

    节点交换机:和路由器一样都是用来转发分组的

    节点交换机实在单个网络中转发分组,路由器是在多个网络构成的互联网转发分组。节点之间都是点到点连接。为了提高网络的可靠性,通常一个节点交换机往往与多个节点交换机相连。

    5.1、广域网和局域网的区别很大:

    局域网使用的协议主要在数据链路层。

    广域网使用的协议主要在网络层。

    也就是说网络中的两个节点要进行数据交换,节点除了要给出数据外,还要给数据包装上一层控制信息,用来实现

    检错纠错的功能。如果这层信息是数据链路层的协议控制信息,就叫做使用了数据链路的协议,如果这层控制信息是在网络层,就是使用了网络层的协议。

    广域网强调:资源共享

    局域网强调:数据传输

    广域网中一个重要问题:路由选择和分组转发

    路由选择协议:负责搜索分组从某个节点到目的节点的最佳路由,以便构成路由表。

    分组转发:从路由表构造出转发分组的转发表。

    PPP协议和HDLC协议是目前最常用的两种广域网数据链路层的面向字节的协议

    5.1.1、PPP协议(Point to Point Protocol):

    使用串行线路通信的面向字节的协议,PPP协议应用在直接连接的两个节点的连路上。

    目的:通过拨号或者专线方式建立点对点的连接放松数据,让它成为各种主机,网桥,路由器之间简单连接的解决方法。

    PPP协议:在SLIP的基础上发展而来,可以在异步线路上传输,也可以在同步线路上用。

    不仅用于Modem链路,还可以用于路由器和路由器之间的链路。

    PPP组成:

    链路控制协议LCP:用来建立,配置,测试,管理数据链路

    网络控制协议NCP:由于PPP可以同时用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置。一个将IP数据报封装到串行链路的方法。

    PPP帧和HDLC帧的格式一样,收尾都是相同的标志字段为7E

    PPP协议是点对点的,不是总线型,不用CSMA/CD协议。

    5.1.2、HDLC协议

    高级数据链路控制(High-level Data Link Control):面向比特的数据链路层协议。

    HDLC协议不依赖任何一种字符集编码,数据报文可以透明传输。

    PPP是面向字节的,HDLC协议是面向比特的

    TCP/IP协议簇:TCP,IP,ICMP,ARP,RARP,UDP,DNS,FTP,HTTP

    HDLC,PPP是ISO提出的数据链路层协议,不属于TCP/IP协议簇

  • 相关阅读:
    目前流行的缺陷管理工具
    高性能WEB开发之Web性能测试工具推荐
    测试工具
    简单的事件示例代码
    C#常用代码片段备忘
    C# 获取变量或对象的栈与堆地址
    C#常用的命名规则汇总
    C# 成员默认访问权限(public、private、protected、internal)
    C# 学习路线
    简单的异常例子
  • 原文地址:https://www.cnblogs.com/drq1/p/9681226.html
Copyright © 2011-2022 走看看