数据链路层

发布时间 2023-03-23 12:34:10作者: 他太冷静了

物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

数据链路层功能

为网络层提供服务

主要为网络层提供如下服务:

  1. 无确认的无连接服务。发送时不需要建立连接,接收时不需要发送确认。对丢失的帧,数据链路层不负责重发而是交给上层处理。适用于实时通信或误码率较低的信道,如以太网。
  2. 有确认的无连接服务。发送时不需要建立连接,接收时需要发送确认,若发送方在规定时间没有收到确认,则重发丢失的帧。适用于误码率较高的信道,如无线通信。
  3. 有确认的面向连接的服务。帧传输分三个阶段:建立数据链路、传输帧、释放数据链路。接收方每收到一帧都要发送确认后,发送方才能发送下一帧。适用于通信要求(可靠性、实时性)较高的场合。

有连接就一定有确认,不存在无确认的面向连接的服务。

链路管理

数据链路的建立、维持和释放过程称为链路管理。主要用于面向连接的服务。
多个站点共享同一个物理信道的情况下(如局域网),如何在要求通信的站点间分配和管理信道也属于链路管理

帧定界、帧同步和透明传输

帧长 = 数据部分长度 + 首部 + 尾部。
首部和尾部包含了控制信息,其中一个重要作用就是确定帧的界限,即帧定界。
接收方能够从接收到的二进制比特流中分辨出帧的开始与结尾,即帧同步。
如果数据部分出现与帧定界符相同的比特组合时如何解决,即透明传输。

为了提高帧的传输效率,应使帧的数据部分的长度尽量大于首部和尾部的长度。
但是每种数据链路层协议都规定了帧的最大长度——最大传送单元(MTU)

流量控制

由于收发双方各自的工作速率和缓存空间可能存在差异,需要限制发送方的速率,即流量控制。
这个过程需要通过某种反馈机制使发送方得知接收方是否跟得上自己。

流量控制并不是数据链路层特有,许多高层协议都有,只是控制的对象不同。
对于数据链路层,控制的对象是相邻两结点之间数据链路上的流量。
对于传输层,控制的对象是源端到目的端之间的流量。

OSI体系结构中,数据链路层具有流量控制功能。
但在TCP/IP体系中,流量控制功能被移到了传输层。

差错控制

使发送方知晓接收方是否正确收到帧的方法,即差错控制。可能的错误分为差错位错
位错指帧中的某些位出现了差错。通常采用循环冗余校验(CRC)发现位错,通过自动重传请求(ARQ)来重传出错的帧。
帧错指帧的丢失、重复或失序。通常引入定时器和编号机制,保证有序交付。

组帧

组帧主要实现帧定界、帧同步和透明传输功能。

组帧时既要加首部,又要加尾部,因为在网络中信息是以帧为最小单位进行传输的
而分组(IP数据报)仅是包含在帧中的数据部分,所以不需要加尾部来定界。

由于字符计数法中计数字段的脆弱性与字符填充法实现上的复杂性与不兼容性,目前常用的组帧方法比特填充法违规编码法

字符计数法

在帧头部使用一个计数字段来标明帧内字符数。
最大的问题是在于如果计数字段出错,即失去了帧边界划分的依据,收发双发将失去同步。

字符填充的首尾定界符法

使用控制字符SOH放在帧的最前面,标志帧的开始,使用控制字符EOT放在帧的尾部,标志帧的结束。
为了实现透明传输,在数据部分中的SOH与EOT前填充一个转义字符ESC来加以区分。接收方会自动删除数据部分的转义字符。
如果转义字符出现在数据中,则在前面再填充一个转义字符。

零比特填充的首尾标志法

使用01111110来标志帧的开始与结束。
发送方的数据链路层在信息位中遇到连续个"1"时,自动在其后填充一个"0";
接收方每收到连续的"1"时,自动删除其后的一位"0"。

  • 零比特填充法很容易由硬件来实现,性能优于字符填充符法

违规编码法

在物理层进行比特编码时,通常采用违规编码法。
如曼彻斯特编码将比特"1"编码为"高-低"电平对,将比特"0"编码为"低-高"电平对,而"高-高"、"低-低"在数据中是违规的(即没有采用),可以使用这些违规编码来定界帧。

  • 局域网IEEE 802标准使用了这种方法
  • 不需要使用任何填充就实现了透明传输,但只适用于采用冗余编码的特殊环境

差错控制

只讨论比特差错,即位错。
通常利用编码技术进行差错控制:自动重传请求ARQ与前向纠错FEC。
ARQ方式中,接收端检测到差错时,通知发送端重发;(检错编码)
FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。(纠错编码)

检错编码

检错编码都采用冗余编码技术,其核心思想是在有效数据(信息位)发送前,按某种规则附加一定冗余位。
当要发送的有效数据变化时,相应的冗余位也发生变化,使得码字遵循不变的规则。
接收方根据码字是否仍符合规则来判断是否出错。

奇偶校验码

