1.06k likes | 1.22k Views
计算机通信网. 第四章 介质访问控制子层. 引言. 上一章内容是两台计算机间连接和通信问题 本章内容是: 在局部区域内多台计算机的联网和通信问题 — 局域网. 全双工. 或. 如何连接?如何通信. 半双工. 可以自己敷设传输导线,自己来连接. 网线连接. 无线连接. 引言 ( 续 1). 连接是一个问题 通信方式又是一个问题 两个站点同时向对方发送数据,对方能收到吗? 两个站点同时向第三方发送数据,第三方能收到吗?. 答案是收不到或收到的数据是错误的. 因此,局域网的通信需要站点间建立一种通信规则,才有可能实现通信. 引言 ( 续 2).
E N D
计算机通信网 第四章 介质访问控制子层
引言 • 上一章内容是两台计算机间连接和通信问题 • 本章内容是: • 在局部区域内多台计算机的联网和通信问题—局域网 全双工 或 如何连接?如何通信 半双工 可以自己敷设传输导线,自己来连接 网线连接 无线连接
引言(续1) • 连接是一个问题 • 通信方式又是一个问题 • 两个站点同时向对方发送数据,对方能收到吗? • 两个站点同时向第三方发送数据,第三方能收到吗? 答案是收不到或收到的数据是错误的 因此,局域网的通信需要站点间建立一种通信规则,才有可能实现通信
引言(续2) • 第三个问题:能否向指定的站点发送数据? • 上一章是点对点通信,不存在这个问题 其它站点是否收到数据不重要,重要的是指定站点要收到数据,并且知道是谁送给自己的 因此,局域网需要在数据中有一种地址机制来标识站点。这就是局域网的协议问题之一
本章知识点 • 1、局域网的连接方式 • 总线形连接、星形连接、环形连接、… • 2、局域网的通信规则及性能分析 • 竞争型通信方式 • 无竞争通信方式 • 有限竞争通信方式 • 3、以太网协议 • 4、其它协议(知识扩展) • WiFi、Token-Ring • 以太网设备 • HUB、网桥、交换机
1、局域网的连接 • 连接方式1:总线形、星形 两者是等效的 (需要半双工的接口) 典型画法
局域网的连接 • 连接方式2:环形 利用全双工收发分开进行连接 不好,若某个站点关机,环就断开了 加入小的单向传输阀 好,某个站点关机,环不会断开 典型画法
局域网的连接 • 其它连接方式的讨论 • 用多条总线,在一条上发送,其余总线上接收 • 或者反过来,在一条上接收,在其余总线上发送 A B C D ? ? ? 总线1 总线2 总线3 总线4
局域网的连接 • 无线信道的情况 • 可以有多个无线信道可用 • 每个站点只有一个发射机和一个接收机 • 讨论两种情况 • 发射机和接收机都在同一个信道上工作—(与总线等效) • 发射机和接收机可工作在不同信道上—(与多总线基本等效)
不同连接下的通信基本问题 • 总线形连接 • 单个站点发送数据 • 一旦一个站点发送数据,其信号立即占满整个总线(光速传播) • 多于一个站点几乎同时发送数据 • 多个信号在总线上叠加,信号产生混乱(冲突现象) B A 信号冲突 A B time t1 t3 t2 t4
不同连接下的通信基本问题 • 环形连接 • 通信情况同总线形完全一致 A 信号冲突 A B time t1 t3 t2 t4 B
2、局域网的通信规则及性能分析 • 性能分析模型 • 竞争型通信规则 • 想说就说型:ALOHA,slot-ALOHA • 先听后说型:CSMA(载波侦听) • 先听后说+边听边说型:CSMA/CD • 无竞争型通信规则 • 有令牌则说话:Token-Ring • 主站点名轮询:Polling • 有限竞争型 • 先听后争,争到再说型:CSMA/CA
2.1 性能分析模型 • 局域网有N个站点,每个站点随时都有数据帧可发。为分析方便,假定: • 所有数据帧长度相同(L bits),信道速率为R(bits/s) • 每个数据帧持续时间为T=L/R • 信道的帧速率为C=1/T = R/L 三个重要分析参数: C:信道帧速率,单位时间内最大成功帧数 g:信道负载,单位时间内所在站点传输总数 s: 有效传输,单位时间内成功传输总数 站点通信模型: --N个站点按某种通信规则发送数据帧。 --数据帧在信道上可能出现重叠(冲突) --只有未被冲突的帧才能成功传输 成功帧数s 总帧数g g 2 … 1 3 1 2 3 … C 单位时间=CT
归一化性能参数 • S = s/C,信道吞吐率 • 成功帧速率占信道帧速率的比例 • =sT/CT, 信道利用率 • 单位时间内成功帧所需的传输时间比例 • 0 < S < 1 • G = g/C:信道负载率 • 数据帧总传输速率与信道帧速率之比 • 0 < G < N • N个站的帧传输在时间上可能(部分)重叠 • 当G>1时,表明信道已达到满负荷 • G最大可达N(站点数),表示每个站点都以信道帧速率发送 成功帧数s 总帧数g g 2 … 1 3 1 2 3 … C 单位时间=CT 归一化: S = s/C G = g/C
例 ifg ifg ifg ifg ifg 64bytes 64bytes 64bytes 64bytes 64bytes 64bytes
信道竞争模型 • 竞争模型 • N个独立工作的站点,随机地发送数据帧 • 一般化模型 • N个站点的数据帧从A点进入信道,出现冲突的帧消失在信道上,无冲突的帧(成功传输)从B点出信道 A B G S 冲突的帧 (消失在信道上) 进入信道 (帧速率G) 成功传输出信道 (吞吐率S)
信道竞争模型 • 简单分析可知 • G的大小,影响到出现冲突的概率 • G很小-冲突概率小-传输成功率高-S也较小 • G很大-冲突概率大-传输成功率低-S也较小 • 存在最佳的G,使得S到达最大 • 竞争规则的目标:S最大化 • 最佳的G是多少,跟通信规则有关 S(吞吐率) G过大 G适中 G小 理想情况 1 G(负载率) 1
信道竞争模型 • 性能分析中使用的帧速率的概率分布: • 在任意的一个时间段T(帧长度)内,生成k个帧的概率服从泊松分布 • 其中G为平均帧速率 典型值: T内生成0帧的概率为 pT(0)=e-G T内生成1帧的概率为 pT(1)=Ge-G 2T内生成0帧的概率为 p2T(0)=e-2G k G*C=10条件下,时间T内出现k个帧的概率分布图
信道竞争模型 • 背景知识:泊松(Poisson)分布 • 无穷多个独立工作站点随机生成(发送)帧的概率分布 • 设有一小的时间间隔dt,若 • 在dt内生成一帧的概率为λdt(λdt<<1),且独立于其它时间间隔 • 当dt足够小时,生成多于1帧的概率可忽略不计 • 在各不重叠的时间间隔,生成的帧数是独立的随机变量 • 概率结构与时间位置无关 • 则可推出在t时间内生成n个帧的概率为 • 且有: • 均值为 • 方差为 λ为帧的平均生成速率 (研究表明: 当站点数超过20个时,其生成帧的概率分布已非常接近泊松分布)
70年代,夏威夷大学为了用无线电将分散在各个岛屿的计算机连接起来,Norman Abramson等人设计了一种巧妙地解决信道分配问题的新算法,称为ALOHA(or pure ALOHA)。 该协议开创了通信介质共享领域的新时代 信道吞吐率S N G 2.2 ALOHA竞争方式 • “想说就说”型竞争信道方式 N个站点,帧到达立即发送 站点帧到达概率服从泊松分布,均值为G/N N个站点帧到达概率也是泊松分布,均值为G 设:成功传输概率P0 则:信道吞吐率S=G*P0 如何计算P0 信道上所有帧传输,在时间上有重叠(冲突)出现 G越大帧越多冲突越严重
2T 3T T a. 在时段3T内只有1帧发送的概率 b. 有一帧发送时3T内有0个帧发送的概率 a. 在时段2T内只有1帧发送的概率 b. 有一帧发送时2T内有0个帧发送的概率 a.在时段T内只有1帧发送的概率 b.有一帧发送的T内有0个帧的概率 ALOHA性能分析 • 信道传输成功概率P0 • 以下几种分析“似乎”都合理 • 那个是正确的? • 研究和仿真证明2T的b是正确的 P0 = p2T(0) = e-2G …………(1) 于是有:S = G*P0 = G*e-2G…………(2)
ALOHA性能OPNET仿真 G 站点数 设定帧长 设定帧产生时间间隔 设定速率 节点模型 OPNET仿真场景 帧统计 发送状态机 S /* Outgoing packet */ Packet *out_pkt; /* A packet has arrived for transmission. Acquire */ /* the packet from the input stream, send the packet */ /* and update the global submitted packet counter. */ out_pkt = op_pk_get (IN_STRM); op_pk_send (out_pkt, OUT_STRM); ++subm_pkts; /* Compare the total number of packets submitted with */ /* the maximum set for this simulation run. If equal */ /* end the simulation run. */ if (subm_pkts == max_packet_count) op_sim_end ("max packet count reached.", "", "", ""); 代码 仿真结果 G
/* Outgoing packet */ Packet *out_pkt; /* A packet has arrived for transmission. Acquire */ /* the packet from the input stream, send the packet */ /* and update the global submitted packet counter. */ out_pkt = op_pk_get (IN_STRM); op_pk_send (out_pkt, OUT_STRM); ++subm_pkts; /* Compare the total number of packets submitted with */ /* the maximum set for this simulation run. If equal */ /* end the simulation run. */ if (subm_pkts == max_packet_count) op_sim_end ("max packet count reached.", "", "", "");
Pure ALOHA 性能曲线 • 性能描述 • Pure ALOHA的最大吞吐率 • Smax=Ge-2G|G=0.5=1/2e=0.184 • 适当大小的总帧数G • G=1/2,即一半的信道帧容量时,S达到最大值 • 帧丢失率 • 丢失帧数/总共传输帧 • 显然,G小时丢失率小,G大则大 • 如何计算? S=Ge-2G 理想吞吐率 吃惊吗?ALOHA的最高性能是18.4%! 相当于:信道是1Mbps的话,最大传输能力只能到达184kbps
2T T T T Slot-Aloha则将信道划分成长度为T的时隙。要求站点必须在时隙开始位置发送。这样,减少了冲突的危险区域(或者完全不冲突,或者完全冲突) Aloha的主要问题站点可以在任何时候发送帧,因此2T范围都是冲突的危险区域 ALOHA的性能改进 • Slot-ALOHA P0 = {当有一帧要发送时,在T内再没有新帧产生} = pT(0) = e-G 于是:S=G*P0 =Ge-G …………(3) 或 S = {每个时隙只产生一帧的概率} = pT(1) = Ge-G
Slot ALOHA性能 • 性能描述 • 最大吞吐率 • Smax=Ge-G|G=1=1/e=0.368,Pure ALOHA的2倍 • 达到最大S时的G • G = 1,达到信道帧容量 • 帧丢失率? Slot-aloha Pure-aloha
T 如果有多个站点在T内产生了新帧,必然在此处开始冲突。 在G比较小时,冲突概率才会小 推迟 站点s 预防多个站点在T内产生新帧,继续后退一个随机长度的时间后,再“听”信道,若信道闲才发送。 在G比较小时,可能是多余的后退 准备发送 开始发送 推迟 站点s 随机 后退 开始发送 准备发送 或者发送(概率p),或者后退(随机时间长度)后再“听信道” 通过调整p来配合G的大小 推迟 站点s 随机 后退 准备发送 开始发送 2.3 CSMA • 对ALOHA或slot ALOHA的性能不够满意 • 假设站点可以“听”到信道上是否有站点在发送 • 准备发送时,若“听到”信道上有站点发送,就推迟发送,直到信道“空闲”为止,从而主动避免了冲突 • Carrier Sense Multi-Access (CSMA)
CSMA • 发送策略 • 1坚持CSMA:等待信道闲后立即发送(p=1) • 0坚持CSMA:等待信道闲后再等待一段随机长度(p=0) • p坚持CSMA:等待信道闲后可能发送(概率p),可能随机后退(概率1-p) • 随机后退情况下,都需要重新侦听信道 随机后退
CSMA载波侦听动画(一) 信道空闲 A侦听信道,立即发送数据 信号到达B处 B侦听信道,抑制发送 t A B
CSMA载波侦听动画连续(一) 信道空闲 A侦听信道,立即发送数据 信号到达B处 B侦听信道,抑制发送 t A B
CSMA载波侦听动画(二) 信道空闲 • CSMA降低了冲突概率 • 因为信号传播延时是很短的--以2/3光速传播 A侦听信道,立即发送数据 B侦听信道,立即发送 信号到达B处,产生冲突 t 信号传播延时 A B
准备发送 否 信道忙 准备发送 准备发送 是 侦听 否 否 信道忙 信道忙 是 是 侦听 侦听 发送 发送 发送 R=rand() 信道闲 信道闲 时间到 时间到 信道闲 是 R<p 后退 后退 完成 完成 完成 CSMA发送流程 p坚持CSMA 0坚持CSMA 1坚持CSMA
CSMA的几个说明 • 随机后退 • 各个站点选择的后退时间是随机、各不相同 • 后退后重新“侦听”信道,若发现“忙”,只有再后退! • 最坏情况:一直都在后退,站点的帧总发送不出去 • 因此,要规定后退次数上限,后退达到上限放弃发送该帧 • 发送概率p,例 • 丢硬币:正面就发送,反面就后退(p=0.5) • 丢骰子:小于5点就发送(p=4/6) • 取随机数(0-100),小于5就发送(p=0.05) τ 选择随机变量x[0~1] 后退时间=x* τ
几种竞争协议的效率 • 轻负载下,1-坚持的性能好,0-坚持差,p-坚持中等 • 重负载下,1-坚持的性能差,0-坚持好,p-坚持中等 • 1-坚持和0-坚持与网络的具体站点数无关,性能相对稳定
G-S图的理解 • G大于1,意味着发送量大于信道容量 • G大于1,对流量出现瞬时过载能力的分析很重要 • 当出现G>1情况时,如果S很快就下降到零,即使以后G又回落到小于1情况,由于堆积在站点上等待发送的帧太多,进入信道的G也降不下来,网络恢复正常通信需要很长时间,或者无法恢复正常 • 因此,过载情况下(G>1)仍能有较高的S,是网络抗过载能力强的体现 • 抗过载能力 • 0坚持CSMA具有最强的抗过载能力 • Slot-aloha与1坚持CSMA在G>4时的抗过载能力相当 G 流量 信道容量 S1 S2 t
CSMA的冲突问题 • 信道有长度,信号有限传播速度(v<C),因此,信号从一端传播到另一端需要一定的时间 • 考虑两个端点上的站点A和B • 当A在t0时刻开始发送数据,信号要在t0+τ才到达B • 因此,B在t0~t0+τ内侦听信道都是“空闲”的。这个时间是发生冲突的危险时间段 • 而且, τ越大,产生更多新帧概率越高,出现冲突概率更大 • 减小τ,意味着减小信道长度 • 因此CSMA不能再长信道上应用 τ = d/v t0+ τ t0 A B 300米信道, τ >300/3*108=1us 3Km信道, τ >10us 100Mbps信道:100us*100*106 = 10000bits 30Km信道, τ >100us
CSMA后退算法 • 连续后退问题 • 若连续多次都发现信道忙,说明信道确实很忙,应该加大后退长度 • 让站点在[1..W]区间内随机选择一个后退值 • W称为后退窗口,后退时间单位= τ • 二进制指数后退算法 • 若节点在第k次准备发送时,仍发现信道忙,则 • W=2k • 站点在[1..W]区间中随机选择一个后退值N • 后退时间T = N* τ • 若k达到规定值(如15),则放弃发送该帧,转而发送下一帧
2.4 CSMA/CD(结合P216、P233) • 载波侦听多路访问/冲突检测 • 改进CSMA性能 • CSMA仍有少量冲突存在,浪费信道资源 • 引入条件:发送时如果能够发现冲突,就立即停止发送 • 有线信道上:发送的信号能量与接收的信号能量相当 • 冲突检测 • 有线信道上,可以检测信号的能量,以发现是否冲突 • 检测到冲突后,立即停止发送,让信道空闲 冲突 减少信道浪费 站B 站A 站C 成功发送
冲突检测方法 • 电平判断 • 冲突信号相互叠加,总电平将超过额定值 • 逻辑判断 • 发送的数据与同时收回来的数据不一致 超高 = + 收 发 冲突 信道
冲突检测时间 • 最坏情况 • 站点A发送数据帧后在td时到达最远端的站点B,而B恰好在此时开始发送。 • 站点B马上可以检测到冲突 • 站点A要再经过τ后,才可能检测到冲突 • 实际上,站点还需要用若干bit的来验证是否冲突 • 故:冲突检测时间≥ 2τ
冲突检测后的处理 • 检测到冲突后立即停止传输,停止传输后,随机延迟一段时间再尝试发送 • 延迟时间以时间片为单位 • 一个时间片=最大冲突检测时间(2 τ) • 随机延时算法--截断二进制指数回退算法 • 最大重试次数15次 • 当k≥10时,W维持210不变 while k < attempt_limit k++; if(k<=10) W +=W; r = random(0, W); end of while
2.5 CSMA/CA 发送时需要关闭接收机,否则泄漏来的信号都会使接收机过载 • 无线局域网 • 所有站点工作在相同的无线信道上 • 无线信道构成一个空中共享总线 • 与有线网不同之处 • 收发不能同时(无法实现CD) • 传输距离有限,新冲突 • B不能检测到A的载波,在C处产生冲突 • B称为A的“隐藏终端” 发送 40mW 接收 40mW*10-7 C A B 隐藏终端问题
CSMA/CA (Collusion Avoidance) • 要求 • A发送时,A周围的站点侦听到载波,不会发送 • A发送数据到C时,C的附近不能有其它站点发送(不使C的接收受到冲突) • CSMA/CA工作方式 • A先向C发送“请求发送”短报文:RTS(持续时间) • C应答“允许发送”短报文:CTS(持续时间) • 产生抑制周围站点发送的效果 • A收到CTS后发送数据帧 C A 解决隐藏终端问题
CSMA/CA • “暴露终端”问题 • 在A向B发送报文的同时,C应该可以向D发送报文 • C不会干扰B的接收,A也不会干扰D的接收 • 但C在A的范围内,A的发送抑制了C的发送 • C暴露在A的范围中而被禁止发送 • 解决暴露终端的方法 • C收不到B的CTS,证明不会干扰B的接收 • 设计节点的发送算法! C A B D 暴露终端问题
CSMA/CA 大规模 • 通信范围外,信道可重复使用,从而增大了信道的利用效率
竞争访问信道 • 竞争访问信道面临的问题 • 有冲突出现 • 尽量减少冲突--降低冲突概率 • 监听载波 • 随机后退 • 尽量减小冲突带来影响--减小冲突窗口 • 分时槽 • 监听载波 • 冲突检测 • 减少用户发送延迟 • 发送延迟:从准备发送到正确发送数据的时间间隔 • 降低冲突概率 • 减小冲突持续时间
4.3.2 无冲突协议 • 预定协议--信道申请 • 自定方式 • 用特定信息指挥发送
无冲突协议— • 令牌环 TCU TCU TCU SD AC ED 令牌 SD AC AC ED 数据帧
无冲突协议 • 轮询方式 从 从 从 主 从
无冲突协议 • 预定协议--信道申请 • 在信道访问前先申请(预定)信道,然后按序访问 • 争用时隙的作用 • 发送站在自己的争用时隙中置位 • 在争用时隙结束后,各发送站按顺序发送 • 基本位图:建立争用时隙与站点的映射 (图4-6)