本文章是根据B站的王道计算机考研-计算机网络进行整理
*建议使用电脑观看
计算机网络知识点整理—物理层(二)
计算机网络知识点整理—数据链路层 (上)(三)
计算机网络知识点整理—数据链路层 (下)(三)
计算机网络知识点整理—网络层(上)(四)
计算机网络知识点整理—网络层(下)(四)
计算机网络知识点整理—传输层(五)
计算机网络知识点整理—应用层(六)
目录
一、数据链路层的基本概念
结点:主机、路由器
链路 :网络中两个结点之问的物理通道,链路的传输介质主要有双绞线、光纤和微波。 分为有线链路、无线链路。
数据链路 :网络中两个结点之间的逻强通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
二、 数据链路层的功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。(可以想象BOSS、秘书与傻子员工的例子)
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。(限制发送方)
功能五:差错控制(帧错/位错)。
三、封装成帧和透明传输
封装成帧
就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
帧同步
:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。(例子:网络层是boss,链路层是秘书,boss要开出秘书,但秘书不知道,只知道传递给其他秘书。)
字符计数法
:帧首部使用一个计数字段来标明帧内字符数
字符填充法
:首位和尾部通过特定的比特码组合,如果中间会出现这个特定比特码,那么在前面添加一个转义字符。把其当成普通数据,一般应用于图片视频的传输,文本都有对应的ASCII码。
零比特填充法
:首部与尾部的标识符一样,但如果中间有一个相同的比特码组合,那么就将使用0填充法,例如,遇到5个1就填充一个0,即使后面是0,也要填充0,接收方就到时候把0删除就行。一开始就找到头部和尾部在处理中间数据。保证了透明传输。
违规编码法
:用高-高,低-低的代码表示起始和终止,可以想象曼彻斯特编码类比。
四、差错控制
概括来说,传输中的差错都是由于噪声引起的。
全局性 1.由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性 2.外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
帧错
位错【比特位出错,1变成0,0变成1。】
差错 丢失 重复 失序
五、数据链路层的差错控制(比特错)
检错编码
奇偶校验码
CRC循环冗余码:三个重要组成,要传的数据、生成多项式、冗余码,最终发送的数据是要传的数据加上冗余码,冗余码的计算,首先多项式为N为,则阶就有N-1位,要传的数据后面加阶位个0,然后除于多项式,余数为冗余码,加在要传的数据后面就是最终要传的数据。检错就是最终数据除多项式,余数为0,无差错,反之。
纠错编码
海明码:发现双比特错,纠正单比特错
发送数据101101
第一步确定校验码位数r
海明不等式>=k+r+1 r是冗余信息位,k为信息位。
101101 k=6位根据海明不等式可以求出r最小为4
第二步确定校验码和数据的位置
10位的数据位4位校验码对应2的几次方(从0开始)然后剩下的数据位数依次填入信息位
第三步求校验码的值
校验码对应的1的位置的数据位的实际值都要异或(同0异1)等于0,便可求出校验位的值。
第四步检错并纠错
加上海明码的数据为0010011101
检验时将检验码对应的数据位进行异或运算,如果运算出来为1的就是有错误的,如果为0那么那一串数据位都没有出错,由此排除得到错的数据位数。
数据链路层编码和物理层的数据编码与调制不同 | |
物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。 | 而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二 进制比特串在传输过程是否出现了差错。 |
六、流量控制与可靠传输机制
数据链路层的流量控制
高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。(想象人给猫喂粮,猫在房间里,还能吃就把碗递出来,反之不回复。)
传输层流量控制手段:接收端给发送端一个窗口公告。
流量控制方法
滑动窗口解决流量控制以及可靠传输
窗口
(起始byte值加大小,因为起始值随着接收的数据从而滑动后续起始值,所以叫做滑动窗口。)
停止-等待协议
发送窗口大小=1,接收窗口大小=1;
无差错情况
发送方发送一帧,那么接收方接收,接收到后返回ACK的值,每发送一个 数据就停止等待。
有差错情况
1.数据帧丢失或检测到帧出错
会有一个超时计时器,在发送帧的时候会启动计时器。但是在计时器时间内收到了 接收方的确认帧,超时计时器设置的重传时间应当比帧传输的平均RTT长一些。在计时时间内没有收到确认帧,就重新发送。
**发完一个帧后,必须保留它的副本。
**数据帧与确认帧必须编号
2.ACK丢失(确认帧丢失)
同理于上个例子,当ACK丢失,时间超过了计时器的时间,那么重新传输一遍,接收方收到重复的帧丢弃前者。
3.ACK迟到
接收方收到重复帧丢弃,接收方收到延迟的确认帧,同样丢弃。
信道利用率
发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
信道利用率=(L【T内发送L比特数据】/C【发送方数据传输率】)/T【发送周期从开始发送数据,到收到第一个确认帧为止】
信道吞吐率=信道利用率*发送方的发送速率
后退N帧协议(GBN)
发送窗口大小>1,接收窗口大小=1:
GBN发送方必须响应的三件事
1.上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口己满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)
2.收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方己经收到n号帧和它之前的全部帧。
3.超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有己发送但未被确认的帧。(例如接收方收到0号帧后,期望下一帧为1,但1号帧丢失,后面的帧接收方都不会再要,超过时间后,1号帧后面的全部重传。)
GBN接收方要做的事情
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)
滑动窗口的大小
若采用n个比特对帧编号,那么发送窗口的尺寸W应满足:1≤W≤-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。(两个比特 对应的编号,可以编四个,那么可以传输的窗口的大小为3,若为四个那么传送出现问题重传的时候,将无法分清是新旧帧号,注意:帧号可以循环使用。)
选择重传协议(SR)
发送窗口大小>1 ,接收窗口大小>1;
SR发送方必须响应的三件事
1.上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧:否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
2.收到了一个ACK
如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧
3.超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR接收方要做的事
只要接收到了帧就确认,乱序了也可以,收到了就放到缓存里。
滑动窗口的大小
接收窗口等于发送窗口,等于要传送的比特数据(或者帧号数的一半)。
七、信道划分介质访问控制
传输数据使用的两种链路
点对点链路
:两个相邻节点通过一个链路相连,没有第三者。
应用:ppp协议,常用于广域网
广播式链路
:所有主机共享通信介质
应用:以太网、无限局域网
介质访问控制的内容就是,采取-一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
静态划分信道
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备
多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源提高信道利用率。把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
频分多路复用 FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频
分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
时分多路复用 TDM
将时间划分为一段段等长的时分复用帧 (TDM帧【TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。】)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
统计时分复用 STDM
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
波分多路复用 WDM
波分多路复用就是光的频分名路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
码分多路复用 CDM
码分多址(CDMA)是码分复用的一种方式
1个比特分为多个码片/芯片,每一个站点被指定一个唯一的m位的芯片序列,发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1)【例如站点传输01两个比特,那么可将1规定为0位+1+1+1-1。。。。。等八位序列,且0的序列与1相反。】
如何不打架:至个站点同时发这数据的时候,要求各个站点芯片产列相互正交)【就是将发送的比特对应的序列对应相乘,再相加除8,得到最后为零,则不打架。】
如何合并:各路数据在信道中被线性相加【传输比特数据对应的序列对应相加】
如何分离:合并的数据和源站规格化内积。【将传输的那个个比特的序列与合并后的序列相乘再相加除8,如果为+1那么传输的数据是1,如果为-1,传输的数据是0】
动态分配信道
轮询访问介质访问控制
令牌传递协议
令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。令牌环网无碰撞,每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌
问题:令牌开销、等待延迟、单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
轮询协议
主结点轮流“邀请”从属结点发送数据
问题:产生轮询开销、等待延迟、单点故障
随机访问介质访问控制
ALOHA协议
纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
CSMA协议
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
协议思想:发送帧之前,监听信道。
1-坚持CSMA | 非坚持CSMA | P-坚持CSMA | |
---|---|---|---|
信道空闲 | 马上发(发送完整帧) | 马上发 |
p概率马上发 1-p概率等到下一个时隙再发送 |
信道忙 | 继续坚持监听 | 放弃监听,等一个随机时间监听 | 放弃监听,等一个随机时间监听 |
CSMA/CD协议
(对碰撞的检测,常用于总线传输,有线。)
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
CD:碰撞检测 (冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据
传播时延对载波监听的影响
单程端到端的传播时延为t,那么只要经过经过2t(tao)时间还没有检测到碰撞,就肯定这次发送不会发生碰撞。
如何确定碰撞后的重传时机?
截断二进制指数规避算法
1.确定基本退避(推迟)时间为争用期2T。
2.定义参数k,它等于重传次数,但k不超过10,即k=mint重传次数,10]。当重传次数不超过10时,k等于重传次数:当重传次数大于10时,k就不再增大而一直等于10。
3.从离散的整数集合[0,1,-1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即2rT。
4.当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,拋弃此帧并向高层报告出错
最小帧长问题
最小帧长总线传播时延 * 数据传输速率 * 2
2t(tao)*数据传输速率
CSMA/CA协议(对碰撞的避免,常用于无限局域网)
CSMA/CA协议工作原理
发送数据前,先检测信道是否空闲。
空闲则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
接收端收到RTS后,将响应CTS (clear to send)
发送端收到CTS后,开始发送数据帧 (同时预约信道:发送方告知其他站点自己要传多久数据)。
接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)
CSMA/CD与CSMA/CA | |
相同点 | 不同点 |
CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。 |
1. 传输介质不同:CSMA/CD 用于总线式以太网【有线】,而CSMA/CA用于 无线局域网【无线】。 2.载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化:而CSMA/CA采用能量检测 (ED)载波检测 (CS)和能量载波混合检测三种检测信道空闲的方式。 3.CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。 |