是奇校验码和偶校验码的统称,是一种最基本的检错码。
n-1位信息元1位校验元组成。
如果是奇校验码,在附加一个校验元后,码长为n的码字中"1"的个数为奇数;
如果是偶校验码,在附加一个校验元后,码长为n的码字中"1"的个数为偶数。
只能检测奇数位的出错情况,但并不知道哪些位错了,也不能发现偶数位的出错情况。

循环冗余码

CRC,又称多项式码。
任何一个由二进制数位串组成的代码都可以与一个只含有0和1两种系数的多项式一一对应关系。
一个k位帧可以视为从Xk-1到X0的k次多项式的系数序列,这个多项式的阶数为k-1,高位是Xk-1项的系数,以此类推。
给定一个m bit的帧或报文,发送器生成一个r bit的序列,称为帧检验序列(FCS)。这样形成的帧由m + r bit组成。
发送方和接收方事先商定一个多项式G(x)(最高位与最低位必须为1),使这个带检验码的帧刚好能被预先确定的多项式G(x)整除。接收方用相同的多项式去除收到的帧,如果无余数,那么认为无差错。

循环冗余码是具有纠错功能的,数据链路层只是检测到错误就丢弃帧,以方便协议的实现。

纠错编码

在每个要发送的数据块上附加足够的冗余信息,使得接收方能够推算出实际发送的是什么数据。

海明码

在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。
当某一位出错时,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。



流量控制与可靠传输机制

滑动窗口协议

任何时刻,发送方都维持一组连续的、允许发送的帧的序号,称为发送窗口
同时接收方维持一组连续的、允许接收的帧的序号,称为接收窗口
发送窗口的大小代表在还为接收到确认的情况下还能发送多少帧;接收窗口可以控制接收哪些帧,落在接收窗口外的帧一律丢弃。
发送端每收到一帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧时,发送方就会停止发送,直至接收到确认。
接收端每接收一帧,接收窗口向前滑动一个帧的位置,并发回确认帧。
滑动窗口有以下重要特性:

  1. 只有接收窗口向前滑动后,发送窗口才有可能向前滑动
  2. 从滑动窗口协议结合可靠传输机制:
    1. 停止-等待协议——发送窗口大小 = 1,接收窗口大小 = 1
    2. 后退N帧协议——发送窗口大小 > 1,接收窗口大小 = 1
    3. 选择重传协议——发送窗口大小 = 接收窗口大小 > 1
  3. 接收窗口大小 = 1时,可以保证帧的有序接收
  4. 数据链路层的滑动窗口大小是固定的(与传输层的对比)

可靠传输机制

数据链路层的可靠传输机制通常使用确认和超时重传机制来完成。
确认是一种无数据的控制帧。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。
超时重传是指发送方在发送某个帧后启动一个计时器,在一定时间内如果没有收到确认,则自动重发该帧。

自动重传请求

自动重传请求(ARQ)通过接收方请求发送方重传出错的帧来保证可靠传输。
传统的自动重传请求分为三种:

  1. 停止-等待ARQ
  2. 后退N帧ARQ
  3. 选择性重传ARQ

后两种协议是滑动窗口技术与自动重发请求的结合。
由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称为连续ARQ协议。

数据链路层的可靠传输机制与流量控制是交织在一起的。

现实中数据链路层很少采用可靠传输(不同于OSI),而是由高层(传输层)负责。

单帧滑动窗口与停止-等待协议

在停止-等待协议中:

  • 当帧发生丢失或损坏时,发送方计时器会到时重传。(接收方收到损坏的帧会直接丢弃,不发回确认)
  • 当帧正确但确认帧损坏时,接收方已收到正确的帧,发送方收不到确认会再次重传,接收方会丢弃收到的重复帧,并重传一个确认帧。
  • 发送的帧交替地用1和0来标识,确认帧分别用ACK0和ACK1来标识,所以,若连续出现相同发送序号的帧,说明发送端超时重传了,若连续出现相同需要的确认帧,表明接收端收到了重复帧。
  • 为了超时重传和判定重复帧,发送方和接收方都需要设置帧缓冲区。发送方在发送帧后,在缓冲区保存一个副本,只有收到确认后才能删除。

信道利用率很低。

信道效率,又称信道利用率。信道效率是对发送方而言的,指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
发送周期:从发送方开始发送数据到收到第一个确认帧为止。
信道吞吐率 = 信道利用率 × 发送方的发送速率

多帧滑动窗口与后退N帧协议

在后退N帧协议中(GBN):

  • 发送方可以连续发送帧,接收方只能一个一个顺序地接收。
  • 当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧。
  • 当发送方发送了一组连续帧后,若这组帧的前一个帧超时,则需要重发超时帧与这组连续帧。
  • 确认必须指明是对哪一帧的确认。
  • 接收方可以连续收到好几个正确帧后,才对最后一个帧发送确认。也可以捎带确认。
  • 接收方在每次丢弃帧时都要发送最后一个正确接收帧的确认帧(确保确认帧不丢失)

若采用n比特对帧编号,发送窗口的尺寸范围 1<= WT <= 2n- 1,若大于2n- 1,则接收方无法分辨新帧和旧帧。
提高了一些信道利用率,但当误码率很大时不一定优于停止-等待协议。

多帧滑动窗口与选择重传协议

