第三章:数据链路层 数据链路层的基本概念(作用、数据链路、帧)数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。结点 (node) :指网络中的主机、路由器等。链路 (link) :是一条点到点的物理通道,中间没有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件 和软件加到链路上就构成数据链路。帧: 链路层的协议数据单元,封装网络层数据报。 数据链路层是实现设备之间通信的非常重要的一层。网络中的主机、路由器等都必须实现数据链路层;局域网中的主机、交换机等都必须实现数据链路层。 三个基本问题(封装成帧、透明传输、差错检测)封装成帧封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部包含了许多的控制信息。首部和尾部中有帧定界符,其作用是进行帧定界(接收端识别开始和结束)。 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。 透明传输透明传输是指不管所传数据是什么样的比特组合,都能够在链路上传送。因此, 链路层应该"看不见"有什么妨碍数据传输的东西。如果数据中的某字节的二进制代码恰好和 SOH 或 EOT 一样,链路层就会错误地"找到帧的边界"。 差错控制在传输过程中可能会产生差错,传输中的差错都是由于噪声引起的。全局性噪声:由于线路本身的电气特性所产生的随机噪声,是信道固有的,随 机存在的。 解决办法:提高信噪比来减少或避免干扰。 局部性噪声:外界特定的短暂原因造成的冲击噪声,是产生差错的主要原因。 解决办法:通常利用编码技术来解决 差错类型包括:位错: 比特位出错——接下来学习如何解决。 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。奇偶校验 & 循环冗余码。 应当明确,"无比特差错"与"无传输差错"是不同的概念。在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。要做到"无差错传输"(即发送什么就收到什么)就必须再加上确认和重传机制。 (2) 帧错: 1、丢失:收到[#1]-[#3] 2、重复:收到[#1]-[#2]-[#2]-[#3] 3、乱序:收到[#1]-[#3]-[#2] ——通过编号解决 点对点协议 PPP协议特点:对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 PPP 协议在 1994 年就已成为互联网的正式标准。PPP 协议主要用于广域网(多个城市多个国家的因特网)PPP 协议只支持全双工信道通信 不需要的功能不需要纠错(只需要检查)不需要流量控制不需要序号不需要多点线路 (只需要点对点的功能)不需要考虑半双工或单工链路 组成PPP 协议有三个组成部分:一个将 IP 数据报封装到串行链路(同步串行/异步串行)的方法。 异步电路用字节填充,同步电路用比特填充。链路控制协议 LCP (Link Control Protocol)。 ——身份验证,建立并维护数据链路连接。网络控制协议 NCP (Network Control Protocol)。 ——PPP 可以兼容多种网络层协议。每个不同的网络层协议都要有相应 NCP 来配置,为网络层协议建立和配置逻辑连接。 帧格式PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。标志字段 F = 0x7E (符号"0x"表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。控制字段 C 通常置为 0x03。PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。 F-frame,A-address,C-control 建立过程 4. 局域网的数据链路层局域网的特点:局域网最主要的特点是:网络为一个单位所拥有;地理范围和站点数目均有限。局域网具有如下主要优点:使用广播信道,各站点关系平等。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。通信延时短,误码率低,可靠性较高。数据传输速率范围在 10Mb/s~10Gb/s。 局域网的拓扑 以太网 以太网(Ethernet)指的是由 Xerox 公司创建并由 Xerox、Intel 和 DEC 公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以 太网络使用 CSMA/CD(载波监听多路访问及冲突检测)技术。 以太网在局域网各种技术中占统治性地位:造价低廉(以太网网卡不到 100 块)﹔是应用最广泛的局域网技术;比令牌环网、ATM 网便宜,简单;满足网络速率要求:10Mb/s~10Gb/s. IEEE 802.3 是第一个 IEEE 的以太网标准。DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。 DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为"以太网"(10M bit/s)。 严格说来,"以太网"应当是指符合 DIX Ethernet V2 标准的局域网 。 以太网把数据链路层分成了 LLC 子层和 MAC 子层以太网采取了两种重要的措施采用较为灵活的无连接,不可靠的工作方式不必先建立连接就可以直接发送数据。对发送的数据帧不进行编号,也不要求对方发回确认。这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。以太网只实现无差错接收,不实现可靠传输。以太网发送的数据都使用曼彻斯特 (Manchester) 编码(高频、自同步) 共享信道 静态划分信道媒体共享技术(介质访问控制)频分复用FDM时分复用TDM波分复用WDM码分复用 CDM动态媒体接入控制(多点接入) 随机接入(CSMA/ALOHA 等协议)受控接入 ,如多点线路探询 (polling),或轮询。 CSMA/CD 协议(随机接入) CSMA/CD 含义:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。CS(Carrier Sense):"载波监听"是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据 ,以免发生碰撞。 MA(Multiple Access):"多点接入"表示许多计算机以多点接入的方式连接在一根总线上。"载波监听"就是用电子技术检测总线上有没有其他计算机发送的数据信号 。 碰撞检测: CD(Collision Detection): "碰撞检测"就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。所谓"碰撞"就是发生了冲突。因此"碰撞检测"也称为"冲突检测"。 检测到碰撞后: 在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。CSMA/CD (载波监听多点接入 / 碰撞检测):每一个正在发送数据的站 ,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。 CSMA/CD 协议工作流程: 为什么要进行碰撞检测? 因为信号传播时延对载波监听产生了影响 二进制指数类型退避算法 (truncated binary exponential type) CSMA/CD 协议的重要特性: 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信 (半双工通信)。 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。 集线器的星形拓扑 集线器的一些特点: 集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。 集线器很像一个多接口的转发器,工作在物理层。集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音。 以太网的信道利用率多个站在以太网上同时工作就可能会发生碰撞。当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到 100%。假设(tao) 是以太网单程端到端传播时延。则争用期长度为 2 ,即端到端传播时延的两倍。检测到碰撞后不发送干扰信号。 设帧长为 L (bit),数据发送速率为 C (bit/s),则帧的发送时间为 T 0
= L /C (s)。 以太网的 MAC 层 在局域网中,硬件地址又称为物理地址,或 MAC 地址(全球唯一)。802 标准所说的"地址"严格地讲应当是每一个站的"名字"或标识符。但鉴于大家都早已习惯了将这种 48 位的"名字"称为"地址",所以本书也采用MAC 层的硬件地址 这种习惯用法,尽管这种说法并不太严格。 MAC 帧的格式 当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段, 以保证以太网的 MAC 帧长不小于 64 字节。在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码, 用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。 无效的 MAC 帧 : 帧的长度不是整数个字节;用收到的帧检验序列 FCS 查出有差错;数据字段的长度不在 46 ~ 1500 字节之间。有效的 MAC 帧长度为 64 ~ 1518 字节之间。 对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。 在物理层扩展以太网使用光纤扩展主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到集线器。很容易使主机和几公里以外的集线器相连接。 使用集线器扩展:将多个以太网段连成更大的、多级星形结构的以太网。 缺点优点 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。扩大了以太网覆盖的地理范围。碰撞域增大了。如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。 碰撞域(collision domain)又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。 数据链路层设备(网桥、交换机)网桥: 交换机:以太网交换机实质上就是一个多接口的网桥。通常都有十几个或更多的接口。每个接口都直接与一个单台主机或另一个以太网交换机相连以太网交换机具有并行性。 能同时连通多对接口,使多对主机能同时通信。 相互通信的主机都是独占传输媒体,无碰撞地传输数据。以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。以太网交换机的作用远远大于普通的集线器,而且价格并不贵。 在数据链路层扩展以太网扩展以太网更常用的方法是在数据链路层进行。早期使用网桥,现在使用以太网交换机。 以太网交换机的自学习功能 IEEE 802.1D 标准制定了一个生成树协议 STP (Spanning Tree Protocol)。其要点是:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。 虚拟局域网虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。由于虚拟局域网是用户和网络资源的逻辑组合,因此可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或数据库中存取所需的资源。 每个虚拟局域网是一个广播域。VLAN1, VLAN2 和 VLAN3 是三个不同的广播域。当 B1 向 VLAN2 工作组内成员发送数据时,工作站 B2 和 B3 将会收到其广播的信息。B1 发送数据时,VLAN1 和 VLAN3 中的工作站 A1,A2 和 C1 等都不会收到 B1 发出的广播信息。 虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息 (即"广播风暴") 而引起性能恶化。 虚拟局域网优点: 改善了性能——避免的广播风暴,节省了带宽简化了管理——只需要网管改改配置降低了成本——不需要购买更多的设备改善了安全性——隔离的数据 划分虚拟局域网的方法:基于交换机端口 基于计算机网卡的 MAC 地址 基于协议类型 基于 IP 子网地址 基于高层应用或服务 虚拟局域网使用的以太网帧格式:IEEE 批准了 802.3ac 标准,该标准定义了以太网的帧格式的扩展,以支持虚拟局域网。虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记 (tag),用来指明该帧属于哪一个虚拟局域网。插入 VLAN 标记得出的帧称为 802.1Q 帧或带标记的以太网帧。