计算机网络-链路层(2)多路访问控制协议(multiple access control protocol)

单一共享广播信道,如果两个或者两个以上结点同时传输,会互相干扰(interference)

冲突(collision):结点同时接收到两个或者多个信号→接收失败!

MAC协议采用分布式算法决定结点如何共享信道,即决策结点何时可以传输数据。

其必须基于信道本身,通信信道共享协调信息。无带外信道用于协调。

  • 信道划分(channel partitioning)MAC协议

TDMA: time division multiple access

TDM 将时间划分为时间帧(timeframe),并进一步划分每个时间帧为N个时隙(slot)

每个站点在每个时间帧,占用固定长度的时隙(长度=分组传输时间);未用时隙空闲(idle)

如图:6站点LAN,134传输分组,256空闲

FDMA: frequency division multiple access

信道频谱划分为若干频带(frequency bands)

每个站点分配一个固定的频带,不会冲突但信道利用率可能不高;无传输频带空闲

如图:6站点LAN, 134频带传输数据,256频带空闲。

CDMA: code division multiple access

每个用户分配一个唯一的m bit码片序列(chipping sequence),其中“0”用“-1”表示、“1”用“+1”表示。

各用户码片序列相互正交(orthogonal)

各用户使用相同频率载波,利用各自码片序列编码数据,编码信号= (原始数据) × (码片序列)

如发送比特 1(+1),则发送自己的m bit 码片序列

如发送比特 0(-1),则发送该码片序列的m bit 码片序列的反码

接收端收到的是各用户的叠加向量,用发送端的码片序列与收到的编码信号求内积则可解码

  • 随机访问(random access)MAC协议

当结点要发送分组时,利用信道全部数据速率R发送分组,没有事先的结点间协调

两个或多个结点同时传输时会发生冲突,因此需要定义:如何检测冲突、如何从冲突中恢复 (如通过延迟重传)

时隙ALOHA协议

所有帧大小相同

时间被划分为等长的时隙(每个时隙可以传输1个帧),结点间时钟同步

结点只能在时隙开始时刻发送帧,当结点有新的帧时在下一个时隙(slot)发送

如果2个或2个以上结点在同一时隙发送帧,结点即检测到冲突

如果无冲突:该结点可以在下一个时隙继续发送新的帧

如果冲突:该结点在下一个时隙以概率p重传该帧,直至成功

优点:

(1)单个结点活动时,可以连续以信道全部速率传输数据

(2)高度分散化:只需同步时隙

(3)简单

缺点:

(2)冲突时会浪费时隙

(2)存在空闲时隙

(3)结点也许能以远小于分组传输时间检测到冲突,不过检测到冲突也没有意义,因为时隙ALOHA协议只允许在时隙开始时发送数据帧

(4)需要时钟同步

假设: N个结点有很多帧待传输,每个结点在每个时隙均以概率p发送数据

对于给定的一个结点,在一个时隙将帧发送成功的概率= p(1-p)N-1

对于任意结点成功发送帧的概率= Np(1-p)N-1

最大效率: 求得使Np(1-p)N-1最大的p*

对于很多结点,求Np*(1-p*)N-1当N趋近无穷时的极限,可得最大效率=1/e≈0.37

非时隙ALOHA协议

无需时钟同步,更加简单

当有新的帧产生时,立刻发送

冲突可能性增大:在t0时刻发送帧,会与在[t0-1, t0+1]期间其他结点发送的帧冲突

易损时间区为[t0-1, t0+1],是时隙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,比时隙ALOHA更差

载波侦听多路访问协议 CSMA(carrier sense multiple access)协议

载波侦听:发送帧之前,监听信道(载波):

信道空闲:发送完整帧

信道忙:推迟发送

1-坚持CSMA:以概率p=1一直坚持监听信道

非坚持CSMA:不坚持监听信号,等待一段时间再监听

P-坚持CSMA

冲突可能仍然发生:信号传播延迟,或者同时发送了数据帧

广播信道的端到端信道传播时延越长,载波侦听结点不能侦听到网络中另一个结点巳经开始传输的机会就越大

如图:B已经开始传输,但由于信号传输延迟,D不能侦听到,因此也开始了传输。但即使出现冲突也必须将数据帧发送完,会浪费信道资源。