在选择重传协议中(SR):

  • 发送方可以连续发送帧,接收方可以先收下序号不连续但是落在接受窗口内的帧,等到接收到所缺序号的帧再一并交付。
  • 一旦接收方怀疑某个帧出错,就会发送一个否定帧NAK,要求发送方重传NAK指定的帧。
  • 发送窗口大小 = 接收窗口大小,且最大值都为序号范围的1/2。(发送>接收会溢出,发送<接收没有意义)

若采用n比特对帧编号,WTmax = WRmax = 2(n-1)。若大于2(n-1),当一个或多个确认帧丢失时,发送方超时重传的帧会让接收方无法分辨是新帧还是旧帧。
接收端需要设置缓冲区来暂存那些未按序正确收到的帧。缓冲区的数目 = 窗口的大小,而不是序号数目。

介质访问控制

为了使每个结点隔离来自同一信道上的其他结点所传送的信号,以协调活动结点的传输。
用来决定广播信道中分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层。

  • 静态划分信道:信道划分介质访问控制
  • 动态划分信道:随机访问介质访问控制、轮序访问介质访问控制

信道划分介质访问控制

将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
通过多路复用技术将多个信号组合在一条物理信道上传输,在接收端把收到的信息分离出来。
信道划分的实质就是通过分时、分频、分码等方法把原来一条广播信道,逻辑上分为几条用于两个结点间通信的互不干扰的子信道。

频分多路复用(FDM)

将物理信道的总带宽划分为若干子信道,每个子信道分配的带宽可能不同,但它们总和不超过信道的总带宽。在实际中,还要加上“保护频带”防止子信道间的干扰。

时分多路复用(TDM)

将物理信道按时间片轮流地分配给多个信号使用。每个时间片由复用的一个信号占用。
某一时刻,信道上传输的是某一对设备之间的信号;
某段时间,信道上传输的是按时间分割的多路复用信号;
由于计算机数据的突发性,某个设备对已经分配到的子信道利用率一般不高。统计时分多路复用(STDM,又称异步时分多路复用)是TDM的一种改进,它采用STDM帧,STDM帧并不固定时隙,而是按需动态分配时隙,当终端需要传输数据时,再分配时间片。

线路传输速率为8000b/s,共4个用户
当采用TDM方式时,每个用户的最高速率为2000b/s;
当采用STDM方式时,每个用户的最高速率可达8000b/s;

波分多路复用(WDM)

光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。

码分多路复用(CDM)

采用不同的编码来区分各路原始信号,与FDM和TDM不同,它既共享信道的频率,由共享时间。

FDM共享时间,但不共享空间;
TDM共享空间,但不共享时间;

又称码分多址(CDMA),其原理是每个比特时间再划分成m个短时间槽,称为码片(Chip),m的值通常为64和128。
频谱利用率高、抗干扰强、保密性强、语音质量好,还可以降低运行成本,主要用于无线通信系统,特别是移动通信系统。

随机访问介质访问控制

随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据意愿随机地发送消息,占用信道全部速率。
但是这样就会有碰撞(冲突)的问题。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直至无碰撞的通过。
这些规则包括:ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议等,它们的核心思想都是胜利者通过争用获得信道从而获得信息的发送权,因此,随机介质访问控制又称争用性协议。实质上是一种将广播信道转化为点对点信道的行为。

ALOHA协议

分为纯ALOHA协议和时隙ALOHA协议两种。
纯ALOHA协议中,任何站点都不进行检测直接发送数据,如果在一段时间内未收到确认,就认为发生了冲突,该站点会等待一段时间后再发送,直至发送成功。
碰撞双方重传时,需要各自等待一段随机时间再重传。
时隙ALOHA协议把所有站点在时间上统一起来,将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。从而避免了用户发送数据的随意性,减少了冲突,提高了信道利用率。
每个帧在到达后,一般都要等待小于时隙的一段时间,然后发送出去。
时隙ALOHA效率大概是纯ALOHA的二倍

CSMA协议

载波侦听多路访问协议。
每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送。
CSMA与ALOHA协议的区别是多了一个载波侦听装置。
根据侦听方式和侦听到信道忙后处理方式的不同,分为三种:

  1. 1-坚持CSMA

一个结点要发送数据时,首先侦听信道。
如果信道空闲,立即发送数据;如果信道忙,则等待,同时继续侦听直至信道空闲。
如果发生冲突,则随机等待一段时间后,再重新开始侦听信道。

“1-”的意思是信道空闲时,发送数据的概率为1
“坚持”的意思是信道忙时,是否一直侦听

传播延迟对1-坚持CSMA性能影响较大(侦听到空闲,但其他结点正在发送)。就算不考虑延迟,1-坚持CSMA还是可能发生冲突(同时发送)。

  1. 1-非坚持CSMA

一个结点要发送数据时,首先侦听信道。
如果信道空闲,立即发送数据;如果信道忙,则放弃侦听,等待一个随机的时间后再重新侦听。
如果发生冲突,则随机等待一段时间后,再重新开始侦听信道。
降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但是会增加数据在网络中的平均延迟。信道利用率的提高是以延迟为代价的。

  1. p-坚持CSMA

