目录
[1、IEEE 802.1Q帧](#1、IEEE 802.1Q帧)
一、绪论
1、网络、互联网和因特网
网络由若干结点和链接这些结点的链路组成
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网,因此,互联网是网络的网络
因特网是世界上最大的互联网络
internet:是一个通用名词,它泛指由多个计算机网络互联而成的网络,在这些网络之间的通信协议可以是任意的。
Internet:是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议作为通信的规则,其前身是美国的ARPANET。
2、因特网发展的三个阶段
1969:从单个网络ARPANET向互联网发展;
1985:逐步建成三级结构的因特网;
1993:逐步形成了多层次ISP结构的因特网。
因特网服务提供者(ISP)
基于ISP的三层结构的因特网

3、因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用
因特网在指定其标准上的一个很大的特点是面向公众
因特网所有的RFC技术文档都可以从因特网上免费下载;
任何人都可以随时用电子邮件发表对某个文档的意见或建议
因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
因特网体系结构委员会IAB,负责管理因特网有关协议的开发
因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化。
因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
指定因特网的正式标准要经过以下四个阶段:
①因特网草案
②建议标准
③草案标准
④因特网标准
4、因特网的组成
边缘部分:由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享
核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的

5、三种交换方式
1、电路交换:电话交换机连通电话线的方式
从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源

电路交换的三个步骤:①建立连接、②通话、③释放连接
2、分组交换

3、报文交换
4、三种交换方式的对比

电路交换:
优点:①通信时延小、②有序传输、③没有冲突、④适用范围广、⑤实时性抢、⑥控制简单
缺点:①建立连接时间长、②线路独占,使用效率低、③灵活性差、④难以规格化
报文交换:
优点:①无需建立连接、②动态分配路线、③提高线路可靠性、④提高线路利用性、⑤提供多目标服务
缺点:①引起了转发时延、②需要较大存储空间、③需要传输额外的信息量
分组交换:
优点:①无需建立连接、②线路利用率高、③简化了存储管理、④加速传输、⑤减少出错概率和重发数据量
缺点:①引起了转发时延、②需要传输额外的信息量、③对于数据报服务,存在失序丢失或重复分组问题。
6、计算机网络的定义
计算机网络的精确定义并未统一
计算机网络的最简单定义是:一些互相连接的、自治的计算机的集合。
互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用
集合:是指至少需要两台计算机。
计算机网络较好的定义:计算机网络主要是由一些通用的,可编程的硬件互连而成的,这些硬件并非专门用来实现某一特定目的,这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛和日益增长的应用
7、计算机网络的分类

8、计算机网络的性能指标
1、速率:
比特:计算机中的数据量的单位,也是信息论中信息量的单位,一个比特就是二进制数字中的一个1或0。

速率:连接在计算机网络上的主机在数字通道上传送比特的速率,也称比特率

2、带宽
带宽:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率,单位:b/s
3、吞吐量
吞吐量表示在单位时间内通过某个网络的数据量
吞吐量受网络的带宽或额定速率的限制
4、时延
网络时延:
①发送时延=分组长度(b)/发送速率(b/s)
②传播时延=通信长度(m)/电磁波传播速率(m/s)
③处理时延(忽略)一般不便于计算
5、时延带宽积
时延带宽积=传播时延 × 带宽
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特、链路的时延带宽积又称为以比特为单位的链路长度
6、往返时间(RTT)
7、利用率
①信道利用率:用来表示某信道又百分之几的时间是被利用的
②网络利用率:全网络的信道利用率的加权平均
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加,因此,信道利用率并非越高越好

也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费,应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围之内。
8、丢包率
丢包率即分组丢失率,是指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率
分组丢失主要有两种情况:
①分组在传输过程中出现误码,被结点丢弃
②分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞。
9、计算机网络体系结构
1、

2、计算机网络体系结构分层的必要性
计算机网络是个非常复杂的系统,早在最初的ARPANET设计时就提出了分层的设计理念

3、专业术语
实体:任何可发送或接收信息的硬件或软件进程
对等实体:收发双方相同层次中的实体

协议:控制两个对等实体进行逻辑通信的规则的集合

协议三要素:语法、语义、同步
语法:定义所交换信息的格式
语义:定义收发双方所要完成的操作
同步:定义收发双方的时序关系
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还需要使用下面一层所提供的服务
协议是水平的,服务是垂直的
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议,也就是说,下面的协议对上面的实体是透明的。

服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
数据链路层的服务访问点为帧的类型字段
网络层的服务访问点为IP数据报首部的协议字段
运输层的服务访问点为端口号
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
协议数据单元PDU:对等层次之间传递的数据包
服务数据单元SDU:同一系统内,层与层之间交换的数据包
多个SDU可以合成为一个PDU,一个SDU也可以划分为几个PDU

二、物理层
1、物理层的基本概念
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。

物理层协议的主要任务:
机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置
电器特性:指明在接口电缆的各条线上出现的电压的范围
功能特性:指明某条线上出现的某一电平的电压表示何种意义
过程特性:指明对于不同功能的各种可能时间的出现顺序
2、物理层下面的传输媒体

导引型传输媒体:
①同轴电缆:

②双绞线:

③光纤

当光从高折射率的媒体射向低折射率的媒体上,其折射角将大于入射角,因此,如果入射角够大,就会出现全反射,即光碰到包层时,就会反射回纤芯。
光在纤芯中传输的方式使不断地全反射

④电力线:

非导引型传输媒体:
①无线电波:
②微波:
③红外线:
点对点无线传输。直线传输,中间不能有障碍物。传输速率低。
④可见光:
3、传输方式
串行&并行:

同步&异步:

单向&双向交替&双向同时:

4、编码与调制

码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
1、编码
不归零编码:

需要额外一根传输线来传输时钟信号,使发送方和接收方同步。
对于计算机网络,宁愿利用这根传输线传输数据信号,而不是时钟信号。
归零编码:

每个码元传输结束后信号都要归零,所以接收方只要在信号归零后进行采样即可,不需要单独的时钟信号。
实际上,归零编码相当于把时钟信号用归零方式编码在了数据内,这称为自同步信号。
但是,归零编码中大部分的数据带宽都用来传输归零而浪费掉了。
曼彻斯特编码:

码元中间时刻的跳变既表示时钟,又表示数据。
差分曼彻斯特编码:

跳变仅表示时钟。
码元开始处电平是否变化表示数据。
2、调制
基本调制方法:
使用基本调制方法,1个码元只能包含1个比特信息。
混合调制:
因为频率和相位是相关的,即频率和相位随时间的变化率,所以因此只能调制频率和相位中的一个。
通常情况下,相位和振幅可以结合起来一起调制,称为正交振幅调制QAM。
5、信道的极限容量
失真因素:①码元传输速率、②信号传输距离、③噪声干扰、④传输媒体质量。
1、奈氏准则
在假定的理想条件下,为了避免码间串扰,码元传输速率是有上限的。

码元传输速率又称为波特率、调制速率,它与比特率有一定关系:
当1个码元只携带1比特信息量时,则波特率与比特率在数值上是相等的、
当1个码元携带n比特的信息量时,则波特率转换成比特率时,数值要×n。
要提高信息传输速率(比特率)就必须设法使每个码元能携带多个比特的信息量,这需要采用多元制。
实际的信道所能传输的最高码元速率,要明显低于奈氏准则给出的上限数值。
2、香农公式
带宽受限且有高斯白噪声干扰的信道的极限信息传输速率

在信道带宽一定的情况下,根据奈氏准则和香农公式,要想提高信息传输速率就必须采用多元制和努力提高信道中的信噪比。
自从香农公式发表后,各种新的信号处理和调制方法就不断出现,其目的都是为了尽可能地接近香农公式给出的传输速率极限。
三、数据链路层
1、概述
链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。
使用点对点信道的数据链路层的三个重要问题:
封装成帧、差错检测、可靠传输
使用广播信道的数据链路层:
共享式以太网的媒体接入控制协议CSMA/CD;
802.11局域网的媒体接入控制协议CSMA/CA;
数据链路层的互联设备:
网桥和交换机的工作原理、集线器与交换机的区别。
2、封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使其成为帧。
帧头和帧尾中包含有重要的控制信息。
帧头和帧尾的作用之一就是帧定界。
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
面向字节的物理链路使用字节填充的方式实现透明传输;
面向比特的物理链路使用比特填充的方式实现透明传输;
为了提高帧的传输效率,应当使帧的数据部分长度尽可能大些。
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU。
3、差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能会变成1,这称为比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
1、奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据中"1"的个数为奇数(奇校验)或偶数(偶校验)。
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码。
2、循环冗余校验CRC
收发双方约定好一个生成多项式G(x);
发送方基于待发送的数据和生成多项式计算出差错检验码,将其添加到待传输数据后一起传输。
接收方通过生成多项式来计算收到的数据是否产生了误码。


举例:

判断传输是否误码:余数为0,认为传输过程无误码;余数不为0,认为传输过程产生误码。
检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用。
循环冗余校验CRC有很好的检错能力,虽然计算比较复杂,但非常易于用硬件实现,因此广泛应用于数据链路层。
在计算机网络中通常采用检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这要取决于数据链路层向上层提供的是可靠传输服务还是不可靠传输服务。
4、可靠传输
使用差错检验技术,接收方的数据链路层就可检测出帧在传输过程中是否产生了误码。
数据链路层向上层提供的服务类型:
不可靠传输服务:仅仅丢弃有误码的帧;
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
一般情况下,有线链路的误码率比较低,为减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序、分组重复。
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。、
5、可靠传输的实现机制
1、停止-等待协议SW


接收方收不到数据分组,就不会发送ACK/NAK,如果不采取其他措施,发送方就会一直处在等待接收方的状态。为了解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器,若到了超时计时器所设置的重传时间,而发送方仍收不到接收方的任何ACK/NAK,则重传原来的数据分组。一般可将重传时间选为略大于从发送方到接收方的平均往返时间。

为避免分组重复,必须给每个分组带上序号。对于SW,由于每发送一个数据分组就停止等待,只要保证每发送一个数据分组,发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特位来编号就够了。

为了让发送方能判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用的比特数量与数据分组编号所用的比特数量一样,数据链路层一般不会出现ACK分组迟到的情况,因此数据链路层实现SW可以不用给ACK分组编号。
SW的信道利用率


当往返时延RTT远大于数据帧发送时延Td时,信道利用率非常低。
为了克服SW信道利用率很低的缺点,就产生了另外两种协议。
2、回退N帧协议GBN

接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现而定),对按序列到达的最后一个分组发送确认,ACKn表示序号为n及以前的所有数据分组都已正确接收。
即使确认分组丢失,发送方也可能不必重传。
发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器就立刻重传。
当通信线路质量不好时,回退N帧协议的信道利用率并不比停止-等待协议高。
若Wt超过取值范围:接收方无法分辨新、旧分组。

回退N帧协议的接收窗口尺寸Wr只能等于1,因此接收方只能按序接收正确到达的数据分组。
一个数据分组的误码就会导致后续多个数据分组不能被接收方按序接收而丢弃。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的浪费。
为了进一步提升性能,可设法只重传出现误码的数据分组,因此,接收窗口的尺寸Wr不应再等于1,以便接收方先收下失序到达但无误码并且序号露在接收窗口内的数据分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议。
3、选择重传协议SR
PS:选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收到的数据分组进行逐一确认。

6、点对点协议PPP
点对点协议PPP是目前使用最广泛的点对点数据链路层协议。
PPP协议为在点对点链路传输各种下而已数据报提供了一个标准方法,主要有以下三部分组成:
对各种协议数据报的封装方法(封装成帧)
链路控制协议LCP:用于建立、配置以及测试数据链路的连接
一套网路控制协议NCPs:其中的每一个协议支持不同的网络层系协议。

帧格式:

标志字段:PPP帧的定界符,取值为0x7E
地址字段:取值为0xFF,预留
控制字符:取值为0x03,预留
协议字段:指明帧的数据部分送交哪个协议处理

帧检验序列字段:CRC计算出的校验位
透明传输:
实现透明传输的方法:面向字节的异步链路、面向比特的同步链路

