这篇博客主要基于大三上学期复习期末考试时整理的文档,教学用书为谢希仁教授的《计算机网络(第七版)》,文档内容主要参考课本,其余参考的书籍、博客、视频都在文末列出。
文章目录
一、使用点对点信道的数据链路层
数据链路和帧
1.数据链路和链路是不同的概念。
❀ 数据链路:把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
❀ 链路:从一个结点到相邻节点的一段物理线路,而中间没有任何其它任何的交换节点。在进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路,链路只是一条路径的组成部分。
2.帧:数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是IP数据报【数据报/分组/包】
3.点对点信道的数据链路层在进行通信时的主要步骤:
-
节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
-
节点A把封装好的帧发送给节点B的数据链路层
-
若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络,否则丢弃。
三个基本问题
数据链路层协议有许多种类,但有三个基本问题式共同的。封装成帧、透明传输和差错检验。
封装成帧
(1) 在一段数据的前后分别添加首部和尾部,这样就构成了帧。接收端收到了物理层上交的比特流之后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。一个帧的帧长等于帧首部+帧尾部+数据部分长度。
(2) 首部和尾部一个重要的作用就是帧定界。每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU。
透明传输
(1) 无论从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。
(2) 但如果传输的是二进制代码的程序或者图像,那么数据部分可能会出现和控制字符一样的内容,这个时候接收方会错误判断帧的完整情况。为了解决这个问题有了字节填充和字符填充两种方法。
差错检验
(1) 差错有很多种,这里主要说的差错是比特差错。传输过程中1变成0,0变成1这样的情况。
(2) 信噪比提高,误码率【BER】就会小。
(3)循环冗余检验CRC。
传输差错:比特差错;帧丢失、帧重复或者帧失序。无比特差错和无传输差错不是同一个概念。在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
二、点对点协议PPP
互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
PPP 的帧格式:
- F 字段为帧的定界符
- A 和 C 字段暂时没有意义
- FCS 字段是使用 CRC 的检验序列
- 信息部分的长度不超过 1500
补充:【零比特填充】
主要发现有连续的5个1,则立即填入一个0.
三、使用广播信道的数据链路层
局域网的数据链路层
1.局域网的优点:具有广播功能,从一个站点可以很方便的访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源;便于系统的扩展和逐渐演变,各设备的位置可灵活调整;提高了系统的可靠性、可用性和生存性。
2.局域网可以按照网络拓补进行分类。
3. 共享信道有两种方法【静态划分信道(频分复用/时分复用/波分复用/码分复用)和动态媒体接入控制(多点接入)】使众多用户能够合理而方便共享通信媒体资源。
(1) 静态划分信道:用户只要分配到了信道就不会和其他用户发生冲突,代价高。
(2) 动态媒体接入,信道并非在用户通信的时候固定分配给用户。
CSMA/CD协议
CSMA/CD 表示载波监听多点接入 / 碰撞检测。以太网发送的数据都是用曼彻斯特编码的信号。
- 多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。
- 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
- 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。
使用CSMA/CD协议的时候,一个站不可能同时进行发送和接受(但必须边发送边监听信道),因此使用CSMA/CD协议的以太网只能进行半双工通信。
记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, …, (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。
CSMA/CD【载波监听多址接入/碰撞检测】协议的要点归纳如下:
(1) 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。发送之前,先检测信道。
(2) 检测信道:若检测到信道忙,则应不停检测,一直等到信道空闲。检测到空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3) 在发送过程中仍不停的检测信道,即网络适配器要边发送边监听。
① 发送成功:争用期内一直没有检测到碰撞。
② 发送失败:在争用期内检测到碰撞。这时停止发送数据,并按规定发送人为干扰信号【以便有足够多的碰撞信号使所有站点都能检测出碰撞,强化碰撞】。适配器接着就执行指数退避算法,等待r倍的512比特时间后,返回到步骤2,继续检测信道。但若重传16次还不成功,停止重传向上报错。
(4) 以太网每发送完一帧,就要把已发送的帧暂时保留以下,如果在争用期内检测出发生了碰撞,那么还要再推迟一段时间后再把这个暂时保留的帧重传一次。
补充:
1.帧间最小间隔96比特,使接收方可以检测出一个帧的结束,同时也使得其它所有站点都能有机会平等竞争信道并转发帧。
2.最小帧长:确保主机可以在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞。以太网规定的最小帧长为64字节,也就是512比特。最小帧长=争用期*数据传输速率。
- 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据一定不会碰撞
- 如果在争用期检测到碰撞,就立即停止发送,那么这时候已经发送出去的数据肯定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常终止的无效帧。
3.帧接收流程
四、扩展的以太网
在物理层扩展以太网
在数据链路层扩展以太网
网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤,当网桥收到一个帧的时候,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个接口或者丢掉。后来有了交换式集线器【交换机】,工作在数据链路层。
????交换机的特点
????交换机和集线器的对比
1.发送单播帧
2.同一个广播域
3.扩展后的单播情况
4.扩展后的广播情况
以太网交换机的自学习功能
以太网交换机工作在数据链路层(也包括物理层)。以太网交互键受到帧后,在帧交换表中查找帧的目的MAC帧所对应的接口号,然后通过该接口转发帧。以太网交换机是一种即插即用的设备,刚上电启动时内部的帧交换表时空的。随着网络中个主机的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
STP协议
我们可以添加冗余链路来提高以太网的可靠性,但是冗余链路会造成网络环路的问题。网络环路问题不容小觑,它会造成以下现象:
- 广播风暴:大量消耗网络资源,使得网络没办法正常转发其它数据帧
- 主机收到重复的广播帧:大量消耗主机资源
- 交换机的帧交换表震荡
以太网交互机使用生成树协议STP可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
- 不论交换机之间采用啥样的物理连接,交换机都能自动计算并且构建一个逻辑上没环路的网络,其拓扑结构是树型的。
- 最终生成的树型逻辑拓扑要确保联通整个网络。
- 当首次连接交互机或者网络物理拓扑发生变化的时候,交换机都会进行生成树的重新计算。
虚拟局域网
VLAN的基本概念
VLAN的实现机制
参考
1.《计算机网络(第7版)》
2.《TCP/IP详解,卷1:协议》
3.公众号:CyC2018
4.湖科大教书匠:《计算机网络》微课堂