一个结点要发送数据时,首先侦听信道。
如果信道空闲,以p概率发送数据,以1-p概率推迟到下一个时隙(下个时隙同样需要侦听),直至发送成功为止;如果信道忙,则等待,同时继续侦听直至信道空闲。
如果发生冲突,则随机等待一段时间后,再重新开始侦听信道。
概率推迟到下一个时隙是为了降低1-坚持CSMA中多个结点同时发送导致冲突的概率;同时采用持续侦听,没有非坚持CSMA中由于随机等待造成的延迟。p-坚持CSMA适用于时隙信道。
是前两种方案的折中。

CSMA/CD协议

载波侦听多路访问/碰撞检测协议。
在CSMA基础上,边发送时还要边侦听,以判断自己在发送数据的同时其他站点有没有发送数据。
一个结点要发送数据时,首先侦听信道。
如果信道空闲,立即发送数据;如果信道忙,则等待,同时继续侦听直至信道空闲。
在发送过程中,适配器持续检测信道。若一直未检测到冲突,则发送顺利完成;若检测到冲突,则终止数据的发送,并发送一个拥塞信号,让所有用户都知道。
如果发生冲突,则随机等待一段时间后(执行指数退避算法),再重新开始侦听信道。
CSMA/CD协议中的站点不能同时发送和接收数据,因此只能用于半双工通信(当然也适用于总线型网络)。
在发送帧之后至多2t的时间内(端到端传播时延的2倍),就能得知是否发生了冲突。因此把2t称为争用期(又称冲突窗口/碰撞窗口

CSMA/CD的工作周期就是传输周期、争用期、空闲期交替出现的过程。
每当检测到冲突时,大家都不发送了,各自随机退避一段时间后,有人可能成功发送了,而其他人可能又碰撞了,开始下一轮退避争用。

为了确保发送站在发送数据的同时能检测到可能存在的冲突,需要在发送完帧之前就能收到自己发送出去的数据,即帧的传输时延必须要大于二倍的信号在总线中从传播时延。所以CSMA/CD网络中,所有数据帧都必须要大于最小帧长 = 总线传播时延 × 数据传输速率 × 2,否则将作为无效帧丢弃(实际上在MAC层封装帧时会自动填充至最小帧长)。

指数退避算法

  1. 确定基本退避时间,一般取两倍的总线端到端传播时延2r(即争用期)
  2. 定义参数k=重传次数,每次重传都会使k+1,直至k = 10后不再增加。
  3. 从离散的整数集合[0,1,...,2k-1]中随机取出一个数t,重传所需要的退避时间=r × 基本退避时间,即 2rt
  4. 当重传16次仍然不成功时,说明网络十分拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

使用截断二进制指数退避算法可使重传需要推迟的平均时间随重传次数的增大而增大(也称动态退避),因而降低碰撞概率。

CSMA/CA协议

载波侦听多路访问/碰撞避免协议。
CSMA/CD协议已成功应用于有线连接的互联网,但在无线局域网环境下却不适用,原因:

  1. 接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现碰撞检测,则硬件上的花费就会过大。
  2. 无线通信中,并非所有站点都能听见对方,存在“隐蔽站”问题。

CSMA/CA中,一旦发送帧就会发送完整。802.11使用自动重传请求ARQ方式,只有在接收到确认帧后才发送下一帧。
为了避免碰撞,发送完一帧后,必须再等待一段很短的时间(坚持侦听)才能发送下一帧,这段时间称为帧间间隔(IFS)。帧间间隔的长短取决于该站要发送的帧的类型,802.11使用了3中IFS:

  • SIFS(短IFS):最短的IFS,用于分隔属于一次对话的各帧,使用SIFS的帧类型有ACK帧、CTS帧、分片后的数据帧,以及所有回答AP探询的帧等
  • PIFS(点协调IFS):中等长度的IFS,在PCF操作中使用
  • DIFS(分布式协调IFS):最长的IFS,用于异步帧竞争访问的时延

一个结点要发送数据时(首个数据帧),首先侦听信道。
如果信道空闲,等待时间DIFS后发送数据;如果信道忙,则_a)_执行退避算法,选取一个随机的回避值,一旦检测到信道忙,退避计时器就保持不变,只要信道空闲,退避计时器就倒计时。倒计时到0时,发送帧。
发送站如果收到确认,如果要继续发送后续帧,则从_a)_处开始执行

当且仅当检测到信道空闲,且这个数据帧是发送的第一个帧时,才不使用退避算法。
使用退避算法的情况:

  1. 在发送第一个帧前检测到信道忙
  2. 每次重传
  3. 每次要发送下一帧

CSMA/CA在发送数据的同时不能检测信道上的冲突,只能尽量避免;CSMA/CD可以检测冲突,但无法避免。
CSMA/CA用于无线局域网802.11a/b/g/n;CSMA/CD用于总线型以太网。
CSMA/CA通过能量检测、载波检测和能量载波混合检测信道空闲;CSMA/CD通过电压变化来检测信道空闲。

隐蔽站

