本文基于
2019 王道考研 计算机网络
: 2019 王道考研 计算机网络
个人笔记总结
第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构
第二章:王道考研 计算机网络笔记 第二章:物理层
后续章节将陆续更新…
第三章大纲:
数据链路层负责通过一条
链路
从一个结点
向另一个物理链路直接相连的相邻结点传送数据报。
结点
:主机、路由器
链路
:网络中两个结点之间的物理通道
链路的传输介质主要有双绞线、光纤和微波
分为有线链路、无线链路
数据链路
:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
数据链路层在物理层提供服务的基础上向网络层提供服务
封装成帧
的过程就是将网络层的IP数据报加头加尾,形成链路层的数据传送单元帧
,IP数据报也就成了帧的数据部分
概念:将一段数据的前后部分添加首部和尾部,构成一个帧;接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
帧定界符
,接收端可据此确定帧开始和结束的位置帧定界
的作用;还有其他关于差错控制、流量控制、物理地址等信息帧同步
:接收方从接收到的二进制比特流中区分出帧的起始和终止
组帧就是在发送端封装成帧的过程,帧同步是在接受端识别帧开始和结束的过程
数据链路层的帧长
:帧从帧首部到尾部包括中间数据部分的总长度
最大传送单元MTU
,不同协议MTU的值也不同组帧有四种方法:
透明传输
是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的
透明传输在组帧上的应用
如果计数字段发生错误,比如从5到4,则第一个帧的结束位发生错误,导致后面所有的帧都发生错误,导致接受方无法正确的接收每一个帧,接受双方失去了同步
就是加头SOH
加尾EOT
(均为一个字节)标记帧的开始与结束,根据不同的协议,SOH
和EOT
对应的比特组合不同
SOH
和EOT
不会有交集,因此不会与这连个标记重复,可以实现透明传输字符填充法
字符填充法:在数据部分与标记字段重复的字段前加转义字符
,告诉接受端不用管我后面的字段是什么,正常接收即可,直到遇到真正的开始/结束标志
首部和尾部的标志相同,均是01111110
如果发送端发送一系列一连串的比特时,数据部分也出现了与标志相同的比特组合01111110
,那么怎么实现透明传输呢?这就是零比特填充法
要解决的问题
因为曼彻斯特编码不使用高-高
,低-低
来表示数据信息,所以如果使用高-高
,低-低
来表示帧起始和终止就不会与数据冲突
为什么要在数据链路层进行差错控制?
因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费
数据链路层的差错控制主要强调的是比特错
针对比特错的控制方法由两种:
检错编码
:奇偶校验码,循环冗余码纠错编码
:海明码注意:数据链路层编码和物理层的数据编码与调制不同。
冗余码
的技术实现一组二进制比特串在传输过程是否出现了差错冗余码
:例如下图盒子上的6本信息就是冗余码,可据此判断是否出错
1、确定校验位数r
2、确定校验码和数据的位置
3、求出校验码的值
4、检错并纠错
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
传输层也有流量控制,区别:
数据链路层的流量控制是点对点
的,而传输层的流量控制是端到端
的。
数据链路层流量控制手段:接收方收不下就不回复确认
传输层流量控制手段:接受端给发送端一个窗口公告(有多少窗口,缓冲区多大)
停止等待协议
、滑动窗口协议
到底属于哪一层?
早些时候,链路的质量还没有那么可靠的时候,就需要数据链路层负责起可靠传输的功能,就会用到停止等待协议、后退N帧协议、选择重传协议等;随着链路质量的不断发展,链路的通信已经非常的可靠,这个时候就不需要数据链路层担负可靠传输的任务了,交给传输层来实现,链路层就主要负责流量控制
不管停止等待协议、滑动窗口协议是在数据链路层还是传输层,其功能都是进行可靠传输,只不过数据链路层的传输对象是帧,传输层的传输 对象是分组
为什么要有
停止-等待协议
?
因为在链路上除了比特出差错外,底层的信道还会出现丢包问题
丢包:物理线路故障,设备故障,病毒攻击,路由信息错误等原因,会导致数据包的丢失
这里的数据包就是一个数据,在不同层次有不同的名字;在链路层是帧,在网络层是数据报/分
组,在传输层是报文段
为了解决丢包问题并且实现流量控制,就需要有停止等待协议
研究
停止等待协议
的前提?
1、无差错情况
2、有差错情况
通过上述几种情况,我们使用确认和超时重传的机制,实现了在不可靠的网络上面实现相对比较可靠的通信,但是停止等待协议也有其优缺点:
停等协议发送方每发送一个帧就处于等待状态,等到接收方回复一个确认帧,发送方才会发送新的帧;因此停等协议大部分时间都是在等待,真正发送数据的时间很少,极大的浪费了资源;
为了解决停止等待协议太闲的问题,可以采用流水线技术,一次发送多个帧;但同时在其他方面急性改进:
注意:GAN协议中发送窗口有多个,接收窗口只有一个
例如:比如发送方发了0号帧给接收方,接收方返回一个0号确认帧;然后发送方发送1号帧,但是途中丢失,接收方接收不到1号帧,就一直等1号帧;接收方没有等到1号帧,等到了2号帧的到来,此时接收方会丢弃2号帧,后续来的3、4号帧也会相应丢弃,接收方会一直等待1号帧的到来;发送方也在一直等待着1号帧的确认到来,就造成了一种死锁的状态;因此发送方的超时计时器就来解决这个问题,如果超时,就会重传1号帧以及后续所有发送的但是没有被确认的帧
累积确认
(偶尔稍带确认:接收方同时也可以发送数据给发送方,相当于角色互换了,就可以将确认帧夹在数据里发给发送方)传输数据使用的两种链路
在广播信道当中,同一时间只能有一台主机发送信息,如果有多个节点同时发送信息,信道上就会发生信号冲突问题,通信就会失败,需要重传;因此需要对多节点共享的介质进行访问控制
介质访问控制分为两种:
也就是静态划分信道
FDM
TDM
改进的时分复用——统计时分复用STDM
集中器:将四个低速用户连接起来,将它们的数据集中起来,通过高速线路在一条信道上发送出去
WDM
CDM
ALOHA协议分为两种:
相对于纯ALOHA协议就是固定了发送时间和重传时间(只能在一个时间片的开始),提高了效率
对于以上三种CSMA,它们的冲突检测方案只能在发送完整段数据帧之后,是否收到来自接收方的确认帧来判断是否发生冲突,如果没有收到来自接收方的确认帧,发送方就会判定发生冲突,因此之前发送的数据帧完全浪费
最小帧长
,希望在检测到碰撞的时候,帧还没发送结束CSMA-CD协议已经很全能,为什么还要有CSMA-CA协议?
答:应用场景不同
动态划分信道的一种
缺点:
优点:
IEEE 802系列标准是IEE802 LAN/MAN标准委员会制定的局域网、城域网技术标准(1980年2月成立)其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
以太网是使用最广泛的局域网
以太网提供无连接、不可靠服务
无连接
:发送方和接收方之间无“握手过程”.不可靠
:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责无线局域网也是一种常见的局域网
IEE802.11是无线局域网通用的标准,它是由
IEEE
所定义的无线网络通信的标准。
和WIFI的区别?
比如主机A要给主机B发送信息,首先发送到基站AP1,基站AP1发送到AP2,AP2再发送给主机B,这里的几个地址含义就是:
上图只是802.11的MAC帧的一种类型WDS
,四种地址都有,实际情况中,帧被分为4类:
其余三种帧类型只有三个地址,不同帧类型对应的地址字段不同
To AP
:表示发往基站AP的帧
From AP
:由基站AP发来的帧
IBSS
节点交换机是链路层的设备,是交换机,和网络层的路由器功能类似,均用来转发分组,但是节点交换机只能在单个网络中转发分组,而路由器可以在多个网络之间转发分组
广域网只有节点交换机吗?
广域网和局域网的区别:
PPP
和HDLC
是最常用的广域网当中的链路层协议
点对点协议PPP
( Point-to- Point protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
特点:只支持全双工链路
简单
:不需要实现可靠传输的功能, 对于链路层的帧,无需纠错,无需序号,无需流量控制封装成帧
:在帧头帧尾加帧定界符透明传输
:不管在数据部分传送什么样的比特流,都可以完整的传送过去,即使其中有定界符,也视而不见;也就是与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充多种网络层协议
:链路层是对网络层数据报的封装,不要求网络层使用的协议,封装的数据报可以采用多种协议。多种类型链路
:串行/并行,同步/异步,电/光差错检测
:采用CRC循环冗余,通过在帧当中添加FCS字段,实现差错检测,错就丢弃。检测连接状态
:检测链路是否正常工作。最大传送单元
:PPP协议中数据部分就是上层交付的IP数据报,要求最大长度MTU,默认不超过1500字节网络层地址协商
:PPP协议要使得通信双方知道对方的网络层地址数据压缩协商
:发送数据的时候对数据进行压缩帧格式以字节为单位,传输的数据都是整数个字节,因此PPP协议面向字节
高级数据链路控制(High-Level Data Link Contro或简称
HDLC
),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的
特点:
数据报文可透明传输,通过“0比特插入法”(5个1插入一个0)实现
PPP还可以实现字节填充,HDLC只能实现0比特填充法
采用全双工通信
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
物理层通过集线器拓展以太网的两种方法:
方式一:通过光纤
方式二:通过主干集线器
为了解决主干集线器方式的冲突大、效率低问题,出现了网桥(交换机的前身)&交换机
随着技术发展,网桥的接口越来越多,网桥就变成了以太网交换机
交换机通常有十几个端口,每个端口都可以直接连接主机或者连接集线器
交换机同网桥一样,每个端口引出的区域都是一个冲突域
交换机可以独占传输媒体带宽,交换机端口连接的集线器/主机都是独占媒体带宽,不同于集线器带宽被平分
以太网交换机的两种交换方式: