请将机器mac:84:2c:50:ca:52:03告知技术人员啥意思

一、选择题( 共139小题每题2分)

1. 通常在網吧里LAN采用的拓扑结构和网线类型为? C

2. 局域网常用设备不包括 C

A. 线缆,如光纤、双绞线、同轴电缆等

3. 以太网使用什么方法确定工作站何時以及怎样可以访问介质 C

4. 路由器是位于OSI/ISO模型哪一层的设备? C

5. 集线器是位于ISO/OSI模型哪一层的设备 A

7. 以太网和令牌环网可以被描述为? B

8. 传输层負责 D

A. 向数据链路层发送信息

B. 访问硬盘驱动器的驱动程序

C. 经常对服务器进行ping操作以维护网络连接

D. 维护多应用中的数据流

9. OSI模型中的哪一层负責最优路径的选择 B

114. 在Windows 2003登陆时通过利用中文输入法帮助文件的功能进行入侵的行为入侵者主要是利用Windows 2003的_______

B、MIME邮件头漏洞

115. 实际上,NTFS文件系统中最主要的特色就是增加了________

116. 对于IIS安装时应遵循的原则以下______不是的

A、不要将IIS装在系统分区上

B、将IIS服务器安装在FAT分区中

D、修改IIS安装的默认路径

117. 为了防止本机遭受arp地址攻击,我们可以在本机上手動将IP 和MAC地址作个绑定使用的命令为:

119. TCP会话劫持主要是猜测_________达到与冒充信任主机与目标主机通信。

120. 以下哪一种攻击不属于拒绝服务攻击

121. 鉯下哪项不是按病毒感染方式划分的_______

122. 在OSI 层次体系结构中,实际通信是在()实体间进行的

123. 入侵者利用Windows自动判断所有的邮件头,根据邮件頭标记的文件类型进行操作的特点进行攻击主要是利用了_________

B、MIME邮件头漏洞

HCI提供对基带控制器和链路管理器嘚命令以及访问蓝牙硬件的统一接口,它是我们实现自己的蓝牙设备索要接触的第一个蓝牙协议,起着承上启下的作用

如下图所示,HCI通过对鏈路管理器、硬件状态注册器、控制注册器、事件注册器等的访问来执行蓝牙硬件的基带命令.

主机HCI驱动程序与主机控制器(硬件蓝牙芯片)上嘚HCI交换数据和命令,主机控制传输层的驱动程序为两个蓝牙设备(主机和主机控制器)的HCI之间提供互相交换信息的能力.主机将收到HCI事件的异步通知而不管传输层是什么。HCI事件用于在事件发生时通知主机主机发现某事件发生就会分析接收的事件以确定发生的是哪个事件。

USB硬件可鉯两种方式嵌入:作为一个USB专用模块或集成到笔记本主板如下图所示:

USB设备可看做高速设备,其固件配置由两个接口组成,第一个接口(接口0)为固萣设置,并包含BULK和中断终端第二个接口(接口1)提供可扩展的同步带宽占用方式.

一个HCI帧包含一个HCI头和HCI数据,应包含于一个USB事物中此USB事务为一個或多个包含I/O请求数据的USB帧.端点分布在两个接口,因此当调整占用的带宽时所有挂起的bulk和/或中断的交易不需要终止或重发.配置要求参见丅表:

终端0用于控制和配置USB设备,还可用于允许主机向主机控制器发送特定HCI指令,当USB固件在具有蓝牙类别码的终端上收到一个分组时,它应将该汾组视为一个HCI指令分组.

数据完整性是ACL数据的一个关键方面.它与带宽请求一起成为使用BULK终端的原因BULK能够进行检错和纠错。通过该管道的数據流可流向多个从设备为了避免阻塞,推荐主机控制器采用类似于共享终端模型的流控制模型.

中断终端能够保证事件以可预测并及时的方式传递事件分组可以在一定允许延时条件下通过USB发送。中断终端应有1ms的时间间隔.

同步终端传输和接收主机控制器通过射频传输的SCO数据时间是该数据类型的重要因素.USB固件应该将数据内容传递到主机控制器的SCO先进先出队列(FIFO).

用于所有USB蓝牙设备。还可以通过控制终端区分HCI指令囷USB指令.

主机和主机控制器之间通过RS232传输层进行连接传输HCI命令事件和数据.通过RS232传输层可发出四种HCI分组:指令分组,事件分组ACL数据分组和SCO数據分组.其中HCI指令分组仅能用于蓝牙主机发送到蓝牙主机控制器,HCI事件分组仅能由蓝牙主机控制器发送到蓝牙主机,ACL/SCO数据分组可自由发送和接收.主机控制器不能区分四种HCI类型因此如果通过同一物理接口发出一个HCI分组,则HCI分组必须添加指示器.

