计算机网络学习三:数据链路层

1 基本概念

数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。

该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。

MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制。

LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。

2 数据链路层使用的信道

(1) 点对点信道

点对点信道使用一对一的点对点通信方式。这里是指数据链路层使用的信道一种类型,在这种信道上最常用点对点协议PPP。

(2) 广播信道

广播信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专门的共享信道协议来协调这些主机的数据发送。

3 数据链路层的协议数据单元(帧(Frame))

数据链路层的多种协议共同遵守三个基本原则:

3.1 封装成帧

(1) 发送端把网络层交下来的IP数据报添加首部和尾部,封装成帧接收端在收到物理层上交的比特流后,根据首尾的标记,识别帧的开始和结束,将中间的数据部分上交给网络层。

注意:每一种链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU,因此,IP数据报的长度不能大于帧的MTU。

(2)当数据是由可打印的95个ASCII码组成的文本文件时,帧的定界可以用特殊的帧定界符。首部为SOH(00000001),尾部为EOT(00000100)。

注意:当数据传输出错时,例如发送端尚未发送完一个帧时出现了故障,中断了发送,但随后很快恢复正常,于是从头开始重新发送。由于帧界定符,接收端知道第一次接收到的数据只有首部开始符而没有结束符,是个不完整的帧,因此丢弃。

3.2 透明传输

表示无论什么样比特组合的数据都能通过数据链路层。

(1) 当传送的帧是用文本文件组成的帧时(文本文件中的字符都是从键盘输入的),其数据部分显然不会出现SOH和EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传送出去,因此这样的传输就是透明传输。

(2) 当数据部分是非ASCII码的文本文件时(如二进制编码的计算机程序或图像等),可能在数据部分会出现帧界定符,此时接收端会出现接受错误。此时,就不是“透明传输”。

(3) 解决方法(字节填充)

在数据部分中出现控制字符SOH或EOT的前面插入一个转义字符ESC(16进制1B),若在数据部分也存在转义字符,也同样的在其前面插入ESC。在接收端接受数据时删除插入的转义字符。

3.3 差错检测

(1) 比特差错:在传输过程中,数据的比特可能会出现差错。解决方法:循环冗余校验CRC(cyclic redundancy check)。

(2) 传输差错:帧丢失、帧重复、帧失序。

注意:OSI结构模型中,数据链路层是可靠传输的,但现在的通信线路的传输质量已经大大提高,因此因特网不要求数据链路层向上层提供可靠传输。当出现差错时,改正差错的任务由上层协议来完成。

4 点对点协议PPP(Point-to-Point Protocol)

因特网用户需要连接到某个ISP(互联网服务提供商)才能接入到因特网。PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。

4.1 PPP协议功能

(1) 简单:对数据链路层的帧不进行纠错,不需要序号,不需要流量控制。

(2) 封装成帧:加入帧界定符。

(3) 透明性:字节填充法。

(4) 多种网络层协议:在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。

(5) 多种链路类型:PPP必须能够在多种类型的链路上运行,例如串行或并行链路。

(6) 差错检测:接收方收到一个帧后进行CRC检验,若正确就收下这个帧,反之则丢弃。

(7) 检测连接状态:自动检测链路是否处于正常工作状态。

4.2 PPP协议组成

(1) 提供一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是信息部分,长度受最大传送单元MTU的限制。PPP支持异步链路(无奇偶校验的8比特数据)和面向比特的同步链路。

(2) 链路控制协议LCP(Link Control Protocol)

当线路不再需要时,挑出这些线路,测试它们,商议选择,并仔细地再次释放链路控制协议。

(3) 一套网络控制协议NCP(Network Control Protocol)

其中每一个协议支持不同的网络层协议,如IP、OSI的网络层等。

4.3 PPP帧格式

(1) 首部

(a) 标志字段F,固定为0x7E,标志一个帧的开始或结束。连续2个帧之间只需要一个标志字段,如果出现连续两个标志字段,表示这是一个空帧。