具有碰撞检测的载波侦听多路访问协议 CSMA/CD (CSMA with CollisionDetection)协议

应用于以太网

碰撞检测:当一个传输结点在传输时一直在侦听此信道。如果它检测到另一个结点正在传输干扰帧,它就停止传输

有线局域网易于实现:测量信号强度,比较发射信号与接收信号

无线局域网很难实现:接收信号强度淹没在本地发射信号强度下

如图:短时间内可以检测到冲突(检测到叠加信号),冲突后传输中止,减少信道浪费

网络带宽:R bps

数据帧最小长度:Lmin(bits)

信号传播速度:V(m/s)

数据帧发送完成前,A必须收到B处传来的冲突L / R ≥ 2dmax/ V

Lmin/ R = 2dmax/ V

可能还有一些延迟时间,RTT > d / V ,得Lmin/ R= RTTmax

Tprop= LAN中2个结点间的最大传播延迟

ttrans= 最长帧传输延迟,对于10Mbps,传输最大长度的以太网帧的时间近似为1.2ms

Tprop趋近于0或者ttrans趋近于∞时,效率趋近于1

远优于ALOHA,并且简单、分散!

避免冲突的载波侦听多路访问协议  CSMA/CA(CSMAwith Collision Avoidance)协议

802.11无线局域网中,不能像CSMA/CD那样,边发送、边检测冲突!

无线信道很难实现

无法侦听到所有可能的冲突:隐藏站、信号衰落

802.11发送端:

(1)如果监听到信道空闲了DIFS时间,则发送整个帧(发送的同时不检测冲突)

(2)如果监听到信道忙,则开始随机退避计时

当信道空闲时,计时器倒计时

当计时器超时时,发送帧

(3)如果没有收到ACK,则增加随机退避间隔时间,重复(2)

802.11接收端:

如果正确接收帧,则在延迟SIFS时间后,向发送端发送ACK(由于存在隐藏站问题)

MAC/CA基本思想:允许发送端“预约”(reserve)信道,而不是随机发送数据帧,利用小预约帧避免长数据帧的冲突

信道空闲了DIFS时间后,发送端首先利用CSMA向BS发送一个很短的RTS(request-to-send)帧

RTS帧仍然可能彼此冲突 (但RTS帧很短)

BS广播一个CTS(clear-to-send)帧作为对RTS的响应,CTS帧可以被所有结点接收,以消除隐藏站影响

发送端可以发送数据帧,其他结点推迟发送

  • 轮流访问MAC协议

轮询协议

主结点以循环的方式轮询每个结点(向结点发送一个报文,告诉它能够传输的桢的最多数掀)

从属结点发送数据(被邀请且有数据才会发送数据)

缺点:

(1)轮询数据帧存在轮询开销

(2)主结点必须依次轮询每一个非活跃结点,活跃结点等待轮询存在等待延迟

(2)单点故障问题

令牌传递协议

控制令牌(小的特殊帧)依次从一个结点传递到下一个结点。

当一个结点收到令牌且它有一些帧要发送时,它持有令牌并发送最大数目的帧数;否则,它立即向下一个结点转发该令牌。

缺点:

(1)令牌开销

(2)令牌丢失,则必须调用某些恢复步骤使令牌返回到循环中来

(3)令牌依次传递,结点必须等待令牌存在等待延迟

(4)单点故障问题

原文地址:https://www.cnblogs.com/yangyuliufeng/p/9298273.html

时间: 2024-10-03 23:04:03

计算机网络-链路层(2)多路访问控制协议(multiple access control protocol)的相关文章

计算机网络——链路层

数据链路层:概述与服务 链路层主要使用的信道包括: 广播信道 : 这种信道采用一对多的广播通信方式,因此过程比较复杂.广播信道上主机众多,我们必须使用专用的共享信道协议来协调这些主机的数据发送 点对点信道 : 这种信道使用一对一的点对点通信方式 链路层提供的服务 链路层协议定义了在链路两端的节点之间交互的分组格式,以及当发送和接受分组时这些节点采取的动作. 链路层协议可能提供的服务包括: 服务 概述 成帧 在每个数据报传输时,用链路层帧将其封装起来.一个帧由首部,数据字段和尾部组成.链路层的数据

Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role