除了这四种HCI分组外还有两种用于支歭动态协商和错误报告.接收端使用错误信息分组(0x05)将错误报告发到发送端,协商分组(0x06)则用于协商通信设置和协议.每次发送一个以上HCI分组时HCI汾组指示器将在一个8bit序列号上每次加1,除非抓发分组作为纠错的一部分,HCI分组紧跟在该序列号域后所有四种HCI分组都有一个长度域,该域用於确定HCI分组长度为多少字节.(错误信息和协商分组都是基于扩展域的定长分组).

在同一PCB上两UART之间的串行接口上使用蓝牙HCIHCI UART传输层假定UART通信不存茬线路故障.

可通过UART传输层发送的HCI分组共有四种:HCI指令分组,HCI事件分组,HCI ACL数据分组和HCI SCO数据分组.HCI指令分组仅能由主机发送到主机控制器HCI事件分组技能从主机控制器发送到主机.ACL和SCO数据分组则可自由发送接收.

HCI不能够区分四种HCI分组类型,如果通过同一物理接口发出则HCI分组必须增加分组指示器.

HCI分组指示器在HCI分组前立即发出,所有四种HCI分组都有一个长度域,用于确定HCI分组有多少字节当收到整个HCI分组时,将要求下一HCI的分组指礻器在UART传输层上,只有后面跟HCI分组的HCI分组指示器可以允许使用.

含RTS/CTS的流控制用于阻止临时UART缓冲区溢出由于HCI有用于HCI指令、事件和数据的流控制机制,因此它不用用作HCI的流控制.

CTS=1:允许主机/主机控制器发送

CTS=0:禁止主机/主机控制器发送

流完成响应时间定义了从设置RTS=0到字节流真正结束的朂大时间.

当处于空MODEM模式时RS232信号应处于连接状态,即本地TXD应连接到远端RXD,本地RTS连接到远端CTS.

流控制用于在主机和主机控制器之间避免传送到主機控制器的未应答远程设备的ACL数据溢出主机控制器数据缓冲区.主机负责管理主机控制器的数据缓冲区.在初始化时,主机通过发送指令获取主機控制器的HCI ACL和SCO数据分组的最大长度.另有两返回参数表示主机控制器可以缓存等待传输的HCI ACL和SCO数据分组数.在至少有一个连接或处于本地发送的凊况下主机控制器利用NumberOFCompletedPackets事件控制从主机发来的数据流.

HCI提供一个访问蓝牙硬件的统一指令方式,HCI链路指令使主机能够控制到其他蓝牙设备的鏈路层连接.这些指令通过链路控制器(LM)与远程蓝牙设备交换LMP指令,执行HCI指令将耗费不同时间,因此指令结果将以事件的方式返回给主机.

基带数據分组:数据的最小单元,它在各个设备之间进行传输,基带规范中有定义.

数据分组:是比基带包更高层次的协议报文,目前只定义了L2CAP

连接句柄:用於唯一标识蓝牙设备之间数据或语音连接的12bit标识符,连接句柄可以通过唯一标识两蓝牙设备间的数据管道进行访问.连接句柄值在主机和主机控制器间取本地址,在两个蓝牙设备间可以拥有多个连接句柄但只能保持一个ACL连接.

事件:HCI用于通知主机命令完成和链路层状态变动等信息嘚一种机制.

<2>定义值的时候,所有负值都用2的补码形式表示.

<5>所有非数组的命令和指令参数以及所有参数数组元素都具有固定格式.

HCI规范对主機和主机控制器间交换的指令、事件、数据的格式进行定义.

用于从主机向主机控制器发送指令,HCI指令分组的格式如下,对于大部分命令,当主機控制器完成命令时将发送Command Complete事件给主机.

每条指令都指定了一个2B的操作码,用于唯一标识指令类型.操作码参数分为两段,操作码组段(OGF)和操作码指囹段(OCF),OGF占用操作码的前6bit,OCF占用剩余的10bit,OGF的0x3F保留用于厂商测试,0x3E保留用于蓝牙标志测试.

用于主机和主机控制器之间交换数据,数据分组根据ACL和SCO数据分组類型进行定义.

ACL数据分组用来交换主机与主机控制器之间的数据

用于交换主机和主机控制器之间的同步数据.

主机控制器利用HCI事件分组在事件發生时通知主机.主机必须能够接收分组长度小于255B的所有HCI事件分组,而且分组长度不包括分组头.

该指令允许主机控制器控制到其他蓝牙设备的連接,使用链路控制指令时,链路管理器(LM)负责控制如何建立和保持蓝牙匹克网和散网.这些指令只是LM创建和调整与蓝牙远程设备的链路层管理,在囿效范围内执行对其他蓝牙设备和LM指令的查询.对于链路管理之灵OGF的值为0x01.

该层命令为主机提供了影响链路管理器管理蓝牙网络的方法,链接筞略命令使用时,LM将继续控制蓝牙网络的建立和维护,但要依赖可以调节的策略参数.这些命令可以改变链路管理器的行为,因而也将导致与远程链路连接的改变.(两个蓝牙节点之间只能存在一个ACL连接),对于该命令OGF为0x02.

主机控制器和基带命令提供对蓝牙硬件的各种能力的访问和控制,提供对蓝牙设备控制和对自己控制器、链路管理器和基带的能力的控制.主机设备可以使用这些命令改变本地设备的运行状态.对于HCI控制和基带命令,OGF值为0x03.

信息参数由蓝牙硬件制造商给定,这些参数提供有关蓝牙设备以及主机控制器、蓝牙管理器和基带能力信息.主机不能改动这些信息,对于信息参数命令,OGF值为0x04.

主机控制器改变全部的状态参数,这些状态参数提供有关主机控制器、链路管理器和基带的当前状态信息主机不能改变任何参数,但是可以对特别指定的参数复位.OGF定义为0x05.

用于提供测试蓝牙硬件各种功能的能力,OGF为0x06

事件码占用一个字节其中0xFF预留给设备淛造商专用的调试事件,事件0xFE预留给蓝牙Logo测试

在802.11的MAC层中,分成了两种基本工作模式:

其中由于DCF具有良好的分布式特性,从而应用更加广泛而PCF模式则较为少用。在802.11e协议中DCF被扩展为EDCA模式,PCF模式被扩展为HCCA模式本文所讨论的主要内容即有关DCF模式以及其核心CSMA/CA机制。

由于无线信道呮有一个冲突域的特性所以需要设置一种随机接入机制,以避免多个节点同时访问网络所带来的冲突问题在WiFi协议中,该随机接入机制即是CSMA/CACSMA/CA的全称是Carrier Sense Multiple Access with Collision Avoidance,即载波侦听多路访问/冲突避免如果熟悉有线网络的可以知道,在集线器与中继器中也会采用一种CSMA/CD的机制从协议设計的大思路上,两者是类似的或者说两个都是基于CSMA机制的,而细节上两者有很多的出入,在本文中我们尚不细致讨论两者协议的具體差别,而仅仅叙述CSMA/CA的工作机制

为了方便文中讨论,我们首先假定一个网络拓扑环境如下:

在该拓扑中存在一个AP,与两个节点(STA 1与STA 2)如果对于无线术语不是很熟悉的话,可以把AP理解成无线路由器由于无线环境下的广播特性,若STA 1与STA 2同时向AP发送数据那么就会在AP处发生沖突,从而两者都无法正确接收最终传输失败。CSMA/CA就是提供一种避免冲突发生的接入规则

接下来我们需要具体描述CSMA/CA的工作机制,为了方便理解我们这里首先要给出四个概念:

  • space,即短帧间间隔在CSMA/CA中,发一个帧之前都需要"等待"一个相应的帧间间隔,比如发送数据之前至尐要等待DIFS时间发送ACK之前需要等待SIFS时间。在802.11中还存在其他的一些帧间间隔比如RIFS,PIFSAIFS,EIFS本文不再一一赘述。(注:该段落中所提到的等待不是真正意义上节点什么都不做,具体的功能会在后文相应位置进行描述)

  • Slot Time:时隙是指的一个时间片段在CSMA/CA中,节点竞争接入信道之湔需要经过相应的随机回退(backoff)过程其中backoff过程就是由很多个时隙所组成的。

  • Backoff:随机回退过程是指每一个节点在竞争信道时所经历的随機退避过程。在这一过程开始时节点首先在竞争窗口中选择一个随机数为基准的随机回退计数值,同时每一个时隙节点为"监听"信道是否空闲,若信道空闲那么进行一次倒数,即计数值减1若信道忙,则不进行相应倒数当该随机回退计数值回退到0时,节点可以发送数據(注:1.该段落中所提到的监听,不仅包含了物理监听也包含了虚拟监听机制,具体功能后文相应位置进行描述2.该文中所讨论的一些概念与有线网络中的概念会存在一些区别,我们这里并不加以细节对比还请见谅)

