第五章 数据链路层和局域网 链路层和局域网
第 5 章: 数据链路层和局域网 目的: 了解数据链路层服务及协议原理: 各种链路层技术的实现 差错检测和纠错 共享广播信道:多路访问协议 链路层寻址 可靠传输,流量控制 各种链路层技术的实现 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
链路层:介绍 数据链路层的职责:将分组通过一个链路,从一个节点传输到临近的另一个节点。 “link” 常用术语: 节点:主机和路由器(包括网桥和交换机) 链路:沿着通信路径连接相邻节点的通信信道 有线链路 无线链路 局域网 帧:链路层协议交换的数据单元。封装网络层数据报 数据链路层的职责:将分组通过一个链路,从一个节点传输到临近的另一个节点。 链路层和局域网
链路层的特点 传输类比 分组传输可以经过不同的链路使用不同的协议实现: 每个链路协议提供不同的服务 旅客 = 数据包 运输段 = 通信链路 从成都到九寨沟的旅途 打的:成都某地到成都机场 飞机:成都机场到九寨沟机场 大巴:九寨沟机场到清华风景区 旅客 = 数据包 运输段 = 通信链路 运输模式 = 链路层协议 旅行社 = 路由算法 分组传输可以经过不同的链路使用不同的协议实现: 例如,最初的链路是以太网,然后是帧中继,最后的是802.11 每个链路协议提供不同的服务 例如,可以在链路上提供或不提供可靠的传输 链路层和局域网
链路层服务 成帧: 链路访问: 在邻接节点间的可靠传输 把网络层数据报加头和尾,封装成帧 帧头中包括指明目的和源的“物理地址”(不同于IP地址) 链路访问: 媒体访问控制(Medium Access Control,MAC)协议 共享媒体的多路访问 在邻接节点间的可靠传输 我们已经在第三章学习了怎么做! 在出错率很低的链路上很少用 (光纤,部分双绞线) 无线链路:高出错率 问题:为何链路层和端到端的层都要提供可靠性服务? 链路层和局域网
链路层服务(续) 流量控制: 差错检测: 纠错: 半双工和全双工 在邻接的发送节点和接收节点间的同步调节 差错由信号衰减和噪声引起 接收者检测错误:如果发现差错 发送者重传帧或丢帧 纠错: 接收者检测和纠正错误,不需发送者重传 半双工和全双工 半双工,一个节点不能同时传输和接收 全双工,节点可以同时传输和接收 链路层和局域网
适配器通信 帧 帧 链路层在 “适配器” (网卡)中实现 发送方: 接收方 适配器是半自治的 链路层 & 物理层 数据报 链路层协议 发送节点 接收节点 帧 帧 适配器 适配器 链路层在 “适配器” (网卡)中实现 Ethernet卡,PCMCIA卡, 802.11卡 发送方: 封装分组成帧 增加检错位、可靠传输、流量控制等 接收方 检测差错、可靠交付、流量控制等 提取分组,传给接收节点 适配器是半自治的 链路层 & 物理层 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
错误检测 EDC= Error Detection and Correction bits (冗余) D = 被EDC保护的数据,包括头部字段 错误检测不是100%可靠! 协议有可能漏掉一些错误,但很少 大的EDC域能提供更好的检错和纠错能力 链路层和局域网
奇偶校验 二维偶数奇偶校验: 单个奇偶位: 事实上,发生未检测到错误的概率为50%-->有必要深入研究 检测单个位的错误 二维偶数奇偶校验: 检测和纠正单个位的错误,检测任意组合的两个错误 一比特偶校验 事实上,发生未检测到错误的概率为50%-->有必要深入研究 链路层和局域网
Internet检查和 接收方: 发送方: 目标: 检测在传输数据段中的 “错误” 计算接收字段的检查和 检测计算的检查和与检查和域的值是否相等: NO – 检测到错误 YES – 没有检测到错误。但可能有错…. 发送方: 把数据段内容看成16-bit的整数序列 检查和:把数据段内容加起来,求反码 发送方把检查和放入UDP的检查和域 链路层和局域网
循环冗余校验CRC(Cyclic Redundancy Check) 把数据D,看成d位二进制数 发送方与接收方商定一个r+1位模式 (生成多项式), G 目标: 选择r位循环冗余位, R, 将它们添加到D后面 <D,R> 的d+r位二进制数使用模2运算能被r+1位的二进制数 G整除 接收方用G去除接收到的<D,R>的d+r位二进制数,如果余数非零:错误发生 能检测到少于r+1位的各种猝发错误 被各种链路层协议广泛使用 链路层和局域网
CRC例子 想找到一个R,对于n有: D.2r XOR R = nG 两边都异或R: D.2r = nG XOR R 如果用G来除 D.2r ,余数等于R : D.2r G R = remainder[ ] 链路层和局域网
国际标准已经定义了8-、16-、32-位生成多项式G;8-位CRC用于ATM头部5字节的保护;32-CRC用于大量链路层IEEE协议。 每个CRC标准能够检测少于r+1位的猝发错误和任意的奇数个比特错误…… 其他检错和纠错方法不常用,故不作专门介绍 校验和通常应用于网络层及其之上的层次,要求简单快速的软件实现方式,而CRC通常应用于链路层,可以适配器硬件实现复杂的算法。 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
多址访问协议 两种类型的 “链路”: 点对点 广播(有线或无线共享) PPP (用于拨号访问)或HDLC 在以太网交换机和主机间的点到点链路 传统以太网 802.11无线局域网 链路层和局域网
多址访问协议 单个共享广播信道 两个或多个节点同时传输:冲突(碰撞) 多址访问协议 冲突(碰撞):一个节点同时接收两个或多个信号时发生冲突 在某个时刻只有一个节点发送数据才可以发送成功信息 多址访问协议 分布式算法决定各节点如何共享信道,即决定节点什么时候可以传数据 共享信道既要负责进行数据传输,又要负责分布式算法的控制信息的传输 没有带外信道传输控制信息 链路层和局域网
理想的多址访问协议 速率为R bps的广播信道 1. 当一个节点有数据发送时,它能以R bps的速率发送. 2. 当有M个节点要发送数据,每个节点的平均发送速率为 R/M 3. 完全分散: 不需要主节点协调传输 不需要时钟、时隙同步 4. 简单 链路层和局域网
MAC 协议:分类 3大类: 信道划分 随机访问 轮流 把信道划分为小“片” (时隙,频分,码分) 给节点分配专用的小“片” 不划分信道,允许冲突 能从冲突中“恢复” 轮流 通过集中调整共享访问避免冲突 链路层和局域网
时分多路访问: TDMA TDMA: time division multiple access 轮流访问信道 在每个循环中,每个站点得到一个固定长度的时隙 时隙长度通常为数据服务单元的发送时间 未被使用的时隙空闲 例子:6个站点的局域网, 1,3,4 被使用,2,5,6空闲 链路层和局域网
频分多路访问: FDMA FDMA: frequency division multiple access 信道被分成不同频段 每个站点分配一个固定的频段 未被使用的频段空闲 例子:6个站点的局域网, 1,3,4 被使用,2,5,6空闲 time frequency bands 链路层和局域网
码分多路访问 (CDMA) CDMA (Code Division Multiple Access) 每个节点分配一个唯一的编码 每个节点用它唯一的编码来对它发送的数据进行编码 允许多个节点“共存” ,信号可叠加,即可以同时传输数据而无冲突 (如果编码 是“正交化”的) 链路层和局域网
随机访问协议 节点有数据包发送 2个或更多的发送节点 -> “冲突collision”, 随机访问MAC协议要求: 以信道满数据率R传送 节点间没有协调者 2个或更多的发送节点 -> “冲突collision”, 随机访问MAC协议要求: 能够检测冲突 能够从冲突中恢复 (例如:通过延时重传) 随机访问MAC协议实例: ALOHA 时隙ALOHA CSMA, CSMA/CD, CSMA/CA 链路层和局域网
纯 (非时隙) ALOHA 非时隙Aloha: 简单,不需同步 帧一到达 冲突概率增加: 立即传输 在t0发送的帧和在 [t0-1,t0+1]的发送的其它帧冲突 链路层和局域网
… 选择p值,然后求N->无穷时的极限... = 1/(2e) = 0.18 纯Aloha效率 P(给定节点成功传送) = P(节点传送) . P(没有其他节点在[t0-1,t0]内传送) . P(没有其他节点在[t0,t0 +1]内传送) = p . (1-p)N-1 . (1-p)N-1 = p . (1-p)2(N-1) … 选择p值,然后求N->无穷时的极限... = 1/(2e) = 0.18 Even worse ! 链路层和局域网
时隙ALOHA 假设 所有帧大小相同 时间被划分为相同大小的时隙,一个时隙等于传送一帧的时间 节点只能在一个时隙的开始才能传送 节点需要同步 如果一个时隙有多个节点同时传送,所有节点都能检测到冲突 实现 当节点要发送新帧,它等到下一时隙开始时传送 没有冲突,节点可以在下一时隙发送新帧 如果有冲突,节点在随后的时隙以概率p重传该帧,直到成功为止。 链路层和局域网
时隙ALOHA 优点 单个活跃节点可以持续以满速率传送帧 具有高分散性: 只需节点的时隙同步 简单 缺点 冲突,浪费时隙 空闲时隙 节点只有在传输数据包时才能检测到冲突 链路层和局域网
时隙Aloha效率 为了得到N个活跃节点的最大效率,必须找出使表达式Np(1-p)N-1 取最大值的p* 效率 :当有很多节点,每个节点有很多帧要发送时,成功时隙所占的百分比 为了得到N个活跃节点的最大效率,必须找出使表达式Np(1-p)N-1 取最大值的p* 为了得到大量活跃节点的最大效率, 我们求N趋近无穷时Np*(1-p*)N-1 极限值,计算可知最大效率为1/e =0 .37 假设有N个节点,每个节点在时隙以概率p发送 一个节点在一个时隙成功传送的概率 = p(1-p)N-1 任一节点传送成功的概率 = Np(1-p)N-1 最佳: 信道有 37%的有效传输 链路层和局域网
CSMA (Carrier Sense Multiple Access) 载波侦听多路访问 如果信道闲:传送整个帧 如果信道忙:延迟传送 类比人类行为:不打断他人! 链路层和局域网
CSMA冲突 冲突还是可能发生: 冲突: 注意: 整个数据包的传送时间被浪费 距离和传播延时决定冲突概率 spatial layout of nodes 冲突还是可能发生: 传播延迟可能导致两个节点没侦听到其它节点的传送 冲突: 整个数据包的传送时间被浪费 注意: 距离和传播延时决定冲突概率 链路层和局域网
CSMA/CD (冲突检测) CSMA/CD: 冲突检测: 人类行为:有礼貌的会谈 在一个短时间内检测冲突 放弃冲突传送,减少带宽浪费 在有线LANs中容易:测量信号强度,比较传送和接收信号 在无线LANs中困难: 传输中接收者可能关闭 人类行为:有礼貌的会谈 链路层和局域网
CSMA/CD协议 基本思想: 当一个节点要发送数据时,首先监听信道,看是否有载波。 如果信道空闲,则发送数据。 如果在发送过程中检测到碰撞,则停止自己的正常发送,转而发送一短暂的干扰信号jam,强化冲突,使其它站点都能知道出现了冲突。 发送了干扰信号后,退避一随机时间,重新尝试发送。 链路层和局域网
CSMA/CD协议讨论 监听 我有数据要发送 链路层和局域网
CSMA/CD协议讨论 监听 我有数据要发送 网上有载波,等待 链路层和局域网
CSMA/CD协议讨论 冲突了! 监听 发生冲突,立即回退 我有数据要发送 我也有数据要发送 链路层和局域网
“轮转”MAC协议 分割信道MAC协议 在高负载的情况下,信道共享公平高效 低负载效率低:延迟访问,如果只有一个活跃节点只分配了 1/N的带宽 随机访问MAC协议 低负载效率高:单个节点可以获得整个信道 高负载:冲突开销大 “轮转”协议 两者的折中! 链路层和局域网
“轮转” MAC协议 令牌传递: 轮询: 控制令牌从一个节点顺序传到下一个节点 主节点轮流 “邀请”从属节点传送数据 令牌消息 关注: 令牌开销 延时 令牌失效 轮询: 主节点轮流 “邀请”从属节点传送数据 关注: 轮询开销 延迟 主节点失效,整个网络失效 链路层和局域网
MAC协议总结 共享介质 信道分割:时间,频率,代码 随机分割 (动态) 轮转 时分,码分,频分 ALOHA, S-ALOHA, CSMA, CSMA/CD 载波侦听:有线网络容易实现,无线网络困难 CSMA/CD用于以太网,CSMA/CA用于无线网络 轮转 中心节点轮询,令牌传递 链路层和局域网
5.3.3 局域网 多址访问协议广泛应用于局域网 基于随机访问的CSMA/CD广泛应用于局域网 基于令牌传递技术的令牌环和FDDI在局域网技术中变得次要 链路层技术的发展,局域网、城域网、广域网的概念变得越来越模糊和不重要 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
局域网地址和 ARP 32位IP地址 MAC(或LAN 或物理或Ethernet) 地址: 网络层地址 用于把分组送到目的IP网络 (回忆IP网络定义) MAC(或LAN 或物理或Ethernet) 地址: 用于把数据帧从一个接口传送到另一个接口 (同一网络中) 48位MAC地址(大多数LANs) 固化在适配器的ROM 链路层和局域网
局域网地址 在局域网中的每一个适配器都有一个唯一的LAN地址 广播地址 = FF-FF-FF-FF-FF-FF LAN (wired or 1A-2F-BB-76-09-AD 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 71-65-F7-2B-08-53 LAN (wired or wireless) 广播地址 = FF-FF-FF-FF-FF-FF = 适配器(网卡) 链路层和局域网
局域网地址 MAC地址由IEEE统一分配 厂商购买一块MAC地址空间 (要保证唯一性) 比较: (a) MAC地址: 好像身份证号码 (b) IP地址: 好像邮政地址 MAC平面地址 => 可移动 能从一个LAN移动到另一个LAN IP层次地址 依赖节点所依附的IP网络 应用层的主机名,网络层IP地址,链路层MAC地址。 有利于保持各层独立的原则。 链路层和局域网
回忆前面的路由讨论 A把IP分组发送给 B: A 查找B的网络地址,发现B和A在同一网络中 链路层发送分组给B,该分组包含在链路层帧中 B 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E frame source, dest address datagram source, dest address B’s MAC addr A’s MAC addr A’s IP addr B’s IP addr IP payload datagram frame 链路层和局域网
ARP: 地址解析协议 每个在局域网上的IP节点 (Host, Router)都有ARP 表 问题:知道B的IP地址怎么 知道它的MAC地址 每个在局域网上的IP节点 (Host, Router)都有ARP 表 ARP表: 局域网上一些节点的IP/MAC地址映射 < IP address; MAC address; TTL> TTL (Time To Live): 映射地址的失效时间 (典型为20分钟) 237.196.7.78 1A-2F-BB-76-09-AD 237.196.7.23 237.196.7.14 LAN 71-65-F7-2B-08-53 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 237.196.7.88 链路层和局域网
ARP协议 ARP是即插即用的: A想发送分组给 B,A知道 B的IP地址 假设B的MAC地址不在A的ARP表中 A广播包含B的IP地址的ARP查询包 目的MAC地址= FF-FF-FF-FF-FF-FF 在局域网上的所有机器都能收到ARP查询 B收到 ARP包,回给A一个带有B的MAC地址的包 帧发送给A的MAC地址 (单播unicast) A缓存IP-to-MAC地址对在 ARP表中,直到信息过期 (timeout) 软件规定: 如果ARP表的信息在一定时间内没有刷新,则信息将过期。 ARP是即插即用的: 无需网络管理员干预,节点就能创建ARP表 链路层和局域网
路由到其他局域网 A R 在主机的路由表中发现路由器的IP:111.111.111.110 A通过R向B发送分组 假设A知道B的IP地址 在路由器R中有两个ARP表,每个针对一个IP网络 (LAN) 在主机的路由表中发现路由器的IP:111.111.111.110 在主机的ARP表中发现MAC地址:E6-E9-00-17-BB-4B等等 A R B 链路层和局域网
A创建一个分组,源地址为A,目的地址为B A使用ARP得到R的111.111.111.110的MAC地址 A创建一个链路层帧,该帧以R的MAC地址为目的地址,并包含 A-to-B的IP数据包 A的适配器发送帧 R的适配器收到帧 R从Ethernet帧中提取IP数据包,得知目的地址为B R使用 ARP得到B的MAC地址 R创建一个包含A-to-B的IP数据包的帧发送给B A R B 链路层和局域网
5.4.3 DHCP: 动态主机配置协议 目标: 允许主机在加入网络时从网络服务器动态得到IP地址 DHCP 概述: 能够在使用时续借地址租用 允许重用地址 (只是连接时拥有地址) 支持准备加入网络的移动用户 (更简单) DHCP 概述: 主机广播 “DHCP discover” 消息 DHCP 服务器用 “DHCP offer” 消息响应 主机请求IP地址: “DHCP request” 消息 DHCP 服务器发送地址: “DHCP ack” 消息 链路层和局域网
DHCP 客户服务器协议 A B E A B E DHCP 服务器 刚到达的 DHCP 客户机需要这个 网络的地址 DHCP 服务器 223.1.2.5 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E DHCP 服务器 刚到达的 DHCP 客户机需要这个 网络的地址 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E DHCP 服务器 刚到达的 DHCP 客户机需要这个 网络的地址 链路层和局域网
DHCP客户服务器协议 来到的客户 DHCP 服务器: 223.1.2.5 链路层和局域网 DHCP discover src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs DHCP request src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs time DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
Ethernet 主流的 LAN技术 价格便宜! 例如40元/100M网卡 第一个广泛使用的LAN技术 比令牌和ATM简单、便宜 其速度可达到: 10, 100, 1000 Mbps,10Gbps Metcalfe的以太网草图 链路层和局域网
星型拓扑 90年代中期流行总线拓扑结构 现在星型拓扑结构盛行 连接设备使用: 集线器hub或交换机switch (后面介绍) hub or 链路层和局域网
Ethernet帧结构 把IP分组(或其它网络层协议包)封装在 Ethernet帧中 Preamble: 前同步码,8个字节 前7个字节为 10101010,最后一个为 10101011 用于发送方和接收方的时钟同步 链路层和局域网
Ethernet帧结构(续) Addresses: MAC地址,6个字节 Type: 类型,2个字节, 如果适配器收到的帧的目的地址与之匹配或者是一个广播地址(ARP包),就把帧传给网络层 否则,抛弃该帧 Type: 类型,2个字节, 指明可以支持的高层协议,主要是IP协议,也可以是其他协议如:Novell IPX和 AppleTalk CRC:循环冗余校验(帧校验序列),4个字节。 接收方检测,如果有错,丢弃该帧 链路层和局域网
不可靠的无连接服务 无连接:发送和接收适配器间不“握手” 不可靠: 接收适配器不向发送适配器发送确认帧 传递到网络层的数据报流可能有间隙 如果应用使用TCP协议,间隙会被填好 否则,应用能看见间隙 链路层和局域网
Ethernet使用 CSMA/CD 非时隙 适配器检测到有其它适配器发送的时候,就不会发送帧,即它采用了载波侦听机制 在发送过程中,适配器检测到有其他适配器发送,它将中止发送,即它采用了冲突检测机制 在试图重传之前,适配器会等待一个随机时间,即随机访问 链路层和局域网
Ethernet的CSMA/CD算法 1. 适配器从网络层得到分组, 创建帧 2. 如果适配器侦听到信道空闲,开始传送帧。如果信道忙, 它会等到信道空闲才传送帧 3. 如果适配器传送整个帧都没有检测到其他传输, 就完成该帧的传送 4.如果适配器在发送中检测到其它传送,就放弃传送,并发送一个拥塞信号 5. 放弃传送后,适配器进入指数回退阶段,即该帧经过n次冲突后,适配器在{0,1,2,…,2m-1}中随机选取一个K值 ,其中m=min(n,10),然后等待K*512比特时间后,回到第2步 链路层和局域网
Ethernet的CSMA/CD算法(续) 拥塞信号:48比特,确保所有传送者知道冲突发生 比特时间: 对于10 Mbps Ethernet 为0.1微秒, 当K=1023,等待时间大约50毫秒 指数回退: 目标:适配器依据当前负载情况重传 重负载:等待时间变长 第一次冲突: 在{0,1}中选k值;延迟Kx512比特时间传送 第二次冲突:在{0,1,2,3}中选k值… 10次以后,在 {0,1,2,3,4,…,1023}中选k值。 链路层和局域网
CSMA/CD 效率 tprop = 在LAN中任两个节点间传播所用最大时间 ttrans = 发送最大帧所用时间 链路层和局域网
Ethernet技术:10BaseT 和 100BaseT 10/100 Mbps速率;后者被称为 “快速ethernet” T 表示双绞线 各节点都连接到集线器上 “星型拓扑结构”;在节点和适配器间最大距离为100米 twisted pair hub 链路层和局域网
Ethernet技术: 集线器Hub 集线器本质上是物理层的中继器: 收到的位发送给所有其它连接节点 多个端口使用相同的传输速率 没有帧缓存 没有CSMA/CD:适配器检测冲突 提供了网络管理特性 twisted pair hub 链路层和局域网
Manchester编码 用于10BaseT, 10Base2 每个位都有一个跳变 发送方和接收方可以彼此进行时钟同步 这是一个物理层技术! 不需要一个中央或全局时钟节点 这是一个物理层技术! 链路层和局域网
Gbit Ethernet 使用标准的Ethernet帧格式 允许点到点链路和共享广播信道 共享模式使用CSMA/CD技术;必须限制节点间的最大距离,以确保效率 使用的集线器,被称为“有缓冲器的分配装置” 点到点的信道是全双工的1 Gbps速率 现在已经有10 Gbps! 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
互连局域网网段 集线器(物理层) 交换机(链路层) 链路层和局域网
集线器(Hub) 连接局域网内各网段的设备 扩展各节点间的最大距离 但是把各网段的冲突域汇集成一个大的冲突域 如果一个在CS域的节点和一个在EE域的节点同时通信:冲突 不能使 10BaseT和100BaseT网段互联 链路层和局域网
Ethernet交换机 本质上是多口网桥 2层 (帧)转发, 使用LAN地址过滤 交换:A-to-A’和 B-to-B’同时工作,不冲突 大量接口 经常:单个主机,星型结构连到交换机 Ethernet, 但不冲突! 链路层和局域网
Ethernet交换机(Switch) 链路层设备 存储和转发以太网帧 检查帧头,并根据目的MAC地址有选择的转发帧 当MAC帧被转发到某一共享网段时,需要使用CSMA/CD访问该网段 透明性 主机不关心交换机的存在 即插即用,自学习 交换机不需要被配置 链路层和局域网
交换机转发 交换机怎么确定将接收到的MAC帧转发到哪一个网段呢? 这听起来象是一个路由问题... switch 1 3 2 hub 链路层和局域网
自学习 交换机有一个交换表 交换表的表项: (MAC地址, 接口, 时间) 交换表中过期的表项将被删除 (TTL 可以是60分钟) 交换机学习哪一个主机可以通过哪一个接口到达交换机 当接收一数据帧时,交换机“学习”发送者的位置:进入交换机的LAN网段 在交换表中记录发送者/位置对应关系 链路层和局域网
过滤/转发 当交换机接收一数据帧时: 根据接收帧的目的MAC地址检索交换表 if 目的MAC地址的表项被发现 then{ if 如果目的地址在接收帧的网段中 then 丢弃该帧 else 转发该帧到指定的接口 } else 广播 向所有(除接收帧所在的接口外)其它接口转发 链路层和局域网
交换机举例 假设C发送数据帧到D 交换机接收来自C的数据帧 数据帧被D接收 注意在交换表中C在交换机的接口1上 address interface switch 1 A B E G 1 2 3 2 3 hub hub A hub I D F B G C H E 交换机接收来自C的数据帧 注意在交换表中C在交换机的接口1上 因为D不在交换表中,交换机将转发数据帧到接口2和3 数据帧被D接收 链路层和局域网
交换机举例 假设D回复数据帧给C. 交换机接收来自D的数据帧 数据帧被C接收 注意在交换表中D在交换机的接口2上 address interface switch A B E G C 1 2 3 hub hub hub A I D F B G C H E 交换机接收来自D的数据帧 注意在交换表中D在交换机的接口2上 因为C在交换表中,所以交换机只向接口1转发数据帧 数据帧被C接收 链路层和局域网
交换机: 冲突隔离 交换机将一个子网划分成若干个LAN网段 交换机过滤数据包: 同一LAN网段的数据帧传输不被转发到其它LAN网段 hub switch collision domain collision domain collision domain 链路层和局域网
交换机: 专用接入 交换机具有大量接口 主机可以直接连接到交换机 没有冲突; 全双工模式运行 交换: A-到-A’ 和 B-到-B’ 同时交换, 没有冲突 A C’ B switch C B’ A’ 链路层和局域网
交换机 直通交换:帧从输入转发到输出端口,不必等待整个帧的装配 轻微减少延时 可混合各种共享/专用, 10/100/1000 Mbps 接口 链路层和局域网
机构网络举例 IP subnet mail server to external network web server router switch IP subnet hub hub hub 链路层和局域网
交换机 vs. 路由器 都是存储转发设备 路由器包含路由表,实现路由算法 交换机包含交换表,实现过滤,自学习 路由器:网络层设备 交换机:数据链路层设备 路由器包含路由表,实现路由算法 交换机包含交换表,实现过滤,自学习 switch 链路层和局域网
综合比较 流量隔离 即插即用 优化路由 直通交换 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS 链路层和局域网
点到点数据链路控制 一个发送者,一个接收者,一条链路: 较广播链路简单 没有媒体访问控制 不需MAC寻址 例如:拨号链路, ISDN 流行的点到点DLC(数据链路控制)协议: PPP (point-to-point protocol) HDLC: High level data link control 链路层和局域网
PPP设计需求 [RFC 1557] 分组成帧: 把网络层分组封装到数据链路层帧中 位透明性: 在数据域中可以装载任何位模式 可以同时承载任何网络层协议数据单元 可以向上多路分解 位透明性: 在数据域中可以装载任何位模式 错误检测 (不纠错) 连接的存活: 检测链路层故障,可将链路故障通知网络层 网络层地址协商: 通信双方能学习/配置各自网络地址 链路层和局域网
错误恢复,流量控制,数据排序都交给上层管理! PPP不需的功能 无错误纠正/恢复 无流量控制 无顺序提交 不支持多点链路 错误恢复,流量控制,数据排序都交给上层管理! 链路层和局域网
PPP 数据帧 标志: 定界符 (成帧) 地址: 不起作用(只是一个选项) 控制:不起作用,未来可能有用 协议: 帧提交的上层协议 (例如: PPP-LCP, IPCP-8021, IP-21,AppleTalk -29,DECnet-27等) 链路层和局域网
PPP 数据帧 信息: 被装载的上层数据 校验: CRC用于错误检测 链路层和局域网
字节填充 “数据透明性”需要: 数据域可以包含标志模式 <01111110> 问题: 如何知道<01111110>是数据还是标志? 发送方: 在每个< 01111110>数据之前增加一个 填充字节< 01111101> 在每个< 01111101>数据之前也增加一个 填充字节< 01111101> 接受方: 遇到< 01111101> 就去掉,接收后面的数据 单个01111110: 标志字节 链路层和局域网
字节填充 发送的数据中 含有标志字段 的相同数据 进行字节填充 链路层和局域网
PPP 数据控制协议 在交换网络层数据之前,数据链路对等端必须 配置PPP链路 (最大帧长,认证) LCP链路控制协议 学习/配置网络层信息 IPCP网络控制协议 对于IP: IPCP信息被携带在一个PPP帧中 (协议字段: 8021) 用来配制/学习IP地址 链路层和局域网
链路层 5.1 概述和服务 5.2差错检测和纠错技术 5.3多址访问协议 5.4链路层编址 5.5以太网 5.6集线器和交换机 5.7 PPP:点到点协议 5.8链路虚拟化: ATM 和 MPLS(自学) 链路层和局域网
网络虚拟化 资源的虚拟化: 系统工程中的一个强有力的抽象: 计算实例: 虚拟内存, 虚拟设备 虚拟机: 例如, java 1960’s/70’s 的IBM VM os 抽象的层次: 不关心更低层细节,只抽象的处理更低层 链路层和局域网
Internet: 虚拟化网络 1974: 多个独立的网络 不同网络的区别: ARPAnet 电缆传输数据网络 卫星分组网络 (Aloha) 无线分组网络 不同网络的区别: 地址规范 分组格式 错误恢复 路由 ARPAnet satellite net "A Protocol for Packet Network Intercommunication", V. Cerf, R. Kahn, IEEE Transactions on Communications, May, 1974, pp. 637-648. 链路层和局域网
Internet: 虚拟化网络 网关: “嵌入互联网分组到本地包格式中或者扩展格式中 路由 (在互联网层) 到下一个网关 gateway 互联网层 (IP): 地址: 为低层异构的局域网提供统一的编址方式 实现网络到网络的连接 网关: “嵌入互联网分组到本地包格式中或者扩展格式中 路由 (在互联网层) 到下一个网关 gateway ARPAnet satellite net 链路层和局域网
Cerf & Kahn的互联网结构 什么是虚拟化? 两个地址层次: 互联网和本地网 新的层次 (IP) 使所有的网络在互联网层同构 低层的本地网络技术 电缆 卫星 56K 电话调制解调器 今天的: ATM, MPLS …上述技术在互联网层是 “不可见的”. 对于IP来说就象是一个链路层技术! 链路层和局域网
ATM 和 MPLS ATM, MPLS用它们自己的方式划分网络 从 Internet的观点来看,它们作为连接IP路由器的逻辑链路 就象拨号链路(电话网络)一样,它们也是不同网络的组成部分 ATM和MPSL的技术研究集中在它们自己的技术领域 链路层和局域网
异步传输模式: ATM 90年代的高速(155Mbps到622 Mbps或更高)标准,服务于 宽带综合业务数字网络BISDN 体系结构 目标: 综合的、端到端的传输声音、视频、数据 满足声音、视频的实时/QoS需求 (与Internet best-effort模型相对) “下一代”技术: 该技术基于电话系统 分组交换 (包大小固定, 被称为 “cells”),采用虚电路 链路层和局域网
ATM 体系结构 适配层: 在ATM网络的边缘 数据分割和重组 类似Internet的传输层 ATM 层: “网络”层 Cell交换, 路由 物理层 链路层和局域网
ATM: 网络层或链路层? 表面上: 端到端传输:ATM从桌面到桌面 ATM 是网络层技术 事实上: 用于IP主干网络的路由器 “IP over ATM” ATM 作为交换链路层,连接IP路由器 IP 网络 ATM 网络 链路层和局域网
ATM 适配层 (AAL) ATM 适配层 (AAL): “适配” 上层 (IP或ATM应用)到 下面的ATM层 类似: TCP被分割到多个 IP包里 链路层和局域网
ATM 适配层 (AAL)[续] 不同的ATM服务有不同版本的AAL层: AAL1: 恒定比特率 (CBR)服务和电路模拟 AAL2: 可变比特率 (VBR)服务,例如: MPEG视频 AAL5: 数据传输,例如:IP数据报 User data 汇聚子层 AAL PDU 拆装子层 ATM cell 链路层和局域网
ATM 层 服务: 通过ATM网络传输信元 和IP网络层相比较,提供完全不同的服务 Guarantees ? Network Architecture Internet ATM Service Model best effort CBR VBR ABR UBR Congestion feedback no (inferred via loss) no congestion yes Bandwidth none constant rate guaranteed minimum Loss no yes Order no yes Timing no yes 链路层和局域网
ATM 层: 虚电路 虚电路传输: 信元从源到目的在虚电路上传输 永久VCs (PVCs) 长期存在的连接 典型: IP路由器之间的永久路由 发送数据传输前需要建立一条虚电路 每个包需要包含一个虚电路标识(不是目的标识) 源到目的路径上的每一次交换,都要维护传递连接的状态 为了得到类似电路的性能,链路、交换资源(带宽和缓冲)可能被分配给虚电路 永久VCs (PVCs) 长期存在的连接 典型: IP路由器之间的永久路由 交换VCs (SVC): 为每个请求动态设置的 链路层和局域网
ATM VCs ATM VC的优点: 能提供QoS性能保证 (带宽,时延,时延抖动) ATM VC缺点: 支持数据报效率低下 在源和目的之间建立的PVC的数量不成比例 (N个入口和N个出口需要N*N条连接) SVC引入请求建立虚电路的延时,对于短连接开销大 链路层和局域网
ATM 层: ATM信元 5字节ATM信元头部 48字节负载 Why?: 小负载->缩短数字音频短创建信元时的延迟 在 32 和 64 间的折中 Cell header Cell format 链路层和局域网
ATM 信元头部 VCI: 虚通道标识 从一个链路到另一个链路VCI会发生变化 PT: 负载类型 CLP: 信元丢失优先级比特 HEC: 首部差错控制字节 循环冗余效验 链路层和局域网
ATM 物理层 2个子层: 传输汇聚子层 (TCS): 使ATM层能适配下面的PMD子层 物理介质相关子层(PMD): 依赖所用的物理介质 信元流和比特流的转换 包括速率适配、信元定界与同步、传输帧的产生与恢复 对于无结构的PMD子层,当没有信元被发送时,TCS要传输空闲信元 链路层和局域网
ATM 物理层 物理介质相关子层 (PMD) SONET/SDH: 传输帧结构 比特同步; 带宽分割 (TDM); 几种速度: OC3 = 155.52 Mbps; OC12 = 622.08 Mbps; OC48 = 2.45 Gbps, OC192 = 9.6 Gbps TI/T3: 传输帧结构 (老的电话层): 1.5 Mbps/ 45 Mbps 无帧结构: 只有信元传输 (忙/空闲) 链路层和局域网
IP-Over-ATM IP over ATM 用ATM网络代替 “网络” (例如LAN网段) 传统IP 3 “网络” (例如:LAN网段) MAC (802.3) 和 IP地址 ATM network Ethernet LANs Ethernet LANs 链路层和局域网
IP-Over-ATM AAL ATM phy Eth IP app transport 链路层和局域网
在IP-over-ATM网络中数据报的旅程 在源主机: 把IP映射成 ATM目的地址 (使用ARP) 把数据报传给AAL5 AAL5封装数据,分割成信元传给 ATM层 ATM 网络: 把信元通过虚电路传递到目的端 在目的主机: AAL5重装信元成原始数据报 如果CRC OK, 数据报传给 IP 链路层和局域网
IP-Over-ATM 结论: IP数据包被放入 ATM AAL5 PDUs 从IP地址 ATM地址 如同IP地址到 802.3 MAC地址! ATM network Ethernet LANs 链路层和局域网
多协议标签交换 (MPLS) 最初目标: 为了提高IP数据报转发的速度,通过使用固定长度的标签来代替IP地址进行数据报转发 借用了虚电路的方法 但是IP数据报仍然保持IP地址! PPP或Ethernet 首部 MPLS 首部 IP 首部 链路层帧的余下部分 标签 实验 S TTL 20 3 1 5 链路层和局域网
MPLS使能的路由器 又称为标签交换路由器 标签交换只通过转发表将数据报转发到输出接口(不检查IP地址) 转发过程中需要配置信令协议 RSVP扩展协议:RSVP-TE 标签交换的路径可能是IP不允许的路径 (例如, 源路由转发) !! 可以使用MPLS 实现流量工程 必须能够与IP路由器共存 链路层和局域网
MPLS 转发表 10 A 0 12 D 0 10 6 A 1 8 A 1 12 9 D 0 R6 D R4 R3 R5 A R2 R1 入 出 出 标签 标签 目的地 接口 10 A 0 入 出 出 标签 标签 目的地 接口 12 D 0 8 A 1 10 6 A 1 12 9 D 0 R6 D 1 1 R4 R3 R5 A R2 入 出 出 标签 标签 目的地 接口 R1 入 出 出 标签 标签 目的地 接口 6 - A 0 8 6 A 0 链路层和局域网
第五章: 总结 数据链路层服务: 链路层技术的实例和实现: 差错检测,纠错 共享广播信道: 多址访问 链路层寻址, ARP Ethernet 交换式LAN PPP 链路虚拟化网络:ATM和MPLS 链路层和局域网
第五章: 复习大纲 链路层提供的服务 链路类型:点对点和共享 共享介质使用多址访问技术 链路层编址 DHCP协议的功能 成帧 链路访问 差错检测 链路类型:点对点和共享 共享介质使用多址访问技术 信道划分 随机访问 轮转 链路层编址 MAC地址是一种全局性的平面地址 ARP协议的功能 DHCP协议的功能 链路层和局域网
第五章: 复习大纲 以太网技术 点到点数据链路控制PPP 以太网技术定义链路层和物理层的实现方式 帧格式 以太网提供无连接、不可靠的服务 共享式以太网采用CSMA/CD介质访问控制技术的基本原理 物理层采用曼彻斯特编码 连接设备使用集线器和交换机 集线器和交换机各自的特点 点到点数据链路控制PPP 点到点的特点(没有媒体访问控制、不需MAC寻址) PPP字节填充 配置PPP链路LCP 学习/配置网络层信息IPCP 链路层和局域网