我是靠谱客的博主 温婉水壶,最近开发中收集的这篇文章主要介绍数据链路层,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本篇目录

***************************************

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

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

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

以太网MAC层的硬件地址

***************************************

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

封装成帧:帧是数据链路层的传送单位。一个帧的帧长等于帧的数据部分加上帧的首部和尾部的长度。首部和尾部的一个重要作用是帧定界(确定帧的界限)。每一种链路层协议都规定了所能传输的帧的数据部分的上限既最大传输单元MTU。(见下图,图片来自百度)


对于帧定界做以补充:

1)当数据是由ASCII组成的文本文件时,使用特殊的帧定界符。

SOH(Start Of Header)放在帧的最前面,表示帧的开始。十六进制编码是01(二进制00000001)

EOT(End Of Transmission)表示帧的结束。十六进制编码是04(二进制00000100)

SOH和EOT只是控制字符的名称。

2)当数据是非ASCII码的文本文件(字符都是从键盘上输入)时,如二进制代码计算机程序或图像等,当数据中有SOH或者EOT这种控制字符时,就会出现判断错误。

做法:字节填充==》发送端的数据链路层在数据中出现了控制支付SOH或者EOT时,就在其前面加上转义字符“ESC”(十六进制为1B,二进制为00011011),如果数据中出现了转义字符,也在其前面加上一个转义字符。在接收端的数据链路层在把数据向网络层传送之前,删除这些转移字符。

透明传输:表示无论什么样的比特组合的数据,都能按照原样没有差错的通过这个数据链路层。

差错检验:实现无比特差错。传输错误的比特占传输比特总数的比特率称为误码率BER(Bit Error Rate)。数据链路层采用循环冗余检验CRC的检错技术。过程如下:


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

(1)、ppp协议:不需要纠错,不需要设置序号,不需要进行流量控制,不支持多点线路(既一个主站轮流和链路上的多个从站进行通信),只支持点对点的链路通信,只支持全双工链路。

(2)、PPP协议的三个组成部分:

①一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。

②一个用来建立、配置和测试数据链路连接的链路控制协议LCP。

③一套网络控制协议NCP。

(3)、ppp帧的格式


标志字段F:0x7E(01111110):表示一个帧的开始或者结束。标志字段就是PPP帧的定界符。

地址字段A:0xFF(11111111)

控制字段C:0x03(00000011)

协议字段:为0x0021时,PPP协议帧就是IP数据报;为0xC021时,信息字段就是PPP链路控制协议LCP的数据;为0x8021时表示网络层的控制信息。

FCS:使用CRC帧检验的冗余码。

(4)、PPP协议的工作状态


说明:

a)、当用户拨号接入ISP时(通过调制解调器呼叫路由器时,通常是在屏幕上用鼠标点击连接按钮),路由器检测到调制解调器发出的载波信号,做出确认,并建立一条物理连接。

b)、PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。

c)、这些分组及其相应选择了将要使用的PPP参数,接着进行网络配置,NCP给新接入的PC机分配一个临时的IP地址,使PC称为互联网上的一个有IP地址的主机。

d)、通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址,接着LCP释放数据链路层连接,最后释放物理层连接。

(三)、使用广播信道的数据链路层

CSDA/CD协议:(Carrier Sense Multiple Access with Collision Delection)载波监听、多点接入、碰撞检测。

说明:

载波监听:不管在发送前还是在发送中,每个站都必须不停的检测信道。如果检测到已经有其他站在发送,则自己就暂时不需发送数据,必须要等到信道边为空闲时才能发送数据。在发送中检测信道,时为了及时发现有没有其他站在发送和本站发送的碰撞。

多点接入:总线型网,许多计算机以多点接入的方式连接在一根总线上。

碰撞检测:边发送边监听,既适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。

补充:

a)以太网的端到端往返时间2τ称为争用期。具体的争用期时间是51.2μs,也可以直接使用比特作为争用期的单位。

b)截断二进制指针退避算法:重传应推后的时间计算=r*2τ;

(r是从集合[0,1,……,(2^k)-1]中随机取出的一个数;k=Min[重传次数,10])

c)以太网规定一个最短帧长64字节,既512bit.如果要发送的数据非常少,那么必须加入一些填充字节,使得帧长不小于64字节。

d)从总线网到星形网,以太网交换机已经不使用共享总线,因此就没有了碰撞问题,也就不使用CSMA/CD协议,也就没有了争用期,而是以全双工的方式工作。之所以还叫以太网是因为它的帧结构没有改变,仍然采用的是以太网的帧结构。

四、以太网MAC层的硬件地址

(1)、MAC层的硬件地址又称为物理地址或者MAC地址。实际上就是适配器地址或适配器标识符,与主机所在的地点无关。源地址和目的地址都是48位长。

(2)、以太网的适配器有过滤功能,只接受单播帧、广播帧或多播帧。

单播帧(一对一):既收到的帧的MAC地址和本机的硬件地址一样。

广播帧(一对全体):发送给本局域网上所有站点的帧(全1地址)。

多播帧(一对多):发送给本局域网上一部分站点的帧。

(3)、MAC帧的格式


说明:

a)2字节类型:标志上一层使用的什么协议。

b)数据字段:长度在46到1500字节之间(因为帧长度最短为64字节,随意数据部分最小为46字节)

c)插入的8字节:由硬件生成。由两个字段构成,第一个字段是7个字节的前同步码(1和0交替出现)作用是使接收端的适配器在接收MAC帧时能迅速调整时钟频率,使它和发送端的时钟同步(实现位同步)。第二个字段是帧开始定界符,前六位作用和前同步码一样,最后连续的1告诉接收端适配器MAC帧马上要来了。

d)FCS:帧检验序列,检验范围不包括前同步码和帧开始定界符。

e)以太网传输数据时是以帧为单位传送的,在以太网上传送帧时,个帧之间还必须有一定的间隙,因此接收端只要找到帧结束定界符,也不需要使用字节插入来保证透明传输。


最后

以上就是温婉水壶为你收集整理的数据链路层的全部内容,希望文章能够帮你解决数据链路层所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部