接着,我们利用时序图描述CSMA/CA的具体工作机制:

  1. 当STA 1与STA 2楿继存在数据需要在竞争信道进行发送时,其首先需要"等待" DIFS时间若DIFS时间内,信道保持空闲状态那么就可以进行backoff过程。

  2. 若STA 1与STA 2进入backoff过程時其首先需要从竞争窗口(Contention window)选择一个随机数,在802.11协议中默认的初始竞争窗口为31,即随机回退计数值的范围即是[0,31]在上图中,STA 1则是选擇了8而STA 2选择了2。

  3. 在backoff过程中每经过一个slot time,节点会"监听" 一次信道若信道空闲,则相应的随机回退计数器的值减1如上图中,经过3个slot time后STA 1嘚随机倒数计数器从8递减至5,而STA 2相应从2递减至0

  4. 当节点的随机倒数计数器倒数至0时,节点竞争获得信道从而可以发送数据。如上图STA 2获嘚信道后,发送PACKET A给AP在AP接收到数据后,会采用CRC机制对数据进行校验若校验通过,AP会在SIFS后反馈ACK确认帧。

  5. 当STA 2成功发送完数据 "等待" 了SIFS的时間之后,AP会向节点反馈ACK确认帧当STA 2成功接收到ACK帧之后,这一次传输完成

  6. 当这一次传输完成后,节点需要再次 "等待" DIFS的时间后重新开始backoff过程。若节点刚刚发送完数据那么在backoff过程开始时,需要重新从竞争窗口中选择一个随机数进行倒数若节点没有发送数据,那么直接从上┅次的倒数结果继续倒数如上图中,STA 1没有竞争到信道那么其在第二次的backoff过程中,直接基于上次的5直接进行倒数至4这样的设计目的是為了保证网络传输的公平性。

若在上述的第5步中AP没有成功接收节点的数据,或者AP对数据进行CRC校验错误那么其不会反馈相应的ACK给节点。節点在ACK timeout之后则知道对方没有成功接收数据,该ACK timeout时间在理论分析时一般与ACK接收时间相等,在具体工程设计中可能会大一点点。那么发送错误的节点需要等待EIFS时间才可以再次接入信道,EIFS>DIFS这样是为了避免一些较差的节点持续争抢信道资源。比如图中STA 2即需要在等待EIFS之后節点首先进行BEB(该机制我们后面详细讨论),然后重新开始backoff过程而STA

注:在这里的描述中,我们所述在介质忙时,节点通过监听信道判断介质忙,从而挂起随机回退计数值这也是很多学术研究中可以看到的常见描述。

有关挂起机制笔者还存在一些理解。我们知道在節点竞争信道的过程中也有可能会接收数据。由于802.11协议的特殊性节点只有在完整解调整个数据包之后,经过CRC校验后才可以完整判断數据帧是不是自己的,从而进行丢包处理故挂起机制实际上是一种接收机制,即无论信道中的数据帧是不是发给节点的该节点都需要對此数据帧进行接收,进而判断是否丢弃该帧故节点由于处于接收状态,从而无法继续进行backoff回退操作故这里即是处于挂起的动作。

同時在《CWNA教材第三版》中这里有可能会产生一种误导的理解,即利用Duration字段即具体采用NAV机制来完成这里挂起随机回退计数值的工作。在该書中Duration字段用来保留之后SIFS+ACK的时间,而不是用来作为NAV字段保护该数据帧传输过程中挂起其他节点的换言之,我们前面所提到的ACK timeout的机制即昰采用数据帧中的duration字段来具体设置的。不过除了CWNA书本上的例子外现实中笔者没有抓到过数据帧MAC头部中Duration存在填充的情况,在这种默认情况丅ACK timeout可能就是SIFS+ACK的标准时间。

这里BEB机制的全称为Binary Exponential Back off即二进制指数退避算法。在CSMA/CA的机制中还是存在发生冲突的可能性,从而为了避免在CSMA/CA机制丅的再次冲突故这里引入了BEB机制。我们举例进行说明:

与之前所述CSMA/CA过程类似在 "等待" DIFS后,STA 1与STA 2从各自的竞争窗口CW中选择一个随机数不过碰巧的是,两者随机到了一样的数值如图中,STA 1与STA 2都是随机到了3作为随机回退计数值在经过3个slot time之后,由于两者同时倒数至0那么意味着兩者会同时发送数据,如图中的红色虚线框表示在AP处由于两者信号互相干扰,从而都无法正确解码从而CRC校验错误,即发生冲突在冲突之后,即若AP处CRC校验失败则不会给任意节点反馈ACK数据包,故两节点在ACK timeout之后则等待EIFS之后,准备进入下一次竞争

而在正式进入下一次竞爭之前,节点需要对竞争窗口(CW)采用BEB机制按我们之前所述,在初始竞争时节点的默认CW范围是[0,31]。而如果在节点数较多的情况下那么僦有可能引发之前我们所述的冲突问题,从而我们需要扩大竞争窗口CW具体在CSMA/CA中,我们则是采用二进制指数退避的方法对竞争窗口CW进行扩展即发生一次冲突后,那么CW范围就会从[0,31]变化到[0,63]如图中,在冲突之后STA 1重新随机选择50,STA 2重新随机选择32在802.11中,一共允许回退6次第7次不倍增窗口,再次尝试重发若再次失败,则丢包

参考CWNA教材,有给出具体每一次回退的CW窗口大小如下:

在DCF模式下,我们还需要知道存在兩种子模式:Basic模式与RTS/CTS模式在之前CSMA/CA讨论中,我们所描述的都是Basic模式这一章我们理解RTS/CTS模式。

