计算机网络
时间:2023-01-21 14:00:01
计算机网络
湖南科技大学计算机网络微课
b站视频链接:https://www.bilibili.com/video/BV1c4411d7jb?spm_id_from=333.337.search-card.all.click&vd_source=a1565026d150073a042e4cd0cc263851
计算机网络
- 计算机网络
- 前言
- 第一章:计算机网络概述
-
- 1.1 计算机网络在信息时代的作用
- 1.2 因特网概述
-
- 1. 互联网、互联网(互联网)和因特网
- 2. 因特网发展的三个阶段
- 3. 因特网的标准化
- 4. 由特网组成
- 1.3 三种交换方式
- 1.4 计算机网络的定义和分类
- 1.5 计算机网络的性能指标
- 1.6 计算机网络系统结构
-
- 1. 常见的计算机网络系统结构
- 2. 计算机网络系统结构分层的必要性
- 3. 计算机网络系统结构分层思想实例
- 4. 计算机网络系统结构中的特殊术语(实体、协议、服务)
- 第二章:物理层
-
- 2.1 物理的基本概念
- 2.2 物理层下的主要传输媒体
- 2.3 传输方式
- 2.4 编码与调制
- 2.5 极限容量的信道
- 3 数据链路层
-
- 3.1 数据链路层概述
- 3.2 封装成帧
- 3.3 差错检测
- 3.4 可靠传输
-
- 3.4.1 可靠传输的基本概念
- 3.4.2 停止-等待协议SW
- 3.4.3 返回N帧协议GBN
- 3.4.4 选择重传协议SR
- 3.5 点对点协议PPP
- 3.6 媒体接入控制
-
- 3.6.1 媒体接入控制的基本概念
- 3.6.2 媒体接入控制-静态划分信道
- 3.6.3 媒体接入控制-动态接入控制-随机接入
-
- 载波监测多址接入/碰撞检测CSMA/CD(Carier Sense Multiple Access/Colision Detection)
- 避免多址接入/碰撞CSMA/CA(CarierSenseMultipleAccess/ColisionAvoidance)
前言
未完成,持续更新……
第一章:计算机网络概述
1.1 计算机网络在信息时代的作用
- 有一种计算机网络通信基础设施发展变得重要信息服务基础设施;
- 计算机网络已经成为我们生活中的水、电、气等基础设施不可或缺的一部分。
1.2 因特网概述
1. 互联网、互联网(互联网)和因特网
- 网络(Network): 网络由若干结点(Node)链路连接这些结点(Link)组成。
- 互联网(internet):多个网络也可以通过路由器连接,从而形成一个覆盖范围较大的网络,即互联网(或互联网)。因此,互联网是一个网络(NetwrokofNetworks)”。
一般指由多个计算机网络连接而成的网络,这些网络之间的通信协议可以是任意的。 - 因特网(Internet):是世界上最大的互联网络(用户数亿,互联网数百万)。
是一个专用名词,它它是指世界上最大、最开放的特定计算机网络,由许多网络连接而成。TCP/IP协议家作为通信规则,它的前身来自美国ARPANET。
2. 因特网发展的三个阶段
- 基于ISP的三层结构的因特网
3. 因特网的标准化
- 因特网的标准化对因特网的发展起着非常重要的作用。
- 因特网制定其标准的一个重要特点是面向公众
- 因特网所有RFC(RequestForComments)因特网可以免费下载技术文档(http://www.itforg/rfc.html)
- 任何人都可以随时用电子邮件对某个文件发表意见或建议
- 因特网协会ISOC它是一个国际组织,负责全面管理因特网,促进其在世界各地的发展和使用。
- 特网体系结构委员会IAB,负责管理因特网相关协议的开发
- 因特网工程部IETF,研究中短期工程问题,主要针对协议的开发和标准化;
- 因特网研究部IRTF,一些需要长期考虑的问题需要从事理论研究和开发。
- 通过以下四个阶段制定因特网的正式标准:
- 因特网草案RFC文档)
- 建议标准(从这个阶段开始就成为RFC文档)
- 草案标准
- 因特网标准
4. 由特网组成
- 边缘部分
所有连接到因特网络的因特网络主机组成。 这部分是直接使用用户,用来做通信(传输数据、音频或视频)和资源共享。 - 核心部分
由大量网络连接这些网络路由器组成。 这部分是为边缘部分提供服务(提供连通性和交换)
1.3 三种交换方式
-
电路交换(Circuitswitching)
- 接通电话线的方式称为电路交换;
- 从通信资源分配的角度来看,交换(Switching)传输线路的资源以某种方式动态分配。
- 电路交换的三个步骤:
-
分组交换(PacketSwitching)
-
报文交换(Message Switching)
它通常被更先进的分组交换所取代,不再被描述。 -
对比电路交换、报纸交换和分组交换
1.4 计算机网络的定义和分类
- 计算机网络的精确定义没有统一
-
计算机网络最简单的定义是:一些互相连接的、自治的计算机的集合
- 互连:指计算机之间的数据通信,可以通过有线或无线进行
- 自治:是指独立的计算机,它有自己的硬件和软件,可以单独运行使用
- 集合:是指至少需要两台计算机
-
计算机网络的较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
-
- 计算机网络的分类
1.5 计算机网络的性能指标
- 性能指标可以从不同的方面来度量计算机网络的性能
- 常用的计算机网络的性能指标有以下8个:
-
速率
- 连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
- 基本单位:bit/s(b/s,bps),常用单位:kb/s,Mb/s,Gb/s,Tb/s
-
带宽
- 用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”;单位与速率单位相同。
-
吞吐量
- 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量
- 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
- 吞吐量受网络的带宽或额定速率的限制
-
时延
不能凭空判断发送时延占主导还是传播时延占主导,需要具体分析 -
时延带宽积
-
传播时延和带宽的乘积;
-
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特;
-
链路的时延带宽积又称为以比特为单位的链路长度。
-
-
往返时间
- 在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互。往返时间即为双向交互一次所需的时间。
-
利用率
- 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过);
- 网络利用率:全网络的信道利用率的加权平均;
- 利用率并非越高越好:当某信道的利用率增大时,该信道引起的时延也会迅速增加;也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。
-
丢包率
- 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率;
- 分组丢失的两个主要原因:① 分组误码;② 结点交换机缓存队列满(网络拥塞)。
- 丢包率可以反映网络的拥塞情况:
- 无拥塞时路径去包率为0
- 轻度拥塞时路径丢包率为1%~4%
- 严重拥塞时路径丢包率为5%~15%
-
1.6 计算机网络体系结构
1. 常见的计算机网络体系结构
2. 计算机网络体系结构分层的必要性
- 计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。
- “分层“可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
- 实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次
3. 计算机网络体系结构分层思想举例
使用主机中的浏览器访问一个网址的具体过程:
- 主机向web服务器发出请求:
-
应用层按HTTP协议的规定构建一个HTTP请求报文
-
应用层将HTTP报文交付给运输层处理,运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段
TCP首部的作用是为了区分应用进程以及实现可靠传输
3. 运输层将TCP报文段交付给网络层处理,网络层给TCP报文段谈价一个IP首部,使之成为IP数据报IP首部的作用是使IP数据报可以在互连网上传输,也就是被路由器转发
4. 网络层将IP数据报交付给数据链路层处理,数据链路层处理给IP数据报添加一个首部和一个尾部,使之成为帧帧的首部的作用是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收
帧的尾部的作用是为了让目的主机检查所接受到的帧是否有误码
5. 数据链路层将帧交付给物理层,物理层将帧看作是比特流,由于N1是以太网,物理链路层会给比特流增加前导码前导码的作用是为了让目的主机做好接收帧的准备
6. 物理层将加有前导码的比特流变换成相应的信号发送到传输媒体
7. 信号通过传输媒体到达路由器
8. 路由器的处理过程:
① 物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧;
② 数据链路层将帧的首部和尾部去掉后将其交付给网络层,这实际上交付的是IP数据报;
③ 网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发。
再后续的处理与之前相同。
-
- web服务器发回相应的响应给主机:
4. 计算机网络体系结构中的专用术语(实体、协议、服务)
- 实体
- 实体:任何可发送或接收信息的硬件或软件进程
- 对等实体:收发双方相同层次中的实体。
- 协议
- 协议:控制两个对等实体进行逻辑通信的规则的集合
- 协议的三要素
- 语义:定义所交换信息的格式
- 语法:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
- 协议:控制两个对等实体进行逻辑通信的规则的集合
- 服务
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
- 要实现本层协议,还需要使用下面一层所提供的服务。
- 协议是“水平的”,服务是“垂直的”。
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是”透明”的。
- 服务访问点,在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点为帧的“类型”字段。
- 网络层的服务访问点为IP数据报首部中的“协议字段”
- 运输层的服务访问点为“端口号”。
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
- 多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。
第二章:物理层
2.1 物理层的基本概念
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
- 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。
- 物理层的主要任务:
2.2 物理层下面的主要传输媒体
2.3 传输方式
-
串行传输与并行传输
-
同步传输与异步传输
-
单向通信(单工)、双向通信(半双工)与双单向同时通信(全双工)
2.4 编码与调制
在计算机网络中,最常见的是降数字基带信号通过编码或调制的方法在相应的信道进行传输。
- 常用编码:
- 调制方法:
-
基本调制方法:
使用基本调制方法,1个码元只能包含1个比特信息,如何能使1个码元包含更多的比特呢? -
混合调制方法:
- 混合调制举例:正交振幅调制QAM
- 混合调制举例:正交振幅调制QAM
-
2.5 信道的极限容量
- 奈氏准则:
- 香农公式:
- 总结:
- 在信道带宽一定的情况下,根据奈氏准则和香农公式,要想提高信息的传输速率就必须采用多元制(更好的调制方法)和努力提高信道中的信噪比;
- 自从香农公式发表后,各种新的信号处理和调制方法就不断出现,其目的都是为了尽可能地接近香农公式给出的传输速率极限。
3 数据链路层
3.1 数据链路层概述
- 数据链路层在网络体系结构中所处的地位:
- 链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
数据链路(DataLink)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。
- 使用点对点信道的数据链路层
三个重要问题:封装成帧、差错检测、可靠传输 - 使用广播信道的数据链路层
共享式以太网的媒体接入控制协议CSMA/CD
802.11局域网的媒体接入控制协议CSMA/CA - 数据链路层的互连设备
网桥和交换机的工作原理
集线器(物理层互连设备)与交换机的区别
3.2 封装成帧
-
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 帧头和帧尾中包含有重要的控制信息
- 帧头和帧尾的作用之一就是帧定界
并不是每一种数据链路层协议的帧都包含有帧定界标志,如以太网V2的MAC帧,其是通过物理层在帧前正佳前导码来进行帧定界的,在每个帧之间还包含96比特时间的帧间间隔,可以标志帧的结束。
-
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
- 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输,即使用转义字符防止将数据误判为帧定界。
- 面向比特的物理链路使用比特填充的方法实现透明传输。
- 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输,即使用转义字符防止将数据误判为帧定界。
-
为了提高顿的传输效率,应当使顿的数据部分的长度尽可能大些
-
考虑到差错控制等多种因素,每一种数据链路层协议都规定了顿的数据部分的长度上限,即最大传送单元MTU
(Maximum Transfer Unit)。
3.3 差错检测
- 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
- 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
- 检错方式一:奇偶校验
- 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
- 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
- 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
- 检错方式二:循环冗余校验CRC(Cyclic Redundancy Check)
- 收发双方约定好一个生成多项式G(x);
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
- 接收方通过生成多项式来计算收到的数据是否产生了误码;
- 例题:【循环元余校验CRC举例】待发送的信息为101001,生成多项式为G(x)=x3+x2+1,计算余数
- 收发双方约定好一个生成多项式G(x);
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
- 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
- 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
- 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
3.4 可靠传输
3.4.1 可靠传输的基本概念
-
使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。
-
数据链路层向上层提供的服务类型
- 不可靠传输服务:仅仅丢奔有误码的帧,其他什么也不做;
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
-
一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
-
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。 -
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
3.4.2 停止-等待协议SW
- 注意事项:
- 接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组
- 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1。
- 为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
- 超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”
- 在数据链路层点对点的往返时间比较确定,重传时间比较好设定
- 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。
- 停止-等待协议SW的信道利用率
- 当往返时延RTT远大于数据帧发送时延Tp时(例如使用卫星链路),信道利用率非常低。
- 若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。
- 为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR。
3.4.3 回退N帧协议GBN
- 累积确认
- 有误码时:
- 总结:
- 回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。
- 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议。
- 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。
3.4.4 选择重传协议SR
- 回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
- 一个数据分组的误码就会导致某后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
- 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下时序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
- 注意:
选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!
- 注意:
- 总结:
3.5 点对点协议PPP
- 点对点协议PPP(Point-to-PointProtocol)是目前使用最广泛的点对点数据链路层协议。
PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]。 - PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
- 对各种协议数据报的封装方法(封装成顺)
- 链路控制协议LCP:用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCPs:其中的每一个协议支持不同的网络层协议
- PPP协议的帧格式:
- 透明传输问题:
- 透明传输——面向字节的异步链路采用插入转义字符的字节填充法
- 透明传输——面向比特的同步链路采用插入比特0的比特填充法
- 透明传输——面向字节的异步链路采用插入转义字符的字节填充法
- 差错检测:
- 透明传输问题:
- PPP协议的工作状态:
3.6 媒体接入控制
3.6.1 媒体接入控制的基本概念
- 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
3.6.2 媒体接入控制——静态划分信道
- 信道复用
-
复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
-
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
-
频分复用FDM
频分复用的所有用户同时占用不同的频带资源并行通信 -
时分复用TDM
时分复用的所有用户在不同的时间占用同样的频带宽度 -
波分复用WDM
-
码分复用CDM
- 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(CodeDivisionMultipleAccess)。
同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA (Frequency Division Multiple Access)和 时分多址 TDMA(Time Division Multiple Access)。- 在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
- 复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
- 多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
- 某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用
- 在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
- 与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。
- 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
- CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干抚能力,其频谱类似于白噪声,不易被敌人发现。
随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
- 在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128。为了简单起见,在后续的举例中,我们假设m为8。
- 使用CDMA的每一个站被指派一个唯一的m bit码片序列(ChipSequence)
- 一个站如果要发送比特1,则发送它自己的m bit码片序列
- 一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码
- 码片序列的挑选原则如下:
- 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列
- 分配给每个站的码片序列必须相互正交(规格化内积为0)
令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列。
两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0。
- 使用CDMA的每一个站被指派一个唯一的m bit码片序列(ChipSequence)
- 应用举例:
- 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(CodeDivisionMultipleAccess)。
-
3.6.3 媒体接入控制——动态接入控制——随机接入
载波监听多址接入/碰撞检测CSMA/CD(Carier Sense Multiple Access/Colision Detection)
- 载波监听多址接入/碰撞检测CSMA/CD(Carier Sense Multiple Access/Colision Detection):应用于使用广播信道的有线局域网
-
CSMA/CD协议——争用期(碰撞窗口)
- 主机最多经过2 τ \tau τ(即 δ \delta δ→0)的时长就可检测到本次发送是否遭受了碰撞
- 因此,以太网的端到端往返传播时延2 τ \tau τ称为争用期或碰撞窗口。
- 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
- 每一个主机在自己发送顿之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。
- 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。
- 10Mb/s以太网把争用期定为512比特发送时间,即51.2 μ \mu μs,因此其总线长度不能超过5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过2500m。
-
CSMA/CD协议——最小帧长
- 以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期);
如果要发送的数据非常少,那么必须加入一些填充字节,使顿长不小于64字节。 - 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
- 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞;
- 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧
- 以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期);
-
CSMA/CD协议——最大帧长
-
CSMA/CD协议——截断二进制指数退避算法
- 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定
- 当重传达16次仍不能成功时,表明同时打算发送顿的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告。
-
CSMA/CD协议——信道利用率
- 考虑以下这种理想情况:
- 各主机发送帧都不会产生碰撞;
- 总线一旦空闲就有某个主机立即发送帧;
- 发送一占用总线的时间为T0+ τ \tau τ,而核本身的发送时间是T0,
- 考虑以下这种理想情况:
-
CSMA/CD协议——帧发送流程
-
CSMA/CD协议——帧接收流程
-
载波监听多址接入/碰撞避免CSMA/CA(CarierSenseMultipleAccess/ColisionAvoidance)
- 载波监听多址接入/碰撞避免CSMA/CA(CarierSenseMultipleAccess/ColisionAvoidance):应用于广播信道的无线局域网
- 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送顿之前先对传输媒体进行载波监听。若发现有其他站在发送顿,就推退发送以免发生碰撞。
在无线局域网中,不能使用碰撞检测CD,原因如下:- 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高;
- 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
- 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议) 来保证数据被正确接收。- 802.11的MAC层标准定义了两种不同的媒体接入控制方式:
- 分布式协调功能DCF(DistributedCoordinationFunction)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
- 点协调功能PCF(PointCoordinationFunction)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
- 帧间间隔IFS(nterframeSpace)
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。- 帧间间隔的长短取决于该站点要发送的帧的类型:
- 高优先级帧需要等待的时间较短,因此可优先获得发送权;
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
- 常用的两种帧间间隔如下:
- 短帧间间隔SIFS(28 μ \mu μs),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的顿类型有ACK帧、CTS顺、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何顿。
- DCF帧间间隔DIFS(128 μ \mu μs),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
- 帧间间隔的长短取决于该站点要发送的帧的类型:
- 802.11的MAC层标准定义了两种不同的媒体接入控制方式:
- CSMA/CA协议的工作原理:
- 当站点检测到信道是空闲的,并且所发送的数据顿不是成功发送完上一个数据顿之后立即连续发送的数据帧则不使用退避算法。
- 以下情况必须使用退避算法:
- 在发送数据帧之前检测到信道处于忙状态时;
- 在每一次重传一个数据帧时;
- 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)。
- CSMA/CA协议的退避算法
- 在执行退避算法时,站点为退避计时器设置一个随机的退避时间
- 当退避计时器的时间减小到零时,就开始发送数据;
- 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
- 在进行第次退避时,退避时间在时隙编号(0,1,…,22+i-1)中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。
- 在执行退避算法时,站点为退避计时器设置一个随机的退避时间
- CSMA/CA协议的信道预约和虚拟载波监听
-
信道预约
- 为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约
(1)源站在发送数据顿之前先发送一个短的控制帧,称为请求发送RTS(RequestToSend),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
(2)若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(ClearToSend),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
(3)源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。
(4)若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。 - 除源站和目的站以外的其他各站,在收到CTS幢帧或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。
- 如果RTS帧发生碰撞,源站就收不到CTS幢帧,需执行退避算法重传RTS帧。
- 由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据顿重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:
- 使用RTS帧和CTS帧
- 不使用RTS帧和CTS帧
- 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
- 为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约
-
虚拟载波监听
- 除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制
- 由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。
-
- 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送顿之前先对传输媒体进行载波监听。若发现有其他站在发送顿,就推退发送以免发生碰撞。