1、链路:从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
2、数据链路:把实现通信协议的硬件和软件加到链路上
3、数据链路层以帧为单位传输和处理数据
数据链路层实现
1、封装成帧
2、差错检测
3、可靠传输
(例)
使用点对点传输的数据链路层
(1)添加帧头帧尾即封装成帧:网络层协议数据单元+帧头+帧尾
(2)在链路上以帧为单元来传输数据
(1)检错码被封装在帧尾中,如,FCS就是检错码
(2)接收方主机收到帧后,通过检错码和检错算法,可以检测帧中是否有误码
(1)接收方主机收到有误码的帧后,会将其丢弃,然后让接收方主机收到被丢弃帧的正确副本
(2)尽管误码是不能完全避免的,但若能实现发送方发送什么,接受方就收到什么,就成为可靠传输
使用广播信道的数据链路层
1、编址问题
(1)将目的地址添加到帧中一起传输
2、由于无线信道的广播天性,无线局域网仍使用共享信道技术
3、碰撞问题
(1)共享式以太网的媒体接入控制协议CSMA/CD(载波侦听多路访问/冲突检测)
(2)802.11局域网的媒体接入控制协议CSMA/CA(载波侦听多路访问/冲突避免)
交换式局域网
1、使用点对点链路和链路层交换机
2、在有线(局域网)领域已完全取代共享式局域网
封装成帧
1、帧=上层交付的协议数据单元+帧头+帧尾
2、以太网V2的MAC帧
(1)帧头:目的地址(6字节)+源地址(6字节)+类型(2字节)
(2)帧尾:FCS(4字节)
3、PPP帧
(1)帧头:标志(1字节)+地址(1字节)+控制(1字节)+协议(2字节)
(2)帧尾:FCS(2字节)+标志(1字节)
4、帧头、帧尾作用之一:帧定界
(1)PPP帧:过帧头帧尾的标志提取出帧
透明传输
1、数据链路层对上层交付的传输数据没有任何限制,就像数据链路层不存在一样
(1)面向字节的物理链路,使用字节填充(或称字符填充)的方法实现透明传输
(2)面向比特的物理链路,使用比特填充的方法实现透明传输
2、区分帧界定符:发送数据前,会对帧进行扫描,在帧中出现的帧定界符前加一个转义字符,这样就不会误判了数据中的帧定界符,即帧中只会有开始和结束两个帧定界符,其他的都是数据内容
3、区分转义字符:发送数据前,会对帧进行扫描,在帧中出现的转义字符前加一个转义字符,这样就不会误判了数据中的转义字符
4、提高帧的传输效率
(1)使帧的数据部分的长度尽可能大
(2)考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(MaximumTransferUnit)
差错检测
1、比特差错:比特在传输过程中可能会产生差错:1可能会变成0,0也可能变成1
3、数据链路层使用FCS检测是否产生误码
4、奇偶校验
(1)在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
(2)如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
(3)如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
(4)漏检率比较高
5、循环冗余校验
(1)CRC:CyclicRedundancyCheck
(2)收发双方约定好一个生成多项式G(x)
(3)发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输
(4)接收方通过生成多项式来计算收到的数据是否产生了误码
(5)检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
(6)要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用
(7)漏检率非常低,虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
(8)在计算机网络中,通常采用检错重传方式来纠正传输中的差错,或者仅仅是去弃检测到差错的帧,取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务
生成多项式
1、必须包含最低次项
2、常用
(1)CRC-16=x16+x15+x2+1
(2)CRC-CCITT=x16+x12+x5+1
(3)CRC-32=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
1、数据:101001
2、生成多项式G(x)=x3+x2+1
3、发送方
(1)构造被除数:待发送信息后面添加生成多项式最高次数个0:"101001"+"000"=101001000
(2)构造除数:生成多项式各项系数构成的比特串:1101
(3)进行二进制除法
(4)商:仅作为标记,防止计算过程中对错位
(5)余数/冗余码:1,余数的位数应该与生成多项式最高次数相同,若位数不够,则在余数前补足0凑足位数:001
(6)发送:待发送数据(101001)+冗余码(001)=101001001
4、接收方
(1)构造被除数:接收到的数信息:101001001
(5)余数:0,余数为0,可认为传输过程无误码;余数不为0,可认为传输过程产生误码
可靠传输
1、数据链路层向上层提供的服务类型
(1)不可靠传输服务:仅仅去弃有误码的帧,其他什么也不做
(2)可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
2、一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理
3、无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务
4、比特差错只是传输差错中的一种,从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序、分组重复
5、分组丢失、分组失序、分组重复,一般不会出现在数据链路层,而会出现在其上层
6、可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输
(1)运输层:TCP向其上层提供面向连接的可靠传输服务,UDP向其上层提供无连接、不可靠传输服务
(2)网络层:IP向其上层提供无连接、不可靠传输服务
(3)网络接口层:802.11无线局域网要求数据链路层实现可靠传输,以太网不要求数据链路层实现可靠传输
7、实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求
8、实现机制,以下协议可以应用到计算机网络体系结构的各层协议中
(1)停止-等待协议(SW:Stop-and-Wait)
(2)回退N帧协议(GBN:Go-Back-N)
(3)选择重传协议(SR:SelectiveRepeat)
停止-等待协议
1、SW:Stop-and-Wait
2、通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议(ARQ:AutomaticRepeatreQuest),重传的请求是自动进行,不需要接收方显式地请求
3、发送方每发送完一个数据分组后,就停止发送下一个数据分组,等待来自接受方的确认分组(ACK)或否认分组(NAK),若收到确认分组,则可继续发送下一个数据分组,若收到否认分组,则重传
4、接收超时
(1)接收方收不到数据分组,就不会发送ACK分组或NAK分组,如果不采取其他措施,发送方就会一直处于等待接收方ACK分组或NAK分组的状态
(6)对于误码率较高的点对点链路,接收方检测到数据分组有误码时,使发送方尽早重传,也可以给发送方发送NAK分组
5、分组重复
(1)接收方正确接收到数据分组,给发送方发送ACK分组,但ACK分组丢失,触发超时重传
(2)解决:给每个分组带上序号,接收方丢弃重复数据分组,给发送方发送针对该分组的ACK分组
(3)对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同即可,只用一个比特来编号,即编号0、1
(4)为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,只用一个比特来编号,即编号0、1
(5)数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
6、信道利用率
(1)假设收发双方之间是一条直通的信道,忽略接收方对数据分组的处理时延、发送方对ACK分组的处理时延
(3)TD:发送方发送数据分组所耗费的发送时延
(5)TA:接收方发送ACK分组所耗费的发送时延
(6)信道利用率U=TD/(TD+RTT+TA)
(7)TA一般都远小于TD,可以忽略,当RTT远大于TD时,信道利用率会非常低
(8)若出现重传,则对于传送有用的数据信息来说,信道利用率还会降低
回退N帧协议
1、GBN:Go-Back-N
2、发送方
(1)发送窗口尺寸:WT取值范围:1 (2)n是构成分组序号的比特数量 (3)WT=1时,等同于停止-等待协议 (4)WT>2n-1时,接收方无法分辨新、旧数据分组 (5)发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去 (6)发送方只有收到对已发送数据分组的确认时,发送窗口才能向前相应滑动 (7)发送方收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定 (8)发送方发送窗口内某个已发送的数据分组产生超时重发时,其后续在发送窗口内且已发送的数据分组也必须全部重传,即回退N帧 3、接收方 (1)接收方的接收窗口尺寸:WR取值范围:WR=1,因此接收方只能按序接收数据分组 (2)接收方只接收序号落在接收窗口内,且无误码的数据分组,接收后,将接收窗口向前滑动一个位置,与此同时给发送方发回相应的确认分组 (3)为了减少开销,接收方不一定每收到一个按序到达,且无误码的数据分组就给发送方发回一个确认分组 (4)累积确认:在连续收到好几个按序到达,且无误码的数据分组后(由具体实现决定),针对最后一个数据分组发送确认分组,ACKn表示序号为n及以前的所有数据分组都已正确接收 (5)捎带确认:在接收方有数据分组要发送时(即发送方、接收方互换角色),接收方(原)在发送的数据中,捎带对之前按序接收,且无误码的数据分组的ACK分组 (6)接收方收到未按序到达的数据分组,除丢弃外,还要对最近按序接收的数据分组进行确认 4、回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议 5、在协议的工作过程中,发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议 6、缺点 (1)由于回退N帧协议的特性,当通信线路质量不好时,即较多误码、丢失,其信道利用率并不比停止-等待协议高 (2)回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组 (3)一个数据分组的误码,就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码),这必然会造成发送方对这些数据分组的超时重传,极大浪费通信资源 选择重传协议 1、SR:SelectiveRepeat 2、设法只重传出现误码的数据分组,接收窗口尺寸WR应大于1,以便接收方先收下失序到达但无误码并,且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层 3、为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认 4、发送方 (6)发送方只有按序收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;若收到未按序到达的确认分组时,对其进行记录,以防正其相应数据分组的超时重发,但发送窗口不能向前滑动 5、接收方 (1)接收窗口尺寸:WR取值范围:1 (2)WR=1时,等价于停止-等待协议 (3)WR>WT时,无意义 (4)接收方可接收未按序到达,但没有误码并且序号落在接收窗口内的数据分组 (5)为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认 (6)接收方只有在按序接收数据分组后,接收窗口才能向前相应滑动 点对点协议 1、PPP:Point-to-PointProtocol,目前使用最广泛的点对点数据链路层协议 2、PPP协议已成为因特网的正式标准[RFC1661,RFC16621] 3、处于数据链路层,在点对点链路传输中,各种协议的数据报提供了一个标准方法 4、主要构成的三部分 (1)对各种协议数据报的封装方法(封装成帧) (2)链路控制协议LCP:用于建立、配置、测试数据链路的连接 (3)一套网络控制协议NCPs:其中的每一个协议支持不同的网络层协议 5、使用PPP协议的数据链路层向上提供可靠传输服务 PPP帧格式 1、标志(Flag):PPP帧的界定符,取值0x7E 2、地址(Address):取值0xFF,预留,目前没有作用 3、控制(Control):取值0x03,预留,目前没有作用 4、协议(Protocol):指明帧的数据部分送交哪个协议处理 (1)0x0021:PPP帧的信息字段就是IP数据报 (2)0xC021:信息字段是PPP链路控制数据 (3)0x8021:表示这是网络控制数据 (4)0xC023:信息字段是安全性认证PAP (5)0xC025:信息字段是LQR (6)0xC223:信息字段是安全性认证CHAP 5、顺检验序列(FrameCheckSequence):CRC计算出的校验位 PPP透明传输 1、面向字节的异步链路:采用插入转义字符的字节填充法 (1)发送方的处理 (2)出现的每一个7E(PPP帧的定界符)字节转变成2字节序列(7D,5E) (3)出现的每一个7D(转义字符)字节转变成2字节序列(7D,5D) (4)出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上0x20 (5)接收方的处理:进行反变换即可恢复出原来的帧的数据部分 2、面向比特的同步链路,采用插入比特0的比特填充法 (1)发送方的处理:对帧的数据部分进行扫描(一般由硬件实现),只要发现5个连续的比特1,则在后面填充1个比特0 (2)接收方的处理:对帧的数据部分进行扫描(一般由硬件实现),只要发现5个连续的比特1,则删除后面的1个比特0 PPP工作状态 1、以拨号接入为例 2、开始时,静止状态:开始时/结束时,不存在物理层连接 3、检测到调制解调器的载波信号,并建立物理层连接 4、建立状态:链路控制协议LCP开始协商一些配置选项,若协商成功,进入鉴别状态;若协商失败,进入静止状态 (1)最大帧长 (2)鉴别协议:无需鉴别、口令鉴别协议PAP、挑战握手鉴别协议CHAP等 5、鉴别状态:无需鉴别/鉴别成功,进入网络状态;若鉴别失败,进入终止状态 6、网络状态:进行NCP配置,配置完成,进入打开状态 (1)PPP链路的两端,通过互相交换网络层特定的NCP分组,进行NCP配置 (2)如果在PPP链路上运行的是IP协议,则使用IP控制协议IPCP,对PPP链路的每一端配置IP模块(如分配IP地址) 7、打开状态:只要处于此状态,就可以进行数据通信,出现故障/链路其中一端发出终止请求,进入终止状态 8、终止状态:载波停止后,进入静止状态 媒体接入控制 1、MAC:MediumAccessControl 2、协调多个发送和接收站点对一个共享传输媒体的占用 3、静态划分信道 (1)预先固定分配信道 (2)不灵活,对于突发性数据,传输信道利用率低 (3)通常在无线网络的物理层便用,而不是在数据链路层中使用 (4)分类:频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA) 4、动态接入控制 (1)受控接入(淘汰):集中控制、分散控制 (2)随机接入:所有站点通过竞争,随机地在信道上发送数据,如果恰巧有两个或更多的站点在同一时刻发送数据,则信号在共享媒体上就要产生碰撞(即发生了冲突),共享式以太网采用的就是随机接入 5、点对点链路和链路层交换机的交换式局域网,在有线领域已完全取代了共享式局域网 6、由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术 信道复用 1、复用:通过一条物理线路同时传输多路用户的信号 2、当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽 3、频分复用 (1)FDM:FrequencyDivisionMultiplexing,所有用户同时占用不同频带资源并行通信 (2)传输线路的频带资源划分为多个子频带,形成多个子信道 (3)各子信道之间留出隔离频带,避免子信道之间干扰 (4)当多路信号输入一个多路复用器时,复用器将每一路信号调制到不同频率的载波上 (5)接收端由相应的分用器,通过滤波将各路信号分开,合成的复用信号恢复为原始多路信号 4、时分复用 (3)每对用户只在所分配的时隙里使用线路传输数据 (5)每一个用户所占用的时隙是周期性出现的,其周期就是时分复用帧的长度 5、波分复用 (1)WDM:WavelengthDivisionMultiplexing,光的频分复用 (2)相同波长的多路光载波,经光调制器,转为不同波长 (3)经过光复用器/合波器,在光纤中传输,多个掺铒光纤放大器,放大衰减的光信号 (4)光分用器/分波器,将不同波长的多路光载波,转为相同波长 6、码分复用 (1)CDM:CodeDivisionMultiplexing (2)主要用于多址接入,更常用的名词是码分多址(CDMA:CodeDivisionMultipleAccess) (4)由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰 7、不严格区分复用、多址,简单理解如下 (1)复用:将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰,从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分 (2)多址(多点接入):处理动态分配信道给用户,用户仅仅暂时性地占用信道,所有的移动通信系统基本上都属于这种情况,相反,在信道永久性地分配给月户的应用,对于无线广播、电视广播站,多址是不需要的 8、码分多址 (1)CDMA:CodeDivisionMultipleAccess (3)直接序列扩频(DSSS):使用CDMA的每一个站,被指派一个唯一的mbit码片序列(ChipSequence) (4)一个站如果要发送比特1,则发送它自己的mbit码片序列 (5)一个站如果要发送比特0,则发送它自己的mbit码片序列的二进制反码 (6)码片序列中,比特0为-1,比特1为+1 9、码片序列的挑选原则 (1)分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列 (2)分配给每个站的码片序列必须相互正交(规格化内积为0) (3)令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列 (4)两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0,即向量S和T中对应分量相乘,然后相加,再除以向量中分量的数量 (5)任何一个码片向量,与自身的规格化内积为1;和其他各站码片反码的向量的内积为0,与自身反码的向量的内积为-1 (6)已知其他各站特有的码片序列,对接收的叠加信号进行判断 (7)叠加信号的码片向量相加,与指定的发送站的码片序列,进行规格化内积运算 (8)结果为0,表示指定站发送比特1;结果为1,表示指定站发送比特0;结果为-1,表示指定站未发送 随机接入 1、CSMA/CD协议:用于总线局域网 2、CSMA/CA协议:用于无线局域网 载波监听多址接入/碰撞检测 1、CSMA/CD:CarrierSenseMultipleAccess/CollisionDetection 2、载波监听 (1)CS:CarrierSense (2)先监听后发送:每一个站在发送帧之前,先要检测下总线上是否有其他站点在发送帧 3、多址接入 (1)MA:MultipleAccess (2)多个站连接在一条总线上,竞争使用总线 4、碰撞检测 (1)CD:CollisionDetection (2)每一个正在发送帧的站,边发送边检测碰撞 5、强化碰撞 (1)当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外 (2)继续发送32比特/48比特的人为干扰信号(JammingSignal) (3)确保有足够多的碰撞信号,使所有站点都能检测出碰撞 6、帧发送流程 7、帧接收流程 争用期/碰撞窗口 1、假设以太网单程端到端传播时延τ (1)t=0时,A检测到信道空闲,发送数据 (2)t=τ-δ时,B检测到信道空闲,发送数据 (3)t=τ-δ/2时,发生碰撞 (4)t=τ时,B检测到碰撞,停止发送 (5)t=2τ-δ时,A检测到碰撞,停止发送 2、争用期/碰撞窗口:以太网端到端往返传播时延2τ 3、主机最多经过2τ(即δ->0)的时长,就可以检测到本次发送是否遭受碰撞 4、经过争用期后,还没有检测到碰撞,才能肯定这次发送不会发生碰撞 6、显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大,因此,共享式以太网不能连接太多的主机,使用的总线也不能太长 最小帧长 2、最小帧长=争用期*数据传输速率 (1)如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节 4、以太网的最小帧长,确保了主机可在帧发送完成之前,就检测到该帧的发送过程中是否遭遇了碰撞 (1)如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞 (2)如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此,长度小于64字节的帧,都是由于碰撞而异常中止的无效帧 最大帧长 1、目的 (2)防止接收方缓冲区产生溢出 2、类别 (1)以太网V2的MAC帧:最大长度为1518字节 (2)插入VLAN标记后的802.1Q帧:最大长度为1522字节 截断二进制指数退避算法 (2)随机数r:r从离散的整数集合{0,1,……,(2k-1)}中随机选择一个数,k=min(重传次数,10) 2、若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道 4、当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告 信道利用率 (1)2τ*n:发生n次碰撞,进行n次退避,争用期2τ (2)发送时延:T0 (3)传播时延:τ 2、理想情况 (1)各主机发送帧都不发生碰撞 (2)总线一旦空闲,就有某个主机立即发送帧 (4)极限信道利用率Smax=T0/(T0+τ)=1/(1+a) (5)a值尽量小,提高信道利用率,以太网端到端的距离受限制,以太网帧的长度尽量长 载波监听多址接入/碰撞避免 1、CSMA/CA:CarrierSenseMultipleAccess/CollisionAvoidance 2、在无线局域网中,仍然可以使用CSMA,即在发送帧之前先对传输媒体进行载波监听,若发现有其他站在发送帧,就推迟发送以免发生碰撞 3、在无线局域网中,不能使用CD (1)由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度,往往会远远小于发送信号的强度,如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高 (2)即使能够在硬件上实现无线局域网的碰撞检测功能,但由于存在隐蔽站问题,进行碰撞检测的意义也不大 4、隐蔽站问题:未能检测出信道上其他站点信号 (1)A和C都检测不到对方的无线信号 (2)A和C都给B发送帧时,产生碰撞 (3)A和C无法检测到碰撞 5、802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能 6、由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收 7、802.11的MAC层标准定义了两种不同的媒体接入控制方式 (1)分布式协调功能(DCF:DistributedCoordinationFunction):没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式 (2)点协调功能(PCF:PointCoordinationFunction):使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用 帧间间隔 2、帧间间隔的长短,取决于该站点要发送的帧的类型 3、常用的两种帧间间隔 (2)DCF帧间间隔:DIFS(128us),比短帧间间隔SIFS要长得多,在DCF方式中,用来发送数据帧和管理帧 4、作用 (1)源站检测到信道空闲,且有帧要发送,则在等待帧间间隔DIFS后发送数据帧:考虑到有其他站需要发送高优先级的帧, 退避算法 2、不使用的情况:当站点检测到信道是空闲的,并且所发送的数据帧,不是成功发送完上一个数据帧之后,立即连续发送的数据帧 3、必须使用的情况 (1)在发送数据帧之前,检测到信道处于忙状态时 (2)在每一次重传一个数据帧时 信道预约 1、802.11标准允许要发送数据的站点对信道进行预约 2、目的:尽可能减少碰撞的概率和降低碰撞的影响 3、过程 4、除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后,就推迟接入到无线局域网中,保证了源站和目的站之间的通信不会受到其他站的干扰 5、如果RTS帧发生碰撞,源站就收不到CTS帧,需要执行退避算法重传RTS帧 6、RTS帧、CTS帧很短,发送碰撞的概率、碰撞产生的开销、本身的开销都很小 7、802.11标准规定了3种情况,选择使用RTS帧、CTS帧 (1)使用RTS帧、CTS帧 (2)不使用RTS帧、CTS帧 (3)只有当数据帧的长度超过某一数值时,才使用RTS帧、CTS帧 虚拟载波监听 MAC地址、IP地址、ARP协议 1、数据链路层 (1)MAC地址:以太网的MAC子层所使用的地址 2、网络层 (1)IP地址:TCP/IP体系结构的网络层所使用的地址 (2)ARP协议:TCP/IP体系结构的网络层,作用:已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址 MAC地址 1、MAC:MediaAccessControl,媒体接入控制 2、当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址 (1)MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址 (2)MAC地址也被称为物理地址,不意味着MAC地址属于网络体系结构中的物理层 3、在每个主机发送的帧中,必须携带标识发送主机和接收主机的地址 4、一般情况下,用户主机包含两个网络适配器:有线局域网适配器(有线网卡)、无线局域网适配器(无线网卡),每个网络适配器都有一个全球唯一的MAC地址,而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址,综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识 5、IEEE802局域网的MAC地址格式:扩展的唯一标识符EUI (1)从左至右:第一字节到第六字节,每个字节b7位到b0位 (2)组织唯一标识符OUI:前三个字节,生产网络设备商向IEEE的注册管理机构,申请一个/多个OUI (3)网络接口标识符:后三个字节,由获得OUI的厂商自行随意分配 (4)每4比特写成一个十六进制字符,共12个字符 (5)标准表示法:每两个字符为一组,共六组,组之间用-连接,如:Windows (6)其他表示法:每两个字符为一组,共六组,组之间用:连接,如:Linux、macOS、Android;每四个字符为一组,共三组,组之间用.连接,如:PacketTrace (7)第一字节:b0位:取0时,表示单播地址;取1时,表示多播地址(组播地址);b1位:取0时,表示全球管理;取1时,表示本地管理 本地管理多播地址:用户对主机进行软件配置,以表明其属于哪些多播组 若剩余46位全为1,即为广播地址FF-FF-FF-FF-FF-FF (8)发送顺序:字节:第一字节->第六字节;字节内比特:b0位->b7位 IP地址 1、因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息 (1)网络编号:标识因特网上数以百万计的网络 (2)主机编号:标识同一网络上不同主机,或路由器各接口 2、MAC地址不具备区分不同网络的功能 (1)如果只是一个单独的网络,不接入因特网,可以只便用MAC地址 (2)如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用 3、数据包转发过程中IP地址与MAC地址的变化情况 (1)源IP地址和目的IP地址保持不变 (2)源MAC地址和目的MAC地址逐个链路(或逐个网络)改变 ARP协议 1、每台主机都有一个ARP高速缓存表,记录IP地址和MAC地址对应关系 (1)动态类型:主机自动获取,生命周期默认为两分钟,生命周期结束时,自动删除该记录 (2)静态类型:用户或网络维护人员手工配置记录,不同OS,生命周期不同 2、工作原理 (1)源主机在自己的ARP高速缓存表中,查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中) (2)目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址 (3)源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机 3、作用范围:逐段链路或逐个网络使用 4、除ARP请求和响应外,ARP还有其他类型的报文,例如,用于检查IP地址冲突的“无故ARP、免费ARP” 5、ARP没有安全验证机制,存在ARP欺骗(攻击)问题 集线器、交换机 1、集线器 (1)使用集线器的以太网在逻辑上仍是一个总线网(共享总线式以太网),各站共享总线资源,属于同一个碰撞域和广播域,使用的还是CSMA/CD协议 (2)集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测,由各站的网卡检测 (3)集线器一般都有少量的容错能力和网络管理功能,例如,若网络中某个网卡出了故障,不停地发送帧,此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作 (4)对接收到的信号进行放大、转发 2、以太网交换机 (1)通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般以全双工方式工作 (2)具有并行性,能同时连通多对接口,使多对主机能同时通信,每个接口是一个独立的碰撞域,无碰撞(不使用CSMA/CD协议) (3)一般都具有多种速率的接口 (4)在数据链路层(包括物理层)工作,它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧 (5)是一种即插即用设备,刚上电启动时其内部的帧交换表是空的,随看网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表 (6)帧的两种转发方式:存储转发;直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否有差错) (7)交换式以太网:交换机可以根据MAC地址过滤帧,即隔离碰撞域,交换机隔离碰撞域但不隔离广播域(VLAN除外) 以太网交换机自学习和转发帧的流程 1、假设各主机知道网络中其他各主机的MAC地址,即无需进行ARP 2、自学习:收到帧后,登记到交换机的帧交换表,内容为帧的源MAC地址及进入交换机的接口号 3、根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况 (1)明确转发:交换机知道应当从哪个(或哪些)接口转发该帧页(单播,多播,广播),即交换机的帧交换表,存在目的主机的MAC地址 (2)盲目转发/泛洪:交换机不知道应当从哪个端口转发帧,只能通过,除进入交换机的接口外,其他所有接口转发 (3)明确丢弃:交换机知道不应该转发该帧,将其丢弃,即两台主机在同一碰撞域(同一总线、同一交换机接口) (1)交换机的接口改接了另一台主机 (2)主机更换了网卡 以太网交换机生成树协议STP 1、只添加冗余链路:提高以太网的可靠性,但有负面效应:形成网络环路 (1)广播风暴:大量消耗网络资源,便得网络无法正常转发其他数据帧 (2)主机收到重复的广播帧:大量消耗主机资源 (3)交换机的帧交换表震荡(漂移) 2、使用生成树协议STP(SpanningTreeProtocol),增加冗余链路,提高网络可靠性,同时避免网络环路 (1)不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路) (2)最终生成的树型逻辑拓扑要确保连通整个网络 (3)当首次连接交换机或网络物理拓扑发生变化时(可能是人为改变或故障),交换机都将进行生成树的重新计算 网络中频繁出现广播信息 1、TCP/IP协议栈中的很多协议都会使用广播 (1)地址解析协议ARP(已知IP地址,找出其相应的MAC地址) (2)路由信息协议RIP(一种小型的内部路由协议) (3)动态主机配置协议DHCP(用于自动配置IP地址) 2、NetBEUI:Windows下使用的广播型协议 3、IPX/SPX:Novell网络的协议栈 4、AppleTalk:Apple公司的网络协议栈 5、广播域弊端 (1)广播风暴 (2)难以管理和维护 (3)潜在安全问题 6、分割广播域 (1)使用路由器,但成本较高 (2)虚拟局域网 虚拟局域网 1、VLAN:VirtualLocalAreaNetwork 2、将局域网内的设备划分成与物理位置无关的逻辑组,这些逻辑组具有某些共同的需求 3、功能 (1)能够处理带有VLAN标记的帧 (2)交换机各端口可以支持不同端口类型 IEEE802.1Q帧/DotOneQ帧 1、对以太网的MAC帧格式进行了扩展,在源MAC地址、数据载荷之间,插入4字节的VLAN标记 2、VLAN标识符VID:VLAN标记的最后12比特,它唯一地标志了以太网帧属于哪一个VLAN (1)VID取值范围:0~4095(0~212-1) (2)0和4095都不用来表示VLAN,因此用于表示VLAN的VID有效取值范围:1~4094 3、802.1Q帧是由交换机来处理,而不是用户主机来处理 (1)打标签:当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记,转变为802.1Q帧 (2)去标签:当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记,转变为普通以太网帧 交换机端口 1、交换机各端口的缺省VLANID (1)思科交换机上称为NativeVLAN,即本征VLAN (2)在华为交换机上称为PortVLANID,即端口VLANID,简记为PVID (3)交换机的每个端口有且仅有一个PVID 2、端口类型 (1)Access (2)Trunk (3)Hybrid 3、Access端口 (1)一般用于交换机与用户计算机互连 (2)只能属于一个VLAN (3)PVID值与端口所属VLANID相同(默认为1) (4)接收处理方法:一般只接受“未打标签”的普通以大网MAC帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记学段,字段中的VID取值与接收端口的PVID取值相等 (5)发送处理方法:若帧中的VID与发送端口的PVID相等,则“去标签”并转发该帧;否则不转发 4、Trunk端口 (1)一般用于交换机之间,或交换机与路由器之间的互连 (2)可以属于多个VLAN (3)用户可以设置Trunk端口的PVID值,默认情况下,Trunk端口的PVID值为1 (4)发送处理方法:对VID等于发送端口的PVID的帧,则“去标签”再转发;对VID不等于发送端口的PVID的帧,直接转发 (5)接收处理方法:接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与接收端口的PVID取值相等;直接接收已打标签的帧 (6)互连的Trunk端口的PVID值必须相等,否则会造成转发错误 5、Hybrid端口 (1)既可用于交换机之间,或交换机与路由器之间的互连,也可用于交换机与用户计算机之间的互连 (3)用户可以设置Hybrid端口的PVID值,默认情况下Hybrid端口的PVID值为1 (3)发送处理方法:查看帧的VID是否在发送端口的“去标签”列表中,若存在,则“去标签”后再转发;若不存在,则直接转发 (4)接收处理方法:接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与接收端口的PVID取值相等;直接接收已打标签的帧