三、数据链路层
3.1 数据链路层功能
数据链路层在物理层的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能,并将物理层提供的可能出错的物理连接改为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
3.1.1 为网络层提供服务
无确认的无连接服务:原机器发送帧不需要先建立链路连接,目的机器收到时不需发回确认。丢失的帧不在本层重发而是由上层处理。适用于实时通信或误码率较低的网络信道,如以太网
有确认的无连接服务:原机器发送帧不提前建立网络连接,目的机器收到时必须发回确认。若规定时间没有收到确认则重发丢失的帧来提高可靠性,用于误码率较高的通信信道,如无线通信。
有确认的面向连接服务:帧传输分为三个阶段:建立数据链路、传输帧、释放数据链路。目的机器对每一帧的收到都给出确认,收到后才发送下一帧,因而可靠性最高。适用于对于通信可靠性和实时性较高的场合。
有连接就一定要确认,因此没有无确认的有连接服务
3.1.2 链路管理
数据链路层的建立、维持、释放过程称作链路管理,主要用于面向连接的服务。
当链路两端的节点要进行通信前,必须首先确认对方处于就绪状态,并交换一些必要信息来初始化帧的序号。在传输过程中需要维持连接,而传输完毕后则需要释放连接。
此外,链路层管理还包括在多个站点共享同一物理信道的情况下(如局域网)如何在要求通信的站点间分配和管理信道。
3.1.3 帧定界、帧同步、透明传输
两个工作站之间传输信息时,必须将网络层的分组封装成帧,再以帧的格式进行传送。
将一段数据的前后分别添加头部和尾部就狗哼了帧。首部和尾部中包含很多控制信息,用于确定帧的界限,即帧定界。
帧同步指接收方应从接收到的二进制比特流中区分出起始和终止。例如HDLC通信规程,用标志位F(0111110)来表示帧的开始和结束。通信过程中读到F表示开始,再次读到表示结束。
如果数据中恰好包括帧同步的比特组合,则可能会被误认为结束而丢弃后续数据。因此需要采取透明传输来解决该问题:不管所传的数据是什么样的比特组合,都应当能在链路上传送。
3.1.4 流量控制
由于手发放的工作速率和缓存空间差异,可能出现发送能力大于接受能力的情况,造成帧“淹没”,从而丢失出错。流量控制实际就是控制发送方的流量。
控制过程需要范库机制使得发送方能知道接收方是否跟得上,也就是确定什么时候可以发送下一帧。许多高层协议也提供此功能,区别在于控制的对象不同。(数据链路层:相邻节点之间数据链路的流量;运输层:源端到目的端的流量)
3.1.5 差错控制
错误分为两种:位错、帧错
- 位错:帧中某些位出现了差错,
- 通常采用循环冗余校验,CRC 方式发现位错。
- 通过自动重传请求 Automatic Repeat reQuest,ARQ 来重传出错的帧。具体做法:将要发送的数据帧附加一定的CRC冗余检错码一并发送,接收方则根据检错码对数据帧进行错误检测,若发现错误则丢弃,发送方接受反馈超时,从而重传数据帧。特点是仅返回很少的控制信息,进行有效确认。
- 帧错:帧的丢失、重复、失序
- 在数据链路层引入定时器和编号机制,可以保证每一帧最终都能有且仅有一次正确交付给目的结点。
3.2 组帧
链路层将比特组合为帧是为了在出错时只发送错误的帧,发送方需要将网络层的分组依靠某些规则封装为帧,称为组帧
组帧主要解决帧定界、帧同步、透明传输的问题。
3.2.1 字符计数法
在帧头部使用一个计数字段标明帧内字符数(提供的字节数包括自身占用的一个字节),当目的结点的数据链路层收到字节计数值就知道后面跟随的字节数,从而确定结束位置。
问题在于计数字段错误会造成连锁出错:无法确定后续计数。
3.2.2 字符填充的首位定界符法
使用特定字符定界一帧的开始(DLE STX)和结束(DLE ETX)。
为了使信息位中出现的特殊字符不被误判为定界符,可以在特殊字符前填充一个转义字符DLE作为区分(DLE是ASCII中的一个特定字符),来实现透明传输。
如果在传输中又出现DLE字符,则发送端在其之前再插入一个DLE字符标明仅仅在透明传输,而接收端则将两个连续的DLE转为一个。
3.2.3 比特填充的首尾标志法
用一个特定比特标志01111110标志一帧的开始和结束,在传输中途每出现5个连续的1,发送端就在后面插入一个0,接收端则执行你操作,避免提前结束。可以由硬件实现,性能优于字符填充。
3.2.4 违规编码法
曼彻斯特编码中,每个比特都用中间跳变的码元表示,可以将不进行跳变的(违规编码)作为起始和终止。不采用任何填充,但只适用于采用冗余编码的特殊编码环境。
目前最常用的是比特填充法和违规编码法。
3.3 差错控制
差错包括两部分:
- 信道固有的、持续存在的随机热噪声(可通过提高信噪比减少)
- 外界特定短暂原因造成的冲击噪声(不能避免,是主要的差错原因)
通常利用编码技术进行差错控制:
- 自动重传请求(Automatic Retransmission reQuest,ARQ):数据帧附加CRC,接收端检测到错误则丢弃引起超时,实现重发;
- 前向纠错(Forward Error Correction,FEC):接收端同时可以确定二进制码的错误位置并予以纠正
差错控制分为:检错编码(Error-Detecting Code)和纠错编码(Error-Correcting Code)
3.3.1 检错编码
采用了冗余编码技术,在有效数据发送前先按某种关系附上一定的冗余位,构成一个符合某一规则的码字进行发送。发送的有效数据变化时,相应的冗余位也会变化。接受端根据收到的码字是否符合规则判断是否出错。
1.奇偶校验码
由n-1位信息元和1位校验元组成。若是奇校验码,则在附加上一个校验元后,码长为n的码字中,1的个数为奇数;若是偶校验码,则在附加上一个校验元后,码长为n的码字中,1的个数为偶数。
还可分为:垂直奇偶校验、水平奇偶校验、水平垂直奇偶校验。
2.循环冗余码
Cyclic Redundancy Code,CRC。又称为多项式码,任何一个由二进制数位串组成的代码都可以和一个只含有0和1两个系数的多项式建立一一对应关系。
3.3.2 纠错编码
海明编码将码字内的位从左到右依次编号为1,2,3...n,编号为2的幂的位(1,2,4...)是校验位,其余位填入m为数据,每个校验位的取值应使得包括自己在内的一些位的集合服从规定的奇偶性。
3.4 流量控制、可靠传输机制
3.4.1 流量控制、可靠传输、窗口滑动
流量控制:对链路上的帧发送速率的控制,以使得接收方有足够的缓冲空间接受每一个帧。
如在面向帧的自动重传系统中,待确认的帧增加时,有可能超出缓冲存储空间而过载。
流量控制的基本方法是接收方控制发送方的速率。常见方式有:
- 停止-等待协议
- 滑动窗口协议
1.停止-等待
- 发送方每发送一帧都需要等待应答信号。之后才发送下一帧。
- 接收方每接收一帧,如果接收方一直不反馈应答信号,则发送方一直等待。
- 每次只允许发送一帧之后等待,造成效率降低。
滑动窗口流量控制
任意时刻发送方维护一组连续的允许发送的帧的序号,称为发送窗口;接收方也维持一组连续的允许接收的帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小WT代表还在没有收到对方确认的情况下还可以发送多少帧,在接收方只有当收到的数据帧的序号落入接收窗口内才允许收下,否则丢弃。
发送端:每收到一个确认,窗口向下一个位置滑动一个帧的位置,当发送窗口没有可发送的帧,停止发送直到收到接收方发送的端确认帧,使窗口移动。
接收端:收到数据帧后窗口向下一个位置移动一个帧的位置,并发回确认帧。
特性:
- 只有接收窗口向前滑动时,发送窗口才可能向前移动(收到后则一定向前移动)
- 停止-等待协议、后退N帧协议和选择重传协议只在窗口大小上有所差别:
- 停止-等待:发送=1,接受=1
- 后退N帧:发送>1, 接受=1(只确认一组帧的最后一个,错误则回退N帧)
- 选择重传:发送>1,接受>1
- 当接收窗口大小为1才可能有序接收
- 滑动窗口协议中,窗口大小在传输过程中是固定的(不同于传输层的滑动窗口协议)。
3. 可靠传输机制
两种实现机制:确认、超时重传
- 确认:无数据的控制帧,使得接收方可以让发送方知道哪些内容被正确接收,可将确认携带在一个恢复真中,称为捎带确认
- 超时重传:发送方在发送某个数据帧后开启一个计时器,一定时间内若没有接受到确认帧则重新发送直到成功。
自动重传请求(Auto Repeat reQuest)分为三种
- 停等式(Stop and Wait)
- 后退N帧(Go Back to N)
- 选择性重传(Selective Repeat)
后两种是滑动窗口和请求重发的结合,由于窗口尺寸足够大时帧在线路上是连续流动的,从而称为连续ARQ协议。
数据链路层中的流量控制机制和可靠传输机制是交织在一起的
3.4.2 单帧滑动窗口和停止-等待协议
停止-等待协议中,还可能出现差错:
- 数据帧丢失(收不到)-等待重发
- 到达的帧已遭破坏(收到错的)- 发送后发送端的计时器开始,若一段时间未收到则再次发送直到成功到达
- 数据帧正确而确认帧被破坏(回不去):发送方重传,接收方收到同样数据后会丢弃,并重传确认帧。发送帧交替使用0和1标识,肯定确认则分别用ACK0和ACK1来表示。
停止-等待的实现步骤:
从发送节点看:
- 从主机选取数据帧,交给发送缓存
-
V(s) <- 0
发送状态变量V(S)初始化 -
N(S) <- V(S)
将发送状态变量值写入数据帧的发送序号N(S) - 将发送缓存中的数据帧发送出去(副本仍然保存在发送缓存中)
- 设置超时计时器(选择适当的超时重传时间tout)
- 等待(7或8)
- 收到确认帧ACKn,若
n=1-V(S)
,则表示被接受帧确认;
去一个新的数据帧放入发送缓存,使得V(S)<-[1-V(S)]
(更新发送状态变量),再次进入步骤4。否则丢弃这个确认帧,转到6. - 若接收计时器时间到,检测到超时,转到4重发
从接收节点看:
-
V(R)<-0
接收状态变量初始化,值为将接收的发送帧的序号 - 等待
- 收到数据帧,用CRC等方式检错,无错则转到2接收下一个;有错则丢弃后转2
- 若
N(S) = V(R)
执行后续算法(已经收到正确的数据帧),弱不正确则丢弃后转到7(丢弃的是重复帧) - 将收到的数据帧的数据部分交给主机
-
V(R)<-[1-V(R)]
(更新接收状态变量) - 发送确认帧
ACKn
并转到2接收下一个(n=V(R)
)
由于每次只发送一个,有两个状态变量值交替发送即可,因此编号只需要1bit
。连续出现相同发送序号表示超时重传;连续出现相同接受序号表示接收端收到重复帧。
两端都需要一个缓冲区来保留副本,保证出差错后进行重传。只有接收方的ACKn
正确被发送端接收后才更新缓冲区。
3.4.3 多帧滑动窗口与后退N帧协议(GBN)
在后退N帧的ARQ中,发送方不需要在接收到上一个ACK后才发送下一个,而是连续发送。
收到错误:接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后所有未被确认的帧。接收方只允许按顺序接受帧。
确认超时:当发送方发送N个帧后发现N个帧的前一个帧在计时器超时后仍未返回确认信息,则该帧被判丢失或者出错,发送方重传出错帧和之后的N个帧。
发送端每发送完一帧就为这个帧设置超时计时器,确认帧需要指明要确认的发送帧。为了减少开销,可以在接收到N个连续正确的帧后才发送确认帧,或者只在接收方需要给发送方发送消息时才捎带一个确认帧,称为捎带确认。
每次收到ACKn表示之前的n-1帧全部正确,从而释放前面的缓存和计时器。接收端即使在错误后接收到正确帧也要全部丢弃,直到接收到回退后的重发的正确数据。此外,接收方需要重发最后一次发送的确认帧(防止已经发送过的确认帧丢失)
后退N帧协议的接收窗口为1,可以保证按序接受。如果采用n比特为帧编号,则需要发送窗口的尺寸小于2^n-1
,否则无法区分新帧和旧帧。
信道传输质量很差时,重传效率极低。
3.4.4 多帧滑动窗口与选择重传协议(SR)
3.5 介质访问控制
介质访问控制要完成的主要任务是为使用介质的每个节点隔离来自同一信道上其他节点所传的信号来协调活动节点的传输。
用来决定信道中分配的协议属于数据链路层的子层,称为介质访问控制(Medium Access Control, MAC)子层。
尤其在广播信道的通信方式,节点共享广播信道,当某两个发生通信,另外两个也进行通信,不加控制可能因为互相的干扰而失败。
常用方式:
- 信道划分(静态划分)
- 随机访问(动态分配)
3.5.1 信道划分介质访问控制
信道划分介质访问控制将使用介质的每个设备与来自同一通信信道的其他设备的通信隔离开来,将时域和频域的资源合理分配给网络设备。
多路复用:当传输介质带宽超过了传输单个信号的带宽,在同一条介质同时携带多个传输信号来提高利用率。
1. 频分多路复用(FDM)
将多路基带信号调制到不同频率载波叠加为复合的新信号。将介质带宽分割为多个带宽相同的子信道。
充分利用了带宽、技术成熟、实现容易。
2. 时分多路复用(TDM)
一条物理信道分为多个时间片,轮流给多个信号使用。但是由于计算机数据普遍有突发性,单个用户对分配到的子信道的利用率不高。
统计时分多路复用(STDM,又称异步时分多路复用)是TDM的改进,采用STDM帧不固定分配时间片,而是动态分配,提高了利用率。
3. 波分多路复用(WDM)
就是光的频分多路复用。在光纤中传输多种不同波长的光信号,各自互不干扰。由于光的频谱都处于高频段,带宽极低,可以实现很多路的复用。
4. 码分多路复用(CDM)
依靠不同编码区分各路原始信号。同时共享信道的频率和时间。可以理解为用一辆车运送多种物资(频分是不同的路运送不同物资,只共享时间;而时分是一次只运送一种物资,只共享频率)
码分多址(Code Division Multiple Access, CDMA)是一种码分复用的方式,将每个比特时间分为m个时间槽称为Chip,通常每个bit具有64或128个Chip。
每个站点指定一个唯一的m位的代码或Chip序列,当需要发送1时站点发送该序列,发送0时发送序列的反码。如编号为00011011的站点中,00011011表示1,11100100表示0。
将chip中的0表示为-1,多个站点同时发送则数据在信道线性相加。由于多个站点的Chip无论正反都相互正交,与其他Chip的内积为0,而与自身的内积为1,与自身反码的内积为-1。因此可以直接分离出指定站点传送的信息。
3.5.2 随机访问介质访问控制
不采用集中控制,所有用户都可以随机发送信息。由于总线只允许一个用户占用全部速率,当有两个或多个用户同时发送信息,会发生碰撞导致所有消息都失效。因此从用户方着手解决,规定了每个用户按一定规则重传它的帧,直到顺利通过。
常用的协议有:ALOHA、CSMA、CSMA/CD、CSMA/CD等,核心思想都是胜利者占有信道并获得发送权。因此又称争用协议。
1. ALOHA协议
Additive Link On-line HAwaii system,分为
- 纯ALOHA:任何站点可以不进行检测直接发送,若没有收到确认则等待一段时间再发送直到成功。吞吐量很低
- 时隙ALOHA:将各站的时间进行同步,并且划分等长的时隙(Slot)规定在每个时隙开始时才发送一个帧,避免了用户发送的随意性,提高利用率。效率是上者的两倍。
2. CSMA
载波侦听多路访问,Carrier Sense Multiple Access
每个站点在发送前先侦听公用信道,发现空闲才发送。
- 1-坚持CSMA(1-persistent CSMA):侦听到忙则继续侦听,直到信道空闲立即发送,由于传输延迟,对下游不利。
- 非坚持CSMA(Non-persistent CSMA):当要发送数据时才侦听信道,忙则放弃,在一定时间后重复过程。
- p-坚持CSMA(p-persistent CSMA):持续监听信道,若发现空闲则以概率p进行发送,即概率1-p为推迟到下个时间。
3. CSMA/CD
载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access / Collision Detection)
工作流程:“先听后发、边听边发,冲突停发,随机重发”
- 获得网络层数据报,准备一个以太网帧,放入适配器缓冲区
- 若侦听到信道空闲,开始传输此帧,如果忙则继续帧听
- 传输中适配器检测来自其他适配器的信号,如果未完成而检测到碰撞,则停止传输并传送一个48比特的拥塞信号
- 中止(传输拥塞信号)后,适配器采用截断二进制指数退避算法等待一段时间,返回步骤2
假设A和B向对方进行发送,设τ为单程传播时延,t=0时A进行发送,B检测到空闲,在t=τ-δ时,A发送端数据没有到达B但B开始发送,再经过δ/2即t=τ-δ/2时,二者产生碰撞,但二者都不知道。直到t=τ时(传过整个距离的时间)B才知道碰撞并停止发送。再经过τ-δ,即t=2τ-δ时A才能检测到碰撞。该方式不能进行全双工通信,只能半双工。
发送帧在最多2τ
之后(δ->0)就能知道是否碰撞,因此将此时间称为争用期(冲突窗口或碰撞窗口)。
为了保证发送数据的同时检测到可能存在的冲突,需要在发送完帧之前就能收到自己发送出去的数据,即帧的传输延时至少两倍于信号在总线的传播时延。因此所有数据帧必须有一个最小帧长的下限。任何站点收到小于该下限长度的帧都要丢弃。
最小帧长=总线传播时延*数据传输速率*2
如果已经发送了最小帧长的数据而未冲突,则表示已经抢占信道,则后续的信息都不会发生冲突。
如果发送的帧小于该长度,则需要在MAC子层在数据字段后加入一个填充字段,保证长度大于最小帧长。
冲突后不能紧接着让两方重新发送,否则容易无休止的冲突。一般利用二进制指数退避算法:
- 确定基本退避时间,一般是2τ,即争用期长度
- 定义参数k,值等于min(k,重传次数)
- 从整数集合[0,1,2...2^k-1]随机选择一个数,重传所需的退避时间就是r个基本退避时间,即2τr。
- 重传16次都不成功,则认为网络拥挤永远无法发出,抛弃此帧并向高层报告
4. CSMA/CA协议
CSMA/CD 成功用于有线连接的局域网,但无线连接的环境下不适用,尤其是碰撞检测部分,由于:
- 接收信号的强度远小于发送信号,硬件上实现碰撞检测的开销过大
- 无线通信存在“隐蔽站”,不一定能检测到所有站点
因此,用于无线网络的CSMA并非CD(Collision Detection)而是CA(Collision Avoidance),即碰撞避免,不保证完全不发生碰撞,但是尽量减少概率。
CSMA/CA同样适用二进制指数退避算法,当信号从忙变为空闲时,任何一个站要发送数据帧都需要等待一个时间间隔,并且需要进入争用窗口,计算随机退避时间一遍再次重新试图接入信道,以减少发生碰撞的概率。当且仅当信道空闲且数据帧是要发送的第一个帧,才不用退避算法。
实现碰撞避免的方式:预约信道、ACK帧、RTS/CTS帧
- 预约信道:发送方在发送数据的同事向其他站点通知需要的时间长度。
- ACK帧:所有站点在正确接受到发给自己的数据帧(除了广播帧、组播帧)后向发送方发送一个ACK帧,若接受失败则不进行任何行动。若发送方在规定时间没有收到ACK帧则说明发送失败,进行重发直到收到或者超出次数。
- RTS/CTS帧:主要用于解决隐蔽站:发送方等待一个DIFS后,先发送一个请求发送(Ready To Send)帧,接收方收到RTS后在一个SIFS之后回应一个准许发送(Clear To Send)帧申请占用信道。双方完成握手后再进行数据传递。
前两项必须在CA中实现,而第三项可选。
CA和CD的区别:
- CA可检测但不避免,CA发送同时不能检测冲突。
- CD用于总线式以太网,CA多用于无线局域网(802.11a/b/g/n)
- 检测方式不同,CD检测介质中电压,CA是能量检测、载波检测、混合检测
- 在本节点处有冲突不代表接收处有冲突,反之本节点无冲突不代表接收处无冲突
3.5.3 轮询访问介质访问控制:令牌传递协议
用户不能随机发送信息,而是通过一个集中控制的监控站,循环轮询每个节点,再决定信道分配。典型协议是令牌传递协议,使用在令牌环局域网中。
令牌传递协议中,一个令牌在各节点以某个固定次序交换。令牌是一组特殊的比特组合成的帧,环上的一个站点需要发送帧时必须等待令牌,收到后才发送帧,包括目的站地址来表示接收方。在环上的所有节点都进行转发,直到发送端帧回到始发站并由始发站撤销。
帧的目的转发帧后同时维持一个帧的副本,并通过在帧尾部设置“响应比特”来表示已经收到,当发送方收到并撤销此帧后需要释放令牌。
物理上不必成环,但逻辑上的令牌传输和帧传输路径必须成环。
适合负载很大的广播信道。既不共享时间也不共享空间,几乎属于随机介质访问。
3.6 局域网
3.6.1 基本概念、体系结构
局域网特点:
- 一个单位共有,地理范围和站点数目有限
- 所有站共享较高的总带宽
- 较低的时延、误码率
- 各站平等,而非主从
- 可以广播、组播
特定的三要素:
- 拓扑结构:星形、环形、总线形、星形+总线形
- 传输介质:双绞线、铜缆、光纤
- 介质访问控制方式:CSMA/CD(总线形),令牌总线和令牌环(环形)
三种特殊拓扑实现:
- 以太网:逻辑是总线,物理是星或拓展星
- 令牌环(IEEE 802.5):逻辑为总线型,物理是星形
- FDDI(光纤分布数字接口,IEEE 802.8):逻辑环形,物理双环
IEEE802都用于OSI的物理和数据链路层,并将数据链路层分为两个子层:逻辑链路控制LLC、媒体(介质)访问控制MAC
MAC子层有从接入到传输媒体有关的所有内容。向上屏蔽对物理层访问的差异,提供对物理层的统一访问接口,主要功能:组帧、比特传输差错检测、透明传输。物理MAC地址即用于媒体接入控制层的物理地址。
LLC与传输媒体无关,仅面向网络层提供无确认连接、面向连接、待确认无连接、高速传送四种服务类型。
目前的网卡大多只装有MAC协议而没有LLC协议。
3.6.2 以太网和IEEE 802.3
802.3是一种基带总线型局域网标准,描述物理层和数据链路层的MAC子层的实现方法。
以太网逻辑上采用总线拓扑结构,以太网所有计算机共享一条总线,信息以广播方式发送。使用了CSMA/CD方式。通过以下方式简化通信:
- 采用无连接工作方式
- 不对发送的数据帧编号,不要求接收方发送确认
即:尽最大努力交付,提供不可靠服务,差错纠正由高层完成。
以太网严格上为DIX Ethernet V2标准的局域网,但和802.3区别不大
1.以太网的介质和网卡
网卡出厂具有唯一的介质访问控制地址(MAC)地址,数据链路的所有设备都使用此地址。网卡控制着主机对介质的访问,因此也工作在物理层,但只关注比特,不关注任何地址和高层协议。
2.MAC帧
MAC地址为6字节,分为6个16进制数(都是两位数),高24bit是厂商代码,低24bit是网卡序列号。如02-60-8c-e4-b1-21
- 物理层:
[[前同步码]7B+[帧开始定界符]1B]+[MAC帧]
- MAC层:
[MAC帧] = [[目的地址]6B+[源地址]6B+[类型]2B+[数据(IP数据报)]46B-1500B+[FCS(帧检查序列)]4B]
46B:规定最小帧长为64B,减去其他部分得到;
1500B:规定如此
3.6.3 IEEE 802.11
无线局域网的一系列标准,包括802.11a/b等。指定了MAC层协议并运行在物理层标准上。采用CSMA/CA
- 有固定基础设施无线局域网(Basic Service Set,BSS):一个基本服务集包括一个基站、若干移动站,基站称为接入点(Access Point,AP),作用类似网桥。基本服务集可以孤立,也可以通过AP连到主干分配系统(Distribution System,DS)然后接入另一个基本服务集构成扩展服务集(Extended Service Set,ESS),ESS还可以通过门桥(Portal)向无线用户提供到非802.11无线局域网的接入。
- 无固定基础设施无线局域网(Ad Hoc Network,AHN):没有AP而是通过平等的移动站之间相互通信组成临时网络,各点的地位平等。
3.6.4 令牌环网基本原理 802.5
令牌环网的每一站通过电缆与环接口干线耦合器(TCU)连接,TCU的主要作用是传递所有经过的帧,为接入站发送和接收数据提供接口。TCU的两个状态:收听状态、发送状态。数据总是在TCU之间顺序依次传送。每个TCU重新产生并重新传输每一比特。
步骤如下:
- 网络空闲:只有Token帧在循环传递
- 有站点需要发送数据,获取Token后修改Token的标志位,并在令牌附加自己的数据,将令牌变为一个数据帧发送
- 数据帧沿着环路发送,中间站点一边转发一边查看目的地址,如果和自己的地址相同,则复制数据帧,准备后续处理
- 数据帧继续传输直到达到源节点,结束转发,发送方检验返回的数据帧是否有错,有错则重传
- 原站点传送完后重新产生一个令牌,交出媒体访问权限
令牌环网在物理上是星形,但是逻辑上是环形。
3.7 广域网
3.7.1 广域网基本概念
覆盖范围很广的长距离网络。是因特网的核心部分,各节点交换机的链路都是高速链路。不等于互联网,
- 互联网可以连接不同类型的网络,通常使用路由器。
- 广域网由节点交换机转发分组,主要协议在网络层。强调资源共享
- 局域网:主要协议在数据链路层。强调数据传输
PPP协议和HDLC协议是最常用的广域网数据链路层控制协议。
3.7.2 PPP协议
PPP(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,此协议应用在直接连接两个节点的链路上,主要用来通过拨号或专线建立点对点连接发送数据,使其成为各种主机、网桥、路由之间简单连接的一种共同解决方案。
组成部分:
- 链路控制协议LCP:建立、配置、测试、管理数据链路
- 网络控制协议NCP:每个不同的网络层协议用一个相应的NCP进行配置。
- 将IP数据报封装到串行链路的方法。收到最大传输单元MTU的限制
3.7.3 HDLC协议
高级数据链路控制(High-Level Data Link Control)
3.8 数据链路层设备
3.8.1 网桥概念、基本原理
两个或多个以太网通过网桥连接,成为一个范围更大的以太网。原来的以太网称为网段。
网桥工作在MAC子层,使各网段成为隔离开的碰撞域。如果将网桥换为工作在物理层的转发器,就没有过滤功能。网桥处理对象是帧;中继器和放大器处理对象是信号。
每个网段数据量为10MBps,如果使用网桥,则三个网段的最大吞吐量为30MBps,如果使用转发器,则是同一个碰撞域,使得最大吞吐量依然是10MBps。
网桥的基本特点:
- 必须具备寻址和路径选择能力,确定帧的传输方向
- 从源网络接受帧,以目的网络的介质控制协议向目的网络转发此帧
- 在不同或相同类型的LAN之间存储并转发帧,必要时进行链路层的协议转换(两个网段可以使用不同协议)
- 对接收到的帧不作任何修改,或只对封装格式做很小修改
- 可以通过帧翻译连接不同类型局域网
优点:过滤通信量、扩大物理范围、使用不同物理层、互联不同类型局域网、提高可靠性、提高性能
缺点:增加时延、MAC子层不能流量控制(没有LLC的编号机制)、不同MAC子层的网段桥接时的帧格式转换、广播风暴
网桥分类:
- 透明网桥(不选择最佳路由):接受与之连接的LAN的每一帧,到达帧的路由选择过程取决于源LAN和目的LAN:二者相同则丢弃,否则转发。若目的LAN未知则扩散此帧 。网桥按照自学习算法处理收到的帧,采用无环生成树算法。
- 源路由网桥(选择最佳路由):路由选择由发送数据帧的源站负责,网桥只根据数据真正的路由信息对帧进行接受和转发。对主机不头领,主机必须知道网桥的标识和网段位置,为了找到最佳路由,先广播一个发现帧(Discovery Frame)进行探测,目的站点也广播一个应答帧原路返回,源站借此选择最佳路由(未必是最短,而是最小时延)。之后,选定源站到目的站的帧的首部必须包含一样的最佳路由信息。
3.8.2 局域网交换机
1.基本
就是一个多端口的网桥,工作在数据链路层,将网络分为多个冲突域,为每个站点提供更高带宽
交换机对工作站是透明的,简化了网络节点的增加、移动、网路变化。可以方便的实现虚拟局域网(VLAN)
2.原理
检测从以太端口来的数据帧和目的地MAC地址,然后与系统内的动态查找表对比,若不在则加入,并发送给相应目的端口
3. 特点
- 每个端口与单个主机相连 (网桥是连接到以太网的一个网段),全双工工作
- 同时连通许多对的端口,每一对相互通信的主机都能无碰撞传输数据
- 即插即用,内部帧的转发通过自学习
- 专用交换结构芯片提高了交换速率
- 独占传输媒体的带宽
4.两种交换模式
- 直通式:只检查帧的目的地址,接收后马上传出去。缺乏智能性、安全性
- 存储转发式:现将接收到的帧缓存到高速缓存,检查正确后才查表转为输出端口发送帧。错误则丢弃。