A和B离得太远,彼此无法通信,但A和B都在AP的覆盖范围内,A和B检测到信道空闲时,都向AP发送数据时发生冲突。
为了解决隐蔽站问题:

  1. 发送站A发送前先广播一个很短的请求发送RTS控制帧,包括源地址、目的地址以及这次通信所持续的时间,该帧能被其范围内所有站点包括AP在内的站点听到。
  2. 若信道空闲,则AP广播一个允许发送CTS控制帧,包括这次通信所持续的时间,该帧能被其范围内所有站点包括A和B听到。B和其他站点听到后在CTS所指明的时间内抑制发送。

CTS帧有两个目的:1.给源站明确发送许可 2.指示其他站点在预约期内不要发送
当数据帧长度超过一定数值时,使用RTS和CTS帧才比较有利。

轮询访问介质访问控制

令牌传递协议

用户不能随意的发消息,而要通过一个集中控制的监控站,以循环方式轮询每个结点在决定信道的分配。当某个结点使用信道,其他结点都不能使用信道。
在令牌传递协议中,一个令牌(token)沿着环形总线在各结点计算机间依次传递。令牌是一个特殊的MAC控制帧,本身并不包含信息,仅控制信道的使用。确保同一时刻只有一个站点独占信道。当环上的一个站点希望传送帧时,站在发送完一帧后应释放令牌。
由于令牌在往环上是按顺序依次传递的,所以对于所有站点而言,访问权是公平的。

  1. 网络空闲时,环路中只有令牌帧在循环传递。
  2. 令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
  3. 数据帧连沿着环路传输。接收帧到的站点,一边转发数据,一边查看帧的目的地址,如果目的地址与自己的地址相同,那么接收站就复制该数据帧以进一步处理。
  4. 源站点收到自己发出去的帧后便不再转发,同时通过检验返回的帧来查看数据传输过程中是否出错,如果有错则重传
  5. 源站点在传送完数据后,重新产生一个令牌,并传递给下一个站点,交出信道控制权。

在令牌传递网络中,传输介质的物理拓扑不必是一个环,但是逻辑上必须是一个环。
轮询介质访问控制非常适合负载很高的广播信道。所谓负载很高,是指多个节点在同一时刻发送数据的概率很大的信道。
轮询访问控制,既不共享时间,也不共享空间。实际上是在随机介质访问控制的基础上限定了有权发送数据的节点只有一个。

局域网

局域网是指在一个较小的地理范围内,将各种计算机、外部设备和数据库系统等通过双绞线,同轴电缆等介质互相连接起来,组成资源和信息共享的互联网络。

  1. 为一个单位所拥有,且地理范围和站点数目均有限
  2. 所有站点共享较高的总带宽
  3. 较低的时延和较低的误码率
  4. 各站为平等关系,而非主从关系
  5. 能进行广播和组播

局域网的特性主要由三个要素决定:拓扑结构,传输介质,介质访问控制方式,其中最重要的是介质访问控制方式,决定着局域网的技术特性。
常见的局域网的拓扑结构主要有四大类:星形结构,环形结构,总线形结构,星形和总线形结合的复合型结构。
局域网可以使用双脚线,铜缆,光纤等多种传输介质,其中双脚线是主流传输介质。
局域网的介质访问控制方法主要有CSMA/CD、令牌总线和令牌环,其中前两种方法主要用于总线形局域网,令牌环主要用于环形局域网。

  • 以太网(目前使用范围最广的局域网):逻辑拓扑是总线型结构,物理拓扑是星形或拓展星形结构
  • 令牌环(Token Ring,IEEE 802.5):逻辑拓扑是环形结构,物理拓扑是星形结构
  • FDDI(光纤分布数字接口,IEEE 802.8):逻辑拓扑是环形结构,物理拓扑是双环结构

IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层,并将数据链路层拆分为两个子层:

  • 媒体接入控制(MAC)子层

与接入媒体相关的内容都放在MAC字层,向上屏蔽对物理层访问的各种差异。提供在物理层的统一访问接口。主要功能包括组帧、拆卸帧,比特传输差错检测、透明传输。

  • 逻辑链路控制(LLC)子层

LLC子层与传输媒体无关,而是向网络层提供无确认无连接,面向连接、有确认无连接、高速传送四种不同的连接服务类型。

由于以太网在局域网市场已经取得垄断地位,几乎成为局域网的代名词,而802委员会制定的LLC子层的作用已经不大,因此现在许多网卡仅装有MAC层协议,而没有LLC层协议。

以太网与IEEE 802.3

IEEE 802.3标准是一种基带总线形的局域网标准,描述物理层和数据链路层的MAC子层的实现方法。
以太网严格来说是符合DIX Ethernet V2标准的局域网,但DIX Ethernet V2与 IEEE 802.3标准只有很小的差别,因此通常将802.3局域网简称为以太网。
以太网中:

  • 逻辑上采用总线形的拓扑结构,所有计算机共享同一条总线,信息以广播方式发送
  • 采用了CSMA/CD方式对总线进行访问控制
  • 采用无连接的工作方式,不对发送的数据帧编号,不要求接收方发送确认,提供的是不可靠服务,对于出错的纠正则由高层完成
  • 发送的数据都使用曼彻斯特编码的信号,方便同步

以太网的传输介质与网卡

以太网的传输介质有四种:粗缆,细缆,双绞线和光纤。
网卡,即网络适配器网络接口卡,是工作在物理层和数据链路层的组件,网卡上有处理器和储存器。
网卡与局域网的通信是通过电缆与双绞线以串行方式进行的;与计算机的通信是通过I/O总线以并行方式进行的。因此网卡的重要功能之一就是完成数据串并行的转换。除此之外,还有局域网中传输介质之间的物理连接与电信号匹配,帧的发送与接收、封装与拆卸,介质访问控制,数据的编码与解码,数据缓存功能等。
全世界的每块网卡在出厂时都有一个唯一的代码称为介质访问控制(MAC)地址。这个地址用于控制主机在网络上的数据通信,数据链路层设备都使用的是各个网卡的MAC地址。

以太网的MAC帧

每块网卡中的MAC地址也称物理地址
MAC地址长6字节,一般由连字符或冒号分割的12个16进制数表示,如02-60-8c-e4-b1-21。
高24位为厂商代码,低24位为厂商自行分配的网卡序列号。
由于总线上使用的是广播通信,因此网卡从网络上每收到一个MAC帧,首先要用硬件检查MAC帧中的MAC地址,如果是发往本站的帧,那么就收下,否则丢弃。
以太网MAC帧格式有两种标准:DOX Ethernet V2标准(以太网V2标准)和IEEE 802.3标准
V2标准中:

  • 前导码。使接收端与发送端时钟同步。在帧前面插入8字节可再分为两个字段:第一个字段共7字节,是前同步码,用来实现MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息就是MAC帧。

MAC帧并不需要帧结束符,因为以太网在传输帧时,各帧之间有一定的空隙。
但不要误以为以太网MAC帧不需要尾部,在数据链路层上帧既要加首部,也要加尾部。

  • 地址。通常使用6字节(48bit)地址,即MAC地址。
  • 类型。2字节,指出数据域中携带的数据应交给哪个协议实体处理。
  • 数据。46~1500字节,包含高层的协议信息。由于CSMA/CD算法的限制,以太网帧必须满足最小长度64字节,数据较少时必须加以填充。

由CSMA/CD方式可知以太网的最短帧长为64B,而MAC帧的首部和尾部的长度为18字节,所以数据字段最短为64-18 = 46字节。
1500是规定的。

  • 校验码。4字节,校验范围从目标地址段到数据段的末尾。算法采用32位循环冗余码(CRC)。

802.3帧格式与DIX以太网帧格式的不同之处在于用长度域替代了DIX帧中的类型域,指出数据域的长度。在实际中,长度/类型两种机制可以并存。由于IEEE 802.3数据段的最大字节数为1500,所以长度段的最大值为1500,因此从1501到65535的值都可用于类型段标识符。

高速以太网

值速率达到100 MB/s的以太网称为高速以太网。

  1. 100 BASE-T以太网

是在双绞线上传输100MB/s基带信号的星形拓扑以太网。
使用CSMA/CD协议。
既支持全双工方式,又支持半双工方式。可在全双工方式下工作而无冲突发生,因此在全双工方式下不使用CSMA/CD协议。
MAC帧格式仍然是802.3标准规定的。保持最短帧长不变,但将一个网段的最大电缆长度减少到100m。帧间间隔从原来的9.6μm改为现在的0.96μm。

  1. 吉比特以太网

又称千兆以太网,允许在1GB/s速率下使用全双工和半双工两种方式工作。在半双工方式下,使用CSMA/CD协议,全双工不需要使用介质访问控制协议。
使用802.3协议规定的帧格式。
与10 BASE-T和100 BASE-T技术向后兼容。

  1. 10吉比特以太网

与10 BASE-T、100 BASE-T和吉比特以太网的帧格式完全相同,还保留了802.3标准规定的以太网最小和最大帧长,便于升级。
10吉比特网不再使用铜线,而是使用光纤作为传输媒体。
10吉比特以太网工作在全双工方式,没有争用问题,所以不适用介质访问控制协议。

无线局域网与IEEE 802.11

无线局域网可分为两大类,有固定基础设施的无线局域网和无固定基础设施的移动自组织网络。所谓固定基础设施是指预先建立的能覆盖一定地理范围的固定基站。

有固定基础设施的无线局域网

IEEE制定了802.11系列协议标准包括802.11a/b/g/n等。使用802.11系列的协议的局域网又称为Wi-Fi。

  • 使用星型拓扑,中心称为接入点(AP)
  • 在MAC层使用CSMA/CA协议
  • 无线局域网的最小构件是基本服务集BSS

一个基本服务集包括一个接入点和若干移动站。各站在本BSS内的通信或与本BSS外部站的通信都必须通过BSS的AP。
AP就是基本服务集中的基站,安装AP时必须为AP分配一个不超过32字节的服务集标识符SSID和一个信道,SSID是指使用该AP的无线局域网的名字。
一个基本服务集覆盖的地理范围称为一个基本服务区BSA,无线局域网的基本服务区范围直径一般不超过100m。
一个基本服务集可以是孤立的,也可以通过AP连接到一个分配系统DS,然后再连接到另一个基本服务集,就构成了一个拓展的服务集ESS。分配系统的作用就是使拓展的服务集对上层表现就像一个基本服务集一样。
ESS还可以通过一种称为Portal(门户)的设备为无线用户提供有线连接的以太网接入。门户的作用相当于一个网桥。