<Windows Azure Platform 系列文章目录> 今天上午刚刚和客户沟通过,趁热打铁写一篇Blog. 熟悉Microsoft Azure平台的读者都知道,在老的Classic Portal里面,我们可以设置共同管理员(Co-admin). 参考:Windows Azure Active Directory (3) China Azure AD增加新用户 但是Co-Admin和服务管理员(Service Admin)的权限是一样的. 比如上图的admin创建的任何资源,是可以被ne

计算机网络&mdash;&mdash;链路层协议

一. 链路层的功能 可靠交付:在高差错的链路,如无线链路,可以进行可靠交付:对于其它的有线,可以是多余的: 流量控制:防止接收方的缓存区溢出,帧丢失: 差错检测与差错纠正:在硬件上实现了: 二.多路访问协议 信道划分协议: 时分复用(TDM).频分复用(FDM). 码分多址(CDMA): 随机接入协议:以信道的全部速率进行传输,遇到碰撞就停下来, 等待随机的时间后再次发送: 时隙ALOHA:把每个节点的发送时间开始都是固定的.同步的(如12点.1点.2点--, 而不会12.04发送),间隔时间为

Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role

<Windows Azure Platform 系列文章目录> 在上面一篇博客中,笔者介绍了如何在RBAC里面,设置默认的Role. 这里笔者将介绍如何使用自定的Role. 主要内容有: 一.了解Role中的Action和NotAction 二.通过PowerShell,查看相应的Action 三.编辑json Template,自定义Role 四.设置相应的Role 五.删除自定义Role 一.了解Role中的Action和NotAction 比如SQL DB Contributor这个Ro

计算机网络七层协议模型 “开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)

计算机网络七层协议模型 作者:Ryan    时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性.功能特性以及过程特性,为上层协议提供了一个传输数据的物理媒体. 在这一层,协议数据单元为比特(bit). 属于物理层定义的典型规范代表包括:RS-232.RS-449.RS-485.USB2.0.IEEE-1394.xDSL.X.21.V.35.RJ-45等. 在物理层的互联设备包括:集线器(Hu

链路层输入报文的处理

中断服务程序接收报文后都交由__netif_receive_skb处理:根据协议将报文向上传输: packet_type 结构为网络层输入接口:其支持多种协议,每个协议族都会实现一个接收报文的的实例:此结构在链路层和网络层之间起到了桥梁的作用. struct packet_type { __be16 type; /* This is really htons(ether_type). */ struct net_device *dev; /* NULL is wildcarded here */

[转载]ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)

对于<windows核心编程>中的只言片语无法驱散心中的疑惑.就让MSDN中的解释给我们一盏明灯吧.如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下. windows的安全访问控制(ACM,access control mode)是由两部分组成的.一个是访问令牌(access tokens),另一个是安全描述符(security identifiers). 访问令牌是欲进行访问的进程使用的表明自己身份和特权的信息数据. 安全描述符是欲被访问的安全对象的相关安全信

ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)【转载】

对于<windows核心编程>中的只言片语无法驱散心中的疑惑.就让MSDN中的解释给我们一盏明灯吧.如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下. windows的安全访问控制(ACM,access control mode)是由两部分组成的.一个是访问令牌(access tokens),另一个是安全描述符(security identifiers). 访问令牌是欲进行访问的进程使用的表明自己身份和特权的信息数据. 安全描述符是欲被访问的安全对象的相关安全信

RBAC: 基于角色的访问控制(Role-Based Access Control)

本文只讨论两种基于角色的访问控制的不同点,不涉及权限设计的数据库设计. 基于角色的访问控制(Role-Based Access Control)可分为隐式角色访问控制和显式角色访问控制. 隐式角色访问控制:没有明确定义一个角色到底包含了哪些可执行的行为. 显式角色访问控制:也称为"基于资源的访问控制",因为这种权限设计的粒度细化到了资源层面,资源有很多种,比如数据库表的增删查改.url.菜单.按钮等等. 来看一个隐式角色访问控制的例子: if (user.hasRole("P