数据链路层作用
概念
数据链路层是计算机网络体系结构中的第二层,位于物理层和网络层之间。数据链路层在物理层提供服务的基础上向网络层提供服务,它的主要作用是在物理接口的基础上,提供媒介访问和链路管理,使得原始的比特流变成有意义的对帧边界界定的数据帧,为网络层提供服务。加强了物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
主要功能
数据成帧
数据链路层将网络层交下来的数据封装成帧,以便在物理链路上传输。(也叫帧定界)
帧是数据链路层传输数据的基本单位,它由帧头、数据部分和帧尾组成。
- 帧头:包含控制信息,如帧的起始标识、目的地址、源地址等,用于帧的同步、寻址和错误检测。
- 数据部分:包含网络层传来的数据包,是帧的主体部分。
- 帧尾:用于标识帧的结束,并可能包含帧校验序列(FCS),用于差错检测。
数据链路层将封装好的帧通过物理链路发送给相邻节点的过程。在传输过程中,数据链路层需要确保帧的完整性和顺序性。
- 完整性:通过帧头和帧尾的校验信息来检测帧在传输过程中是否发生错误。
- 顺序性:在需要保持顺序的传输中(如面向连接的传输),数据链路层还需要确保帧的传输顺序与发送顺序一致。
接收方能从接收到的二进制比特流中区分出帧的起始和终止。通过帧同步,接收端能够准确地从比特流中提取出完整的帧,并将其交给上层网络层处理。
差错控制
数据在物理链路上传输时,可能会受到各种噪声和干扰的影响,导致比特在传输过程中可能会产生差错。这些差错可能来源于全局性噪声(如随机热噪声)、局部性噪声(如电磁干扰)、硬件故障(如电缆破损)、信号衰减与畸变以及多径效应等。
差错可以分为位错(比特位错误)和帧错(帧的丢失、重复、失序等)。位错是指单个或多个比特位发生反转,帧错则涉及整个帧的传输问题。
差错控制方法:为了检测和纠正这些差错,数据链路层采用了一系列差错控制方法,包括奇偶校验、循环冗余校验(CRC)和前向纠错(FEC)等。其中,CRC是一种广泛应用的检错方法,它通过附加一个冗余码(CRC码)到原始数据块后面,并通过数学算法在接收端验证CRC值是否相符,以此来检测帧中的错误。
循环冗余校验(CRC)
一种广泛应用于数据通信领域的错误检测技术。它通过对数据块计算一个固定长度的校验值(即校验和)来进行错误检测。
CRC的工作原理是通过一个二进制多项式除法运算,将待校验的数据看作是被除数,校验码为除数,然后将这个二进制除法运算的结果附在数据的末尾作为校验和。接收方在接收到数据后,也会进行同样的运算,比对计算结果和收到的校验和,若一致,则认为数据在传输过程中没有发生错误。
流量控制
流量控制是为了防止发送方的数据过快地涌入接收方,导致接收方无法及时处理,从而造成数据丢失或缓冲区溢出。
数据链路层采用多种流量控制方法,包括停止-等待流量控制和滑动窗口流量控制。停-等协议要求发送方每发送一帧后必须等待接收方的确认才能发送下一帧,这种方式简单但效率较低。滑动窗口协议则允许发送方在收到前一个帧的确认之前发送多个帧,从而提高了传输效率
-
停止-等待协议
- 原理:发送方每发送完一个帧就停止发送,并等待接收方的确认帧。收到确认帧后,再发送下一个帧。
- 特点:
- 简单易实现,但信道利用率低。
- 发送方在发送下一个帧之前必须等待接收方的确认,这限制了发送方的发送速率。
-
滑动窗口协议
- 原理:滑动窗口协议允许发送方在收到确认帧之前发送多个帧,从而提高信道利用率。窗口的大小决定了发送方可以连续发送的帧数。
- 分类:
- 后退N帧协议(GBN):发送方可以发送多个帧,但接收方只能按序接收帧。如果某个帧出错,接收方会丢弃该帧及其后续所有帧,并发送一个确认帧,指示最后一个正确接收的帧序号。发送方在收到该确认帧后,会重传该帧及其后续所有帧。
- 选择重传协议(SR):与GBN类似,但接收方会为每个正确接收的帧发送单独的确认帧。如果某个帧出错,发送方只需重传该帧,而无需重传其他已正确接收的帧。
流量控制的过程
- 发送方发送数据帧给接收方。
- 接收方在收到数据帧后,检查其完整性。如果数据帧无误,则向发送方发送确认帧。
- 发送方在收到确认帧后,根据协议规定(停止-等待或滑动窗口),继续发送下一个或多个数据帧。
- 如果在规定的时间内未收到确认帧(可能是由于数据帧丢失或确认帧丢失),发送方将重传数据帧。
链路管理
数据链路层通过一系列协议和机制,确保两个通信节点之间能够建立、维持和释放数据链路的过程。它是数据链路层提供可靠数据传输服务的基础。
链路管理的过程
- 链路建立:
- 当网络中的两个结点要进行通信时,数据的发送方必须确知接收方是否已经处在准备接收的状态。
- 为此,通信的双方必须先要交换一些必要的信息,如同步信号、控制信息等。
- 在一些面向连接的协议中,如HDLC(高级数据链路控制协议)和PPP(点对点协议),链路建立过程包括发送建立请求、接收建立确认等步骤。
- 链路建立后,双方才能开始传输数据。
- 链路维持:
- 在数据传输过程中,链路管理负责维持链路的稳定性和可靠性。
- 这包括监控链路的状态、处理可能出现的错误和冲突等。
- 如果发现链路出现问题,如信号丢失、帧错误等,链路管理将采取相应的措施进行恢复或重传。
- 链路释放:
- 当数据传输完毕或通信双方不再需要通信时,链路管理负责释放数据链路。
- 这通常包括发送释放请求、接收释放确认等步骤。
- 链路释放后,双方将不再通过该链路进行通信。
链路管理是数据链路层提供可靠数据传输服务的关键机制之一。它通过链路建立、维持和释放等过程,以及帧同步、差错控制、流量控制和透明传输等机制,确保了数据在物理链路上的可靠传输。
透明传输
透明传输是指在数据传输过程中,数据链路层对上层交付的传输数据没有任何限制,就像透明的一样,直接将其传送到目的节点,同时保证传输的质量。这要求数据链路层能够处理任何形式的数据,而不会因为数据中的某些特定比特组合而导致传输错误。
为了实现透明传输,数据链路层需要解决一些关键问题,特别是当上层交付的数据中包含与帧定界符相同的值时。以下是几种常见的实现方式:
- 字节填充法:面向字节的物理链路层使用字节填充的方式来实现透明传输。如果数据帧中出现了与帧标志相同的字符,那么在这些字符前插入一个特定的转义字符,以区分是数据中的字符还是帧标志。
- 比特填充法:面向比特的物理链路层使用比特填充的方式来实现透明传输。这种方法通常是在发送的数据比特序列中,每当出现5个连续的1时,就在其后插入一个0,以确保帧定界符的唯一性。
透明传输对于保证数据链路层的可靠性和效率至关重要。如果数据链路层不能实现透明传输,那么上层的数据就可能被错误地解释或修改,从而导致通信失败或数据丢失。因此,数据链路层协议通常都会包含透明传输的机制,以确保数据的正确传输。
透明传输是数据链路层的一个重要功能,但它并不是孤立存在的。它与数据链路层的其他功能(如封装成帧、差错检测等)密切相关,共同构成了数据链路层的完整功能体系。例如,封装成帧为数据添加了帧头和帧尾,从而实现了数据的定界;差错检测则通过检查数据的完整性来确保数据的正确传输。这些功能相互配合,共同保证了数据链路层的透明传输和高效通信。
MAC寻址
MAC寻址,即媒体访问控制寻址,用于在局域网中唯一标识和定位设备。每个网络接口(如网卡)都有一个全球唯一的MAC地址,这是一个48位的二进制数字,通常以十六进制形式表示,分为6个字节,每组8位,用冒号或连字符分隔。例如,一个典型的MAC地址可能看起来像这样:00:1A:2B:3C:4D:5E。MAC地址的主要用途是标识网络中的设备,以便它们可以在数据链路层进行通信。在局域网中,设备通过广播和单播数据包来发现彼此,并建立通信。
MAC寻址的过程
-
封装数据帧:
在发送数据之前,数据链路层会将数据封装成一个数据帧。这个数据帧包括帧起始标志、目标地址(即目标设备的MAC地址)、源地址(即发送设备的MAC地址)、控制信息、数据部分、差错检测码和帧结束标志等字段。 -
MAC地址匹配:
当数据帧在网络中传输时,每个设备都会检查数据帧中的目标地址字段。如果目标地址与设备的MAC地址相匹配,那么该设备就会接收这个数据帧,并将其交给上层协议进行处理。如果目标地址不匹配,那么设备就会忽略这个数据帧,不会进行任何处理。 -
广播与多播:
在某些情况下,如果目标地址是广播地址(FF:FF:FF:FF:FF:FF),那么数据帧会被发送到网络中的所有设备。多播地址则用于将数据帧发送给网络中的一组特定设备。
MAC地址和IP地址有什么区别
特性/地址 | MAC地址 | IP地址 |
---|---|---|
定义 | 媒体访问控制地址,用于标识网络设备的硬件地址 | 互联网协议地址,用于标识网络中的逻辑地址 |
位置 | OSI模型第二层(数据链路层) | OSI模型第三层(网络层) |
作用范围 | 局域网内有效,不能跨越不同网络 | 可以在任何网络中使用,支持跨网络通信 |
分配与管理 | 由网络设备制造商在生产时分配,不可更改 | 由网络管理员根据网络规划和需求分配,可以更改和重新分配 |
表示方式 | 48位二进制数,通常用16进制表示(如00:1A:2B:3C:4D:5E) | IPv4使用32位地址,点分十进制表示(如192.168.0.1);IPv6使用128位地址,更复杂的表示方式 |
唯一性 | 全球唯一,每个网络设备的MAC地址都不同 | 全局唯一(对于公网IP),但在私有网络中可能存在重复(私有IP) |
固定性 | 固定不变,由硬件决定 | 可变,根据网络规划和需求进行分配和更改 |
功能 | 局域网内的设备识别和通信 | 实现跨网络的设备识别和通信,支持路由和寻址 |
数据链路层协议
逻辑链路控制(LLC)协议
逻辑链路控制(LLC)协议是IEEE 802.2中定义的一种数据链路层协议,它为网络层提供了一个统一的接口,以便在不同的物理介质上进行数据传输。LLC协议定义了数据链路的建立、管理和释放过程,以及数据传输的控制和服务类型。它支持无连接服务和面向连接的服务,并提供了流量控制和差错恢复等功能。
服务类型
LLC协议向高层提供的服务有三种类型:
- 面向连接的服务:在两个LLC用户之间建立逻辑连接,包括建立连接、数据传输和断开连接三个阶段。这种服务类型实时性好、可靠性高、顺序性好,适用于需要可靠数据传输的场合。
- 无连接的无确认服务:最简单的服务类型,不提供确认和错误恢复机制。通常用于广播和多播场景,数据传输不可靠、顺序性差、实时性差。
- 无连接的有确认服务:介于前两者之间,为单个数据帧提供确认机制,但不需要建立持久的逻辑连接。这种服务类型在实时性和可靠性之间做了一定的折中。
LLC协议的帧格式
字段名称 | 长度(字节) | 描述 |
目的服务接入点(DSAP) | 1 | 目的服务接入点地址,标识数据帧的目标上层协议 |
源服务接入点(SSAP) | 1 | 源服务接入点地址,标识数据帧的来源上层协议 |
控制字段(Control) | 1 | 控制字段,用于指示帧的类型 |
协议标识符 (PID) | 2 | 识别LLC帧所承载的上层协议类型 |
信息字段 (Data) | 可变 | 承载实际的数据内容 |
帧校验序列(FCS) | 4 | 用于检测传输过程中的错误 |
LLC协议广泛应用于各种IEEE 802系列局域网技术中,如以太网(IEEE 802.3)、无线网(IEEE 802.11)和令牌环(IEEE 802.5)等。通过LLC层,不同类型的网络协议(如IP、IPX、AppleTalk等)可以在同一物理网络上进行通信,而不需要关心具体的硬件实现。
媒体访问控制(MAC)协议
媒体访问控制(MAC)协议是计算机网络中的一种协议,用于在多个设备共享同一通信媒介时进行冲突管理和调度。它属于数据链路层的一部分,负责将帧从发送端传送到接收端,并确保传输的可靠性。MAC协议决定了节点何时能够发送数据帧到公共传输介质上。
MAC协议的分类:
- 信道划分MAC协议:将信道划分为较小的“段”,包括频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)等。
- 随机访问MAC协议:允许碰撞发生并想办法从碰撞中恢复,包括ALOHA、S-ALOHA、CSMA、CSMA/CD等。其中,CSMA/CD应用于以太网,而CSMA/CA则应用于802.11无线局域网。
- 轮转访问MAC协议:节点轮流访问信道,包括主节点轮询和令牌传递两种方式。蓝牙、FDDI、令牌环网等网络采用此类协议。
MAC协议的特点:
- CSMA/CD(载波侦听多路访问/冲突检测):
- 应用:主要应用于以太网。
- 特点:在发送数据之前先侦听信道是否空闲,如果信道忙则等待一段时间后再次尝试发送。如果发生碰撞,则停止发送并发送一个简短的干扰信号,通知其他站点发生了碰撞。
- CSMA/CA(载波侦听多路访问/冲突避免):
- 应用:主要应用于802.11无线局域网。
- 特点:与CSMA/CD类似,但在发送数据之前会先侦听信道是否空闲,并等待一个随机的时间段(称为退避时间)以减少碰撞的可能性。如果信道在退避时间内保持空闲,则发送数据。
- 令牌传递:
- 应用:蓝牙、FDDI、令牌环网等。
- 特点:网络中的节点按照一定的顺序轮流持有令牌,只有持有令牌的节点才能发送数据。这种方式可以确保每个节点都有机会发送数据,并且避免了碰撞的发生。
Mac子层负责介质访问控制机制的实现,即处理局域网中各站点对共享通信介质的争用问题,不同类型的局域网通常使用不同的介质访问技术,另外mac子层还涉及局域网的物理寻址
MAC子层的功能:
- 数据帧的封装/拆封
- 帧的寻址与识别
- 帧的接收与发送
- 链路的管理
- 帧的差错控制及MAC协议的维护
MAC协议的功能:
- 控制对共享介质的访问,避免多个节点同时发送数据导致的冲突。
- 常用的MAC协议包括CSMA/CD(载波监听多路访问/冲突检测)等。
MAC地址
MAC地址由48位二进制数(6个字节)组成,通常表示为12个十六进制数,每两个十六进制数之间用冒号(:)或短横线(-)分隔。例如,00-16-EA-AE-3C-40或00:16:EA:AE:3C:40都是一个MAC地址的示例。
MAC地址的前3个字节(16进制数的前三组),称为组织唯一标识符(OUI,Organizationally Unique Identifier),是由IEEE(电气与电子工程师协会)的注册管理机构分配给不同厂家的代码,用于区分不同的设备制造商。而后3个字节(16进制数的后三组)则由制造商自行分配,以确保每个设备在其生产的所有设备中具有唯一的MAC地址。
MAC地址的分类
- 物理MAC地址:用于唯一标识以太网上的一个终端设备,是全球唯一的硬件地址。
- 广播MAC地址:全为1的MAC地址(FF-FF-FF-FF-FF-FF),用于表示LAN上的所有终端设备。
- 组播MAC地址:除广播地址外,第8位为1的MAC地址,用于表示LAN上的一组终端设备。
以太网
以太网是一种基于IEEE 802.3标准的局域网通信技术,它定义了数据如何在物理介质(如双绞线、光纤等)上传输的规则。以太网采用广播技术,允许多个设备在共享通信介质上同时发送和接收数据。为了避免数据冲突,以太网采用了载波侦听多路访问/冲突检测(CSMA/CD)机制。在发送数据前,设备会侦听信道是否空闲,如果空闲则发送数据;如果检测到冲突,则停止发送并等待一段时间后重试。
以太网的基本网络组成包括:
- 共享媒体和电缆:提供数据传输的物理通道。
- 转发器或集线器:用于连接多个网络设备,并将接收到的数据广播到所有连接的设备上。
- 网桥:用于连接不同的以太网段,并根据MAC地址过滤和转发数据包。
- 交换机:比网桥更高级的设备,能够同时处理多个数据包的转发,并提供更高的带宽和性能。
以太网的分类:
基于传输速率分类
- 标准以太网:
- 传输速率:10Mbps(兆比特每秒)。
- 应用场景:一般用于速度要求不高的办公环境。
- 特点:实现简单,费用低,可以使用同轴电缆和双绞线两种传输介质。
- 快速以太网:
- 传输速率:100Mbps。
- 应用场景:一般用于局域网主干或桌面速度。
- 特点:实现简单,费用低,一般用双绞线或光纤两种传输介质。
- 千兆以太网(吉比特以太网):
- 传输速率:1000Mbps。
- 应用场景:一般用于局域网主干。
- 特点:实现简单,但费用相对较高,一般用超五类或六类双绞线或光纤两种传输介质。
- 10G比特以太网:
- 传输速率:10000Mbps(万兆以太网)。
- 应用场景:应用于园区网骨干交换机间的互连、数据中心服务器群组与骨干的互连、城域网的汇聚层和骨干层、新兴的宽带广域网以及存储网络。
- 特点:需要光纤实现,传输距离远,带宽高。
- 100G比特以太网:
- 传输速率:100Gbps。
- 应用场景:高速网络环境,如数据中心等。
- 特点:传输速度极快,但成本也相对较高。
基于传输介质分类
- 双绞线以太网:
- 使用双绞线作为传输介质,如10Base-T、100Base-TX等。
- 优点是成本低、易于布线,适用于短距离传输。
- 同轴电缆以太网:
- 使用同轴电缆作为传输介质,如10Base-5、10Base-2等。
- 优点是传输距离较远,但成本较高,且布线不如双绞线灵活。
- 光纤以太网:
- 使用光纤作为传输介质,如10Base-F、100Base-FX等。
- 优点是传输距离极远、传输速度快、抗干扰能力强,但成本也相对较高。
交换机
工作原理
- 接收数据帧:交换机通过其端口接收来自计算机或其他网络设备的数据帧。
- 检查MAC地址:交换机检查数据帧中的目的MAC地址,以确定数据帧应该被转发到哪个端口。
- 查找MAC地址表:交换机在其内部维护一个MAC地址表,该表记录了各个MAC地址与端口的对应关系。交换机在MAC地址表中查找目的MAC地址对应的端口。
- 转发数据帧:如果找到了匹配的端口,交换机将数据帧转发到该端口;如果没有找到匹配的端口,交换机可能会将数据帧广播到所有端口(除了接收端口),以寻找目的设备。
- 更新MAC地址表:当交换机学习到新的MAC地址时,它会更新其MAC地址表,以便未来能够更高效地转发数据帧。
分类
- 基于传输速率的分类:
- 标准以太网交换机:传输速率为10Mbps。
- 快速以太网交换机:传输速率为100Mbps。
- 千兆以太网交换机:传输速率为1Gbps(1000Mbps)。
- 万兆以太网交换机:传输速率为10Gbps。
- 基于管理方式的分类:
- 可管理型交换机:提供网络管理功能,如VLAN划分、流量控制、端口镜像等。
- 不可管理型交换机:功能较为简单,主要提供基本的数据交换功能。
- 基于传输介质的分类:
- 双绞线交换机:使用双绞线作为传输介质。
- 光纤交换机:使用光纤作为传输介质,具有更高的传输速率和更远的传输距离。