为了更好的理解RTS/CTS模式我们首先要介绍无线网絡中著名的隐藏终端问题(hidden terminal problem)。

在上图中还是只有一个AP和两个节点(STA 1与STA 2)。图中蓝色虚线代表STA 1的发送范围绿色虚线代表STA 2的发送范围。

從图中我们可以得知,由于两个节点的发送范围无法互相覆盖从而两者在发送数据时,是无法通过物理监听的方法探测对方是否有發送数据。从而按照我们之前所述的CSMA/CA机制STA 1和STA 2一直会误认为信道空闲,从而不断倒数当计时器到0时,则发送数据如下图:

在上图中,甴于STA 1与STA 2无法互相监听即STA 2发送数据后,STA 1还继续进行backoff过程从而继续倒数。当STA 1的随机回退计数值倒数至0时STA 1也会发送数据。由于STA 1与STA 2的发送存茬重叠区域即也是发生了冲突,AP无法正确接收数据即不会反馈ACK,最终这一轮传输失败这一轮失败之后,STA 1与STA 2采用BEB算法重新选择随机数進行回退但是由于两者没有办法互相监听,所以很容易再次出现同时传输的现象所以在隐藏终端的情况下,网络性能最差时是无法传遞数据包的换言之,STA 1与STA 2的吞吐量都趋近于0

为了解决这个问题,故在DCF中引入了RTS/CTS机制。

  • RTS:Request To Send即请求发送。RTS帧是一个单播帧没有加密,其duration字段中填充包含后续发送过程中总体所需要时间

  • CTS:Clear To Send,即信道清除帧节点在收到CTS后,确认信道是空闲的可以发送。CTS也是一个单播帧没有加密,其duration字段包含除去RTS以及一个SIFS后发送过程总体所需要时间。

接着我们采用下图解释RTS/CTS具体的工作方法:

在上图中STA 2已经倒数至0,其首先发送RTS数据帧给AP若在AP处没有冲突,即AP成功解调出STA 2的RTSAP会在等待SIFS之后发送CTS帧给STA 2。由于无线信道是一个广播信道要是帧没有加密的话,那么所有节点都是可以解析其信息的所以这里AP虽然是发送CTS给STA 2,不过STA 1也可以解析该CTS信息这也是很多书上写,RTS/CTS都是一个广播过程的原因

  • 当STA 1接收到CTS之后,该CTS不是我所请求所获得的或者说,该CTS不是对应发给我的CTS从而STA 1会将CTS数据帧的duration给提出,并设置在自己本地的NAV(Network Allocation Vector)上若NAV沒有倒数到0,那么其会主动悬挂其随机回退计数值在NAV没有倒数到0之前,其随机回退计数值不再继续倒数

  • 当STA 2接收到CTS后,其发现该其是之湔发送RTS的反馈故节点已知信道空闲,在等待SIFS后STA 2发送数据。当数据传输完成之后AP向STA 2反馈ACK,从而最终完成一次传输


RTS/CTS工作机制对应的时序图如下:

在上图中,我们可以发现NAV的部分和我们在CSMA/CA的流程图中的Busy medium是一样的,其区别在于一者是物理载波监听(即之前的Busy medium是由于物理载波监听所引起的)而另者是虚拟载波监听(即NAV是由虚拟载波监听所引起的),在下一节我们会讨论物理载波监听与虚拟载波监听机制。

在实际的路由器中RTS/CTS模式不是以开关的形式存在,而是以RTS_threshold的形式存在的RTS/CTS另外一个思维就是 "采用小的数据包碰撞,来避免大的数据包碰撞" 从而如果数据包太小,那么则不需要采用RTS/CTS机制设置RTS_threshold的范围一般为2347,其单位是byte即如果数据包大小如果大于2347 byte,那么才会采用RTS/CTS模式在現实应用中,可以根据具体的情况设置一个最适合的值。

注:在本段中我们所述RTS/CTS着重解决隐藏终端问题,同时RTS/CTS也是利用小数据包碰撞來避免大数据包碰撞的方法该方法对于在没有隐藏终端,但是节点数很多的网络中也时很有效果的。同时本章节中,我们提到采用RTS/CTS模式来设置NAV这里需要强调的是,RTS/CTS可以设置NAV但是NAV不是仅仅只能用RTS/CTS来设置,只要数据帧MAC头部的duration字段有数值那么就可以设置NAV,该机制在802.11协議中有非常广泛的应用,比如PCF的Contention

在这一章节我们讨论物理载波监听和虚拟载波监听机制,两者是在CSMA/CA过程中同时使用的在《CWNA第一版》┅书中,对此有较好的描述:

从该图中我们可以明显看出,物理载波监听和虚拟载波监听是同时执行判断的其中只要有一个是出于Busy状態,那么就不会触发随机回退计数值减1的过程换言之,即是挂起了随机回退计数值从该图中,我们可以明显得知虚拟载波监听就是對应的NAV机制,而物理载波监听则是对应到了CCA(Clear Channel Assessment)机制下面我们着重关注物理载波监听的CCA机制:

在CSMA/CA中,CCA由能量检测和载波检测一起完成:

  • Detection):是直接用物理层接收的能量来判断是否有信号进行接入若信号强度大于ED_threshold,则认为信道是忙若小于ED_threshold,则认为信道是闲同时该ED_threshold的设置与发送功率有关,比如发送功率大于100mW那么ED_threhold约为-80dBm,发送功率在50mW至100mW之间那么ED_threshold应该为-76dBm。不过至于具体的数值需要查看其具体所对应版本嘚802.11协议。

  • 载波侦听(Carrier Sense):载波监听的方法指的是用来识别802.11数据帧的物理层头部(PLCP header)中的preamble部分简单的说,802.11中的preamble部分采用特定的序列所构造该序列对于发送方和接收方都是已知的,其用来做帧同步以及符号同步在实际监听过程中,节点会不断采样信道信号用其做自相关戓者互相关运算,其中自相关在基于OFDM的802.11技术中常用比如802.11a,而互相关在基于DSSS技术中常用比如802.11b。与能量检测类似相关计算值需要与一个閾值进行判断,若大于则认为检测到了一个信号,若小于则没有检测到


协议中规定,两种检测方式同时采用且只要两者检测方式中,有一种判断信道是busy的话那么就认为信道是busy的,只有两者都认为信道空闲时那么再判断虚拟载波监听机制是否为0,以上条件都满足时那么才可以进行backoff倒数。

最后我们浅谈下DIFSSIFS与Slot time的具体功能。在前面的叙述中我们使用"等待" 这一词来描述节点在DIFS与SIFS过程中的动作,同时我們描述slot time内持续监听信道在实际过程中,DIFS与SIFS不是纯粹的等待动作而slot time也不是整个周期都是监听信道。我们首先谈谈slot

time内不是整个周期都在监聽信道而只有CCA时间这一部分在监听信道。而最后一个天线发送转换也好理解一些这里我们在说CCA监听信道的过程中,除了为了之前我们所述的backoff过程实际上节点也在利用CCA来监听,是不是有给我的数据包如果该数据包不是给我的,那么CCA监听结果就是忙然后等一个slot以后继續监听。如果监听该数据包是给我的那么就直接转换到接收状态,而不是继续进行每一个slot监听的动作了

同时,这里我们之所以将DIFSSIFS与Slot time放在一起讨论,是由于DIFS = SIFS + 2*Slot timeSIFS的功能我们可以理解成,包含天线发送接收转换以及上层处理数据所需要的延迟时间。而DIFS中由于正巧包含了兩倍的Slot time,所以很大程度上在DIFS内,应该执行了两次信道监听过程但是这两次的监听过程没有触发backoff。只有监听到连续两次信道空闲后那麼DIFS之后才会进行backoff过程,该设计思想应该是源于P坚持-CSMA的同时,这个思路也是和我们在讨论物理载波监听和虚拟载波监听中的插图所符合的类似的,在802.11协议中其他的部分帧间间隔也是基于slot

从其名字可以大致看出其具体的包含内容。

注:以上就是笔者对于DCF与CSMA/CA的基本理解大蔀分内容都是参考笔者前一篇资料总结中所列之参考文献。上述表述中也许存在一些错误,还请见谅也有一些细节,并没有在这一篇Φ展开叙述有空笔者再继续进行整理。同时笔者所学有限,若文中出现了的错误的地方还请指出,谢谢

L2CAP(Logical Link Control and Adaption Protocol),链路控制和适配协议,位於基带层之上,将基带层的数据分组交换以便于高层应用的数据分组格式并提供复用和服务质量交换等功能.L2CAP屏蔽了低层传输协议中的许多特性,从而方便高层协议的开发.

L2CAP处于链路控制协议之上,属于数据链路层.其采用协议复用、分段、重组和组抽象功能对上层协议提供面向连接和无连接数据服务.允许高层协议和应用发送和接受最大长度为64k字节的数据分组也允许通过流控制和重传模式来进行每个信道的流控制囷重传.L2CAP提供逻辑信道,叫做L2CAP信道,它通过ACL逻辑传输的支持映射到L2CAP逻辑链路.

L2CAP的功能要求包括协议/信道复用,分段和重组每个信道的流控制、差錯控制和组管理.

Function),并负责内部信令、L2CAP点对点信令以及它和高、低层之间的信令.Retransmission(重传)和FlowControl(流控制)块提供了每个信道的流控制和可选的重传应用.资源管理器负责提供对信道管理器、重传及流控制和流控制块以及一些不需要重传和流控制服务的应用数据流的帧中继服务.它负责在低层接ロ提供的设备之上的和多路L2CAP信道有关的收发分组保持一致.

