概述
数据链路层使用的信道主要有以下两种类型:
(1)点对点通信(一对一的点对点通信方式)
(2)广播通信(一对多的广播通信方式)
3.1使用点对点信道的数据链路层
3.1.1数据链路和帧
链路:从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。
数据链路:传输数据时,出了有物理线路以外,还需要一些必要的通信协议控制这些数据的传输,如果把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现如今一般使用网络适配器(网卡)实现这些协议,网络适配器既有硬件,也包括软件,具备了数据链路层和物理层两层的功能。
帧:点对点信道的数据链路层的协议数据单元。
数据链路层将网络层传下来的数据构成帧发送到链路上,或者将从链路接收到的帧的数据取出传至网络层。(网络层协议数据单元就是IP数据包或称数据包、分组、包)
点对点信道通信时的主要步骤:
(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层。否则放弃这个帧。
3.1.2三个基本问题
三个基本问题是:封装成帧、透明传输和差错检测。
封装成帧:
封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧;首部和尾部的一个重要作用就是进行帧定界(确定帧的界限)。
每一种链路层协议都规定了所能传送的帧的数据部分长度上线——最爱的传送单元MTU。
当数据是由可以打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符,控制字符SOH(Start Of Header)(十六进制编码为01,二进制编码为00000001)放在一帧的最前面,表示帧的首部的开始;另一个控制字符EOT(End Of Transmission)(十六进制编码为04,二进制编码为00000100)表示帧的结束。
透明传输:
因为传输的数据中,可能存在部分数据与SOH或EOT的数据相同,导致对帧定界确定的错误,引起数据传输的错误,所以透明传输就是要做到使传输的数据中于帧定界数据相同的部分可以不被解释为帧定界。
为了做到透明传输,就需要使用转义字符ESC(十六进制编码为1B,二进制是00011011),接收到转义字符时,会删除,并不会认为后部分为镇定界;如果数据中需要传输和转义字符相同的数据,则需要在前面再增加一个转义字符,这样接收端就只会删除一个转义字符,保留数据的完整性。这种解决方法叫做字节填充。
差错检测:
比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1,这就叫比特差错。
在一段时间内,传输错误的比特占传输比特综述的比率称为误码率;如果设法提高信道的信噪比,就可以使误码率减小。
数据链路层广泛引用循环冗余校验CRC检验差错。
CRC 算法的基本思想是将传输的数据当做一个位数很长的数。将这个数除以另一个数。得到的余数作为校验数据附加到原数据后面。
与海明校验码数据位和校验位穿插不同,CRC码中,校验位(R位)在信息位(K位)后面。
如果数据链路层仅使用CRC校验,则只能检验帧的正确与否,做到无差错接收。收到正确的帧就要像发送端发送消息确认;发送端如果在一定的期限内没有收到接收端的确认,则会认为帧出现了比特差错、帧丢失、帧重复、帧失序等问题,就会对没有响应的帧进行重传。
3.2点对点协议PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用的最广泛的数据链路层协议。
3.2.1PPP协议的特点
PPP协议就是用户计算机和ISP(Internet Service Provider互联网服务提供商)进行通信时所使用的的数据链路层协议。
PPP协议应满足的需求:
1.简单
2.封装成帧
3.透明性
4.多种网络协议:在一条物理链路上同时支持多种网络协议的运行(如IP、IPX等)
5.多种类型链路:支持串行、并行或同步、异步或低速、高速或电、光或交互、非交互的点对点链路
6.差错检测:检验帧,并对错误帧进行丢弃
7.监测连接状态
8.最大传送单元:如果高层协议发送的数据长于最大传送单元,则对帧进行丢弃,最大传送单元不是帧的总长度,而是数据部门最大的长度。
9.网络层地址协商:保证相互通信的两个网络层之间可以获取配置彼此的网络层设置
10.数据压缩协议
PPP协议只支持全双工链路、点对点链路通信;不需要进行纠错,不需要设置序号,也不需要进行流量控制,在TCP/IP协议族中,可靠传输由运输层的TCP协议负责。
PPP协议的三个组成部分:
1.一个将IP数据包封装到串行链路的方法。
2.一个用来建立、配置和测试数据链路连接的链路控制协议LCP。
3.一塔网络控制协议NCP,其中每一个协议支持不同的网络层协议,如IP、OSI的网络层等。
3.2.2 PPP协议的帧格式
字节填充:
当信息字段中出现和标志字段一样的比特(0x7E)时。就必须采取字节填充以免信息读取错误。
当PPP 使用异步传输时,它把转义符定义为0x7D (即1111101),并使用字节填充,RFC 1662规定了如下所述的填充方法:
(1) 把信息字段中出现的每一 个0x7E字节转变成为2字节序列(0x7D, 0x5E)。
(2) 若信息字段中出现一个0x7D 的字节(即出现了和转义字符一样的比特组合), 则把0x7D转变成为2字节序列(0x7D, 0x5D)。
(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03 (在控制字符中是“传输结束”ETX)就要把它转变为2字节序列(0x7D, 0x23)。
由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。
零比特填充:
PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP协议采用零比特填充方法来实现透明传输。
零比特填充的具体做法是: 在发送端,先扫描整个信息字段()通常用硬件实现,但也可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入一个0。因此经过这种零比特填充后的数据,就可以保证在信息字段中不会出现6个连续1.接收端在收到一个帧时,先找到标志字段F以确定一个顿的边界,接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除,以还原成原来的信息比特流(图31)这样就保证了透明传输:在所传送的数据比特流中可以传送任意组合的比特流,市不会引起对帧边界的错误判断。
3.2.3PPP协议的工作状态
3.3使用广播信道的数据链路层
3.3.1局域网的数据链路层
局域网主要特点:网络为一个单位所有,且地理范围和站点数目均有限。
局域网的主要优点:
1.具有广播功能,从一个站点就可以方便的访问全网,局域网上的主机可以共享连接在局域网上的各种硬件和软件资源;
2.便于系统的扩展和逐渐演变,各设备的位置可灵活调整改变;
3.提高了系统的可靠性、可用性和生存性。
局域网可以用拓扑结构进行划分:
共享信道的两种方法:
1.静态划分信道,使用时分复用、频分复用、波分复用或码分复用等,但在局域网中这样使用代价较高,一般不在局域网中使用;
2.动态媒体接入控制,又成多点接入,即信道并非在用户通信时固定分配,多点接入又分为两类:
(1)随机接入:所有用户随机发送消息,但如果有用户同时发送信息,则会产生碰撞,需要其他协议解决碰撞问题,随机接入在日常中出现较多;
(2)受控接入:用户不能随机发送消息,需要接受一定的控制,一般不常用。
适配器的使用:
计算机与外局域网的连接是通过通信适配器进行的;在这种通信适配器上装有处理器和存储器(包括ROM和RAM);适配器和局域网之间的通信是通过电缆或双绞线以串行传输和并行传输的转换;适配器的一个重要功能就是要进行数据串行传输和并行传输的转换,由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片,在主板上插入适配器时,还必须把关系该适配器的设备驱动程序安装在计算机的操作系统中;并且适配器需要能够实现以太网协议。
适配器在接收和发送各种帧时,不实用计算机的CPU;如有差错帧,则直接舍弃;收到正确帧则使用中断方式通知计算机。
3.3.2CSMA/CD协议
总线结构:使用总线结构时,当其中的一台计算机发送数据,其他计算机都可以接收到数据,这也就是广播通信,但是当我们需要进行总线结构上的一对一通信时,可以让每台计算机配备一个适配器,发送帧时首部写明接收站的地址,只有地址与自身相符时才接收帧,不符则直接丢弃,这样就做到了在总线结构上的一对一通信。
为了使通信简便,以太网采取了以下两种措施:
1.采用较为灵活的无连接的工作方式,不建立连接就发送数据,适配器对发送的帧不编号不确认回复,以太网提供的服务是尽最大努力交付,即不可靠交付。当接收的帧出错时,则直接丢弃,帧错误如需重发,则数据链路层不参与重发信息的反馈,只负责接收帧。因为在总线中,一个时段只能有一台计算机发送数据,所以如果多台计算机都需要发送数据,则会产生碰撞,使用CSMA/CD(载波监听多点接入/碰撞监测)协议就可以解决碰撞问题,由此协议协调计算机的发送数据的顺序。
2.以太网发送的数据都适用慢切斯特编码的信号。
CSMA/CD协议的要点:
1.多点接入——总线型结构
2.载波监听——用电子技术检测总线上有没有其他计算机也在发送,不管在发送前还是发送中,每个站都必须不停地检测信道
3.碰撞检测——边发送边监听
使用CSMA/CD协议时,一个站不可能同时进行发送和接收,因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替(半双工通信)
CSMACD协议的要点归纳如下:
(1)准备发送:适配器从网络层获得一个分组, 加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
(2)检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
①发送成功: 在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
②发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待,倍512 比特时间后,返回到步骤(2), 维续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。
以太网每发送完一帧,一定要把已发送的帧暂时保留下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后 再把这个暂时保留的帧重传一次。
3.3.3使用集线器的星型拓扑
以太网采用星型拓扑,在星型的中间增加了一个可靠性高的集线器。
1990年IEEE制定了星型以太网10BASE-T的标准802.3i;10表示数据率为10Mbit/s,BASE表示连接线上的信号是基带信号,T表示双绞线。
集线器的特点:
1.集线器使用电子器件模拟实际电缆线的工作,整个系统仍像一个传统以太网那样运行,逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议,在同一时刻至多只允许一个站发送数据
2.一个集线器有多个接口
3.集线器工作在物理层,接口仅做简单的转发比特,不进行碰撞检测
4.集线器采用了专门的芯片,自适应串音回波抵消
3.3.4以太网的信道利用率
我们假定:
总线上共有 N 个站,每个站发送帧的概率都是 p。
争用期长度为 2t,即端到端传播时延的两倍。检测到碰撞后不发送干扰信号。
帧长为 L (bit),数据发送速率为 C (b/s),因而帧的发送时间为 L/C = T0 (s)。
以太网的信道利用率
一个帧从开始发送,经碰撞后再重传数次,到发送成功且信道转为空闲(这里考虑最极端的情况,发送站在传输媒体的一端,即再经过时间t使得信道上无信号在传播)时为止,共需平均时间为 Tav。
我们应当注意到,成功发送一个帧需要占用信道的时间是T0 + t,比这个帧的发送时间要多一个单程端到端时延t。这是因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。如果这时有其他站发送数据,就必然产生碰撞。因此,必须在T0 +t以后才允许其他站发送数据。
要提高以太网的信道利用率,就必须减小t与T0之比。在以太网中定义了参数a,它是以太网单程端到端时延t与帧的发送时间T0之比:
a=t/T0
当a→0时,表示只要一发生碰撞,就立即可以检测出来,并立即停止发送,因而信道资源不会被浪费。反之,参数a越大,表明争用期所占的比例增大,这就使得信道利用率降低。因此,以太网的参数a的值应当尽可能小些。
从上式可看出,这就要求分子t的数值要小些,分母T0的数值要大些。这就是说,当数据传输速率一定时,以太网的连线的长度受到限制(否则t的数值会太大),同时以太网的帧长不能太短(否则T0的值会太小)。
现在考虑一种理想化的情况。假定以太网上的各站发送数据都不会产生碰撞(这显然已经不是CSMA/CD而是需要使用一种特殊的调度方法),并且能够非常有效地利用网络的传输资源,即总线一旦空闲就有某一个站立即发送数据。这样,发送一帧占用线路的时间是T0 + t,而帧本身的发送时间是T0。于是我们可计算出极限信道利用率Smax为:
Smax=T0/(T0+t)=1/(1+a)
该式指出了参数a远小于1才能得到尽可能高的极限信道利用率。反之,若参数a远大于1,则极限信道利用率就远小于1,而这时实际的信道利用率就更小了。
3.3.5以太网的MAC层
硬件地址又称物理地址或MAC地址(这种地址用在MAC帧中)。
IEEE802标准为局域网规定了一种48位的全球地址,指局域网上的每一台计算机中固化在适配器的ROM中的地址。
IEEE的注册管理机构RA是局域网全球地址的法定管理机构,负责分配地址字段的前三个字节(24位),世界上生产局域网适配器的厂家就必须向IEEE购买这三个字节的号码,这个号的正式名称是组织唯一标识符OUI或公司标识符;后三个字节有厂家自行指派,称为扩展标识符,保证适配器无重复地址。
地址字段第一字节的最低位为I/G位(Individual/Group),当值为0时,地址字段表示一个单个站地址;值为1时表示组地址,用来进行多播。
适配器有过滤功能,但适配器从网络上每收到一个MAC帧收先用硬件检查MAC顿中的目的地址。如果是发往 本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。这样做就不浪费主机的处理机和内存资源。这里“发往本站的帧”包括以下三种帧:
(1)单播(unicast)帧(一对一), 即收到的帧的 MAC地址与本站的硬件 地址相同。
(2)广播(broadcast)帧(一对全体), 即发送给本局城网上所有站点的帧(全1地址)。
(3)多播(multicast)帧 (一对多), 即发送给本局域网上部分站点的帧。
所有的适配器都至少应当能够识别前两种帧,即能够识别单播和广播地址。有的适配器可用编程方法识别多播地址。当操作系统启动时,它就把适配器初始化,使适配器能够识别某些多播地址。显然,只有目的地址才能使用广播地址和多播地址。
以太网适配器还可设置为一种特殊的工作方式,即混杂方式(promiscuous mode)。 工作在混杂方式的适配器只要“听到”有帧在以太网上传输就都悄悄地接收下来,而不管这些帧是发往哪个站。请注意,这样做实际上是“窃听”其他站点的通信而并不中断其他站点的通信。网络上的黑客(hacker 或cracker)常利用这种方法非法获取网上用户的口令。因此,以太网上的用户不愿意网络上有工作在混杂方式的适配器。
但混杂方式有时却非常有用。例如,网络维护和管理人员需要用这种方式来监视和分析以太网上的流量,以便找出提高网络性能的具体措施。有种很有用的网络 工具叫做嗅探器(Siffer)就使用了设置为混杂方式的网络适配器。此外,这种嗅探器还可帮助学习网络的人员更好地理解各种网络协议的工作原理。
以太网V2的MAC帧格式:
当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面加上一个整数字节的填充字段。
无效的MAC帧:
(1)帧的长度不是整数个字节;
(2)用收到的帧校验序列FCS查出有差错;
(3)收到的帧的MAC客户数据字段的长度不在46-1500字节之间。
3.4扩展的以太网
3.4.1在物理层扩展的以太网
扩展主机和集线器之间的距离的一种简单方法就是使用光纤和一堆光纤调制解调器。
如果使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网。
多级结构的以太网的缺点:
如图所示,三个以太网用集线器相连时,假设之前每个以太网都是10BASE-T,每个以太网是一个独立的冲突域,只会在自己的范围内数据会产生冲突,连接之后,三个以太网的最大吞吐量仍只为10Mbit/s,并且三个以太网内的主机之间均可能产生冲突,会增大数据传输错误的可能性;如果不同的以太网之间使用的不同的以太网技术,则集线器无法使之相连。
3.4.2在数据链路层扩展以太网
扩展以太网一般在数据链路层,最初使用网桥,网桥根据收到的帧分析其MAC帧的目的地址进行转发和过滤;当网桥收到一个帧时,并不是向所有的接口发送此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定发送至哪个端口或丢弃。
现如今一般使用交互式集线器(以太网交换机或第二层交换机)。
以太网交换机的特点:
以太网交换机的实质就是一个多接口的网桥;
以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式,具有并行性;
相互通信的主机都是独占传输媒体,无碰撞的传输数据;
以太网交换机的接口还有存储器,能在输出口繁忙时对到来的帧进行缓存;
以太网交换机即插即用,其内部的帧交换表(地址表)是通过自学习算法自动的逐渐建立起来的;
使用以太网交换机连接的主机在通信时是独占而不是和其他网络用户共享传输媒体的带宽;
从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动;
以太网交换机具有多速率的接口。
以太网交换机的自学习功能:
我们假设一个以太网交换机有1、2、3、4,共4个接口,每个接口都分别连接了一台计算机,他们的MAC地址分别是A、B、C和D。在最开始的时候,交换机的交换表是空的;假如A向B发送了一帧,从接口1进入交换机,交换机收到这一帧之后会先查找交换表,不过很显然表是空的,交换机查不到应该从哪个接口转发这个帧(就是找不到目的地址为B的表项)。那么接下来,交换机就会把这个帧的源地址A和接口1写入交换表中,并向除了接口1之外的所有接口广播这个帧;那么这样一来,不论交换机的哪个接口收到目的地址是A的帧,都只要把这个帧转发到接口1,因为既然A发送的帧能从接口1进入交换机,那么交换机自然也能从接口1找到A。上面我们说交换机会向除接口1之外的所有接口广播A发出的那一帧,C跟D收到之后将会丢弃这个帧,因为目的地址与他们的MAC地址不符,只有B会收下这一帧。这种机制也称为过滤。那么经过一段时间,交换机会把所有发送过数据的主机的MAC地址与对应接口号记录下来,这样交换表中的表项就齐全了,要转发给任何一台主机的帧都能很快的在交换表中找到相对应的转发接口。
从总线以太网到星形以太网:
总线以太网使用CSMA/CD协议,以半双工方式工作;但以太网交换机不适用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,用全双工方式工作,但仍使用以太网的帧结构。
3.4.3虚拟局域网
虚拟局域网VLAN是有一些局域网网段构成的与物理位置无关的逻辑组,这些网段具有某些共同的需求,每个WLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN。虚拟局域网只是局域网给用户提供的一种服务,并不是一种新型局域网。
1988年IEEE批准了802.3ac标准,定义了以太网的帧格式的扩展,以便支持虚拟局域网:
3.5 高速以太网
3.5.1 100M以太网
(1)100BASE-T是在双绞线上传送100Mb/s基带信号的星型拓扑的以太网,仍使用IEEE802.3的CSMA/CD协议,它又称为快速以太网(FastEthernet)
(2)使用交换机组建的100BASE-T以太网,可在全双工方式下工作而无冲突发生。因此,CSMA/CD协议对全双工方式工作的快速以太网是不起作用的。因为其帧格式和以太网一样,所以依然称交换机组成的网络为以太网。
(3)以太网的最短帧与带宽和链路长度有关。100M以太网比10M以太网速率提高10位,要想和10M以太网兼容,就要确保最短帧也是64字节,那就将电缆最大长度由1000m降到100m,因此以太网的争用期依然是51.2μs,最短帧依然是64字节。
3.5.2 吉比特以太网
(1)吉比特(1000M)以太网的特点
①允许在1Gb/s下全双工和半双工两种方式下工作。
②使用IEEE802.3协议规定的帧格式
③在半双工方式下使用CSMA/CD协议(全双工方式不需要使用CSMA/CD协议)
④与10BASE-T和100BASE-T技术向后兼容。
(2)“载波延伸”
①吉比特以太网工作在半双工时,就必须进行碰撞检测。数据速率提高了,要想和10M以太网兼容,就要确保最短帧也是64字节,这只能减少最大电缆长度,以太网最大电缆就要缩短到10m,短到几乎没有实用价值。
②吉比特以太网为了增加最大传输距离,将最短帧由64字节增加到512字节。
③如果数据帧不超过512字节,则在FCS域后面添加“载波延伸”域,当主机发送完短数据帧后,继续发送载波延伸信号,冲突信号传回来时,发送端就能感知到了。
(3)分组突发
①如果发送的数据帧都是小于64字节的短报文时,那么链路的利用率就会很低,因为“载波延伸”域占用了大量的带宽。于是,千兆以太网引入了“分组突发”机制来改善这个问题。
②当很多短帧要发送时,第一个短帧采用“载波延伸”方法进行填充,后面的一些短帧可以一个接一个发送,它们之间只要留必要的帧间最小间隔即可。这样就形成一串分组突发,直到达到1500字节或稍多一些为止。从而提高链路的利用率。
③“载波延伸”和“分组突发”仅用于千兆以太网的半双工模式;而全双工模式不需要使用CSMA/CD协议,也就不需要这两个特性。
3.5.3 10吉比特以太网
(1)10GE的帧格式与10Mb/s、100Mb/s和1Gb/s以太网的帧格式完全相同。10GE还保留了802.3标准规定的了以太网最小和最长帧长。
(2)由于数据率很高,10GE不再使用铜线而只使用光纤作为传输媒体。它使用长距离(40km)的光收发器与单模光纤接口,以便能够工作在广域网和城域网的范围。
(3)10GE只工作在全双工模式,因此不存在争用问题,也不使用CSMA/CD协议。这就使用10GE的传输距离不再受碰撞检测的限制而大大提高了
最后
以上就是等待黄蜂为你收集整理的计算机网络 第3章 数据链路层3.1使用点对点信道的数据链路层3.2点对点协议PPP3.3使用广播信道的数据链路层3.4扩展的以太网3.5 高速以太网的全部内容,希望文章能够帮你解决计算机网络 第3章 数据链路层3.1使用点对点信道的数据链路层3.2点对点协议PPP3.3使用广播信道的数据链路层3.4扩展的以太网3.5 高速以太网所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复