无固定基础设施移动自组织网络

又称自组网络
自组网络没有上述基本服务集中的AP,而是由一些平等状态的移动站相互通信组成的临时网络,各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。
自组网络中的每个移动站都要参与网络中的其他移动站的路由的发现和维护。
由移动站组成的构成的网络拓扑可能随时间变化的很快,因此在固定网络中行之有效的一些路由选择协议对移动自主网络可能不适用。
自组网络和移动IP并不相同,移动IP技术使漫游的主机可以用多种方法连接到因特网,其核心网络功能仍然是基于固定网络中一直使用的各种路由选择协议。而自组网络是把移动性扩展到无线领域的自治系统,具有自己特定的路由选择协议,可以不和因特网相连。

802.11局域网的MAC帧

802.11帧共有三种类型:数据帧,控制帧和管理帧。
有以下三部分组成:

  • MAC首部。共30字节,帧的复杂性都在MAC首部。
  • 帧主体。即帧的数据部分,不超过2312字节。比以太网的最大长度长很多。
  • 帧检验序列FCS(MAC尾部)。共4字节。

802.11中首部最重要的是四个地址字段,都是MAC硬件地址。前三个地址的内容取决于帧控制字段去往AP和来自AP这两个字段的数值。第四个地址用于自组网络。


假定在一个基本服务集中,A向B发送数据帧:

  1. 站A发往AP的数据帧控制字段中,去往AP = 1而来自AP = 0;地址1是AP的MAC地址,地址2是A的MAC地址,地址3是B的MAC地址。接收地址与目的地址并不等同(存在AP这个中间结点)
  2. AP收到数据帧后,转发给站B,此时数据帧的控制字段中,去往AP = 0而来自AP =1;地址1是B的MAC地址,地址2是AP的MAC地址,地址3是A的MAC地址。发送地址与源地址并不等同。


虚拟局域网WLAN

一个以太网是一个广播域。当一个以太网包含的计算机太多时,往往会导致:

  • 以太网中出现大量的广播帧,特别是经常使用的ARP和DHCP协议。
  • 对信息保密和安全不利。

通过虚拟局域网(Virtual LAN)可以把一个较大的局域网分割成一些较小的、逻辑上的VLAN,每个VLAN是一个较小的广播域。
802.3ac标准定义了支持VLAN的以太网帧格式的扩展。在以太网帧中插入一个4字节的标识符(在源地址字段和类型字段之间),称为VLAN标签,用来指明发送该帧的计算机属于哪个虚拟互联网。插入标签的帧称为802.1Q帧
由于帧的首部增加了4字节,因此以太网的最大帧长,从原来的1518字节变为1522字节。

(以太网MAC帧)1518 = 源地址6位+目的地址6位+类型2位+数据段1500位+校验码4位

VLAN标签的前两个字节置为0x8100,表示这是802.1Q帧。后两个字节中,前4位没有用,后12位是该VLAN的标识符VID。12位的VID可标识4096个不同的VLAN。插入VID后,802.1Q帧的校验码FCS必须重新计算。
VID字段的值由交换机管理员设定。各主机并不知道自己的VID值,但交换机必须知道。主机与交换机之间的交互都是标准以太网帧。一个VLAN的范围可以跨越不同的交换机,前提是所用的交换机能够识别和处理VLAN。

虚拟局域网只是局域网给用户提供的一种服务,并不是一种新型局域网。

广域网

广域网通常是指覆盖范围很广(远超一个城市的范围)的长距离网络。
广域网是因特网的核心部分。其任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,可以是长达几千千米的光缆,也可以是长达达几万千米的点对点卫星链路。因此广域网的首要考虑问题是通信容量必须足够大。
广域网不等于互联网,互联网可以连接不同类型的网络(既可以连接局域网,又可以连接广域网),通常使用路由器来连接。
广域网由一些结点交换机以及连接这些交换机的链路组成。

结点交换机和路由器都用来转发分组。结点交换机在单个网络中叫转发分组。而路由器在多个网络构成的互联网中转发分组。

从层次上考虑,广域网和局域网的差别很大。因为局域网所使用的协议主要在数据链路层(还有一些物理层),而广域网使用的协议主要在网络层。

结点在传输数据时,给数据段封装上一层控制信息,用于实现检测,纠错等功能。如果这层控制信息是数据链路层协议的控制信息,那我们就称使用了数据链路层协议;如果这层控制信息是网络层的控制信息,就称使用了网络层协议。


广域网中的一个重要问题是路由选择分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构建路由表,然后从路由表中再构造出转发分组的转发表。分组是通过转发表进行转发的。
常见的两种广域网数据链路层协议是PPP协议和HDLC协议。

PPP协议