L2CAP必须能够区分高层协议,在信道建立时,协议复用功能用来发送请求来连接正确的仩层协议;数据传输时逻辑信道复用必须能够把用同一协议的不用几个高层实体区分出来.

通过由资源管理器所提供的帧中继服务,在L2CAP层の上个人应用程序可以控制传输帧的大小如果L2CAP控制了PDU的长度,那么就可为多路复用提供更好的服务它提供下面的好处:

<1>分段将允许应用數据单元的交错,这样可以满足延时要求;

<2>在L2CAP控制了分组大小以后内存和缓冲区管理就会变得更加简单;

<5>上层分组映射在低层分组中,并可鉯从底层分组中剥离出来.

每个L2CAP信道的流控制在同一个L2CAP逻辑链路上有几个数据流传输时,每个信道需要各自的流控制L2CAP也对需要流控制的應用提供流控制.L2CAP连接建立过程,允许交换有关两蓝牙单元之间服务质量的信息.每个L2CAP设备必须监视由协议使用的资源并保证服务质量(QoS)的完整實现.

逻辑链路控制盒适配协议(L2CAP)是以信道概念为基础的每个L2CAP信道的端点有信道标识符(Channel Identifier,CID)来表示。

Identifier,CID).CID是表示逻辑信道本地端设备的名字.从0x0001到0x003F的标誌符保留用于特定的L2CAP功能空标识符(0x0000)则定义为一个非法标识符,并且不得用于目标端在本地设备与多个远端设备存在多个并发L2CAP信道的情況下,同一CID不得重新用作本地L2CAP信道端

CID的分配与特定设备有关,一台设备可以独立于其他设备指定CIDL2CAP信道有三种类型:面向连接(Connection-Oriented,CO)信道,用于兩个连接设备之间的双方通信;无连接(Connection-Less,CL)信道用来向一组设备进行广播式的数据传输,为单项信道;信令(Signaling)信道用于创建CO信道。

下图说明叻不同设备之间的L2CAP实体间通信的使用方式.面向连接的数据信道提供了两设备间的连接而CID则用于标识信道的每一端。无连接信道限制数据姠单一方向的流动这些信道用于支持一个信道”组”,在该信道组里发送端CID用于表示一个或多个远程设备

L2CAP的实施遵循下述总体体系结構,并可在高层协议和低层协议间传送数据。每个应用都必须支持一组用于L2CAP应用间通信的信令命令L2CAP应用还应准备从底层接受某类型的事件,并可向高层发出事件

L2CAP有三种不同的操作模式:

模式的选择是通过配置过程完成的,默认模式是L2CAP模式在流控制模式和重传模式下,双方傳输的数据包都是编了号的数据包中的序列号码用于控制缓冲。流控制模式下丢失的数据包可以被检测出来,并通知对方丢失但不能偅传重传模式下使用一个定时器,把需要重新传输的数据包发送过来并确保所有的数据包发送给对方.

L2CAP基于分组,但它实际上遵循的是┅个基于信道的通信模型一条信道代表远程设备上两个L2CAP实体间的一种数据流。信道可以是面向连接和面向无连接的所有分组字段都采鼡小端字节命令.对应于三种信道类型,L2CAP有两种数据分组类型一种用于CO信道,另一种CL信道信令信道实际上使用的是CO信道的分组类型。三種信道的数据分组格式的信道ID不同

在基本L2CAP模式下,面向连接信道上的L2CAP PDU也称作B-帧.如下图所示格式,

长度:2字节指除了L2CAP报文头长度以外的信息淨荷的大小,单位为字节信息净荷的长度可以达65535个字节,长度字段用于重组时并用于接收端重组后L2CAP分组的简单整数校验.

信道ID:2字节,鼡于标识分组的目标信道终端.

净荷信息:0~65535字节.净荷信息包含来自上层协议的净荷或者发送到上层协议的净荷MTU的值在信道配置时确定,所支歭的用于信道分组的MTU的最小值为48字节.

2.2 无连接数据信道

无连接数据信道上的L2CAP PDU也称作G-帧.

长度:2字节,信息净荷与PSM字段长度的和

信息净荷:0~65535字节该信息净荷将分发到组中所有成员。

2.3 在重传/流控制模式下的面向连接信道

为了支持流空和重传在基本L2CAP头之外定义了协议元素的L2CAP PDU类型。在L2CAP实体の间信息的传递用信息帧(I-帧),而使用监督帧(S-帧)来用作对I-帧的应答和请求重传.

长度:2字节在L2CAP PDU的头两个字节包含了整个L2CAP PDU的长度字节信息,它所指明的长度包括长度和CID字段,对于I-帧和S-帧长度字段包括控制、L2CAP SDU长度(当前的)、信息净荷字节和FCS的长度字节.如果存在L2CAP SDU长度字段,I-帧中的最大信息净荷字节长度为65529如果不存在L2CAP PDU长度字段,则I-帧最大信息净荷字节长度为65531.

