数据链路层:
解决问题:
通过数据链路层解析物理层发出去的信号怎么样选择、如何到达目的地
比特流的分界线
链路(Link):从一个结点到相邻结点的一段物理线路,中间没有任何其他交换结点
数据链路(Data Link):把实现通信协议的硬件和软件加到链路上,就构成了数据链路
数据链路层以帧为单位传输和处理数据
分类:
封装成帧:数据链路层为数据加上帧首和帧尾使之成为帧的过程。
透明传输:是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样(即保证接收方接到的数据是完整的数据)
面向字节的物理链路:使用字节填充(或称字符填充)的方法实现透明传输
面向比特的物理链路:使用比特填充的方法实现透明传输
差错检测:实际的通信链路都不是理想的,可能造成比特差错:1可能变成0,0可能变成1。
差错校验方法:只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
G(x)
、可靠传输和不可靠传输服务的操作:
核心:发送方每发送一个数据分组后,就停止发送下一个数据分组,等待接收方的确认分组或否认分组,若收到确认分组,则继续发送下一个分组,若收到否认分组,则重复之前发送的那个数据分组。
问题:数据分组丢失、确认分组丢失、确认分组超时
总结:
回退N帧协议 (Go-Back-N) 是一种滑动窗口协议,用于实现可靠的数据传输。它允许发送方连续发送多个分组,而不必等待确认,接收方按序接收分组。
基本原理和工作流程:
发送方窗口:
接收方窗口:
确认分组:
超时重传:
总结:
适用场景:回退N帧协议是一种常用的滑动窗口协议,适用于许多实时性要求不高,但需要高可靠性的网络通信场景。
选择重传协议 (Selective Repeat, SR) 是一种滑动窗口协议,用于实现可靠的数据传输。它允许发送方连续发送多个分组,接收方可以选择性地确认分组,同时允许接收方接收乱序的分组。
基本原理和工作流程:
发送方窗口:
接收方窗口:
确认分组:
超时重传:
总结:
适用场景:适用于具有一定信道质量的网络环境,可以容忍一定程度的丢包情况。
选择重传协议相对于回退N帧协议来说,更加灵活,可以在一定程度上提高网络的传输效率和可靠性。
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
总共8个字节,帧头5个,帧尾3个。
标志(Flag)字段:值为0x7E,表示PPP帧的定界符。
地址(Address)字段:值为0xFF,目前没有特定作用,保留字段。
控制(Control)字段:值为0x03,也是保留字段,目前没有特定作用。
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理。例如:
FCS(帧检验序列)字段:CRC计算出的校验位,用于检测帧在传输过程中是否发生了错误。
工作状态:
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control
)
静态划分信道 — 信道复用:通过一条物理线路同时传输多路用户的信号。
复用与多址的区别:
复用:是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分
多址:(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)
随机接入控制:
CMSA/CD协议:载波监听多址接入/碰撞检测 - 早期的双绞线,以太网,广播信道的有线局域网
多个站点连接在一条总线上,竞争使用总线进行通信。
每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧
一旦发送帧,站点会边发送边监听总线,以检测是否发生碰撞。
如果发送成功,站点等待总线转为空闲96比特时间后,再发送下一个帧。
以太网规定:
最小帧长为64字节,即512比特(512比特时间即为争用期)
最大帧长为1518-mac帧,vlan帧-1522
如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节,以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞。
CMSA/CA协议:载波监听多址接入/碰撞避免 - 广播信道的无线局域网
在无线局域网中,不能使用碰撞检测CD,原因如下:
802.11的MAC层标准定义了两种不同的媒体接入控制方式:
IFS:802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔
SIF:这是最短的帧间间隔,用来分隔开属于一次对话的各帧。
DIFS:它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧
信道预约:RTS、CTS
①为什么源站检测到信道空闲后,还需要等待DIFS时间才将帧发送呢?
因为其他站此时可能有优先级更高的帧需要发送,因此有DIFS时间进行缓冲,若这个时间内没有高优先级的帧要发送,则说明信道是真正的空闲
②为什么目的站接收到帧后还需要等到SIFS时间才返回ACK确认帧呢?
SIFS是最短的帧间间隔,用来分割一次对话的各帧,在这个时间里由接收状态转变为发送状态
③当其他站要发送数据,但是发现此时信道正忙时就会退避一段时间,等信道不忙后再进行操作,接着等待DIFS时间(与①同理),但为什么等待了DIFS时间后还要退避一段随机时间呢?
因为可能有多个站点在信道忙时都想发送帧,因此它们都会被搁置直至信道不忙,在DIFS时间后他们会同时发送,而实际上多个站点同时发送数据会碰撞。因此需要一个随机时间将他们进行错峰发送。
MAC地址位于数据链路层,用于媒体接入控制 MAC,用于多个主机连接在同一个广播信道上,实现两个主机之间的通信
MAC地址也 被称为硬件地址: MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!
IEEE 802 局域网中的MAC地址:共6个字节,48位,通常以十六进制表示
MAC地址有2^48个可能的组合,这是一个非常大的数字,约等于2.81 x 10^14,也就是280万亿。
前24位是由IEEE注册管理机构分配的组织唯一标识符(OU)
后24位是由获得该组织唯一标识符的厂商自行随意分配的网络接口标识符。
第一个字节的最高位(b1)用于指示地址的全球管理或本地管理。
第一个字节的次高位(b0)用于指示单播还是多播地址。
单播、多播和广播MAC地址是用于在以太网网络中标识设备的特殊地址类型。
单播(Unicast)MAC地址:
多播(Multicast)MAC地址:
广播(Broadcast)MAC地址:
总的来说,单播是一对一通信方式,多播是一对多通信方式(但只针对特定组的设备),广播是一对所有通信方式。这些不同的通信方式使得以太网能够灵活地适应不同的通信需求。
IP地址是TCP/IP体系结构的网际层所使用的的地址
如果只是一个单独网络,不接入因特网,则使用MAC地址就足够了(这不是一般用户的应用方式),如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
数据包转发过程中IP地址与MAC地址变换情况:
地址解析协议ARP属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址,ARP协议只能在一段链路或一个网络上使用,不能全链路,只能跨链路
数据的发送需要经过链路,仅仅知道IP地址是无法在数据链路层实现传输的,因此我们需要得到IP地址与MAC地址的对应关系,即地址解析。
ARP高速缓存条目有静态与动态两种类型
集线器HUB的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。
交换机是一种负责转发信号的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路
帧的两种转发方式:
以太网交换机收到帧后,会在帧交换表中查找帧的目的MAC地址对应的接口号,然后通过该接口转发帧。
以太网交换机是即插即用设备,刚上电启动时,内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法逐渐建立起帧交换表。
自学习和转发帧的流程:
收到帧后进行登记,登记的内容包括帧的源MAC地址及进入交换机的接口号。
根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,分为以下三种情况:
明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播、多播或广播)。
盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪)。
明确丢弃:交换机知道不应该转发该帧,将其丢弃。
帧交换表中的每条记录都有自己的有效时间,到期会被删除。这是因为可能发生以下情况:
交换机的接口改接了另一台主机。
主机更换了网卡。
这个过程使得以太网交换机能够动态地学习网络中各设备的MAC地址,并根据这些学习到的信息,选择性地将数据帧转发到特定的接口,提高了网络的性能和效率。
STP(Spanning Tree Protocol,生成树协议)是用于在以太网交换网络中防止环路的协议。它是一种链路层协议,可以确保在具有多个交换机的网络中,只有一条活动路径。
以下是关于STP的一些基本信息:
作用:
选择根桥:
STP使用Bridge ID(桥标识)来选择网络中的根桥,Bridge ID由优先级和MAC地址组成,优先级越低越优先。
选择根桥后,网络中的所有交换机会选择一条到根桥的最短路径作为活动路径。
选择根端口:
选择指定端口:
阻塞端口:
定时机制:
快速收敛:
RSTP(Rapid Spanning Tree Protocol):
STP是构建现代局域网的基础,它确保了网络拓扑的稳定性和可靠性。通过避免环路的产生,STP保证了数据在网络中的有效传输。
问题背景:
随着交换式以太网规模的扩大,所有站点属于同一个广播域,这会带来一些问题:
广播风暴:大量广播消息可能导致网络拥塞。
难以管理和维护:管理一个庞大的广播域会变得复杂。
潜在的安全问题:所有设备处于同一个广播域,可能会有安全隐患。
频繁的广播信息:TCP/IP协议栈中的许多协议都会使用广播,例如ARP、RIP、DHCP等。
解决方法:
VLAN(Virtual Local Area Network)简介:
IEEE 802.1Q是一种VLAN实现方式,它在以太网帧中添加了一个标签(Tag),用于标识帧所属的VLAN:
VLAN标记的最后12比特称为VLAN标识符VID,VLAN标识符 (VID) 是用来唯一标志一个以太网帧属于哪一个VLAN的。它的取值范围是1~4094(0和4095留给特殊用途,不用于表示VLAN)。
IEEE 802.1Q帧是由交换机来处理的,而不是用户主机来处理的。当交换机收到普通的以太网帧时,会在帧的头部插入一个4字节的VLAN标记,将其转变为802.1Q帧,这个过程称为“打标签”。
交换机端口是VLAN的另一种实现方式,它通过在交换机上配置端口的成员关系来实现VLAN的划分和隔离。
交换机各端口的缺省VLAN ID:
Access Port:
Access端口的基本特性和工作原理:
Access端口通常用于连接用户计算机或其他终端设备。
Access端口只能属于一个VLAN。这意味着它会将连接到该端口的所有帧都归属于同一个VLAN。
**PVID(Port VLAN ID)**值是与端口所属VLAN的VID相同。默认情况下,PVID为1。
Access端口接收并处理“未打标签”的普通以太网MAC帧。如果一个帧来自一个Access端口,并且它没有VLAN标签,交换机会根据该端口的PVID为该帧打上相应的VLAN标签。
Access端口发送处理方法:如果帧中的VID与端口的PVID相等,交换机会将VLAN标签移除并将帧转发;否则,它将不会转发该帧。
Trunk Port:
Trunk端口的基本特性和工作原理:
!!!互连的Trunk端口的PVlD值不等,可能会造成转发错误
Hybrid Port:
Hybrid端口的基本特性和工作原理:
Hybrid端口既可用于交换机之间或交换机与路由器之间的互连(与Trunk端口相似),也可用于交换机与用户计算机之间的互连(与Access端口相似)。
Hybrid端口可以属于多个VLAN(与Trunk端口相似)。
用户可以设置Hybrid端口的PVID值。默认情况下,Hybrid端口的PVID值为1(与Trunk端口相似)。
Hybrid端口发送处理方法(与Trunk端口不同):
查看帧的VID是否在端口的**“去标签”列表**中:
若存在,则“去标签”后再转发;
若不存在,则直接转发。
Hybrid端口接收处理方法(与Trunk端口相似):