面向字节的异步链路采用插入转义字符的字节填充法:

面向比特的同步链路采用插入比特0的比特填充法:

差错检测 :
采用的生成多项式:

接收方每收到一个PPP帧,就进行CRC检验,若CRC检验正确,就收下这个帧;反之,就丢弃这个帧,使用PPP的数据链路层向上不提供可靠传输服务。
工作状态:

7、媒体接入控制
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC。
1、静态划分信道
信道复用:
复用是通信技术中的一个重要概念,复用就是通过一条物理线路同时传输多路用户的信号。
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

频分复用FDM

频分复用的所有用户同时占用不同的频带资源并行通信。
时分复用TDM

时分复用的所有用户在不同时间占用同样的频带宽度。
波分复用WDM

码分复用CDM
人们更常用的名词是码分多址CDMA
同理,上述复用对应的名词是频分多址FDMA、时分多址TDMA
与FDMA和TDMA不同,CDMA的用户可以在同样的时间使用同样的频带进行通信。
由于各用户使用经过特殊挑选的码型,因此各用户之间不会造成干扰。
在CDMA中,每一个比特时间再划分为m个短的时间间隔,称为码片。通常m的值是64/128。
使用CDMA的每一个站被指派一个唯一的m bit码片序列。
一个站如果要发送比特1,则发送他自己的m bit码片序列;
一个站如果要发送比特0,则发送他自己的m bit码片序列的二进制反码。

