590 likes | 758 Views
本讲目标 : 了解数据链路层服务原理 : 错误检测 , 校正 共享广播信道 链路层编址 各类链路层技术的实现和实例 教科书参考 第5章. 概述 : 链路层的服务 错误检测 , 校正 多点访问技术和 LAN 链路层寻址 , ARP 特定的链路层技术 : 以太网 集线器 , 网桥 , 交换机 IEEE 802.11 LANs PPP ATM. 第 5 讲 : 数据链路层级网络建设. 链路层 : 工作环境. M. H. H. H. H. H. H. H. H. H. t. n. l. t. t. n.
E N D
本讲目标: 了解数据链路层服务原理: 错误检测, 校正 共享广播信道 链路层编址 各类链路层技术的实现和实例 教科书参考 第5章 概述: 链路层的服务 错误检测, 校正 多点访问技术和LAN 链路层寻址, ARP 特定的链路层技术: 以太网 集线器, 网桥, 交换机 IEEE 802.11 LANs PPP ATM 第5讲: 数据链路层级网络建设
M H H H H H H H H H t n l t t n l t n M M application transport network link physical M 链路层: 工作环境 • 两个 物理上连接的 设备: • 主机-路由器, 路由器-路由器, 主机-主机 • 协议数据单元: frame(帧) network link physical 数据链路协议 M frame 物理链路 接口卡
链路层的服务 • 成帧, 链路访问: • 将分组封装入帧, 加上帧头, 帧尾 • 如果是共享介质,则需实现信道的访问, • ‘物理地址’ 放在帧首用来确定信源、信宿 • 物理地址≠IP地址 • 在两台物理上连接的设备之间实现可靠传递: • 不太用在误码率低的场合 (光纤, 某些双绞线) • 无线链路: 误码率相当高 • Q: 为什么在链路层和端到端之间都要做可靠性的校验?
链路层的服务 (续) • 流量控制: • 保持收发双方的同步 • 错误检测: • 信号衰减和噪声会导致出错. • 接收端检测到错误时: • 给发送端信号要求重发或丢弃出错帧 • 错误校正: • 接受端检测多个位错并加以校正 而无需要求发送端重发
M H H H H H H H H H t n l t t n l t n M M application transport network link physical M 链路层: 实现 • 通过 “adapter(网卡或适配器)” 实现 • e.g., PCMCIA 卡, 以太网卡 • 一般适配器都含有: RAM, DSP 芯片, 主机的总线接口, 和链路接口 network link physical data link protocol M frame phys. link adapter card
错误检测 • EDC= 错误检测校正(Error Detection and Correction )位 • D = 由检验位保护的数据, 可包括首部字段 错误检测不可能达到 100% 可靠! • 协议算法可能会忽略了某些错误, 但比例极小 • 较大的 EDC 字段可以产生较好的检错和纠错效果
奇偶校验 两维单比特校验: 检测和校正单比特错误 单比特校验: 检测一位错误 0 0
发送端: 把数据段的内容看成一系列16-bit的整数 校验和: 对内容进行累加 (1’s complement sum) 发送端将校验和放入UDP 的checksum 字段 接收端: 对接收到的数据段进行校验和计算 检查计算所得的校验和与接收到值的是否相等 : NO –出错了 YES –没查出错误. 但有可能存在错误?…. 因特网校验和 目的:检测 数据段在传输过程中出现的错误 (注意: 仅用在传输层)
链路类型 有三种类型的 “链路”: • 点对点 ( e.g. PPP, SLIP) • 广播式(共享线路或介质; e.g, 以太网, 无线网, etc.) • 交换式 (e.g., 交换式以太网, ATM etc)
多点访问协议 • 一条共享的通信信道 • 两个或多个结点可同时发送信号: 相互干扰 • 在某一时刻只有一个结点可以成功地发送信号 • 多点访问协议: • 分布式的算法来决定如何共享信道, i.e., 决定工作站何时可以发送 • 注意:有关共享通道的通信(协商)也必须在该通道自身上解决!
多点访问协议 • 我们希望多点访问协议能够解决什么问题: • 同步还是异步 • 了解其他站点的信息 • 健壮性 (e.g.如何对待信道错误) • 性能
局域网与802协议组 • LLC 与 MAC
MAC 协议: 分类 目标:高效, 公平, 简单, 分散控制 • 通道分割 • 将信道分割成较小的 “片”(时隙, 频率) • 将小片分给各站点使用 • 随机访问 • 允许冲突 • 从冲突中“恢复” • “排队” • 严格协调访问来避免冲突
信道分割的 MAC 协议: TDMA TDMA: time division multiple access(时分多路) • “依次”访问信道 • 每次每个站点分得固定长度的时隙 (时长 = 分组的单位传输时间) • 未用的时隙被闲置和浪费 • 例如: 6个站点的LAN, 1,3,4 有分组发送, 而 2,5,6的时隙则被闲置
time frequency bands 信道分割的 MAC 协议: FDMA FDMA: (频分复用) • 信道按频谱分成频段,每个站点分得固定的频段 • 在频段不用时该部分信道被闲置和浪费 • 例如: 6各站点的 LAN, 1,3,4 发送分组, 而 2,5,6 的频段被闲置
随机访问协议 • 当结点有数据要发送时: • 使用信道全部的传输速率 R. • 在诸多结点中不存在“预先”协商的机制 • 可能发生两个以上结点同时传输 -> “冲突” • 随机访问的 MAC协议定义了: • 如何检测冲突 • 如何从冲突中恢复 (e.g., 通过延迟重发) • 随机访问 MAC协议的实例: • 时隙ALOHA • ALOHA • CSMA and CSMA/CD
CSMA: Carrier Sense Multiple Access CSMA:(载波检测多路访问)发送前侦听: • 如果信道闲置: 发送整个分组 • 如果信道忙, 推迟发送 • 坚持性 CSMA:当信道闲置时,以p的概率立即重试 (可能导致不稳定) • 非坚持性 CSMA:在某个随机间隔以后再试 • 为人处事的规则之一: 不要打断别人的发言!
CSMA 的冲突 以太网结点间的时空图 冲突可能发生在: 由于传播延迟两个节点可能听不到对方的发送 冲突: 整个分组的传输时间被浪费 注意: 这里的冲突概率是由距离和 传播延迟来决定的
CSMA/CD(Collision Detection,冲突检测) • 在冲突发生后,短时间内可探测到 • 立即中断传输, 减少信道的时间浪费 • 坚持性或非坚持性重传 • 冲突检测: • 在有线 LAN中简便易行: 检测信号强度, 比较收、发的信号 • 在无线 LAN比较困难: 传输时接收器是关闭的 • 人类社会的范例: 彬彬有礼的交谈者
MAC 协议小结 • 对于共享介质可以做些什么? • 信道分割, 按时间,频率或编码 • 时分、码分、频分 • 随机分割 (动态) • ALOHA, S-ALOHA, CSMA, CSMA/CD • 载波检测: 有线“易行”、无线“困难” • CSMA/CD 被用在以太网中
LAN 技术 已经提到的数据链路层的内容有: • 服务, 错误检测/校正, 多点访问 下面: 讨论LAN 技术 • 编址 • 以太网(Ethernet) • 集线器、网桥、交换机 • 802.11无线LAN协议 • PPP(点对点协议)
LAN 地址和 ARP 32位的IP地址: • 网络层 地址 • 用于从目的网络获取分组 (参见 IP 地址定义,p171) LAN (或MAC 或物理) 地址: • 用来(在同一网络中)物理上互相连接的接口之间获取分组(或帧) • 48 位MAC 地址 (绝大部分 LANs) 烧制在适配器的 ROM中
LAN 地址和 ARP 每个 LAN上的网卡都有具唯一性的LAN 地址
LAN 地址 (续) • MAC 分配由 IEEE管理 • 制造商购买部分MAC地址空间 (以保证唯一性) • 比方: (a) MAC地址: 美国人的社会保险号 (b) IP地址: 类似邮政地址 • MAC 平面地址 => 可以迁移 • 可以将 LAN卡从一个LAN换到另一个 • IP 层次性地址不可迁移 • 取决于某个站点接入的网络
223.1.1.1 223.1.2.1 E B A 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.2 223.1.3.27 223.1.1.3 223.1.3.2 223.1.3.1 有关路由选择的讨论 A站点给B站点发送IP分组: • 查找 B站点的网络地址, 发现B站点与其在同一网络中 • 给B站点发送的分组是通过链路层的帧来传送的 分组的源、宿地址 帧的源、宿地址 A’s IP addr B’s IP addr B’s MAC addr A’s MAC addr IP payload 分组 帧
Q:若已知B站点的IP地址,如何确定其MAC地址? ARP: 地址解析协议(Address Resolution Protocol) • 每个LAN 上的IP 结点 (主机, 路由器) 都有ARP 模块,和表 • ARP 表: 是某些LAN 结点的IP/MAC 地址映射 < IP 地址; MAC 地址; TTL> < ………………………….. > • TTL (Time To Live): 超过TTL的地址映射会被删除 (一般为 20 分钟)
ARP 协议 • A 知道 B的 IP 地址, 需要了解B的物理地址 • A 广播ARP 查询帧, 包含了 B的 IP地址 • 所有 LAN 的主机都收到 ARP 查询 • B接收到 ARP帧, 将其物理地址返回给A • A 对收到的IP/MAC地址对进行缓存直到信息过期 (超时) • 软状态: 除非定期刷新,否则超时信息将被删除
LAN之间的路由选择 穿越: 经由R将A的数据传输到B • 在源主机的配置表中发现了路由器111.111.111.110 • 在源主机的ARP 表中, 发现 MAC 地址E6-E9-00-17-BB-4B, etc A R B
A 创建了 IP分组,源地址为 A,宿地址为 B • A 使用 ARP 来获取 R的与111.111.111.110对应的物理地址 • A 创建了以R的物理地址为宿地址的以太网帧,该帧包含的A-to-B的 IP分组 • A的数据链路层发送以太网的帧 • R的数据链路层接收到以太网的帧 • R 从以太网帧中取出 IP分组,知道该分组的信宿为 B • R使用ARP 来取得 B的物理层地址 • R创建了包含了 A-to-B IP 分组的帧并发给 B A R B
以太网(Ethernet) “统治”LAN的技术: • 便宜,¥50 for 100Mbs! • 最早被广泛应用的 LAN 技术 • 较为简单, 比 token LANs 和ATM便宜 • 赶上了速率竞赛的步伐: 10, 100, 1000 Mbps Metcalfe’s Etheret sketch
以太网帧结构 发送适配器将IP分组封装在以太网帧中(或其他网络层协议分组) Preamble(前序): • 7 个 10101010 字节尾随一个 10101011 • 用来同步收发双方的时钟速率
以太网帧结构 (续) • 地址: 6 个字节, 帧为某个LAN上的所有适配器接收,,但只要地址不匹配就被丢弃 • 类型: 说明其上层协议,大部分为 IP,但其他协议如Novell IPX和 AppleTalk也支持 • CRC:在接收端校验,如果出错,则将该帧丢弃
以太网: 应用CSMA/CD A: 检测信道, if闲置 then { 发送并检测信道; If检测到了其他站点传输 then { 中止传输并发送冲突信号; 更新冲突 #; 按指数退避算法延迟发送; goto A } else{帧发送结束;将冲突次数置0} } else {等待正在进行的传输结束并goto A}
以太网的 CSMA/CD (续) 冲突信号(Jam Signal):保证所有其他的收发器能够意识到发生的冲突; 48 bits; 指数退避(Exponential Backoff): • 目的: 使得重发的企图能够与推测出的当前负载相适应 • 在重负荷下: 随机等待的时间将更长些 • 首次冲突: 从{0,1}中选择 K; 延迟的时长为 K x 512 bit 传输时间 • 第二次冲突后:从 {0,1,2,3}选择K… • 在10次或更多的冲突发生后:从 {0,1,2,3,4,…,1023}选择K
以太网技术规范举例: 10Base2 • 10: 10Mb/s; • Base:基带传输 • 2:最大电缆长度在 200米以下 • 在总线拓扑结构中使用细同轴电缆 • 中继器用来连接多个网段(4中继器,5个网段) • 中继器为物理层设备:将其在一个接口上收到的位流复制到所有其他接口上发送!
以太网技术: 10Base2 细缆 • 细同轴电缆,可靠性稍差 • BNC T型接头连接 • 总线型拓扑 • 用于办公室LAN BNC 接头 NIC 每段最大长度 185m 每段最多站点数 30 两站点间最短距离 0.5 m 网络最多5个段 网络最大跨度 925 m
以太网技术: 10BaseT • 双绞线介质(UTP) • 以Hub (集线器)为中心节点。Hub-多端口转发器。 • 拓扑结构为星形,逻辑上仍然是总线形。 • 转发器/中继器的作用:将信号放大并整形后再转发,消除信号传输的失真和衰减。 • 转发器/中继器/HUB——物理层设备(工作在物理层)。 • 用于小型LAN。 HUB NIC 段最大长度 100m
10BaseT/100BaseT自适应网络 • 10/100 Mb/s传输速率; 后者被称为“快速以太网” • T:代表双绞线( Twisted Pair) • 所有结点通过双绞线连接到集线器(Hub),物理上呈现出 “星型拓扑” • CSMA/CD 算法在集线器(Hub)中实现 • 从结点到集线器的最长距离为 100米 • 集线器可以与发生故障的适配器断开而不影响其他 • 100BaseT保持以太网最短帧格式不变,但是一个网段的最大缆长减小到100米 • 需要注意:网卡、网线规格、集线器技术参数的匹配
局域网的扩展:集线器(Hubs) • 物理层设备: 本质上是中继器: 将接收到的位流在所有其他接口上复制发送 • 集线器可以按照层次结构“级联” ,把骨干 (backbone )集线器置顶端(p115)
集线器(续) • 每个被连接的 LAN称为 LAN网段( segment) • 集线器不隔离碰撞域: 任意LAN网段中的结点都可能与其他网段中的结点发生冲突 • 集线器的优点: • 简单,廉价设备 • 多层结构提供了一个性能略微降低较大的互联LAN: 即使一个集线器故障,部分 LAN结点仍可以继续工作 • 扩展了结点间的距离 (每个Hub 100m)
集线器的局限 • 单一的冲突域导致了最大吞吐量不可能增加 • 多层结构的吞吐量实际与单个网段相同 • 对单个 LAN中同样的冲突域的限制也强加到了所有新近加入到这个互联LAN的结点上 • 不能连接不同类型的以太网 (e.g., 10BaseT 和 100baseT)
扩展的局域网:网桥(Bridge) • 链路层设备:使用以太网帧工作, 检查帧的首部的信宿地址后,选择性的进行转发 • 由于网桥可以缓存帧,网桥可以隔离碰撞域 • 当在网段间转发帧时,网桥使用 CSMA/CD方式访问网段并进行传输
扩展的局域网:网桥(续) • 网桥优点: • 隔离冲突域使得网络的最大总吞吐量提高, 对接入的结点数和地理覆盖的范围没有限制 • 由于是存储转发设备,所以可以连接不同的以太网 • 透明: 不需要改变主机的LAN网络接口适配器
网桥: 帧的过滤,转发 • 网桥过滤帧 • 同LAN网段内传输的帧不转发到其他的LAN网段 • 转发: • 如何知道那个LAN网段在哪,如何转发? • 看起来好像是路由选择问题 (只不过距离短一点!)
不使用主干方式的互联 • 不推荐的两个理由: - 在 Computer Science hub故障可能引出的问题 - 所有在EE 和 SE 之间传输的数据必须通过 CS 网段
网桥过滤 • 网桥可以通过 自学 了解某台主机可以从哪个接口到达: 维护过滤表 • 当帧到达时,网桥“得知”发送方的位置:信号进入的 LAN网段 • 在过滤表中记录发送方的位置 • 过滤表的条目: • (结点的 LAN地址, 网桥的接口,时间戳-Time Stamp) • 过滤表中过期的条目会被丢弃 (TTL 可以为 60 分钟)
过滤 • filtering procedure: If信宿LAN地址与接收到的帧处于同一网段 then丢弃该帧; else {查询过滤表 if 发现了信宿的条目 then按条目所指的接口进行转发; else泛洪(flood); /* 在除了接收该帧的接口以外的所有接口上进行转发*/ }