数据链路层简介
数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。
数据链路层的分类1、逻辑控制子层
数据链路层的LLC子层用于设备间单个连接的错误控制,流量控制。与MAC层不同,LLC和物理媒介全无关系。媒介是CSMA/CD的802.3还是802.5的令牌环都没关系。它在LAN中是独立的802.2。在LLC之上的网络层可以是无连接、响应的无连接或面向连接的不同业务。
LLC用业务接入点SAP访问上层协议,有了SAP,站点就能在LLC层只用一个接口同时与几个高层协议玩。一个SAP是简单的地址或协议ID,内容则为空的LLC帧。LLC协议数据单元(LLCPDU)即LPDU。它包括:DSAP(目的SAP)/SSAP(源SAP);一个定义吞吐量优先级的控制域(Controlfield);和含带数据的信息域。在接收方,DSAP例如协议ID就是消息要被递送的,通常DSAP和SSAP是一样的,因为两端只有在同种协议间才能通信。例如当SAP为AA,代表SNAP(子层接入协议)。SNAP是个非标准化的,或厂商特定的协议,用于接入协议的业务。例如当SAP为06,则代表IP协议;当SAP为FO,代表NetBIOS(网络基本输入/输出协议)。SAP为FF表示广播的Global协议。
SNAP机制
规范种DSAP都只有一个字节,那不足够区分所有协议了。SNAP就来了,而且它支持在LLC帧上传厂商的协议。这样传递的协议就被放入所谓SNAP帧中了。SNAP”ㄍ酚形遄纸冢前三字节为厂商号,后两字节指示协议。
以太网有两种版本:IEEE(802.2、802.3);DIX(DEC、Intel、Xerox)又称V2以太网。DIX帧在源地址之后是两字节的Type,例如IP。
IEEE以太网帧,在源地址后是帧长度指示,在随后的数据域中才是标准的LPDU封装,包括DSAP/SSAP/控制域/Data。在这个Data中会有协议ID、以太类型指示,例如以太类型806表示地址解析协议ARP。以太网卡通过跳针或软件可以设置需要的以太网版本,DIX通常都设的,因为大约90%的网络都用此版本。请注意网络所有要通信的站点应设成相同版本。 2、介质访问层
介质访问控制是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。
逻辑链路LogicalLinks
LogicalLinks逻辑链路逻辑链路是实际电路或逻辑电路上交换通信信息的两个端系统之间的一种协议驱动通信会话。协议栈定义了两个系统在某种介质上的通信。在协议栈低层定义可用的多种不同类型的通信协议,如局域网络(LAN)、城域网(MAN)和象X.25或帧中继这样的分组交换网络。逻辑链路在物理链路(可以是铜线、光纤或其他介质)上的两个通信系统之间形成。根据OSI协议模型,这些逻辑链路只在物理层以上存在。你可以认为逻辑链路是存在于网络两个末断系统间的线路。
面向连接的服务为了保证可靠的通信,需要建立逻辑线路,但在两个端系统间要维持会话。面向需要应答连接的服务分组传输并有返回信号的逻辑线路。这种服务产生更大的开销,但更加可靠。无应答不连接服务无需应答和预先的传送。在端系统间没有会话。
OSI协议栈中的数据链路层可进一步细分为较低的介质访问控制(MAC)子层和较高的逻辑链路控制(LLC)子层。当它接收到一个分组后,它从MAC子层向上传送。如果有多个网络和设备相连,LLC层可能将分组送给另一个网络。例如,在一个NetWare服务器上,你可能既安装了以太网络适配器又安装了令牌网络适配器,NetWare自动地在连接到适配器的网络间桥接,这样原来在以太网上的分组就可以传送到令牌网上的目的地了,LLC层就象网络段间的交换或链路中继,它将以太网的帧重装成令牌环网的帧。 数据链路层的工作原理1.成帧(帧同步)
为了向网络层提供服务,数据链路层必须使用物理层提供的服务。而物理层是以比特流进行传输的,这种比特流并不保证在数据传输过程中没有错误,接收到的位数量可能少于、等于或者多于发送的位数量。而且它们还可能有不同的值,这时数据链路层为了能实现数据有效的差错控制,就采用了一种”帧”的数据块进行传输。而要采帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的”成帧”(也称为”帧同步”)功能。
采用帧传输方式的好处是:在发现有数据传送错误时,只需将有差错的帧再次传送,而不需要将全部数据的比特流进行重传,这就在传送效率上将大大提高。采用帧传输方式的好处是带来了两方面的问题:
(1)如何识别帧的开始与结束;
(2)在夹杂着重传的数据帧中,接收方在接收到重传的数据帧时是识别成新的数据帧,还是识别成重传帧呢?这就要靠数据链路层的各种”帧同步”技术来识别了。”帧同步”技术既可使接收方能从并不是完全有序的比特流中准确地区分出每一帧的开始和结束,同时还可识别重传帧。
2.差错控制
在数据通信过程中可能会因物理链路性能和网络通信环境等因素,难免会出现一些传送错误,但为了确保数据通信的准确,又必须使得这些错误发生的几率尽可能低。这一功能也是在数据链路层实现的,就是它的”差错控制”功能。在数字或数据通信系统中,通常利用抗干扰编码进行差错控制。一般分为4类:前向纠错(FEC)、反馈检测(ARQ)、混合纠错(HEC)和信息反馈(IRQ)。
FEC方式是在信息码序列中,以特定结构加入足够的冗余位–称为”监督元”(或”校验元”)。接收端解码器可以按照双方约定的这种特定的监督规则,自动识别出少量差错,并能予以纠正。FEC最适合于实时的高速数据传输的情况。
在非实时数据传输中,常用ARQ差错控制方式。解码器对接收码组逐一按编码规则检测其错误。如果无误,向发送端反馈”确认”ACK信息;如果有错,则反馈回ANK信息,以表示请求发送端重复发送刚刚发送过的这一信息。ARQ方式的优点在于编码冗余位较少,可以有较强的检错能力,同时编解码简单。由于检错与信道特征关系不大,在非实时通信中具有普遍应用价值。
HEC方式是上述两种方式的有机结合,即在纠错能力内,实行自动纠错;而当超出纠错能力的错误位数时,可以通过检测而发现错码,不论错码多少都可以利用ARQ方式进行纠错。
IRQ方式是一种全回执式最简单差错控制方式。在该检错方式中,接收端将收到的信码原样转发回发送端,并与原发送信码相比较,若发现错误,则发送端再进行重发。只适于低速非实时数据通信,是一种较原始的做法。 3.流量控制
在双方的数据通信中,如何控制数据通信的流量同样非常重要。它既可以确保数据通信的有序进行,还可避免通信过程中不会出现因为接收方来不及接收而造成的数据丢失。这就是数据链路层的”流量控制”功能。
数据的发送与接收必须遵循一定的传送速率规则,可以使得接收方能及时地接收发送方发送的数据。并且当接收方来不及接收时,就必须及时控制发送方数据的发送速率,使两方面的速率基本匹配。 4.链路控制
数据链路层的”链路管理”功能包括数据链路的建立、维持和释放三个主要方面。
当网络中的两个节点要进行通信时,数据的发送方必须确知接收方是否已处在准备接收的状态。为此通信双方必须先要交换一些必要的信息,以建立一条基本的数据链路。在传输数据时要维持数据链路,而在通信完毕时要释放数据链路。 5.MAC寻址
这是数据链路层中的MAC子层主要功能。这里所说的”寻址”与下一章将要介绍的”IP地址寻址”是完全不一样的,因为此处所寻找的地址是计算机网卡的MAC地址,也称”物理地址”、”硬件地址”,而不是IP地址。
在以太网中,采用媒体访问控制(MediaAccessControl,MAC)地址进行寻址,MAC地址被烧入每个以太网网卡中。这在多点连接的情况下非常必需,因为在这种多点连接的网络通信中,必须保证每一帧都能准确地送到正确的地址,接收方也应当知道发送方是哪一个站。 6.区分数据和控制信息
由于数据和控制信息都是在同一信道中传输,在许多情况下,数据和控制信息处于同一帧中,因此一定要有相应的措施使接收方能够将它们区分开来,以便向上传送仅是真正需要的数据信息。 7.透明传输
这里所说的”透明传输”是指可以让无论是哪种比特组合的数据,都可以在数据链路上进行有效传输。这就需要在所传数据中的比特组合恰巧与某一个控制信息完全一样时,能采取相应的技术措施,使接收方不会将这样的数据误认为是某种控制信息。只有这样,才能保证数据链路层的传输是透明的。
常用的数据链路层
1、TCP/IP支持多种不同的数据链路层协议,这取决于网络使用的硬件,如以太网、令牌环、FDDI等局域网,串行线路、X.25、帧中继FR、ATM等广域网。
2、早期,由于各网络公司的竞争,局域网没有形成统一标准,为了将各种局域网融合,将链路层拆分成两层,逻辑链路层(LLC)和媒体接入控制(MAC)(802.3封装:SAP),
3、90年代,以太网取得垄断地位,以太网成为局域网代名词。数据链路层仅需要MAC层,采用以太网帧格式(EthernetV2封装:ARPA)。 |