1. 数据链路层基本概念及基本问题
基本概念
数据链路层使用的信道主要有以下两种类型
- 点对点信道。这种信道使用一对一的点对点通信方式
- 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
链路和数据链路
-
链路:是一条点到点的物理线路段,中间没有任何其他结点
一条链路只是一条通路的一个组成部分。 -
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
· 现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
. 一般的适配器都包括了数据链路层和物理层这两层的功能
三个基本问题
封装成帧
就是加上帧开始、帧结束的标记,知道那块是开始,那块是结束,确定了帧的界限。
图中MTU指的是最大传输单元,在以太网上面传输不能超过1500B(字节)
帧没有发送完,如果发送端出了问题,只能重发该帧。接收端收到"半截子帧",它会抛弃吗 ?为什么 ?
答:收到之后,会全部扔了,当做无效帧而丢弃。
透明传输
透明传输是指数据链路层对上层协议隐藏了数据传输的细节,使得上层协议在发送或接收数据时,感觉不到数据链路层存在。
帧头 帧尾的标识符, 数据部分可能会出现帧头、帧尾的标识符。
解决方法:
- 在数据发送前,如果数据里面出现的话,会给前面加入转义字符ESC。对方收到之后,去掉转义字符。
差错控制
传输过程中,可能会出现错误,其中把一段时间内,传输错误的比特所传输比特总数的比率称为误码率。
如何判断呢
- 循环冗余检验CRC
余数就是帧检验序列(FCS),也就是添加在数据后面的冗余码,CRC是一种无比特差错,而不是无传输差错的检测机制。在检错方法上可以选择CRC,也可以不选择CRC检验方法。
如果传过去有错误,接收端的主机会要求发送端的主机对出错的帧进行重传。
2. 两种情况下的数据链路层
使用点对点信道的数据链路层
PPP point to point protocol
用户使用拨号电话线接入因特网时,一般都是使用ppp协议。
PPP协议应满足的要求
不需要满足:
- 不需要纠错,只需要进行检错
- 不需要流量控制,交给上层即可
- 不支持多点线路,只需要满足点对点即可
- 不需要编号
PPP协议的三个组成部分
PPP协议是用来在两个网络设备之间建立直接连接的。它允许这些设备通过串行链路(如电话线、串行端口或点对点无线连接)进行通信。PPP协议提供了将IP数据报和其他网络层协议的数据包封装在数据链路层的方法,这样它们就可以在串行链路上传输。
简单来说,PPP协议做了三件事情:
建立连接:它允许两个设备建立一个点对点的连接,就像两个电话拨号互连一样。
配置协议:它协商并配置用于传输数据的协议,比如IP协议。
加密验证:它可以提供数据加密和用户验证,以确保传输的安全性。
PPP协议是在SLIP(串行线IP)协议的基础上发展起来的,解决了SLIP的一些限制,并且能够支持更多的功能,如错误检测和修正、数据压缩和用户验证。因此,PPP协议在现代的点对点网络连接中非常普遍 。
帧格式是以字节为单位的
- 该协议在SODET/SDH链路时,用同步传输(一连串的比特流连续传送),这时PPP协议采用零比特填充方法来实现透明传输。 方法为:遇到五个1,给后面加1个0。
- PPP使用异步传输时,它把转义字符定义为0X7D,使用字节进行填充。
PPP协议之所以不使用序号和确认机制出于以下考虑:
PPP协议的工作状态
当用户拨号接入ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。PC 机向路由器发送一系列的 LCP 分组(封装成多个PPP帧)
这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP给新接入的 PC机分配一个临时的IP 地址,使 PC机成为因特网上的一个主机。通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
使用广播信道的数据链路层
局域网的拓扑
现在一般都是星形网
局域网最主要的特点是:网络是一个单位所拥有,且地理范围和站点数目均有限。
认识以太网
最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有源器件。
优点就是不用划分信道啦
缺点就是两台主机进行通信的话,所有的结点都能够收到信息,那么这条线路就被占了,其他结点就不能发送信息,因为已经有冲突啦。
安全性没有保障 虽然发送过去不接受 如果有抓包工具的话,它把我的网卡装成一个驱动,之后网卡就什么数据包都收。
使用CSMA/CD协议 Carrier Sense Multiple Access with Collision Detection.
载波监听多点接入/ 碰撞检测
- 多点接入:表示许多计算机以多点接入的方式连接在一根总线上。
- 载波监听:是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
如果发现冲突的话,会寻找一个随机时间进行发送。 - 碰撞检测
碰撞检测”就是计算机边发送数据边检测信道上的信号电压当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
==当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,==表明产生了碰撞-所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
检测到碰撞后
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
A发了一个数据给B,快到啦,B开始发,A主机最多需要2τ的时间检测出来。
如果传输距离长的话,则需要更长的时候才能去检测出来冲突,所以信号在以太网上不适合远距离传输,所以以太网的距离是不超过100m。
CSMA/CD重要特性
使用CSMA/CD这种机制不能进行全双工通信,只能进行半双工通信。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
2τ时间内没有发送冲突,那就没有冲突。
争用期:
最先发送数据帧的站,在发送数据帧后至多经过时间2t(两倍的端到端的往返时延)就可知道发送的数据恢是否遭受了碰撞。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
以太网的争用期
·以太网的端到端往返时延 2 称为争用期,或碰撞窗口。通常,取51.2 us为争用期的长度。
·对于10 Mb/s以大网,在争用期内可发送512 bit,即 64 字节。如果发生冲突,肯定会在发送64字节的这段时间里面。
最短有效帧长
- 如果发生冲突,就一定是在发送的前 64 字节之内。
- 由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于64字节。
- 以太网的规定了最短有效帧长为64 字节,凡长度小 64 字节的都是由于冲突而异常中止的无效帧。
二进制指数类型退避算法
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间进行发送数据。
不是用户参与的,而是协议CSMA/CD协议来实现的。
3. 以太局域网(以太网)
概述
以太网的两个标准
- DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规口
- IEEE的8023标准。
DIX Ethernet V2标准与IEEE的8023标准只有很小的差别,因此可以将 8023局域网简称为“以太网”严格说来,“以太网”应当是指符合 DIX Ethernet V2标准的局域网。
以太网与数据链路层的两个子层
-
为了使数据链路层能够更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层:逻辑链路控制子层(LLC)、媒体接入控制子层(MAC)。
-
与接入到传输媒体有关的内容都放在 MAC子层,而 LLC子层则与传输媒体无关,不管采用何种协议的局域网对 LLC子层来说都是透明。
-
由于TCP/IP体系经常使用的局域网是DIXEthernet V2而不是8023标准中的几种局域网,因此现在802委员会制定的逻辑链路控制子层 LLC(即8022标准)的作用已经不大了。很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC协议。
以太网提供的服务
- 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
- 当接收站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
- 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
差错校验是两端的计算机来实现的。
拓扑
- 传统以太网是所有主机都接到一根总线上面,健壮性不好,现在以太网的话,采用的是星型拓扑。
- 这种以太网采用星型拓扑,在星形的中点增加了一种可靠性非常高的设备,就是集线器(Hub)。
集线器的特点:
集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已大大提高了。
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议,并共享逻辑上的总线。
集线器很像一个多接口的转发器,工作在物理层。
10Base-T
10BASE-T的通信距离稍短,每个站到集线器的距离不超过100m,这种10Mb/s速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性。
10BASE-T 双绞线以太网的出现,是局域网发展史上的一个非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础。
信道利用率
帧发送时间
帧发送时间是帧长(L) 除以 数据发送速率©,因此帧的发送时间是T=L/C。
以太网的信道利用率:参数a
-
要提高以太网的信道利用率,就必须减小与 T之比。在以太网定义了参数 a,它是以太网单程端到端时延 τ与的发送时间 T0之比:
-
a越来越小表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
-
a 越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。
以太网的信道利用率:最大值
对以太网参数的要求
- 当数据率一定时,以太网的连线的长度受到限制,否则的数值会太大。
- 以太网的帧长不能太短,否则 T0的值会太小,使 a 值太大。
信道利用率的最大值
- 在理想化的情况下,以太网上的各站发送数据都不会产生碰撞(这显然已经不是CSMA
/CD,而是需要使用一种特殊的调度方法),即总线一旦空闲就有某一个站立即发送数据。 - 发送一帧占用线路的时间是T0+τ ,而帧本身的发送时间是T0。于是我们可计算出理想情况下的极限信道利用率 Smax为:
MAC层(媒体接入控制子层)
MAC层的硬件地址(MAC地址)
在局域网中,硬件地址又称为物理地址(MAC地址),MAC地址有48位,IEEE的注册管理机构会向厂家分配地址字段的前面的24位,后面的24位由厂家自行指派。
适配器检查MAC地址
- 适配器从网络上每收到一个 MAC 就首先用硬件检查 MAC 帧中的 MAC 地址,如果是发往本站的帧则收下,然后再进行其他的处理;否则就将此帧丢弃,不再进行其他的处理。
- 发完本站的帧”包括以下三种帧:单播(unicast)帧 (一对一)"广播(broadcast) (一对全体)多播(multicast) (一对多)。
MAC是不能改变的,但是我们可以不使用我们计算机上面网卡的固定的MAC地址,用人工指定的MAC地址。
MAC帧格式
常用的以太网MAC帧格式有两种标准:DIX Ethernet V2标准、IEEE 的 802.3标准。最常用的MAC 帧是以太网V2的格式。
整个数据的长度最小应该为64位,不能小于最小帧长。
没有结束字符是因为,以太网使用的曼彻斯特编码,自带时钟信号。
无效的MAC帧
- 帧的长度不是整数个字节
- 用收到的帧检验序列 FCS 查出有差错数据字段的长度不在 46 ~1500 字节之间。
- 有效的 MAC 帧长度为 64 ~1518 字节之间。
- 对于检查出的无效 MAC 就简单地丢弃。以太网不负责重传丢弃的帧。
4. 扩展以太网
在物理层考虑扩展
- 使用光纤和一对光纤调制解调器连接到集线器
- 用集线器在数量上面的扩展
扩展的优点:
- 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
- 扩大了局域网覆盖的地理范围。
扩展的缺点:
- 碰撞域增大了,但总的吞吐量并未提高。
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
在数据链路层考虑进行扩展
在数据链路层扩展局域网使用的是网桥。
- 网桥工作在数据链路层,它根据 MAC的目的地址对收到的进行转发。
- 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此顿,而是先检查此顿的目的 MAC地址,然后再确定将该顿转发到哪一个接口
好处:
- 过滤通信量。
- 扩大了物理范围。
- 提高了可靠性。
- 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100Mb/s以大网)的局域网。
坏处:
- 存储转发增加了时延。
- 在MAC子层并没有流量控制功能具有不同 MAC子层的网段桥接在一起时时延更大。
- 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
网桥可以隔离冲突域,但是不能隔离广播域。
透明网桥
目前使用得最多的网桥是透明网桥。“透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥因为网桥对各站来说是看不见的。透明网桥是一种即插即用设备,其标准是 IEEE 8021D。
自学习算法
透明网桥使用了生成树的算法
这是为了避免产生转发的帧在网络中不断地兜圈子。
源路由网桥
- 源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在的首部中。
- 方法:源站以广播方式向欲通信的目的站发送一个发现帧。
交换机(多接口网桥)
直通式交换机
查完目的地址(6B)就立刻转发。延时小,可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机
将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。
延迟大,可靠性高,可以支持具有不同速率的端口的交换。
5. 虚拟局域网(VLAN)
LAN(Local Area Network)指的是一个局域网,虚拟局域网=一个广播域=逻辑网段,不用局限于物理位置,而且分段更加的灵活和安全。
说的简单一点就是 把局域网划分成为逻辑上多个独立的局域网。
交换机的端口有两种类型:
- 访问端口: 访问端口只能属于某一个VLAN,它只能承载某一个VLAN的流量,连接访
问端口的链路称为访问链路。 - 中继端口:中继端口能够同时承载多个VLAN的流量,连接中继端口的链路称为干道链路。换句话说,就是跑多个链路的数据就是干道链路。
数据进入干道链路时需要添加帧标记(或称VLAN ID),离开干道链路时去掉标记,这
个过程对计算机来说透明。
6.高速以太网
速率达到或超过 100 M/s 的以太网称为高速以太网。
在双绞线上传送 100 M/s 基带信号的星型拓扑以太网,仍使用IEEE 8023的CSMA/CD 协议。100BASE-T 以太网又称为快速以太网(Fast Ethernet)。
100Base-T以太网的物理层
- 100BASE-TX:使用 2 对 UTP 5 类线或屏蔽双绞线 STP
- 100BASE-FX :使用 2 对光纤。
- 100BASE-T4:使用 4 对 UTP 3 类线或 5 类线
100Base-T的特点
- 可在全双工方式下工作而无冲突发生。因此,不使用 CSMA/CD 协议。
- MAC 顿格式仍然是 802.3 标准规定的。
- 保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 m。
- 帧间时间间隔从原来的 9.6 us 改为现在的 0.96 us。
吉比特以太网
- 允许在 1 Gb/s下全双工和半双工两种方式工作。
- 使用 802.3 协议规定的格式。
- 在半双工方式下使用 CSMA/CD 协议 (全双工方式不需要使用CSMA/CD 协议)。
- 帧格式和 10BASE-T 和 100BASE-T兼容。
- 当吉比特以太网工作在全双工方式时 (即通信双方可同时进行发送和接收数据),不使用载波延伸和分组突发。
吉比特以太网的物理层
1000BASE-X 基于光纤通道的物理层:
1000BASE-SX SX表示短波长
1000BASE-LX LX表示长波长
1000BASE-CX CX表示铜线
1000BASE-T "使用 4对 5 类线 UTP”
10 吉比特以太网
- 10 吉比特以太网与 10 Mb/s,100 Mb/s 和 1 Gb/s 以太网的帧格式完全相同。
- 10 吉比特以太网还保留了 802.3 标准规定的以太网最小和最大帧长,便于升级。
- 10 吉比特以太网不再使用铜线而只使用光纤作为传输媒体。10吉比特以大网只工作在全双工方式,因此没有争用问题也不使用 CSMA/CD协议。
吉比特以太网的物理层
局域网物理层 LAN PHY。局域网物理层的数据率是 10.000 Gb/s。可选的广域网物理层 WAN PHY。广域网物理层具有另一种数据率,这是为了和所谓的“Gb/s”的 SONET/SDH (即OC-192/STM-64)相连接。
为了使 10 比特以太网的能够插入到 OC-192/STM-64 顿的有效载荷中,就要使用可选的广域网物理层,其数据率为 9.95328 Gb/s.
端到端的以太网传输
10 吉比特以太网的出现,以太网的工作范围已经从局域网 (校园网、企业网)扩大到城域网和广域网,从而实现了端到端的以太网传输。
这种工作方式的好处是:
- 成熟的技术
- 互操作性很好
- 在广域网中使用以太网时价格便宜
- 统一的帧格式简化了操作和管理
使用快速以太网进行宽带接入
以太网已成功地把速率提高到 1~ 10 Gb/s,所覆盖的地理范围也扩展到了城域网和广域网,因此现在人们正在尝试使用以太网进行宽带接入。
以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级。
采用以大网接入可实现端到端的以大网传输,中间不需要再进行顿格式的转换。这就提高了数据的传输效率和降低了传输的成本。
7. 补充
接入层、汇聚层和核心层
在计算机网络设计中,接入层、汇聚层和核心层是描述网络架构中不同功能区域的术语。
- 接入层(Access Layer): 接入层是网络最接近最终用户的部分,它负责将用户设备连接到网络中。这个层面的交换机通常具有低成本和高端口密度特性,以适应大量的用户接入。接入层的主要功能是提供即插即用的网络连接,确保用户可以轻松地连接到网络,并实现基本的网络服务。为了确保网络安全,接入层还会实施如端口安全(例如MAC地址绑定)等策略。
- 汇聚层(Distribution Layer): 汇聚层位于接入层和核心层之间,它承担着将来自接入层的流量进行汇聚和管理的任务。汇聚层交换机需要能够处理来自接入层的大量数据流量,并提供到核心层的上行链路。这一层的设备通常具有更高的性能、更少的接口和更高的交换速率。汇聚层还负责实施如VLAN路由、策略控制(如地址合并、协议过滤、路由服务和认证管理)等高级网络功能。通过这种方式,汇聚层可以减轻核心层的负荷,确保数据的有效传输和管理。
- 核心层(Core Layer): 核心层构成了网络的主干部分,主要负责高速、可靠的数据转发。它的主要功能是提供整个网络的冗余能力、可靠性和高速传输。核心层是所有网络流量的最终承受者和汇聚者,因此对核心层的设计和网络设备的要求极为严格。在核心层中,通常会使用高性能的交换机,并采取双机冗余热备份等措施来确保网络的高可用性。为了优化性能,网络的控制功能应尽量减少在核心层上实施。