一、数据链路层的概述 1.1概述 数据链路层是OSI七层模型中的 第二层 ,其传输的数据单元为帧,工作的网络设备为叫交换机。 以太网Ethernet=局域网LAN=内网 1.2帧结构 数据链路层的协议:MAC子层协议 MAC子层协议:封装帧头和帧尾 帧结构的构成:MAC子层(帧头)+上三层数据+FCS(帧尾) MAC 子层头部包含:目标MAC地址(6字节),源MAC地址(6字节),类型(2字节) 目的MAC地址和源MAC地址用于两个主机之间传递数据帧,类型字段用于标识网络层封装的数据类型(ip协议或者ARP协议) 类型值:作用是区分上层协议 0x0800--->ip协议 0x0806--->arp协议 上三层数据的最大容纳量:国内标准是1500字节 帧尾用于检查整个帧数据是否完整 MAC地址:也称为物理地址 3、MAC地址表的老化时间/生存时间是300秒,如果表中的计算机300秒内没有给交换机发送数据,交换机就会将它从表中删除,等下次通信的时候重新学习MAC地址表。
广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 数据链路层只关注数据在链路层流通的情况: ? 逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。 数据链路层传送的是帧 ? 数据链路层不必考虑物理层如何实现比特传输的细节。 甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方。 ? 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。 接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。 可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。 ?
数据链路层主要有三个目的: 为IP模块发送和接受IP数据报。 为ARP模块发送ARP请求和接受ARP应答; 为RARP发送RARP请求和RARP应答。 而RARP协议则是将硬件地址解析为IP地址,这两个协议位于网络层,和IP数据报一样,都具有各自的以太网数据帧类型(即传入到以太网中要加上相应的MAC帧)。 最大传输单元MTU: 数据链路层中的网络对数据帧的长度都有一个限制,不同网络的MTU值不同。经常使用的以太网为1500个字节。 一些其它网络的MTU字节值例如以下表: MTU主要是为了限制一次传输的最大IP数据报的值,假设IP层有一个数据报要传。并且数据产度比数据链路层的MTU大。 而每一个网络的链路层可能有不同的MTU,这时。要重点考虑的是两台通信主机路径中各网络的最小MTU,称它为路径MTU。
,因此将数据转发到下一跳主机实际是属于局域网通信范畴的,而这实际就是链路层需要解决的问题。 也就是说,网络层IP提供的是跨网络发送数据的能力,传输层TCP是为数据发送提供可靠性保证的,而链路层解决的则是两台相连主机之间的通信问题。 其中应用层最典型的协议有HTTP、HTTPS和DNS等,传输层最典型的协议有TCP和UDP,网络层最典型的协议就是IP,数据链路层最典型的协议就是MAC帧协议,但实际数据链路层还有两种协议叫做ARP和RARP ARP、RARP和MAC帧协议虽然都属于数据链路层的协议,但ARP协议和RARP协议属于MAC帧的上层协议 也就是说,MAC帧的上层协议不一定就直接是网络层的协议,MAC帧的上层协议有可能也属于数据链路层的协议 需要注意的是,MAC帧和ARP虽然都在数据链路层,但毕竟是上下层的关系,因此它们不会互相关心彼此报头当中的数据。
而此时由于环状的结构,广播数据包会在四台交换机之间来回的传输,占用大量的带宽。 多帧拷贝: 假设 W 不知道 B 的 MAC 地址,此时会泛洪发给 Y 和 X,假设 Y 和 X 知道 B 的 MAC 地址,此时会将数据包以单播的形式发给 Z,而 Z 会将两个单播数据包传给 B. 造成传输冗余的数据帧。 MAC 表不稳定: 同样假设 W 不知道 B 的 MAC,采用泛洪。同时 X,Y,Z 也不知道 B 的 MAC。 Z 按照时间顺序假设在 MAC 表中记录的是来自 Y 的数据帧,此时记录的是 2 号口。而由于 Z 也不知道 B 的 MAC,还会广播。 之后进入 Forwarding 状态,正常转发数据。 如果是被 STP 阻塞的端口进入 Blocking 状态,不能转发数据,但可以接受 BPDU.
概述 数据链路层使用的信道主要有两种类型点对点信道。使用一对一的点对点通信方式的信道。广播信道。使用一对多的广播通信方式的信道。 由于广播信道上连接的主机很多,必须使用专用的共享信道协议来协调这些主机的数据发送,因此通信过程比较复杂。 不同的链路层可能采用不同的数据链路层协议帧是数据链路层的协议数据单元。 数据链路(datalink,逻辑链路) 由物理线路以及实现通信协议的硬件和软件组成的。数据链路层协议(即链路控制规程)是在不太可靠的物理链路上实现可靠的数据传输所必不可少的。 网络适配器(即网卡)是实现这些协议的硬件和软件,它通常具有数据链路层和物理层的功能。 功能通常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。 编辑早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。 数据链路层在物理层提供服务的基础上向网络层提供服务。
OSI-RM体系结构中,流量控制和差错控制是在数据链路层实现的。 差错控制: 在信息传输过程中,由于种种原因,可能发生“1”变为“0”或“0”变为“1”的情况,这就是出了差错。 流量控制: 流量控制是协调链路两端发送站和接收站之间的数据传输流量,以保证双方的数据发送和接收达到平衡的一种技术。 在发送方和接收方的数据链路层分别有一个发送缓存和接收缓存,若进行全双工通信,双方都要同时设置发送缓存和接收缓存。 停止等待协议 开关式流量控制:当接收方有足够的缓存空间,发出“开”命令,通知发送方开始发送数据;当接收方来不及处理接受的信息,并且接收缓冲区也被耗尽或将要耗尽时,发出“关”命令,通知发送方停止发送数据。 协议式流量控制:发送时,发送方一次发送完一个数据帧后便主动停止发送,等待接收端会送的应答。如果受到肯定的应答,则继续发送下一帧;如果收到否定应答或在规定时间内没有收到应答,则重发该帧。 ?
数据链路层(Data Link Layer) 是OSI参考模型第二层,位于物理层与网络层之间。 • 数据链路层会在 frame 尾端置放检查码(parity,sum,CRC)以检查实质内容,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路,并对物理层的原始数据进行数据封装。 数据链路层中的数据封装是指:封装的数据信息中,包含了地址段和数据段等。 • 地址段含有点对点发送节点和接收节点的地址(如MAC), • 控制段用来表示数格连接帧的类型,数据段包含实际要传输的数据。 数据链路层的协议: 图片 • 异步传输模式 (ATM) • 帧中继 (Frame Relay) • 高级资料链接控制(HDLC) • 点对点协议(PPP) • VLAN(IEEE 802.1Q) • 以太网 以太网中大多数的数据帧使用的是Ethernet II格式。 以太网的MAC地址: 数据链路层基于MAC地址进行帧的传输。
那么经过一系列介绍,我们最终也到了TCP/IP四层模型的最后一层——数据链路层。 那么数据链路层我们这么介绍,从以太网帧协议到认识MAC地址,再到arp协议,最后引入一个交换机的概念,数据链路层我们也就收官了。 当数据链路层讲完,我们下一篇文章再补充一点细节部分,具体之后再说咯,那么废话不多说,我们直接进入主题。 ARP协议 ARP协议理解 在数据链路层中存在两个协议,一个是以太网帧协议,一个是ARP协议,而ARP协议是建立在IP层和以太网帧协议的中间,但是实际上ARP协议也是在数据链路层的,就像这样: 那么ARP 对于数据链路层我们暂时说到这里,对于ARP的具体过程和ARP欺骗我们之后再谈~
三、以太网 “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了 一些物理层的内容。 四、ARP协议 ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议 上述遗留了一个问题: 一台主机能否知道同一个LAN内其他主机IP -> MAC 的映射关系? ,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation); 不同的数据链路层标准的MTU是不同的; 5.2 MTU对IP协议的影响 由于数据链路层MTU的限制,对于较大的 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU)。 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。 MSS的值就是在TCP首部的40字节变长选项中(kind=2); 总结 以上就是数据链路层的重点总结了,要是各位伙伴有什么疑问或者博主写的不对的地方,欢迎私信博主
一、点对点协议(PPP) 点到点协议(Point to Protocol)工作在数据链路层。 2.PPP协议一般用于用户拨号接入ISP,工作流程如下: (1)LCP配置协商 用户点击“连接”,建立了物理层连接后,双方就要进行链路层上某些配置的协商,比如链路上的最大帧长、采用什么鉴别协议等。 高级链路数据控制( High-Level Data Link Control,HDLC)是一种面向比特的链路层协议,是PPP的前身。 (2)三种工作站: 主站,从站,复合站。 二、MAC和LLC 1.IEEE 802标准把数据链路层分为两个子层: (1)媒体接入控制层 MAC Media Access Control,也称为 介质访问控制子层,该层与硬件相关,提供硬件和LLC 层的接口,所以说MAC是数据链路层的地址标识。
要把数据从主机B传送到主机C,必须先将数据从主机B交给路由器F。 那么同一个子网中,一个主机怎么把数据交给另一台主机?其实就是局域网通信的问题!这就需要数据链路层来解决这个问题 1. 它指的是数据链路层的帧(如以太网帧)其数据载荷部分所能承载的上层协议数据的最大长度。 核心点:MTU限制的是 第三层(网络层)数据包的大小。 MTU对IP协议的影响 由于数据链路层MTU的限制,对于较大的IP数据包要进行分包. ,ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议 和ARP协议类似的协议也有,就比如ICMP协议、IGMP协议等,不单纯属于网络层协议 ARP协议建立了主机 IP 如果类型字段是 0x0800,则表示有效载荷是一个IP数据报,数据链路层会将其交给网络层的IP协议去处理。
1、链路和数据链路有何区别?电路接通了与数据链路接通了 有何区别 链路就是从一个结点到相邻结点的一段物理线路,而中间没有其他任何的交换结点。 在进行数据通信时,两台计算机之间的通信路径往往要经过很多段这样的链路。可见,链路只是一条路径的组成部分。 数据链路则是另一个概念。 当要在一条线路上传送数据时,除了必须要有一条物理线路外,还必须有一些通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 有时也把链路分成物理链路和逻辑链路。 电路接通了表示链路两端的结点交换机已经开机,物理连接已经能够传送比特流了,但是数据传输并不可靠,在物理连接基础上,再建立数据链路连接,才是”数据链路接通了“。 此后,由于数据链路连接具有检测,确认和重传功能,才使不太可靠的物理链路变成可靠的数据链路,进行可靠的数据传输。当数据链断开连接时,物理链路连接不一定跟着断开连接。
2)载波监听 发送前监听,就是在发送数据前监听总线中是否有数据在传播,如果有就不发送。就是用电子技术检测总线上有没有其他计算机发送的数据信号。 3)碰撞检测 边发送边监听,在发送数据的中途也会监听总线中是否会有其它数据,当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。 理想的情况下就是不发生碰撞,一发送完数据,另一个数据就又发送,也就是一有空闲时间,就发送数据。这个时候,信道中一直有数据在传输,一刻也不停歇,那此时的信道利用率就是100了? 每个网卡都拥有识别数据帧中mac地址的功能 数据帧格式: ? ,用来进行CRC算法检测的,剩下的46个字节就是数据包最少要发送的字节数了,如果数据包实际发的少于46,那么会给这个数据包自动补充0,来达到需要的字节数。
本文全面介绍低功耗蓝牙技术中链路层的关键部分,包括链路层状态(待机、广播、扫描和连接等)、字节序、设备地址及其应用场景,以及物理信道(广播、周期、同步物理和数据物理信道)的定义、分类、使用与同步。 一、链路层状态(Link Layer states) 链路层状态机在同一时间只允许一个状态处于活动状态。链路层应至少有一个链路层状态机支持广播状态或扫描状态之一。链路层可以有多个链路层状态机的实例。 包括但不限于支持特定的协议数据单元(PDU)、过程、数据长度、主机控制器接口(HCI)命令或HCI命令的特定功能。 链路层状态:蓝牙技术中,链路层负责处理数据包的传输和接收,以及管理连接等。 二、字节序(Bit ordering) 在链路层规范中定义数据包或协议数据单元(PDU)内的字段时,字节序遵循小端格式。 最低有效位(LSB)对应于 b0:在数据表示中,最低有效位被标记为 b0。 五、总结 蓝牙技术通过复杂的链路层状态管理和设备地址识别机制,实现了设备间的有效连接和数据传输。本文不仅详细解析了链路层的多种状态和角色,还明确了字节序的要求,深入探讨了设备地址的定义、类型和使用。
换句话讲, bee 和 cicada 都会收到这个数据 11110000 ,而 cicada 本不应该接收这个数据!另一方面, bee 收到数据后,也不知道数据到底是谁发给它的。 数据不禁产生困惑:我从哪来?去往何方? 为此,我们需要引入一些比特,用来标识数据的 来源 以及 目的地 。 类型 比特 研究数据 00 文件打印 01 即时通讯 10 举个例子,假设 ant 向 bee 上报研究数据并打印一个文件: image.png bee 接收到数据后,根据紫色比特,决定数据如何处理。 至此,我们解决了多台共用信道主机间的通讯问题,这相当于网络分层结构中的 数据链路层 。 数据链路层负责为上层提供链路通讯能力,主要作用是: 寻址 数据复用/分用 数据链路层的协议有很多,下节我们将介绍其中最常用的 以太网协议 。 【小菜学网络】系列文章首发于公众号【小菜学编程】
PPP协议使用场合 现在全世界使用得最多的数据链路层协议是点对点协议(Point to Point Protocol,PPP) 有身份验证的功能用户使用拨号电话线接入因特网时,一般都是使用PPP协议。 PPP协议应该满足的要求: 简单----这是首要的要求 封装成帧 透明性 多种网络层协议 多种类型链路 差错检测 检测连接状态 最大传送单元 网络层地址协商 数据压缩协商 PPP协议不需要满足的要求: 纠错 流量控制 序号 多点线路 半双工或单工链路 PPP协议的组成 PPP协议有三个组成部分 数据链路层协议可以用于异步串行或同步串行介质。 它使用LCP(链路控制协议)建立并维护数据链路连接。 网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如图所示 ?
数据链路层 用于两个设备(同一种数据链路节点)之间进行传递. 认识以太网 “以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 认识MAC地址 MAC地址用来识别数据链路层中相连的节点; 长度为48位,即6个字节. ,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation); 不同的数据链路层标准的MTU是不同的; MTU对IP协议的影响 由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包 最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU). 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值. ARP协议 ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议; ARP协议的作用 ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.
一、数据链路层概述 这是百度的简介 看图:理解一下,数据链路层之间的运输、数据链路层之间的信道 链路:一条点到点的物理线路段,中间没有任何其他的交换结点,通俗的将,就是一根线,其中不经过任何东西 帧:数据链路层上传送的就是帧 二、数据链路层的三个问题 封装成帧、透明传输、差错控制 讲解如何封装帧,封装完后帧的传输问题、传输到达目的地,如何检验该段帧是否完整 2.1、封装成帧 数据链路层就是在 1101 就用P(X)=X3+X2+1 (X3是x的三次方的意思) 最高位是2的三次方,就是x的三次方这样算,例如,101101 P(X)=X5+X3+X2+1 三、可靠传输 在有些情况下,我们需要数据链路层向上的网络层提供 总结:不可靠的链路上,通过各种协议,就能达到可靠传输,来保证数据的准确性 四、两种信道下的数据链路层 点对点信道的数据链路层、 广播信道的数据链路层 4.1、点对点协议 概述:现在全世界使用的最多的数据链路层协议就是点对点协议 5)链路打开到链路终止:进行传输数据,如果传输完成,就发送终止请求分组,收到终止确认分组后,就到了终止状态, 6)链路终止到链路静止:当物理层没有载波时,就到静止状态 4.2、广播信道的数据链路层
认识以太网 "以太网"不是一种具体的网络,而是一种技术标准;即包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结果,访问控制方式,传输速率等等。 认识MAC地址 MAC地址是用来识别数据链路层种相关的节点。 长度位48位,即6个字节。 ; 不同的数据链路层标准的 MTU 是不同的; MTU对IP协议的影响 由于数据链路层 MTU 的限制,对于较大的 IP 数据包要进行分包。 最理想的情况下,MSS 的值正好是在 IP 不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的 MTU)。 双方在发送 SYN 的时候会在 TCP 头部写入自己能支持的 MSS 值。 到达数据链路层时,需要加上MAC帧报头 ,其中包含源MAC地址和目标主机的MAC地址。