(b) 地址字段A和控制字段C都是固定不变的,分别为0xFF、0x03。

(c) 协议字段为2字节,协议字段不同,后面信息部分表示的数据类型不同。

0x0021——信息字段是IP数据报

0xC021——信息字段是链路控制数据LCP

0x8021——信息字段是网络控制数据NCP

0xC023——信息字段是安全性认证PAP

0xC025——信息字段是LQR

0xC223——信息字段是安全性认证CHAP

(2) 信息部分

长度不超过1500字节 。

(3) 字节填充法

(a) 当信息字段中出现0x7E时,将每一个0x7E字节转变成2字节序列(0x7D,0x5E)。

(b) 若信息字段中出现一个0x7D的字节,则将其转变成2字节序列(0x7D,0x5D)。

(c) 若信息字段中出现ASCII码的控制字符(即数值小于0X20的字符),则该字符前面需要加入一个0x7D字节,同时将该字符的编码加以改变(+20)。例如,出现0x03,就要把它转为2字节序列(0x7D,0x23)

(4) 0比特填充法

PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送),此时使用0比特填充法。

(a) 在发送端扫描整个信息字段,当有5个1连续出现时,立即填入一个0,保证信息字段中不会出现6个连续1。

(b) 在接收端删除连续5个1后面的0。

(5) 尾部

FCS:使用CRC的帧校验序列。

4.4 PPP协议的工作状态

(1) 当用户拨号接入ISP后,就建立了一条从用户PC机到ISP的物理连接。这时,用户PC机向ISP发送一系列LCP分组(封装成多个PPP帧),来建立LCP连接。这些分组及其响应选择了PPP参数以及进行网络层配置,NCP给新接入的用户分配临时IP地址。这样用户PC机就成为因特网上一个有IP地址的主机了。

(2) 当用户通信完毕后,NCP释放网络层连接,收回分配的临时IP。LCP释放数据链路层连接,最后释放物理层连接。

(a) PPP链路的起始和终止状态永远是“链路静止”状态,这时用户PC机和ISP的路由器之间不存在物理层的连接。

(b) 用户PC机通过调制解调器呼叫路由器时,路由器检测到调制解调器发出的载波信号。在双方建立物理层连接后,PPP进入“链路建立”状态,目的是建立链路层的LCP连接。

(c) LCP发送配置请求帧,协商一些配置选项,这是一个PPP帧,协议字段为LCP对应代码,信息字段包含特定的配置请求。

(d) 协商结束后双方建立了LCP链路,进入“鉴别”状态。发起通信的一方发送身份标识符合和口令。

(e) 鉴别成功或不需鉴别后,进入“网络层协议”。PPP链路的两端的网络控制协议NCP,根据网络层采用的协议不同,互相

交换网络层特定的网络控制分组。

(f) 网络层配置完毕后,进入“链路打开”状态,两段的PPP端点可以互相发送分组。

(g) 数据传输结束后,由链路的一端发出中止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到“链路终止”状态。

5 局域网的数据链路层

5.1 局域网最主要的特点

局域网最主要的特点:就是网络为一个单位所拥有,且地理范围和站点数目均有限。

注:在局域网刚刚出现时,局域网比广域网具有较高的数据率、较低的时延和较小的误码率。但随着光纤技术在广域网中普遍使用,现在的广域网也具有很高的数据率和很低的误码率。

5.2 局域网的主要优点

(1)具有广播功能,从一个站点可方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。

(2)便于系统的扩展和逐渐地演变,各设备的位置可灵活地调整和改变。

(3)提高系统的可靠性(reliability)、可用性(availibility)、生存性(survivability)。

5.3 局域网可按网络拓扑进行分类

星形网:由于集线器(hub)的出现和双绞线大量用于局域网中,星形以太网和多级星形结构的以太网获得了非常广泛的应用。

环形网: 最典型的就是令牌环形网(token ring),简称为令牌环。