PPP(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议。
该协议应用在直连的两个结点的链路上。设计的目的主要是用于通过拨号或专线的方式建立点对点连接。
PPP协议是在SLIP协议的基础上发展而来。既可以在异步线路上传输,又可在同步线路上使用。不仅用于Modem链路,也用于租用的路由器到路由器的线路。

SLIP主要用于完成数据报的传送,但没有寻址、数据校验、分组类型识别和数据压缩等功能,只能传送IP分组。如果上层不是IP协议,那么无法传输。为了改进它的缺点,于是制定了PPP协议。

PPP协议有三个组成部分:

  • 链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路
  • 网络控制协议(NCP)。PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接
  • 一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传输单元(MTU)的限制。

PPP是面向字节的,因而所有的PPP帧的长度都是整数个字节。

标志字段F = 7E(01111110)前后各占1字节,如果出现在信息部分,就要做字符填充(使用的控制转义字节是7D(01111101))。地址字段A占1字节,规定为0xFF。控制字段C占1字节,规定为0x03。地址字段与控制字段的内容时钟不变。
第四个字段是协议字段,占2字节,说明信息段中运载的是什么种类的分组。以比特0开始的是诸如IP、IPX和AppleTalk这样的网络协议,以比特1开始的被用来协商其他协议,包括LCP以及每个支持的网络层协议的一个不同的NCP。
第五个字段是信息段,长度是可变的( 0 <= 长度 <=1500B)。

因为PPP是点对点的,不是总线形,所以不需要采用CSMA/CD协议,自然就没有最短帧。

第六个字段是帧校验序列,占2字节,即循环冗余码校验中的冗余码。校验区包括地址字段,控制字段,协议字段和信息字段。

  1. 当线路处于静止状态时,不存在物理层连接。
  2. 当线路检测到载波信号时,建立物理连接,线路变为建立状态。此时LCP开始选项商定,商定成功后就进入身份验证状态
  3. 双发身份验证通过后,进入网络层协议状态。这时采用NCP配置网络层,配置成功后进入打开状态,然后就可进行透明传输。
  4. 当数据传输完成后,线路转为终止状态
  5. 载波停止后则回到静止状态

注意:

  • PPP提供差错检测,但不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验)
  • PPP是不可靠的传输协议,因此也不使用序号和确认机制
  • PPP仅支持点对点的链路通信,不支持多点线路
  • PPP只支持全双工链路
  • PPP的两端可以运行不同的网络层协议。但仍可使用同一个PPP进行通信
  • PPP是面向字节的,当信息字段中出现与标志字段一致的比特组合时,PPP有两种不同的处理方法。若PPP在用在异步线路(默认),则采用字符填充法。若PPP用在SONET/SDH等同步线路,则采用硬件来完成比特填充

设备

网桥

两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就成为一个网段
网桥工作在数据链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域(冲突域)。

如果把网桥换在换成工作在物理层的转发器就没有这种过滤通信量的功能。

由于各网段相互独立,因此一个网段的故障不会影响到另一个网段的运行。网桥必须具有路径选择功能,接收到帧后要决定正确的路径,转送到相应的网段中的站点。

局域网交换机

局域网交换机又称以太网交换机。
本质上是一个多端口的网桥,工作在数据链路层。
交换机能够经济地将网络分成小的冲突域,为每个工作站提高提供更高的带宽。
以太网交换机对工作站是透明的,因此管理开销低廉,简化了网络节点的增加、移动和网络变化的操作。
利用以太网交换机还可以方便的实现虚拟局域网VLAN,VLAN不仅可以隔离冲突域,而且可以隔离广播域。
以太网交换机的特点:

  1. 以太网交换机的每个端口都直接与单台主机相连(网桥的端口往往连接到一个网段),并且一般都工作在全双工方式。
  2. 以太网交换机能同时连通多对端口,使每对相互通信的主机都能像独占通信媒体那样无碰撞地传输数据。
  3. 以太网交换机是一种即插即用设备,其内部的帧的转发表是通过自学习算法逐步建立的,
  4. 以太网交换机由于使用专用的交换结构芯片,交换速率较高。
  5. 以太网交换机独占传输媒体的带宽。

以太网交换机主要采用两种交换方式:

  1. 直通式交换机。只检查帧的目的地址,帧在接收后几乎马上被传出去。速度快,缺乏智能性与安全性。无法支持具有不同速率的端口的交换。
  2. 存储转发式交换机。将接收到的帧缓存到高速缓存器中,并检查数据是否正确。确认无误后,通过查找表转换成输出端口并将帧转发出去。如果发现帧有错,那么就将其丢弃。可靠性高。并且支持不同速率端口的转换。延迟较大。

交换机一般都具有多种速率的端口。
决定一个帧应该转发到某个接口,还是应该将其丢弃,称为过滤
决定一个帧应该被移动到哪个接口称为转发
交换机的过滤与转发借助于交换表(Switch Table)实现。交换表的一个表项至少包含一个MAC地址与连通该MAC地址的交换机接口。


考虑到交换机所连的主机会随时变化,这就需要更新交换表中的表项,因此交换表中的每个表项都设有一定的有效时间,过期的表项会自动删除。