计算机网络-数据链路层-目录
数据链路层
一、使用点对点信道的数据链路层
1.1.数据链路层所处的地位
在主机与主机通过互联网通信时数据链路层所处的地位,如图所示:
在研究数据链路层的问题时,我们可以只关心协议栈中水平方向的个数据链路层,因此我们可以想象成数据就是在数据链路层从左向右水平传送,如下图所示:
1.2.数据链路和帧
·链路和数据链路
注意!!!链路和数据链路并不是一回事
(1)链路(link):从一个结点到相邻结点的一段物理线路(有线或者无线),中间没有其他的交换结点。
(2)数据链路(Data Link):需要在一条线路上的传送数据时,除了必须有一条物理链路外,还必须有一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
物理链路+协议=数据链路
那么,如何实现这些协议呢?(协议,曾叫做通信规程Procedure)
现在最常用的方法是用网络适配器来实现协议
·帧(数据链路层协议数据单元)
数据链路层的协议数据单元——帧(Frame)
网络层协议数据单元就是IP数据报
在数据链路层上我们可以想成帧是沿着两个数据链路层之间的**水平方向**把帧直接发送给对方
1.3.封装成帧
物理层以比特流的形式在物理链路上传输
数据链路层以帧为单位传输和处理数据
·帧定界(正确识别)
为了保证正确的识别每一个帧,我们需要进行帧定界
将网络层的数据报前面和后面分别添加上首部和尾部, 封装成一个完整的帧。首部和尾部作用之一就是进行帧定界。
·最大传送单元(考虑差错)
为了提高帧的传输效率,应使帧的数据部分长度的上限尽可能大些,但是考虑到差错控制等因素,每一种链路层协议都规定了帧的数据部分长度上限——最大传送单元
·帧定界的方法
(1)在传输的帧和帧之间插入时间间隔(不一定适用于所有场合)
(2)在帧的首部设一帧长度字段来定位一个帧的结束和下一个帧的开始(如果帧长度字段在传输中出现差错,会导致后面的一系列帧无法正确定界,因此较少使用)
常用的实现帧定界的方法是在每个帧的开始处和结束处添加特殊的帧定界标志(帧定界符)
问题:在传输的过程中如果数据部分的某部分与帧定界符一样,接收方就会错误的认为“找到了帧的边界”,从而收下了不完整的帧。
那么如何解决这个问题呢?
我们希望链路层提供的是一种“透明传输”的服务
·透明传输
(1)字符填充(Character Stuffing)
在数据中出现的标记字符前插入一个转义字符。
(2)比特填充(Bit Stuffing)
点对点协议(Point to Point Protocol,PPP),以后统一用PPP来讲解
PPP使用"01111110"作为帧定界符,由于帧长度不再要求必须是真个字节,因此可以采用**开销更小的比特填充**来实现透明传输。
PPP采用零比特填充法
①只要发现5个连续1,则立即填入一个0。因此经过这种零比特填充后的数据,就可以保证不会出现6个连续1。②在接受的时候,每当发现5个连续1时,就将这5个连续1后的一个0删除,以还原成原来的比特流。
问题:现实的通信链路都不是理想的,因此比特在传输的过程中可能会差生差错:1可能会变成0,0可能会变成1。
因此我们需要进行差错检测
·差错检测
(1)奇偶检验
奇偶校验码不能正常检错。即检错率只有 50%
奇校验
统计源数据为1的位数有n个,最后计算n+1,假如为奇数,则奇校验位为1,假如n+1为偶数,则奇校验位位0
偶校验
统计源数据为1的位数有n个,最后计算n+1,假如为奇数,则偶校验位为0,假如n+1为偶数,则偶校验位1
(2) 循环冗余校验(Cyclic Redundancy Check,CRC)
具有纠错功能, 只是数据链路层仅使用了它的检错功能。
此处参考文章: 知乎|史上解释CRC最清楚的文章
CRC的目的是保证数据的完整性,其方法是在发送数据的后面再增加多余的若干位数据,接收方使用同样的CRC计算方法,检查接收到的数据CRC是否为0:
- 如果为0,则表示数据是完整的,接收方可以开开心心的去处理这个数据。
- 如果不为0,则表示数据不完整/出错,接收方就需要处理下这个数据(一般是丢弃/要求重发)。
那么CRC的核心算法就是如何通过一堆“发送数据”,来计算“多余的若干数据”。
CRC采用的策略是用除法求余数,这就是CRC算法的本质
不同于十进制的除法运算,CRC用的是二进制的除法运算,二进制的除法运算,属于模二运算,模二运算的特点是:没有进位。
-
模二加法:0+0=0 0+1=1 1+0=1 1+1=0
-
模二减法:0-0=0 0-1=1 1-0=1 1-1=0
-
模二乘法:0x0=0 0x1=0 1x0=0 1x1=1
在模2算术中,加法不进位,减法不借位。等价于按位异或(XOR),乘以2和除以2等价于左/右移位。
由于D · 2r XOR R = n · G,即D · 2r = n · G XOR R ,因此可以利用下面的公式求余数
R = D ⋅ 2 r m o d G R = D \cdot 2^r \mod G R=D⋅2rmodG
下面是具体流程
注意:G(X)=X3+X2+1表示生成式G = 1101
现在广泛使用的生成多项式G(X)有以下几种:
·可靠传输
可靠传输为了做到:发送端发送什么,对应的接收端就收到什么。
下面介绍3种协议来实现可靠传输
(1)停止等待协议(SW协议)
收到一个正常分组时, 回复一个ACK; 发现错误则回复NAK, 并使发送方重发, 发送方每发送一个分组必须停下来等待接受确认后才能发下一个分组。 为防止确认分组丢失, 可以采用超时重传机制。 为防止重复接受, 发送带序号的帧。
一、确认、否认和重传
文字解释(可以直接看图理解):发送方每发送一个数据分组后就停止发送下一个数据分组,等待来自接收方的确认分组或否认分组:如果收到确认分组,则可继续发送下一个数据分组;若收到否认分组,则重发之前发送的那个数据分组。这样就实现了发送方发送什么接收方最终就能收到什么(即可靠传输)。
二、超时重传
文字解释(可以直接看图理解):接收方收不到数据分组,就不会发送ACK或NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。一般可将重传时间选为略大于从发送方到接收方的平均往返时间
三、确认丢失
文字解释(可以直接看图理解):接收方发送的确认或否认分组可能丢失,导致发送方超时重传。若重传分组被接收方收到,需判断是否重复。为此,每个分组需带有序号。在停止-等待协议中,用一个比特(序号0和1)编号即可。接收方依序号判断分组是否重复,并发送确认分组,避免发送方再次超时重传。发送方收到确认后,可发送下一个序号的分组
四、确认迟到
文字解释(可以直接看图理解):由于往返时间的不确定性,有可能一个迟到的确认导致发送方“过早超时”。过早超时会使发送方收到重复的确认分组,发送方应该丢弃重复的确认分组,针对这种情况确认分组也得使用序号。
总结:这类通过确认和超时重传机制实现的可靠传输协议,常称为自动重传请求(Automatic Repeat reQuest, ARQ)协议。
注意:发送方发送完一个分组后,必须暂时保留已发送的分组的副本(为重传时使用)只有在收到相应的确认后才能清除该分组副本。
(1.5)停止等待协议的信道利用率
信道利用率公式如下:
- 当RTT远大于分组发送时间TD时,信道的利用率就会非常低
- 当RTT远小于分组发送时间TD时,信道的利用率还是非常高的
当RTT相对较大的情况下,为了提高传输效率不适合使用SW协议,因此可以使用流水线传输方式
(2)回退N帧协议(Go-Back-N,GBN)
首先介绍流水线传输:
可以连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认,这样可使信道上一直有数据不间断的在传送。
问题:如果发送方一直不间断的发送分组可能会使接收方或网络来不及处理这些分组,从而导致分组的丢失。这是对通信资源的严重浪费,因此我们得采取措施
回退N帧(Go-Back-N, GBN)协议可以限制
GBNN协议在流水线传输的基础上利用发送窗口来限制发送方连粗发送分组个数,是一种连续ARQ协议。
接下来我们看看流水线协议和滑动窗口协议到底是怎么样的,如图所示:
GBN协议的工作过程:
假设窗口大小为4,那么工作流程应该如下图所示:
GBN工作的时候需要注意三点:
第一点:接收方只按序接受分组,举一个通俗易懂的例子:导员要小明按照学号把表交上去,1-10号都是按顺序发给老师的的,后面由于操作不当,网上发送的时候不小心乱了,这时候老师会先拿1-10号的表并且要小明重新按顺序发送后面的表,这个时候前面的乱表就可以抛弃了
那么回到这里,如下图所示:
在出现差错的数据分组DATA2之后接收到了DATA3,4,5但是必须丢弃,因为在没用正确接收到DATA2之前后面的都是失序到达的,当然这个时候除了丢弃后面的以外,还要对最近接收的分组进行确认,然后开始向前滑动接收窗口
第二点:发送方采用超时机制来重传出现差错或丢失的分组
第三点:接收方采用累计确认的方式。
从以上三点可以看出GBN与SW的区别就是修改了发送方的算法,对接收方没变化
这个时候小明不高兴了,我就中间乱了一点,为什么要我把后面的全部重传一遍???这不是浪费时间?
因此为了提高效率,我们只选择出现差错的分组进行重传。
(3)选择重传协议(Selective Repeat, SR)
选择重传协议就消除了小明的困扰,只重传出错的部分,没有错误的部分先留着,等到错误的传完了没有出错的再接上
这样就好理解了,我们不在采取累计确认的方法
对面每个正确接收到的分组进行逐一确认(选择确认),显然SR比GBN要复杂一些,接收方需要有足够的缓存来暂存失序到达的分组
例如发送窗口和接收窗口大小均为4的SR协议工作时:
DATA2出现错误了,我们先换缓存DATA3,4,5。后面重传DATA2了,再将DATA2和其缓存的DATA3,4,5一期交付给上层,并将接收窗口改为6-9,发送方终于收到了ACK2,发送窗口改为6-9,这个时候就可以继续完成工作了
如下图所示:
SR协议大大减少了重复的传输,小明看到了大喊:SR得了MVP!!
二、点对点协议
点对点协议(PPP,Point-to-Point Protocol)是没目前使用最广泛的点对点数据链路层协议
众所周知,我们互联网用户要连到某个ISP(互联网服务提供商)才能接入到互联网,我们用户与ISP通信时用的就是PPP
2.1.PPP的特点
- 简单性
PPP协议在同一条物理链路上进行点对点的数据传输,不进行纠错,不需要序号,也不需要流量控制。 - 封装成帧
PPP协议通过加入帧界定符来实现数据的封装。 - 透明性
通过字节填充法保证数据传输的透明性。 - 多种网络层协议和多种类型链路
PPP能够在同一条物理链路上同时支持多种网络层协议,如IP和IPX等。 - 差错检测
PPP协议通过接收方进行CRC检验来实现差错检测,如果检验正确则接收帧,否则丢弃。 - 检测连接状态
- PPP协议能够自动检测链路是否处于正常工作状态。
- 最大传送单元
PPP对每一种类型的点对点链路设置MTU的标准默认值 - 网络层地址协商
PPP协议能够在多种类型的链路上运行,例如串行或并行链路。
2.2.PPP的组成(了解即可)
PPP有三个组成部分
(1)一个将IP数据包封装到串行链路的方法
(2)一个用来建立、配置和测试数据连句连接的链路控制协议(LCP)
(3)一套网络控制协议(NCP)
2.3.PPP的帧格式
首先看一下PPP帧格式的图是什么样的
PPP帧的首部和尾部分别为四个字段和两个字段
各字段的意义
我们可以看到首部和尾部都有标志字段F(Flag),规定为0x7E,0x表示为16进制,表示后面的字符是十六进制表示的,其二进制表示是01111110。还记得前面说过PPP的帧定界符就是01111110
尾部中的第一个字段(2字节)时使用的CRC的帧检验序列(FCS)
透明传输
- PPP使用字节填充法实现透明传输
- 由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在收到数据后在进行与发送端字节填充相反的交换,就可以正确的恢复出原来的信息。
2.4.PPP的工作状态
PPP链路状态(可直接看图)
当用户拨号上网接入到ISP后,就建立起了一条个人用户到ISP的物理链路。这时,用户向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立起LCP连接。这些分组及相应选择了将要使用的一些PPP参数。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址,这样,用户就完成了与互联网的初始化连接。当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址,LCP释放数据链路层连接,最后释放物理层的连接
PPP状态图
以下是对图的详解
- PPP链路的起始和终止状态永远都是“静止”状态,此时不存在物理层的连接。
- 检测到调制解调器的载波信号,并建立物理层连接后,PPP进入链路的“建立状态”
- 这时LCP开始协商一些配置选项,即发送LCP的配置请求帧(Configure-Request)
若协商失败,则回到链路静止状态
PPP帧,协议字段配置为LCP对应的代码,而信息字段包含特定的配置请求,链路另一端可以发送以下几种响应
配置确认帧(Configure-ACK):所有选项都接受
配置否认帧(Configure-NCK):所有选项都理解但不接受
配置拒绝帧(Configure-Reject):选项有的无法识别或不能接受,需要协商。 - 协商结束后进入“鉴别”状态
若鉴别身份成功,则链路进入“网络”状态。即PPP链路的两端相互交换网络层特定的网络控制分组。
若失败则链路终止,载波停止,之后进入静止状态 - 在网络层配置完毕后,链路进入可进行数据通信的“打开”状态。
- 数据传输结束后,链路的一段发出种植请求LCP分组请求终止链路连接
- 在收到对方发来的终止确认LCP分组后,链路就转到“终止”状态,载波停止后链路则回到“静止”状态
三、使用广播信道的数据链路层
广播信号可以进行一对多的通信,能很方便且廉价地连接多个邻近的计算机,因此曾经被广泛应用于局域网之中。
广播信道的局域网也被称为共享式局域网随着科技的发展,具有
更高性能的使用点对点链路和链路层交换机的交换式局域网在有限领域已完全取代了共享式局域网,但由于无线信道的广播天性。无线局域网仍然使用的是共享媒体技术。
3.1.媒体介入控制
广播信道连接多个站点,一个站点可以给任何求他站点发送数据。
问题:两个以上的站点同时发送数据可能会导致冲突。因此我们要考虑如何协调多个发送站点和接受站点对一个共享传输媒体的占用。(又称为媒体介入控制/多址接入问题)
媒体介入控制或多址接入主要有以下两大类方法
(1)静态划分信道(此处只给出大致的解释,具体专业解释在物理层里面提及,此处不作过多说明)
典型技术有四种:
1、频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
以下是用通俗的比喻来说明讲解:
①把通信信道想象成一条宽阔的高速公路,而不同的信号就如同行驶在这条高速公路上的汽车,频分复用就相当于为不同类型的汽车划分了不同的车道。
②这条宽阔的高速公路就是通信信道,它有一定的带宽,就像高速公路有一定的宽度一样。带宽决定了在一定时间内可以传输的信息量,就如同高速公路的宽度决定了单位时间内可以通过的汽车数量。
③为了保证交通的有序进行,高速公路被划分成了多个车道,每个车道都有明确的标识和范围。在频分复用中,通信信道的带宽也被划分成了多个不同的频段,每个频段就相当于高速公路上的一个车道。
④例如,在通信系统中,可能有电视信号、广播信号、电话信号等不同的信号,这些信号就如同不同类型的汽车。每种类型的汽车通常会被安排在特定的车道上行驶。同样,在频分复用中,不同类型的信号会被分配到不同的频段上进行传输。
⑤由于不同类型的汽车在不同的车道上行驶,它们之间不会相互干扰,可以同时在这条高速公路上并行前进。在频分复用中,不同频段的信号也可以同时在通信信道中传输,彼此之间不会相互干扰。
⑥当汽车到达目的地时,需要从相应的高速公路出口驶出。在频分复用的接收端,也有相应的设备来分离不同频段的信号,就像高速公路的出口可以将不同车道的汽车引导到不同的地方一样。接收端的滤波器等设备会根据信号的频率特征,将各个频段的信号分离出来,还原成原始的信号,供用户使用。
2、时分多路复用TDM
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。时分复用就是把通信信道的时间划分成多个小时间段,不同信号在这些时间段内依次传输,接收端再根据时间顺序将信号分离出来。
以下是用通俗的比喻来说明讲解:
①把通信信道类比成一间教室,不同信号看作是不同课程的学生。
②学校给这间教室制定了一份课表,把一天的上课时间划分成了多个时间段,每个时间段安排一门不同的课程。例如,上午 8 点 - 9 点是数学课,9 点 - 10 点是语文课,10 点 - 11 点是英语课。在通信中,这就是对通信信道时间的划分。
③上数学、语文、英语课的学生就相当于不同的信号。每个时间段内,只有对应课程的学生可以在教室里学习,就像在时分复用里,一个时间段内只允许一种信号在通信信道上传输。
④按照课表的安排,学生们轮流进入教室上课。先上数学课,下课后再上语文课,接着是英语课。在时分复用中,不同信号也是按照分配好的时间顺序依次在通信信道上传输。
⑤下课后,老师会根据课程来批改作业和进行后续的教学安排,以此区分不同课程的学生。在通信接收端,设备会根据信号传输的时间顺序来分离出不同的信号,进行相应的处理,就像老师根据课程区分学生一样。
3、波分多路复用WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
以下是用通俗的比喻来说明讲解:
①把通信信道想象成一个大型舞台,不同的信号看作是不同的表演节目。
②舞台上有各种各样的灯光,每种灯光都有其特定的颜色,这些不同颜色的灯光就如同不同波长的光信号。舞台管理者通过控制不同颜色灯光的开关和强度,来实现各种绚丽的效果。在通信中,就是通过控制不同波长光信号的传输来实现多种信息的传递。
③不同的表演节目对应着不同的信号,每个节目都需要特定的灯光效果来配合,就像不同的信号需要特定的波长来传输。在波分复用中,不同波长的光信号承载着不同的信息,就像不同颜色的灯光对应着不同的表演节目。
④在舞台上,节目不同的负责部分可以同时进行,各自配合着相应的灯光效果,为观众带来一场精彩的演出。在通信里,不同波长的光信号也可以同时通过通信信道传输,实现多种信息的并行传输,就像舞台上一群分供方明确的人同时上演一样。
⑤对于观众来说,他们可以清晰地分辨出不同部分的表演节目,即使这些节目同时进行。在通信接收端,设备也能够准确地分离出不同波长的光信号,将它们还原成原始的信息,就像观众能够区分表演节目的不同部分一样。
4、码分多路复用CDM
码分复用的核心在于利用独特的扩频码让多个信号在同一信道上同时传输,并且在接收端能够准确地分离出各个信号
以下是用通俗的比喻来说明讲解:
①把通信信道看作是战场上复杂的电磁环境,不同的信号视为不同部队的密电信息
②战场上电磁环境复杂,为了保证各部队之间通信的安全和高效,指挥中心给每个部队都分配了一个独特的密电编码规则,这类似于码分复用中的扩频码,并且这些编码规则具有正交性和扩频增益。扩频增益使得密电信号在频谱上扩展,不仅能让不同部队的信号相互区分,还能增强信号的强度和抗干扰能力。
③各个部队就如同不同的信号源,他们有各自的作战任务和通信需求。比如步兵部队、炮兵部队、装甲兵部队等,他们需要将自己的作战指令、情报等信息通过密电形式发送出去。每个部队都按照自己独特的密电编码规则,将自己的信息加密后发送到电磁频谱空间中。由于编码规则的不同,即使多个部队的密电信号同时在电磁频谱空间中传输,它们的信号在频谱上看似“叠加”,但通过编码规则的正交性,接收端可以准确区分每个部队的信号。
④这种编码规则还能帮助接收端克服战场上复杂电磁环境带来的多径衰落等问题。就像在复杂的战场环境中,即使信号经过多次反射和折射,接收端依然能根据独特的密电编码规则,从混乱的信号中准确提取出每个部队的有用信息。当指挥中心接收到这些密电信息后,需要通过对应的密电编码规则来破译每支部队的信息,以了解各部队的情况并做出决策。在通信接收端,设备也是通过识别不同的扩频码来分离出各个信号,还原出原始的信息,就像指挥中心破译各部队的密电一样。
(2)动态划分信道
特点:各站点动态占用信道发送数据,而不是使用预先固定分配的信道。
动态接入控制分为以下两点
随机接入:所有站点通过竞争,随机地在信道上发送数据。如果恰巧有两个或者更多的站点在同一时刻发送数据,那么信号就要产生碰撞,使得这些站点的发送都失败。因此,这类协议要解决的就是如何尽量避免冲突及在发生冲突后如何尽快恢复通信。
受控接入:节点不能随机的发送信息而必须服从一定的控制。这类协议的典型代表有①集中控制的多点轮询协议②分散控制的令牌传递协议
- 集中控制的多点轮询协:议有一个主站以循环方式轮询每个站点有无数据进行发送,只有被轮询到的站点才能够发送数据。 最大缺点就是单点故障问题(主站出故障后,整个网络的访问控制都会收到影响)
- 分散控制的令牌传递协议:各站点是平等的,并连接成一个环形网络。 令牌 (一个特殊的控制帧)沿环逐站传递,接收到令牌的站点才有权发送数据,并在发送完数据后将令牌传递给下一个站点。
3.2.局域网
网络为一个单位所拥有,且地理范围和站点数目均有限。
(1)局域网拓扑
总线型网络拓扑结构:总线型网络拓扑结构是指所有设备连接到一条连接介质上。由一条高速公用总线连接若干个节点所形成的网络即为总线形网络。总线型结构是将网络中的所有设备通过相应的硬件接口直接连接到公共总线上,结点之间按广播方式通信,一个结点发出的信息,总线上的其它结点均可“收听”到。 总线型结构就像一张树叶,有一条主干线,主干线上面由很多分支。
星型网络拓扑结构: 星型结构是一种以中央节点为中心,把若干外围节点连接起来的辐射式互联结构。这种结构适用于局域网,特别是近年来连接的局域网大都采用这种连接方式。这种连接方式以双绞线或同轴电缆作连接线路。
环形网络拓扑结构:环形结构各结点通过通信线路组成闭合回路,环中数据只能单向传输,信息在每台设备上的延时时间是固定的,特别适合实时控制的局域网系统。环形结构就如一串珍珠项链,环形结构上的每台计算机就是项链上的一个个珠子
树型网络拓扑结构: 树型拓扑结构是一种层次结构,结点按层次连结,信息交换主要在上下结点之间进行,相邻结点或同层结点之间一般不进行数据交换。树型拓扑结构是就是数据结构中的树。
网状网络拓扑结构:网络拓扑结构又称作无规则结构,结点之间的联结是任意的,没有规律。
混合网络型拓扑结构: 混合型网络拓扑结构就是指同时使用上面的5种网络拓扑结构种两种或两种以上的网络拓扑结构。
(2)局域网体系结构
IEEE 802委员会把局域网的数据链路层拆成两个子层,即逻辑链路控制子层(LCC)和媒体介入控制子层(MAC)
- LLC主要功能: 向网络层提供无确认无连接, 面向连接, 带确认无连接, 高速传送, 给帧加序号
- MAC主要功能: 与接入媒体有关的内容, 如组帧, 拆卸帧, 比特传输差错检测, 透明传输
(3)网络适配器
网络适配器,又称为网卡(Network Interface Card,NIC)或网络接口控制器(Network Interface Controller,NIC),是一种用于连接计算机与网络的硬件设备。它通过将数据从计算机转换为网络可识别的格式,并在网络之间进行传输,实现计算机与网络之间的通信
网络适配器的作用
- 进行数据串行传输和并行传输的转换;
- 对数据进行缓存,对接收速率进行匹配;
- 对接收的数据进行差错检测;
- 跟主机当中的存储器、CPU等部件进行协调;
- 实现以太网协议,如数据的封装、发送、地址的检查、接收、有效判断、校验等等。
通俗比喻:
网络适配器就像一座“桥梁”和“翻译官”。
桥梁作用
它连接计算机与网络,如同桥梁连接两岸。计算机通过它接入网络,就像人们借助桥梁到达对岸,实现数据在计算机和网络之间的传输,让计算机能够融入网络环境,与其他设备进行通信。
翻译官作用
网络适配器负责把计算机内部的数据格式转换为适合在网络中传输的格式,同时也能把从网络接收到的数据转换为计算机能够识别的格式,就像翻译官在不同语言的人之间进行沟通一样,确保计算机和网络之间能准确无误地交换信息。
(4)MAC地址
点对点信道不需要使用地址,因为连接在信道上的只有两个站点。但当多个站点连接在同一个广播信道上时,要想实现通信,则每个站点都必须有唯一的标识。每一个发送的帧必须携带标识接受站点和发送站点的地址由于地址用于媒体介入控制,所以称为MAC地址
好比两个人交流,那么不需要特殊的标识,但是放在一个大的集体里面,比如学校,每个人都有自己的学号
MAC地址仅仅是一个适配器的标识符
因此:
计算机位置不变,适配器更换MAC地址会被更换
计算机位置改变,适配器不变,MAC地址仍不变
如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个”地址“
- MAC地址一般由48bit的16进制的数字组成,023位数字叫做组织唯一标识符,2447位是由厂家自己分配,其中第48位是组播地址标志位。
IEEE把地址字段第一字节的次低位规定为G/L位,标识Global/Local。G/L位为0表示全球管路,为1表示本地管理
当路由器通过适配器连接到局域网时,适配器上的硬件地址用来标志路由器的某个接口,路由器如果同时连接到两个网络上,那么就他就需要两个适配器和两个硬件地址。
适配器有过滤功能
适配器每收到一个MAC帧,就先用硬件检查MAC帧中的目的地址。如果是本站的帧就收下,然后进行其他处理,否则就丢掉,不再处理。
此处发往此站的帧有3种:
- 单播:一台机器和一台机器通信
- 多播:一台机器发出的数据包能被多台机器收到
一个机器发送,多台机器接收,但是又不同于广播,
发送端的IP设置在一个范围内都算多播 - 广播:一台机器发出的数据包能被一个网段的机器收到
适配器的混杂方式
混杂模式(Promiscuous Mode)是指一台机器能够接收所有经过它的数据流,而不论其目的地址是否是他。混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
这个模式也被网络黑客利用来作为网络数据窃听的入口
四、共享式以太网
最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件
为了通信的简便,以太网采取了两种重要的措施:
(1) 采用较为灵活的无连接的工作方式
不必先建立连接就可以直接发送数据。
对发送的数据帧不进行编号,也不要求对方发回确认。
这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。
(2) 以太网发送的数据都使用曼彻斯特 (Manchester) 编码(曼切斯特编码不在此处细讲,物理层详细讲述)
4.1.CSMA/CD协议
以太网采用的媒体访问控制协议:
载波监听多点接入 / 碰撞检测协议( Carrier Sense Multiple Access With Collision Detection,CSMA/CD)
① 全称 : Carrier Sense Multiple Access With Collision Detection , 载波监听多点接入 / 碰撞检测 协议 ;
② CS : Carrier Sense , 载波监听 , 每个站点 发送数据前 , 和 发送数据过程中 , 先检测总线上是否有其它 站点 在发送数据 ;
③ MA : Multiple Access , 多点接入 , 多个 主机 连接在同一条 总线 上 ; 该协议 应用于 总线型网络 中 ;
④ CD : Collision Detection , 碰撞检测 , 适配器 一边发送 , 一边监听 , 检测信道上电压变化 用于 判断本站点发送数据 时 , 其它站点是否也在发送你数据 ; 由此可以看出 , 该协议用于 半双工网络 中 ;
通俗理解:CSMA/CD 协议 , 先听再说 , 边听边说
CSMA/CD协议的要点有如下几点
1.“多址接入”表示许多计算机以多点接入的方式连接在一根总线上。
2.“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
3."碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
- 在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
- 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
碰撞检测的意义
由于电磁波在总线上的传播速率是有限的,当某个站监听到总线是空闲时,也可能总线并非真正是空闲的
A 向 B 发出的信息,要经过一定的时间后才能传送到 B。
B 若在 A 发送的信息到达 B 之前发送自己的帧 (因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞。
碰撞的结果是两个帧都变得无用,所以需要在发送期间进行碰撞检测,以检测冲突。
信号传播时延对载波监听的影响
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
全双工方式( full duplex ):当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制。
半双工方式( half duplex ) :若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制。
在局域网的分析中,常把总线上的单程端到端传播时延记为τ
图中过程详解
网络设定:A、B 两个节点通过1km 的链路相连,单程端到端传播时延记为 τ。
第一种情形:在 t=0 时刻,B 开始发送数据,A 也在同一时刻检测到信道空闲并发送数据。经过 τ−δ 时间,B 的信号到达 A,A 检测到碰撞;经过 τ 时间,B 检测到碰撞。
第二种情形:t=0 时 A 检测到信道空闲发送数据,t=τ−δ 时 B 检测到信道空闲也发送数据,t=τ−δ/2 时两者信号相遇发生碰撞,t=τ 时 B 检测到碰撞并停止发送,t=2τ−δ 时 A 检测到碰撞并停止发送。
由图可以看出,最长经过时间2τ就可以知道发送的数据帧是否杂牌娱乐冲突,**此时的δ—>0.**因此以太网的端到端的往返时间2τ称为争用期(冲突窗口)经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
二进制指数类型退避算法 (truncated binary exponential type)
以太网使用二进制指数类型退避算法解决冲突后何时进行重传的问题:发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
具体退避算法的实现
(1)重传应推后r倍的争用期
- 基本退避时间取为争用期 2τ
- 从整数集合 [0, 1, … , (2^k-1)] 中随机地取出一个数,记为 r
- 参数 k 按下面的公式计算:k = Min[重传次数, 10]
- 重传次数<=10时,参数k=重传次数
重传次数>10时,k=10
(2)当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
争用期的长度
10 Mbit/s 以太网取 51.2 μs 为争用期的长度。 对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。
这意味着: 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
最短有效帧长
如果发生冲突,就一定是在发送的前 64 字节之内。
由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
强化冲突
当发送数据的站一旦发现发生了碰撞时:
(1) 立即停止发送数据;
(2) 再继续发送若干比特的人为干扰信号 (jamming signal),以便让所有用户都知道现在已经发生了碰撞。
帧间最小间隔:帧间最小间隔为96比特时间(9.6μs)
这样做一方面有利于接收方检测一个帧的结束,另一方面使得所有其他站带你都有机会平等竞争信道并发送数据。
总的来看CSMA/CD的具体流程如下:
4.2.共享式以太网的信道利用率
总线上的某个主机可能发生多次碰撞,进行多次退避后成功发送了一个帧,最后帧经过发送时延T0把数据发送了出去
成功发射一个帧需要占用信道的时间是T0+τ
这是因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。
在最极端的情况下,发送站在传输媒体的一端,而比特在媒体上传输到另一端所需的时间就是 r。
提高以太网的信道利用率,就必须减小τ与T0之比
以太网中定义了一个参数a,a=τ/T0
为提高利用率,以太网的参数 a 的值应当尽可能小些。
参数 a 对以太网的要求:
1. 当数据率一定时,应当限制以太网总线的长度,否则 τ 的数值会太大。
2. 以太网的帧长不能太短,否则 T 0 的值会太小,使 a 值太大。
以太网的极限信道利用率
在理想化的情况下,以太网上的各站发送数据都不会产生碰撞,即总线一旦空闲就有某一个站立即发送数据。
发送一帧占用线路的时间是T0+τ ,而帧本身的发送时间是T0。于是,可计算出理想情况下的极限信道利用率:
4.3.使用集线器的星形拓扑
首先我们看一下传统以太网和使用集线器的双绞线以太网长什么样:
传统总线型以太网:
使用集线器的双绞线以太网:
1.集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
2.集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD 协议,并共享逻辑上的总线。
3.集线器很像一个多接口的转发器,工作在物理层。
4.4.以太网的帧格式
以太网帧图示:
图中解释:
以太网首部占用14字节、FCS(Frame Check Sequence)(帧校验码)长4个字节,用于检验数据在传输过程中数据是否出现了错误,为CRC32校验码
传输媒体上实际传输的数据比MAC帧多八个字节
- 站点接收MAC帧时,比特流未达成同步,MAC帧的前面若干位无法接受,使得帧成为无用的帧,因此要插入8字节
- 插入的字节构成:
i)第一字段7个字节的前同步码(1和0交替码)
ii)第二字段帧开始定界符,定义为10101011,前六位与前同步码一样,后面11为了告诉适配器MAC帧马上要来了
无效MAC帧的判定
帧的长度不是整数个字节
用收到的FCS查出有差错
收到的帧的MAC客户数据字段的长度不是46~1600字节
一旦错了就直接丢,不负责重传丢弃的帧
五、网桥和以太网交换机
在传统的共享式局域网中,所有站点共享一个公共的传输媒体。随着局域网规模的扩大、网络中站点数目的不断增加,这样的网络通信负载加重,网络效率急剧下降。随着技术的发展、交换技术的成熟和成本的降低,具有更高性能的交换式局域网在有线领域已完全取代了传统的共享式局域网。
我们先从扩展局域网的角度,讨论在物理层扩展以太网存在的问题和在数据链路层扩展以太网的数据链路层分组交换设备——网桥,然后讨论使用以太网交换机的全双工交换式以太网。
5.1.在物理层扩展以太网
在物理层扩展以太网有两个弊端
(1)多级结构的集线器以太网互相连起来的时候,每个系的以太网构成了一个冲突域,三个系互相连起来的时候又构成了一个更大的冲突域,如图所示:
如果不同的系使用不同的以太网技术,那么就不可能用集线器将他们互连起来。
不过我们可以在数据链路层扩展以太网
5.2.在数据链路层扩展以太网(网桥)
一、冲突域与广播域
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。
判断冲突域与广播域的个数
方法:观察交换机和路由器,交换机隔断冲突域但是不能隔断广播域,路由器隔断广播域
二、网桥内部结构
网桥(bridge)工作在数据链路层(包含其下的物理层),因此网桥具备属于数据链路层范畴的相关能力。
网桥可以识别帧的结构。
网桥可以根据帧首部中的目的MAC地址和网桥自身的帧转发表来转发或丢弃所收到的帧。
网桥工作原理图
A发给D,通过网桥转发,接口1收到A给D的帧,从接口2发送出去
A发给C,无需通过网桥,C可以直接收到
A广播发送的时候,所有主机都可以接收到
网桥的优点
- 过滤通信量
- 扩大物理范围
- 提高可靠性
- 互联不同物理层、不同MAC子层、不同速率的局域网
网桥的缺点
- 存储转发增加时延
- 在MAC子层没有流量控制功能
- 具有不同的MAC子层的网段桥接在一起时时延更大
- 当用户过多时,因传播过多的广播信息有时会引起广播风暴(传播过多的广播信息导致网络拥塞)
三、透明网桥
透明网桥通过自学习算法来逐步建立自己的转发表。
若从主机A发出的帧经过接口1进入某网桥,那么从这个接口出发沿相反方向可把一个帧传送到主机A。
网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。
在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
交换表中的每个项目都设有一定的有效时间,过期的自动被删除
网桥收到帧后进行登记(即自学习),登记内容为帧的源MAC地址和进入网桥的接口号。
网桥根据帧的目的MAC地址和网桥的转发表对帧进行转发,有以下三种情况:
明确转发:网桥知道应当从哪个接口转发帧。
盲目转发:网桥不知道应当从哪个接口转发帧,只能将其通过除进入网桥的接口外 的其他所有接口转发。
丢弃:网桥知道不应该转发该帧,将其丢弃。
四、生成树协议
透明网桥互连多个局域网时不能出现环路,不然会大量浪费网络资源。
为避免广播帧在网络环路中无限循环,透明网桥采用生成树协议(Spanning Tree Protocol,STP)。该协议可在增加冗余链路提升网络可靠性的同时,有效防止环路问题。
通过网桥间的通信,找出原来网络拓扑的一个连通子集,这个子集里面不存在环路,任何两个站点之间只有一条路径
生成树一旦确定,网桥就会关闭不在生成树链路上的接口,以确保不存在环路
当首次连接网桥或网络拓扑发生变化时(人为改变或出现故障),网桥都会重新构造生成
5.4.以太网交换机
以太网交换机本质上是一个多接口的网桥
交换机自学习和转发帧的流程与网桥是相同的。
另外,交换机也使用生成树协议STP,来产生能够连通全网但不产生环路的通信路径。
交换机的每个接口可以连接计算机,也可以连接集线器或另一个交换机
当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像独占传输媒体那样,无碰撞地传输数据,这样就不需要使用CSMA/CD协议了。
当交换机的接口连接的是集线器时,该接口就只能使用CSMA/CD协议并只能工作在半双工方式。
5.5.虚拟局域网(VLAN)
一、虚拟局域网概念
虚拟局域网(Virtual Local Area Network,VLAN)是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的技术。它并不受物理位置的限制,而是基于交换机端口、MAC地址、IP地址等逻辑条件来对网络中的设备进行分组。处于同一VLAN中的设备,无论其实际物理位置如何,都能像处于同一个传统局域网中一样直接通信;而不同VLAN之间的设备通信则需要通过路由器或三层交换机等设备来实现。
可以把虚拟局域网想象成一个“网络小团体”。在一个大的网络环境里,就好比一个大型的办公场地,有很多不同的部门和人员。传统局域网就像是把这个大场地里所有人都随意地连在一起,交流起来可能会很混乱。而虚拟局域网就是在这个大场地里划分出一个个小的区域,比如销售部在一个区域,技术部在另一个区域。同一区域(同一个VLAN)里的人可以自由交流合作,不同区域(不同VLAN)的人想要交流就得通过特定的“通道”(路由器或三层交换机)才行。
二、虚拟局域网实际例子
1、在同一个VLAN中的主机, 即使连接在不同的交换机上, 就如同在同一个局域网里一 样。如(B1,B2,B3)
2、而在不同的VLAN中的主机, 即使连接在同一个交换机上, 却如同在不同的局域网里, 不能直接进行通信。(如A1,A2,B1,C1不能互相通信)
3、每个VLAN是一个独立的广播域。
三、虚拟局域网的优点
1、简化网络管理:由于站点物理位置与逻辑分组无关,当站点从一个工作组迁移 到另一个工作组时,网络管理员仅需调整VLAN配置即可,无需改变网络布线或 将站点搬移到新的物理位置。
2、控制广播风暴:减少广播流量,避免网络拥堵,还能按需分配带宽资源,保证关键部门网络顺畅。
3、增强网络的安全性:便于管理员根据用户的安全需要隔离VLAN间的通信
更安全:把不同部门或用户群隔离开,限制广播范围,还能精准控制不同 VLAN 间的访问权限,防止数据泄露。
更灵活:不依赖设备物理位置,用户移动位置无需重新配置网络;企业部门调整时,管理员在交换机上改改设置就行。
性能好:减少广播流量,避免网络拥堵,还能按需分配带宽资源,保证关键部门网络顺畅。
易管理:可在交换机上集中配置 VLAN;排查网络故障时,能缩小排查范围,提高效率。
四、基于接口的VLAN实现
将交换机的接口划分到不同的VLAN
跨越多个交换机的VLAN
802.Q帧格式
802.1Q虚拟局域网协议标准允许交换机在以太网帧格式中插入一个4字节的标识符,称为VLAN标记(tag),用来指明该帧来自于哪一个VLAN。
交换机将帧从Trunk接口发送出去时要插入该VLAN标记,当插入VLAN标记的帧要从非Trunk接口转发出去的时候要将该VLAN标记删除。
六、以太网的演进(了解即可)
6.1.标准以太网
标准以太网,被誉为传统以太网,以其10Mbit/s的传输速率,成为以太网的起点。其组网方式极具灵活性,支持粗、细缆总线网络,双绞线星状网络,甚至混合网络。这些网络均遵循IEEE 802.3标准,该标准详细规定了传统以太网的物理层标准。
- 10 Base-2:采用细同轴电缆,单个网段的长度上限为185米。
- 10 Base-5:使用粗同轴电缆,其最大网段长度可达500米。
- 10 Base-T:通过双绞线进行连接,每个网段的长度最多为100米。
- 10 Base-36:此标准使用同轴电缆,单个网段的最大长度为3600米。
- 10 Base-F:基于光纤技术,其单段网线长度为2000米,且传输速率为10Mb/s。
6.2.快速以太网
随着网络技术的迅猛发展,标准以太网已难以应对日益增长的网络数据流量和速率需求。在1993年10月之前,高标准的网络组建主要依赖于昂贵的100Mbs光缆FDD技术。然而,随着Grand Junction公司推出世界上首台快速以太网集线器FastSwitch10/100和百兆网络接口卡Fast NIC 100,这一局面得以改变。此后,Intel、3COM等公司也纷纷加入快速以太网设备的研发行列。同时,EEE802工作组也对100Mbi/s以太网标准进行了深入研究,并于1995年4月正式发布了IEEE 802.3u 100Base-T快速以太网标准,标志着快速以太网时代的来临。
IEEE 802.3U标准在继承标准局域网框架的基础上,如帧格式、接口和介质访问控制方法(CSMA/CD)等,实现了数据传输速率的显著提升,从10Mbts跃升至100Mbit/s。此外,该标准还引入了一系列新的物理层标准,进一步推动了快速以太网技术的发展。
- 100 Base-1X:它采用两对5类屏蔽或非屏蔽双绞线,其中一对用于数据的发送,另一对则用于数据的传输。该标准支持RJ-45或DB9接口,确保节点与集线器之间的最大距离为100米。
- 100 Base-T4:它使用4对3类、4类或5类双绞线,其中3对用于数据发送,而1对则用于检测冲突信号。R-45连接器是其关键接口,最大网段长度同样为100米。
- 100Base-FX:这种标准则侧重于光纤网络,它利用一对单模或多模光纤进行数据传输,一路光纤负责发送,另一路则负责接收。
6.3.千兆以太网
千兆以太网,也被称作吉比特以太网,其历史可追溯至1995年11月。当时,IEEE 802.3工作组成立了一个高速研究组,旨在探索将快速以太网的传输速率提升至1000Mbps的可能性及方法。经过一年的研究,该方案在1996年6月获得了IEEE标准委员会的批准。随后,IEEE 802.3工作组进一步成立了IEEE 802.3z工作委员会,专门负责制定千兆以太网的标准。这一标准为千兆以太网的部署和应用奠定了坚实基础。千兆以太网在通信时,支持全双工和半双工两种操作模式,并采用802.3以太网帧格式和CSMA/CD技术。
- 为了千兆以太网的规范部署和应用,工作组制定了一系列物理层标准,包括1000 Base-SX、1000 Base-LX、1000 Base-CX和1000 Base-T等。千兆以太网最初被设计为楼宇间的连接技术,后来被广泛应用于服务器的连接和主干网中,成为了企业网络组建的首选高速技术。
6.4.万兆以太网
万兆以太网,也被称为10吉比特以太网,是千兆以太网之后的又一重大突破。2002年6月,IEEE 802.3ae委员会正式颁布了10GE的标准,这一标准涵盖了多个关键方面。首先,10GE与8023标准保持兼容,支持最小的和最大的以太网帧长度。其次,它仅采用全双工模式进行数据传输。
10GE相较于千兆以太网,其速率提升并非简单粗暴地增加10倍。通过点对点链路和结构化布线,10GE能够构建出星状的局域网。在MAC/PLS服务接口上,10GE实现了高达10Gbs的传输速度。该标准还定义了两种物理层规范:一种是局域网PHY,另一种是广域网PHY。
值得注意的是,通过WAN界面子层,10Gbi/s的传输速率可以被灵活调整为更低的速率。与千兆以太网不同,10GE不再使用铜线作为传输媒介,而是专为光纤进行优化。同时,它也摒弃了CSMA/CD协议,采用了全新的物理层技术。
- 10G Base-SR(短距离),专为短距离连接设计,支持850nm波长的多模光纤。
- 10G Base-LR(长距离),适用于长距离通信,支持1310nm波长的单模光纤。
- 10G Base-ER(超长距离),支持1550nm波长的单模光纤。
七、无线局域网(WLAN)
通过无线局域网接入到互联网已成为当今上网的最常用方式,便携站和移动站表示的意思不一样。
便携站:便于移动,但在工作时,其位置是固定不变的。
移动站:不仅能够移动,还可以在移动的过程中进行通信。
7.1.无线局域网的组成
无线局域网可以分为两大类:
(1)有固定基础设施的无线局域网
(2)无固定基础设施的无线局域网
(1)有固定基础设施的无线局域网
本BSS内各站点之间的通信以及与本BSS外的站点之间的通信,都必须经过本BSS内的AP进行转发。
网络管理员需要为AP分配一个最大32字节的服务集标识符(Service Set Identifier,SSID)和一个无线通信信道,SSID实际上就是使用该AP的802.11无线局域网的名字。
一个基本服务集(Basic Service Set , BSS) 包括 一个基站(Access Point,AP) 和 若干个移动站:所有的站在本 BSS 以内都可以直接通信;但在和本 BSS 以外的站通信时,都要通过本 BSS 的基站
一个基本服务集通过接入点连接到一个分配系统(DS),然后再连接到另一个基本服务集,这样就构成了一个扩展服务集(ESS)
DS的作用就是使ESS对上层的表现就像一个BSS一样,因此ESS也是一个局域网
802.11的基本服务集和扩展服务集
基本服务
与接入点AP建立关联
流程
① 一个移动站若要加入到一个基本服务集 BSS,就必须先选择一个接入点 AP,并与此接入点建立关联
② 只有关联的 AP 才向这个移动站发送数据帧,而这个移动站也只有通过关联的 AP 才能向其他站点发送数据帧
方法
① 被动扫描,即移动站等待接收接入站周期性发出的 信标帧
信标帧中包含有若干系统参数(如服务集标识符SSID 以及支持的速率等)
② 主动扫描,即移动站主动发出 探测请求帧,然后等待从AP 发回的 探测响应帧
③ 重建关联
- 如果一个移动站要把与某个接入点AP的关联转移到另一个AP,就可以使用重建关联服务;若要终止关联服务,就应使用分离服务。
热点:
能够向公众提供有偿或无偿接入Wi-Fi 的服务的地点就叫做 热点
由许多热点和AP 连接起来的区域叫做 热区
(2)无固定基础设施的无线局域网
自组网络是没有固定基础设施(即没有AP)的无线局域网
这种网络是 由一些处于平等状态的移动站之间相互通信组成的临时网络
如下图所示:
自组织网络组网方便,不需要基站,并且具有非常好的生存性,这使得自组织网络在军用和民用领域都有很好的应用前景。
移动IP与移动自组网的
移动IP技术使漫游的主机可以用多种方式连接到因特网,移动IP的核心网络功能依然是基于固定互联网中一直使用的各种路由选择协议
移动自组网络是将移动性扩展到了无线领域中的AS,它具有自己独特的路由选择协议,并且可以不和互联网相连。
7.2.无线局域网的物理层
- 802.11a:使用5GHz频段,最大速率可达54Mbps。
- 802.11b:使用2.4GHz频段,最大速率可达11Mbps。
- 802.11g:使用2.4GHz频段,最大速率可达54Mbps。
- 802.11n:使用2.4GHz和5GHz频段,最大速率可达600Mbps。
- 802.11ac:使用5GHz频段,最大速率可达6.77Gbps。
- 802.11ax:也称为Wi-Fi 6,使用2.4GHz和5GHz频段,最大速率可达9.6gbps。
7.3.CSMA/CA
之前学过CSMA/CD冲突检测,但是在无线局域网不适用
在无线局域网中不能使用碰撞检测CD
由于无线信道的传输条件特殊,其信号强度的波动范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度,可能相差百万倍。如果要在无线网卡上实现碰撞检测,对硬件的要求非常高。
在无线局域网中仍然可以使用载波监听CS以及多址接入MA,即在发送帧之前先对传输媒体进行载播监听。若发现有其他站在发送帧,就推迟发送,以避免发生碰撞。
隐蔽站问题
这里有 4 个无线站点,A 的信号范围可以覆盖到 B,但不能覆盖到 C。C 信号范围可以覆盖到 B,但不能覆盖到 A。换句话说, A 和 C 都检测不到对方的无线信号。当 A 和 C 都要给 B 发送帧时,就会产生碰撞,但 A 和 C 无法检测到碰撞,这种未能检测出信道上其他站点信号的问题叫做隐蔽站问题。
当出了自己的检测范围,就无法识别到碰撞,那么在发送时检测碰撞也是没有有意义的。
7.4.确认机制和帧间间隔
帧间间隔
802.11 标准规定所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔 IFS
帧间间隔的长短取决于该站点要发送的帧的类型
高优先级帧需要等待的时间较短,因此可优先获得发送权。低优先级帧需要等待的时间较长
- 若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙状态,因而低优先级帧就只能在推迟发送了,这样就减少了发生碰撞的机会。
短帧间间隔 SIFS
长度为 28 微秒,是最短的帧间间隔,用来分隔开属于一次对话的各个帧,一个站点应当能够在这段时间内从发送方式切换到接收方式。
DCF帧间间隔 DIFS
长度为 128 微秒,它比短帧间间隔 SIFS 要长得多。在 DCF 方式中用来发送数据帧和管理帧。
确认机制
CSMA/CA 协议的工作原理(可直接看图)
基于此图片的详解:
假设无线信道是空闲的,源站有数据帧要发送,当源站检测到信道空闲,则在等待帧间间隔 DIFS 后发送该数据帧
目的站若正确收到该数据帧,则经过帧间间隔 SIFS 后向源站发送确认帧ACK
需要说明的是,若源站在规定时间内没有收到确认帧ACK ,重传计时器超时后,就必须重传该数据帧,直到收到确认为止,或者经过若干次的重传失败后放弃发送。
源站在检测到信道空闲后还要再等待帧间间隔 DIFS 后才发送数据帧的原因
这就是考虑到可能有其他的站有高优先级的帧要发送,若有就让高优先级帧先发送
目的站在正确接收数据帧后,还要再等待一段时间 SIFS 才能发送ACK帧的原因
SIFS 是最短的帧间间隔,用来分隔开属于一次对话的各个帧。在这段时间内,一个目的站会从发送方式切换到接收方式。
退避算法
当信道从忙状态转换到空闲状态并经过帧间间隔 DIFS 后,其他要发送数据的无线站点需要退避一段随机时间后才能发送。
- 这样做的目的在于防止多个站点同时发送数据而产生碰撞。
- 当站点检测到信道是空闲的,并且没有连续发送数据,则不使用推避算法
而以下情况必须使用退避算法
- 在发送数据帧之前检测到信道处于忙状态时,必须使用退避算法
因为处于忙状态时,就可能会有多个站点准备发送,为了防止忙状态刚结束结束,多个站点同时发送数据,于是利用退避算法,把多个站点的发送交错开。
- 在每一次重传一个数据帧时,必须使用退避算法
- 在每一次成功发送后,要连续发送下一个帧时,必须使用退避算法(这是为了避免一个站点长时间占用信道)
关于退避算法的具体实现参考: 计算机网络:数据链路层 - CSMA/CA协议
7.5.信道预约和虚拟载波监听
为了尽可能减少碰撞的概率和降低碰撞的影响, 802.11 标准允许要发送数据的站点对信道进行预约
源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS,它包括源地址、目的地址以及这次通信所需的持续时间
当源站检测到信道空闲且经过帧间间隔 DIFS 后发送 RTS 帧
若目的站点正确收到源站发来的RTS 帧,在检测到信道空前且经过帧间间隔 SIFS 后就发送一个响应控制帧,称为允许发送CTS。它也包括这次通信所需的持续时间
源站收到 CTS 帧后再等待一个帧间间隔 SIFS 后,就可发送其数据帧
若目的站正确收到了源站发来的数据帧,在等待一个帧间间隔 SIFS 后,就向源站发送确认帧ACK
如果 RTS 帧发生碰撞,源站就收不到 CTS帧,需要执行退避算法重传RTS 帧。
RTS(Request To Send,请求发送):这是一个输出信号,用于指示设备准备好接收数据。RTS信号为低电平时,表示设备可以接收数据
CTS(Clear To Send,发送允许):这是一个输入信号,用于判断是否可以向对方发送数据。CTS信号为低电平时,表示设备可以向对方发送数据
NAV = SIFS+数据帧+SIFS+ACK
NAV:所需占用信道的持续时间
示意图
监听到RTS帧或CTS帧后,根据帧中指明的持续时间推迟接入无线局域网,就是右边图中的NAV
如果RTS帧发生冲突,源站就收不到CTS,需要执行退避算法重传RTS帧
由于 RTS 帧和 CTS 帧很短,发生碰撞的概率、碰撞产生的开销以及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延,碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。
其它站点只需要监听到 RTS、 CTS或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号。因此,虚拟载破监听机制能减少隐蔽站带来的碰撞问题
例子
这是 4 个无线站点, A 和 C 互为隐蔽站, A 的信号可以覆盖到 B,但不能覆盖到C。 C 的信号可以覆盖到 B,但不能覆盖到 A
A 在给 B 发送数据帧前,可以使用 RTS 帧来预约信道。尽管 C 收不到该 RTS 帧,但是 C 可以收到 B 发送给 A 的 CTS 帧:
这样 C 就知道了信道将被占用多长时间。在这段时间内,C 都不会征用信道,也就是说 A 给 B 发送数据不会受到 C 干扰
7.6.无线局域网的MAC帧
802.11 帧共有三种类型:控制帧、数据帧和管理帧。
数据帧的三大部分
MAC 首部:共 30 字节。复杂。
帧主体:数据部分,不超过 2312 字节。802.11 帧的长度通常都小于 1500 字节。
帧检验序列 FCS:尾部,共 4 字节 。
RTS,CTS,ACK帧的格式
关于 802.11 数据帧的地址
-
地址 1 是直接接收数据帧的节点地址。
-
地址 2 是实际发送数据帧的节点地址。
-
地址 3 和地址 4 取决于数据帧中的“来自AP”和“去往AP”这两个字段的数值。
对于有AP的基本服务集,BSSID就是AP的MAC地址,而对于ad hoc独立基本服务集,BSSID一般由系统随机生成
最常用的是中间两种情况
左侧数据帧:
去往DS = 1:表示该数据帧的目标是分配系统(DS)。
来自DS = 0:表示该数据帧不是从分配系统(DS)来的。
地址1 = AP1的MAC地址:目的地址,指示数据帧应发送到AP1。
地址2 = A的MAC地址:源地址,指示数据帧来自客户端A。
地址3 = B的MAC地址:BSS内广播地址,用于在BSS1内广播该数据帧。
右侧数据帧:
去往DS = 0:表示该数据帧不是目标是分配系统(DS)。
来自DS = 1:表示该数据帧是从分配系统(DS)来的。
地址1 = B的MAC地址:目的地址,指示数据帧应发送到客户端B。
地址2 = AP1的MAC地址:源地址,指示数据帧来自AP1(通过DS转发)。
地址3 = A的MAC地址:BSS内广播地址,用于在BSS2内广播该数据帧
左侧数据帧:
去往DS = 1:表示该数据帧的目标是分配系统(DS)。
来自DS = 0:表示该数据帧不是从分配系统(DS)来的。
地址1 = AP1的MAC地址:目的地址,指示数据帧应发送到AP1。
地址2 = A的MAC地址:源地址,指示数据帧来自客户端A。
地址3 = R的MAC地址:以太网数据帧的目的地址,指示数据帧应通过以太网发送到路由器R。
右侧数据帧:
以太网数据帧:表示在分配系统(以太网)中传输的数据帧格式。
源地址 = A的MAC地址:数据帧的实际源地址,来自客户端A。
目的地址 = R的MAC地址:数据帧的目的地址,指向路由器R,以便通过因特网进一步转发。
7.7.无限个域网
- 蓝牙
- 低速WPAN
- 高速WPAN
八、蜂窝互联网接入
蜂窝互联网基于蜂窝网络架构,将服务区域划分为多个“小区”(Cell),每个小区由一个基站(Base Station)覆盖。关键技术包括:
核心技术
- 多址接入技术:FDMA(频分多址)用于早期2G网络,通过不同频率分配通道;TDMA(时分多址)用于2G网络(如GSM),通过时间片分配通道;CDMA(码分多址)用于3G网络(如CDMA2000),通过编码区分用户;OFDMA(正交频分多址)用于4G/5G网络,高效利用频谱资源。
调制技术:如QPSK、64 - QAM、256 - QAM,提升数据传输速率。
MIMO:通过多天线提升信号容量和覆盖范围,5G中广泛应用;Massive MIMO是5G关键技术,支持大规模天线阵列,显著提高网络容量。
特点
- 广覆盖:通过蜂窝小区无缝切换,支持室内外、移动场景下的稳定连接。
高移动性:支持高铁、汽车等高速移动场景下的连续通信。
按需扩展:可通过增加基站灵活扩容,适应用户密度变化。
安全性:支持加密传输(如AES、SNOW 3G),保障数据隐私。
应用场景
- 移动互联网:手机上网、社交媒体、视频流媒体等。
物联网(IoT):智能电表、车联网(V2X)、可穿戴设备等低功耗广域连接。
应急通信:灾难场景下快速恢复通信能力。
工业自动化:远程控制、智能制造等实时性要求高的场景。
蜂窝网络演进
- 2G(GSM/CDMA):支持语音和低速短信数据(GPRS/EDGE)。
3G(UMTS/HSPA):引入高速数据传输,实现早期移动互联网体验。
4G(LTE - LTE - A):全IP网络,理论峰值速率达100Mbps - 1Gbps。
5G:eMBB(增强型移动宽带):支持VR/AR、8K视频;URLLC(超高可靠低时延通信):适用于自动驾驶、远程手术;mMTC(海量机器类通信):面向物联网的大规模连接。
挑战与未来
- 频谱资源紧张:高频段(毫米波)覆盖范围小,需与低频段协同优化。
能耗问题:5G基站密度高,需通过节能算法降低能耗。
安全威胁:防范DDoS攻击、隐私泄露等风险。
6G展望:太赫兹频段、空天地一体化网络、智能超表面(RIS)等技术将进一步提升性能。
参考内容
- 计算机网络教程,第六版|微课版,谢钧,谢希仁
- 湖科大教书匠: 深入浅出计算机网络 微课视频
- 我要的图文并茂: 计算机网络(全)
- Srlua小谢: 以太网CSMA/CD协议:通信原理、碰撞检测与退避机制深度解析
- 会做饭的网络工程师: 计算机网络——以太网的信道利用率
- Rebecca.Yan: 以太网帧、IP数据报的图解格式(包含相关例题讲解,一题足够)
-
- 会做饭的网络工程师 虚拟局域网VLAN(计算机网络)
- 盒马盒马: 计算机网络:数据链路层 - CSMA/CA协议