物理层
物理层:解决在各种传输媒介上传输比特的问题。
物理层协议的主要内容
- 机械特性:接口线的形状,尺寸,引脚数目,排列等
- 电气特性:接口电缆各条线上电压的范围
- 功能特性:某条线出现的某一电压表示何种意义
- 过程特性:指明不同功能的各种可能事件的出现顺序
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。
连接网络层的传输媒体:导引型(双绞线,同轴电缆,光纤)与非导引型(微波,wifi)
传输媒体
导向型传输媒体
同轴电缆:比较贵,集线器出现后用的不多
双绞线:
- 抵御部分来自外界的电磁波干扰,减少相邻导线的电磁干扰
- 屏蔽型双绞线电缆比无屏蔽型电缆增加了金属丝编织的屏藏层。
光纤:多模光纤与单模光纤
电力线
非导向型传输媒体
无线电波
微波
红外线
可见光
传输方式
-
串行与并行传输
-
同步传输与异步传输:
-
同步:数据块传输,使双方时钟同步的方法有
-
外同步:在收发双方之间添加一条单独的时钟信号线
-
内同步:发送端将时钟同步信号编码到发送数据中一起传输(例如曼彻斯特编码)
-
-
异步:字节之间异步(字节之间的时间间隔不固定,但字节中的每个比特仍然要同步。)
-
-
单向通信(广播,一条信道),双向交替通信(对讲机,两条信道),双向同时通信(电话,两条信道)
编码与调制
-
1. 数据(传送消息的实体-->文字,视频等) 2. 信号(数据的电气或电磁表现) 3. 码元(用一个**固定时长的信号波形**表示K进制数) 4. 信源(数据源头) 5. 信道(信号的传输媒介,一般表示向某个方向传送信息的介质) 一个传输媒体可有多条信道 6. 信宿(接收数据的终点)
- 基带信号分为数字基带信号(cpu与内存)与模拟基带信号(麦克风音频信号)
- 信道分为数字信道与模拟信道
数据与信号都可用模拟的与数字的表示
如连续变换的可以称模拟数据,只能取有限个值的称数字信号。
编码
- 不归零编码
- 要额外传输时钟信号
- 归零编码
- 时钟信号用“归零”表示时钟同步,但编码效率低
- 曼彻斯特编码
- 码元中间时刻的跳变既表示时钟又表示数据
- 差分曼彻斯特编码
- 1.跳变仅表示时钟;
- 2.码元开始处电平是否发生变化表示数据。
数字信号,模拟信号转换为数字信号,在模拟信号中传输
调制
数字信号转换为模拟信号,在模拟信道中传输
模拟信号转换为另一种模拟信号,在模拟信道中传输
基本调制(二元制)
混合调制(多元制)
因为频率和相位是相关的,即频率是相位随时间的变化率。所以一次只能调制频率和相位两个中的一个。
通常情况下,相位和振幅可以结合起来一起调制,称为正交振幅调制QAM。
QAM16有16(2^4)种码元,每种码元可表示4个比特
信道极限
奈氏准则
理想低通信道的最高码元传输速率=2W Baud
理想带通信道的最高码元传输速率=W Baud
W:信道带宽(单位为Hz)
Baud:波特,即码元/秒
-
码元传输速率又称为波特率、调制速率、波形速率或符号速率。它与比特率有一定关系:
- 当1个码元只携带1比特的信息量时,则波特率(码元/秒)与比特率(比特/秒)在数值上是相等的;
- 当1个码元携带n比特的信息量时,则波特率转换成比特率时,数值要乘以n。
-
要提高信息传输速率(比特率),就必须设法使每一个码元能携带更多个比特的信息量。这需要采用多元制。
香农公式
带宽受限且有高斯白噪声干扰的信道的极限信息传输速率。
C=W x log2(1+S/N)
C:信道的极限信息传输速率(单位: b/s)
W:信道带宽(单位:Hz)
S:信道内所传信号的平均功率
N:信道内的高斯噪声功率
S/N:信噪比,使用分贝(dB)作为度量单位
信噪比(dB) = 10 x log10(S/N) (dB)
在实际信道上能够达到的信息传输速率要比该公式的极限传输速率低不少。这是因为在实际信道中,信号还要受到其他一些损伤,如各种脉冲干扰、信号在传输中的衰减和失真等,这些因素在香农公式中并未考虑。
数据链路层
链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。
三个重要问题
封装成帧
差错检测
可靠传输
共享式以太网的媒体接入控制协议CSMA/CD
802.11局域网的媒体接入控制协议CSMA/CA
封装成帧
1封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
2为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
3考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit) 。
帧头和帧尾中包含有重要的控制信息。帧头和帧尾的作用之一就是帧定界。
帧结构
- 以太网数据帧
帧头前两个地址为MAC地址
载荷为上层的数据
帧尾检错码用来检错
以太网帧定界是交付给物理层,
在帧前面加8字节前导码(同步码,帧开始定界符)
帧间间隔(96比特时间)所以不用帧结束定位符
- PPP帧
前后有定位帧
透明传输
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
将数据中出现的帧定位符进行转义,如字符填充,比特填充
-
面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
- 在
定位符flag 转义符esc
,数据出现flag,esc
在前加上转义符
- 在
-
面向比特的物理链路使用比特填充的方法实现透明传输。
- (
HDLC协议帧定位符
01111110)使用零比特填充法,每五个连续1添加一个0
- (
差错检测
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错,称为比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据中**“1”的个数为奇数**(奇校验)或偶数(偶校验)。
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检);
循环冗余校验CRC
(Cyclic Redundancy Check)
循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
收发双方约定好一个生成多项式G(x);
发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
接收方通过生成多项式来计算收到的数据是否产生了误码;
余数的位数应与生成多项式最高次数(x+1的最高次数为1)相同,如果位数不够,则在余数前补0来凑足位数。
在计算机网络中通常采用检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
可靠传输
不局限于物理链路层
误码是不能完全避免的,误码会丢帧
但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。
不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
#一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
#无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,**传输差错还包括分组丢失、分组失序以及分组重复**。
分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
停止-等待协议SW
链路层确认一般不会迟到
信道利用率数据帧发送时延/(数据帧发送时延+端到端往返时延)
比较低,
尤其是当往返时延远大与发送时延时
回退N帧协议GBN
尽管序号为6.7的数据分组正确到达接收方,但由于5号数据分组误码不被接受,它们也“受到牵连”而不被接受。发送方还要重传这些数据分组,这就是所谓的Go-back-N(回退N帧)。
发送窗口
、发送窗口范围W(1,2^n-1) n是构成分组序号的比特数量。
W=1 停止-等待协议
W>2^n-1 接收方无法分辨新、旧数据分组
发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去;
发送方只有收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;
发送方收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定。
# 发送方发送窗口内某个已发送的数据分组产生超时重发时,其后续在发送窗口内且已发送的数据分组也必须全部重传,这就是回退N帧协议名称的由来。
接收窗口
接收方的接收窗口尺寸WR的取值范围是WR= l因此接收方只能按序接收数据分组。
接收方只接收序号落在接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发回相应的确认分组。
接收方收到未按序到达的数据分组,除丢弃外,还要对最近按序接收的数据分组进行确认;
为了减少开销,接收方不一定每收到一个按序到达且无误码的数据分组就给发送方发回一个确认分组,
-
而是可以在连续收到好几个按序到达且无误码的数据分组后(由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累积确认
-
或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认;
回退N帧协议在流水线传输的基础上利用发送窗回来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。
在协议的工作过程中发送窗回和接收窗口不断向前滑动,因此这类协议又称为滑动窗回协议。
由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止等待协议高,
选择重传协议SR
回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃,这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),
以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
媒体接入控制(信道共享)
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术
信道复用:复用就是通过一条物理线路同时传输多路用户的信号。
- 复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
- 多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
频分复用FDM
频分复用的所有用户同时占用不同的频带资源并行通信。
时分复用TDM
时分复用的所有用户在不同的时间占用同样的频带宽度。
码分复用CDM
码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。
与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。
通常m的值是64或128。
使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)。
//如0010的码片序列 -1,-1,1,-1
//按惯例将码片序列中的0写为-1,将1写为+1。
一个站如果要发送比特1,则发送它自己的m bit码片序列;
一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码;
S为A站的码片序列
T为别的站的码片序列
别的站通过内积运算可知道S发送的信息(S+T)S=1发送1
(T)S=0未发送
(S逆+T)S=-1发送0
随机接入
CSMA属于争用型的媒体接入控制协议,连接在同一媒体上的多个站点使用该协议以竞争方式发送数据帧,可能出现冲突(也称为碰撞)。
1.CSMA/CD
动态接入控制
载波监听多址接入/碰撞检测 CSMA/CD (Carrier Sense Multiple Access/Collision Detection)
- 多址接入MA:多个站连接在一条总线上,竞争使用总线。
- 载波监听CS:每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(“先听后说”)
- 若检测到总线空闲96比特时间,则发送这个帧;
- 若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,则发送这个帧;
- 碰撞检测CD:每一个正在发送帧的站边发送边检测碰撞(“边说边听”)
- 一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送(“一旦冲突,立即停说,等待时机,重新再说”) 。
以太网还采取一种叫做强化碰撞的措施。这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞。
CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。
现在的以太网基于交换机和全双工连接,不会有碰撞。因此没有必要使用CSMA/CD。
2.CSMA/CA
载波监听多址接入/碰撞避免CSMA/CA
在无线局域网中,仍然可以使用载波监听多址接入CSMA,
即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
在无线局域网中,不能使用碰撞检测CD,原因如下:
1.由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。
//如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
2.即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
//有线网的碰撞可以检测到,无线网可能传播不到。如:a,c相隔太远,都给b发信息,有碰撞也检测不到
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
- 短帧间间隔SIFS(28pus),是最短的帧间间隔,用来分隔开属于一次对话的各帧。
- 一个站点应当能够在这段时间内从发送方式切换到接收方式。
- 使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
- DCF帧间间隔DIFS(128us),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
CSMA/CA协议的信道预约和虚拟载波监听
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
-
源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send),
- 它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
-
若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS.
- (它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
-
**802.11的虚拟载波监听机制。**除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间
- 站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间
MAC,IP与ARP
MAC
MAC地址是链路层范畴,链路层地址
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。
由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;
MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址;
MAC地址有时也被称为物理地址。用户主机会包含两个网络适配器:有线局域网适配器(有线网卡))和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
IP地址
IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
网络编号:标识因特网上数以百万计的网络
主机编号:标识同一网络上不同主机(或路由器各接口)
可看到数据转发过程中只知道IP地址不知道MAC地址
ARP
源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中);
- 目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中。然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址;
- 源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中。然后就可以封装之前想发送的MAC帧并发送给目的主机;
ARP的作用范围:逐段链路或逐个网络使用;
除ARP请求和响应外,ARP还有其他类型的报文 例如用于检查IP地址冲突的无故ARP、免费ARP(Gratuitous ARP)
ARP没有安全验证机制,存在ARP散骗(攻击)问题。
集线器与交换机
STP协议
VLAN
例如:
点对点协议PPP
目前使用最广泛的点对点数据链路层协议。
PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662].
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
对各种协议数据报的封装方法(封装成帧)
链路控制协议LCP 用于建立、配置以及测试数据链路的连接
一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
封装成帧
透明传输
面向字节的异步链路采用插入转义字符的字节填充法
面向比特的同步链路采用插入比特O的比特填充法
差错检测
工作流程
244987)][外链图片转存中…(img-qQfgVpdu-1648709244987)]
例如:
[外链图片转存中…(img-cSxtWRRm-1648709244987)]
点对点协议PPP
目前使用最广泛的点对点数据链路层协议。
PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662].
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
对各种协议数据报的封装方法(封装成帧)
链路控制协议LCP 用于建立、配置以及测试数据链路的连接
一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
封装成帧
[外链图片转存中…(img-R9pNb6I9-1648709244988)]
透明传输
面向字节的异步链路采用插入转义字符的字节填充法
面向比特的同步链路采用插入比特O的比特填充法
差错检测
[外链图片转存中…(img-wmlFJtaT-1648709244988)]