码片序列挑选原则:
1.分配给每个站的码片序列必须各不相同
2.分配给每个站的码片序列必须相互正交(规格化内积为0)
令向量S表示站S的码片序列,向量T表示其他任何站的码片序列

2、动态接入控制------随机接入 ------CSMA/CD
载波监听多址接入/碰撞检测 CSMA/CD协议
MA:多个站连接在一条总线上,竞争使用总线;
CS:每一个站在发送帧之前先要检测总线上是否有其他站点在发送帧
若检测到总线空闲96比特时间,则发送这个帧;
若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
CD:每一个正在发送帧的站边发送边检测碰撞
一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送。
以太网还采取一种叫做强化碰撞的措施,这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧之外,还要再继续发送32比特/48比特的人为干扰信号,以便有足够多的碰撞信号使所有站点都能检测出碰撞。
争用期(碰撞窗口):

主机最多经过2的时长就可以检测到本次发送是否遭受了碰撞。
因此,以太网的端到端往返传播时延2称为争用期(碰撞窗口)。
经过争用期这段时间还没检测到碰撞,才能肯定这次发送不会发生碰撞。
显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。也难辞,共享式以太网不能连接太多主机,使用的总线也不能太长。
最小帧长:
以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期)
以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧发送过程中是否遭遇了碰撞。
截断二进制指数退避算法:
退避时间=基本退避时间(争用期2)×随机数r(r从离散的整数集合(0,1,2......2^k-1)中随机挑选一个数k=Min[重传次数,10])
例如:

若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道,但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(动态退避),因而减小发生碰撞的概率,有利于系统稳定。
当重传达16次仍不能成功时,表明打算发送帧的主机太多,则丢弃该帧,并向高层报告。
信道利用率:

考虑以下理想情况:
各主机发送帧都不会发生碰撞;总线一旦空闲就有某个主机立即发送帧;发送一帧占用总线的时间为T0+,而本身的发送时间是T0.

参数a的值应该尽量小,以提高信道利用率,以太网端到端的距离受到限制,以太网帧的长度应尽量长些。
帧发送流程:

帧接收流程:

3、动态接入控制------随机接入 ------CSMA/CA
载波监听多址接入/碰撞避免 CSMA/CA
在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体纪念性载波监听,如果有其他站在发送帧,就推迟发送以免发生碰撞。
在无线局域网中不能使用碰撞检测CD,原因:
1、由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到信号强度往往会远小于发送信号的强度,如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
2、即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。

802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)用来保证数据被正确接收。
802.11的MAC层标准定义了两种不同的媒体接入控制方式:
1.分布式协调功能DCF。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
2.点协调功能PCF。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
帧间间隔IFS:
802.11标准规定,所有站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS
帧间间隔的长短取决于该站点要发送的帧的类型:
高优先级帧需要等待的时间较短,因此可以优先获得发送权;
低优先级帧需要等待的时间较长,某个站的的低优先级帧还没来得及发送,而其他站的高优先级已发送到信道上,低优先级帧只能再推迟发送,减少发生碰撞的机会。
常用的两种帧间间隔:
短帧间间隔SIFS(28s),是最短的帧间间隔,用来分隔开属于一次对话的各帧,一个站点应当能够在这段时间内从发送方式切换到接收方式,使用SIFS的帧类型有ACK帧,CTS帧,由过长的MAC帧分片后的数据帧,以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
DCF帧间间隔DIFS,它比SIFS长的多,在DCF方式中用来发送数据帧和管理帧。
CSMA/CA的工作原理:

当站点检测到通信是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
以下情况必须使用退避算法:
1.在发送数据帧之前检测到信道处于忙状态时
2.在每一次重传一个数据帧时
3.在每一次成功发送后要连续发送下一个帧时(避免一个站点长时间占用信道)。
CSMA/CA的退避算法:
在执行退避算法时,站点为退避计时器设置一个随机的退避时间:
当退避计时器的时间减小到零的时候,就开始发送数据;
当退避计时器的时间未减小到零时,而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
在进行第i次退避时,退避时间在间隙编号(0,1,......2^(2+i)-1)中随机选择一个,然后乘基本退避时间(一个间隙的长度)就可以得到随机的退避时间,这样做是为了使不同站点选择相同退避时间的概率变小,当间隙编号达到255时,就不再增加了。

CSMA/CA协议的通信预约和虚拟载波监听:
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对西宁道进行预约。
1.源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS。它包括源地址,目的地址,以及这次通信所需的持续时间;
2.若目的站正确接收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS,他也包括这次通信所需的持续时间(从RTS帧中复制到CTS中);
3.源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧;
4.若目的站正确接收到源站发来的数据帧,再等待一段时间SIFS后,就向源站发送确认帧ACK。

除源站和目的站以外的其他各站,在收到CTS帧后就推迟接入到无线局域网中,这样就保证了源站和目的站之间的通信不会收到其他站的干扰;
如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。
由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销很小。因此用很小的代价对信道进行预约是很值得的。
802.11标准规定了3种情况:
使用RTS帧和CTS帧
不使用RTS帧和CTS帧
只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧。
除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这成为802.11的虚拟载波监听机制。
由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧、数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听信道上的信号,因此虚拟载波监听机制可以减少隐蔽站带来的碰撞问题。
8、MAC地址/IP地址/ARP协议
1、MAC地址
使用点对点信道的数据链路层不需要使用地址;使用广播信道的数据链路层必须使用地址来区分各主机。
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。
在每个主机发送的帧中必须携带标识发送主机和接收主机的地址,由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址。
MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址。注意:这并不意味着MAC地址属于网络体系结构中的物理层
一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个适配器都有一个全球唯一的MAC地址,而交换机和路由器往往拥有更多的网络接口,所以会有更多的MAC地址。严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

判断多播地址:
2、IP地址
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
①网络编号:标识因特网上数以百万计的网络
②主机编号:标识同一网络上不同主机(或路由器各接口)
显然,MAC地址不具备区分不同网络的功能
如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(不是一般用户的应用方式)
如果主机所在的网络要接因特网,则IP地址和MAC地址都要使用。

数据包转发过程中IP地址和MAC地址的变换情况:

数据包转发过程中源IP地址和目的IP地址保持不变;
数据包转发过程中源MAC地址和目的MAC地址逐个链路改变。
3、ARP协议
源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中)。
目的主机收到ARP请求后,将源主机的IP地址和MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址。
源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机。
ARP的作用范围:逐段链路或逐个网络使用。
除了ARP请求和响应外,还有其他类型的报文。
ARP没有安全验证机制,存在ARP欺骗问题。
9、集线器与交换机
早期的总线型以太网

使用双绞线和集线器HUB的星型以太网

使用集线器的以太网本质上还是总线网,各站共享总线资源,使用CSMA/CD协议;
集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站网卡检测);
集线器一般都有少量的容错能力和网络管理能力。
以太网交换机:

以太网交换机通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般都工作在全双工方式。
以太网交换机具有并行性,能同时连接多对接口,使多对主机能同时通信,无碰撞(不适用CSMA/CD协议)。
以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
对比集线器和交换机:
集线器HUB:早期以太网的互联设备,工作在OSI体系的物理层,对接收到的信号进行放大,转发;使用集线器作为互联设备的以太网仍然属于共享总线式以太网,集线器互连起来的所有主机共享总线带宽,属于同一个碰撞域和广播域。
交换机SWITCH:目前以太网使用最广泛的互联设备,工作在OSI体系的数据链路层,根据MAC地址对帧进行转发,使用交换机作为互联设备的以太网称为交换式以太网,交换机可以根据MAC地址过滤帧,即隔离碰撞域;交换机的每个接口是一个独立的碰撞域。交换机隔离碰撞但不隔离广播
10、以太网交换机自学习和转发帧的流程
以太网交换机是一种即插即用的设备,刚上电启动时其内部的帧交换表是空的,随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
每条记录都有自己的有效时间,到期自动删除,这是因为MAC地址与交换机接口的对应关系不是永久性的。
以太网自学习和转发帧的流程:
①收到帧后进行登记,登记的内容为帧的源MAC地址以及进入交换机的接口号;
②根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有三种情况:
Ⅰ明确转发:交换机知道应该从哪个接口转发该帧(单播,多播,广播);
Ⅱ盲目转发:交换机不知道应该从哪个接口转发该帧,只能将其通过除进入交换机的接口外的其他接口转发(泛洪);
Ⅲ明确丢弃:交换机知道不应该转发该帧,将其丢弃。
11、以太网交换机的生成树协议STP
添加冗余链路可以提高以太网的可靠性,但是冗余链路也会带来负面效应------形成网络环路
带来以下问题:
①广播风暴:大量消耗网络资源,使得网络无法正常转发其他数据帧;
②主机收到重复的广播域:大量消耗主机资源;
③交换机的帧交换表震荡。
以太网交换机使用生成树协议STP可以在增加冗余链路的同时又避免网络环路带来的问题。
不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的(无逻辑环路)。
最终的树形逻辑拓扑要确保联通整个网络;
当首次连接交换机或网络物理拓扑发生变化时,交换机都将进行生成树的重新计算。
12、虚拟局域网VLAN概述
以太网交换机工作在数据链路层,使用一个或多个以太网交换机互联起来的交换式以太网,其所有的站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域相应扩大,巨大的广播域会带来很多弊端:广播风暴,难以管理和维护,潜在的安全问题。

分割广播域的方法:
使用路由器可以分割广播域(成本较高)

虚拟局域网VLAN技术应运而生
VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
13、虚拟局域网VLAN的实现机制
1、IEEE 802.1Q帧
IEEE 802.1Q帧也称Dot One Q帧,对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记

VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网帧属于哪一个VLAN
802.1Q帧是由交换机处理的,而不是用户主机。
当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧;
当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧。
2、交换机的端口类型

Access端口一般只用于连接用户计算机,Access端口只能属于一个VLAN,Access端口的PVID值与端口所属的VLAN的ID相同(默认为1)。
Access端口接收处理方法:一般只接受"未打标签"的普通以太网MAC帧,根据接收帧的端口的PVID给帧打标签,即插入4字节的VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
Access端口发送处理方法:若帧中的VID与端口的PVID相等,则去标签并转发该帧,否则不转发。
Trunk端口一般用于交换机之间或交换机与路由器之间的互联;Trunk端口可以属于多个VLAN,用户可以设置Trunk端口的PVID值,默认情况下为1。
Trunk端口接收处理方法:接收未打标签的帧,根据接收帧的端口的PVID给帧打标签,字段中的VID取值与端口的PVID相等。接收已打标签的帧
Trunk端口发送处理方法:对VID等于PVID的帧,去标签后转发。对VID不等于PVID的帧,直接转发。
Hybrid端口既可用于交换机之间或交换机与路由器之技安的互联,也可用于交换机与用户计算机之间的互联。Hybrid端口可以属于多个VLAN,用户可以设置Hybrid端口的PVID值,默认情况下为1
Hybrid端口发送处理方法:查看帧的VID是否在端口的去标签列表中,若存在,去标签后转发,若不存在,直接转发。
Hybrid端口接收处理方法:接收未打标签的帧,根据接收帧的端口的PVID给帧打标签,字段中的VID取值与端口PVID相等。接收已打标签的帧。