总线网:各站直接连在总线上。总线两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。总线网可使用两种协议:(1)传统以太网使用的CSMA/CD。(2)令牌传递总线网,即物理上是总线网而逻辑上是令牌环形网。前一种总线网现在已演变为星形网,而后一种令牌传递总线网早已退出了市场。

树形网: 树形网是总线网的变形,都属于使用广播信道的网络,但这主要用于频分复用的宽带局域网。

5.4 共享信道的方法

(1) 静态划分信道

(a) 如利用频分复用、时分复用、波分复用和码分复用等。用户只要分配到了信道就不会和其他用户发送冲突。 这种划分信道的方法代价比较高,不适合于局域网使用。

(2) 动态媒体接入控制

(a) 随机接入

随机接入的特点是所有用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要发生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。

(b) 受控接入

受控接入的特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询(polling)或称为轮询。

注:广播信道可以进行一对多的通信。局域网使用的就是广播信道。局域网工作的层次已跨越了数据链路层和物理层。局域网不仅仅和数据链路层有关。

6. 以太网

6.1 以太网的两个标准

6.1.1 DIX Ethernet V2

DIX Ethernet V2,是世界上第一个局域网产品的规约。

6.1.2 IEEE 802.3[W-IEEE802.3]

1983年制定了第一个IEEE的以太网标准IEEE 802.3,数据率为10Mb/s。

802.3局域网对以太网标准中的帧格式作了很小的一点更动,但允许基于这两种标准的硬件实现可以在同一局域网上互操作。

注:出于有关厂商在商业上的激烈竞争,IEEE 802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同的局域网标准,如802.4令牌总线网、802.5令牌环网等。

(1)为了使数据链路层更好地适应不同的局域网标准,IEEE802委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制子层LLC(Logical Link Control)和媒体接入控制子层MAC(Medium Access Control)。

(2)与接入到传输媒体有关的内容都放到MAC子层,而LLC子层则与传输媒体无关,不管采用何种传输媒体和MAC子层的局域网对LLC子层来来说都是透明的。

6.2 适配器的作用

(1) 计算机与外界局域网的连接是通过通信适配器(adapter)。

(2) 适配器本来是在电脑主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。这种接口板又称为网络接口卡NIC(Network Interface Card)或简称为网卡。

(3) 适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。

(4) 适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。

(5) 由于网络上的数据率和计算机总线上的数据率并不相同,所以在适配器中必须装有对数据进行缓存的存储芯片。

(6) 若在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或应当在存储器的什么位置上把局域网传送过来的数据块存储下来。

(7) 适配器还要能够实现以太网协议。

(8) 适配器接收和发送各种帧时不使用计算机的CPU。这时CPU可以处理其他任务。

(9) 当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机。

(10) 当适配器收到正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。

(11) 当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。

(12) 计算机的硬件地址——MAC地址,就在适配器的ROM中。

(13) 计算机的软件地址——IP地址,就在计算机的存储器中。

6.3 MAC帧格式

(1) 前2个字段分别为6字节长的目的地址和源地址。

(2) 第3个字段是2字节的类型字段,标志上一层使用的是什么协议。

(3) 第4个字段是数据字段,长度在46到1500字节之间。若长度小于46字节,则在后面加入一个整数字节进行填充。

(4) 最后是4字节的帧检验序列FCS(使用CRC检验)。

(5) 当适配器没有与比特流达成同步时,需要在MAC帧前面插入8字节。

7 CSMA/CD协议的要点归纳

(1) 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。

(2) 检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。

(3) 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。两种情况

(a) 发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。

(b) 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。

备注:

在使用CSMA/CD协议的以太网不可能进行双向同时通信(全双通信工),而只能进行双向交替通信(半双工通信)。此外以太网还采取一种强化碰撞的措施,就是当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞。以太网号规定了帧间最小间隔为9.6μs,相当于96比特时间,这样使得刚刚收到数据帧1的站接收缓存来得及清理,做好接收下一帧的准备。

猜你喜欢

转载自blog.csdn.net/u011857683/article/details/82825606