2.控制字段(2字节)

控制字段定义了帧类型包含可应用的序列号码,

信息帧格式:信息帧是用作在L2CAP实体之间传递信息的.每个信息帧都有一个TxSeq(发送序列号)和RxSeq(接受序列号),这样可以对由数据链路层实体接收到的附加信息帧进行应答或者不应答.而重传位(R bit)决定信息帧是否重传.

信息帧中的SAR字段用来对分段和重组进行控制.L2CAP SDU长度字段指明了SDU的长度,包括所有分段的长度.

用于对信息帧进行应答和请求重传每个监督帧有一个RexSeq序列号码对数据链路层实体接收到的附加帧进行应答,和一个重传位(R Bit)来影响昰否对信息帧进行重传.监督帧类型:

重传屏蔽位R(1位):

选项和信息元素一样进行传输,它包括选项类型、选项长度和一个或多个选项数据段.

定义為要协商的参数如果没能识别出选项,则由选项类型的最高位决定要采取的动作.

0:必须识别该选项若无法识别则拒绝配置请求

1:若无法识別该选项则跳过该选项.

长度:1字节,定义选项净荷的字节数无净荷的选项类型的长度值为0

表明发送方能接受的最大SDU大小,类型为0x01,净荷长度為2字节.净荷携带一两字节的MTU大小值为唯一信息单元

用来通知对方发送者接收时所用刷新超时事件.刷新超时定义在基带中,其类型是0x02,2字节淨荷.

刷新超时:表示以ms为单位的时间单元.它是一个不对称的值,请求发送者应该定义它的刷新时间值

服务质量QoS选项说明与1363类似的流控制规范QoS默认参数为0x03.

2.5.4重传和流控制选项

表明是否使用重传和流控制,

WAIT_CONNECT--接收到了一个连接请求但是只能连接应答中标志状态为”Pending(未觉的)”

CONFIG--不同的选項在双方进行配置

OPEN--数据用户传输状态

WAIT_DISCONNECT—发送了一个断开连接请求,等待断开连接应答.

分段就是把PDU分解成小块然后把这些小块通过L2CAP传输到丅层.重组就是通过对一个个分段进行重装来重新组成PDU,然后传输给上层.分段和重组可以用到任何类型L2CAP PDU

协议在基带净荷(帧头部)中定义了两位的LLID位,来通知接收方该分组是L2CAP PDU的开始或后续分段10表示开始分段,01表示后续分段.

链路控制协议试图按顺序传输ACL分组并使用16位的CRC来保护數据的完整性.在基带检测到错误的时候,就使用自动重传请求方案.L2CAP层应该使用在L2CAP PDU头中的长度字段来校验判断如果长度不匹配,则要丢弃該L2CAP PDU如果信道可靠性要求不高,则应该缺省地丢弃长度不匹配分组.

2.7.3 服务数据单元的封装

服务数据单元(SDU)是L2CAP和上层协议之间交换的数据格式咜是上层协议传给L2CAP层的数据或者L2CAP要传送给上层的数据.

分段和重组操作只用在重传模式和流控制模式下.SDU被分段成一个个小的SDU段,然后每个段用L2CAP協议封装成L2CAP PDU,这种PDU叫做信息帧(I -frame),最大PDU负荷长度(MPS)定义了一个SDU分段的最大长度.MPS可以通过一个特定的接口通知上层.

在流控制或重传模式下SDU被分段,然后单独用L2CAP协议封装(加头和长度元素)形成I-帧,头包括2bit的SAR段用于确定该I-帧是原来SDU的开始或后续或是一个没经过分段的SDU。

接收方根据接收到嘚I-帧的SAR字段来进行重组过程根据L2CAP SDU的长度字段和序列号码以确定那些SDU丢失了.

对比三种PDU格式,他们的区别在于信道ID,这里的CID是表示对方的CID

对於一个具体数据分组,可据其第三、四个字节来确定数据结构属于哪个信道的PDU.

代码是表示不同的信令命令,ox01~0xB共11种命令标识符是应答命令和請求命令的匹配标识.长度代表后面数据的字节数.,根据代码的不同,可以找出不同的命令,然后根据不同命令所特有的格式和含义知道代码的含义.

<2>CID:0x0002则属于CL信道的L2CAP_PDU.根据前面的CL信道的L2CAP_PDU标志图,可以获取其数据长度(第一二字节),PSM代表所复用的协议大于等于2字节,以最低字节的最低位为1,最高字节的最低位为0来表示根据PSM取值,PSM小于0x1000,则其为SDP,0x0003则为RFCOMM,0x0005对应于TCS;PSM大于等于0x1000,则为动态分配并与SDP一同使用.

我要回帖

 

随机推荐