计算机网络 第三章 数据链路层 笔记

第三章 数据链路层

3.1 数据链路层的功能

节点:主机、路由器

链路:网络中两个节点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波,分为有线链路和无线链路。

数据链路:网络中两个节点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路。

:链路层的协议数据单元,封装网络层数据报。

数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报。数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。(改造物理层交付网络层)

3.1.1 为网络层提供服务

对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。数据链路层通常可为网络层提供如下服务:

无确认的无连接服务。源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。对丢失的帧,数据链路层不负责重发而交给上层处理。适用于实时通信或误码率较低的通信信道,如以太网。

有确认的无连接服务。源机器发送数据帧时不需先建立链路连接,但目的机器收到数据帧时必须发回确认。源机器在规定的时间内未收到确定信号时,就重传丢失的帧,以提高传输的可靠性。该服务适用于误码率较高的通信信道,如无线通信。

有确认的面向连接服务。帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。目的机器对收到的每一帧都要给出确认,源机器收到确认后才能发送下一帧,因而该服务的可靠性最高。该服务适用于通信要求(可靠性、实用性)较高的场合。

3.1.2 链路管理

数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。链路两端的节点要进行通信,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,在传输过程中则要能维持连接,而在传输完毕后要释放该连接。在多个站点共享同一物理信道的情况下如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。

扫描二维码关注公众号,回复: 17156410 查看本文章

3.1.3 帧定界、帧同步与透明传输

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定的界限)。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

如果在数据中恰好出现与帧定界符相同的比特组合(误认传输结束而丢弃数据),那么就要采取有效的措施解决这个问题,即透明传输

3.1.4 流量控制

由于收发双方各自的工作效率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及接收的帧将会被后面不断发送来的帧“淹没”,造成帧的丢失而出错。因此,流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。

这个过程需要通过某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要有一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。

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

3.1.5 差错控制

由于信道噪声等各种原因,帧在传输过程中可能会出现错误。用以使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。通常,这些错误可分为位错帧错

位错指帧中的某些位出现了差错,通常采用循环冗余校验(CRC)方式发现位错,通过自动重传请求(Automatic Repeat reQuest,ARQ)方式来重传出错的帧。具体做法是:让发送方将要发送的数据帧附加一定的CRC冗余检错码一并发送,接收方则根据检错码对数据帧进行错误检测若发现错误则丢弃,发送方超时重传该数据帧。这种差错控制方法称为ARQ法。ARQ法只需返回很少的控制信息就可有效地确认所发数据帧是否被正确接收。

帧错指帧的丢失、重复或失序等错误。在数据链路层引入定时器和编号机制,能保证每一帧最终都能有且仅有一次正确地交付给目的结点。

3.2 组帧

数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。为了使接收方能正确地接收并检查所传输地帧,发送方必须依据一定的规则把网络层递交地分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步、透明传输等问题。通常有以下4种方式实现组帧。

3.2.1 字符计数法

字符计数法指在帧头部使用一个计数字段来标明帧内字符数。目的节点地数据链路层收到字节计数值时,就知道后面跟随的字节数,从而可以确定帧结束的位置(如第一帧第一位是5则第一帧有5个字符)。如果计数字段出错,即失去了帧边界划分的依据,则接收方无法判断所传输帧的结束位和下一帧的开始位,收发双方将失去同步,从而造成灾难性后果。

3.2.2 字符填充的首尾定界符法

字符填充法使用特定字符来定界一帧的开始与结束,控制字符SOH(start of header)放在帧的最前面,表示帧的首部开始,控制字符EOT(end of transmission)表示帧的结束。为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可在特殊字符前面填充一个转义字符(ESC)来加以区分,以实现数据的透明传输。接收方收到转义字符后,就知道其后面紧跟的是数据信息,而不是控制信息。

3.2.3 零比特填充的首尾标志法

零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。为了不使信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的“1”时,将自动在其后插入一个“0”;而接收方做该过程的逆操作,即每收到5个连续的“1”时,自动删除后面紧跟的“0”,以恢复原信息。零比特填充法很容易由硬件来实现,性能优于字符填充法。

3.2.4 违规编码法

在物理层进行比特编码时,通常采用违规编码。例如,曼彻斯特编码方法将数据比特“1”和“0”编码成“高—低”和“低—高”电平对,而“高—高”和“低—低”电平对在数据比特中是违规的。可以借助这些违规编码序列来定界帧的起始和终止。(局域网IEEE 802标准)

违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余编码的特殊编码环境。由于字符计数法中计数字段的脆弱性和字符填充法实现上的复杂性与不兼容性,目前较常见的组帧方法是零比特填充法违规编码法

3.3 差错控制

实际通信链路都不是理想的,比特在传输过程中可能会产生差错(1变0,0变1),这就是比特差错。

通常利用编码技术进行差错控制,主要有两类:自动重传请求ARQ和前向纠错FEC。在ARQ方式中,接收端检测到差错,就设法通知发送端重发,直到接收到正确的码字为止。在FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。因此,差错控制又可分为检错编码纠错编码

3.3.1 检错编码

检错编码都采用冗余编码技术,其核心思想是在有效数据(信息位)被发送前,先按某种关系附加一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使得码字遵从不变的规则。接收端根据收到的码字是否仍符合原规则来判断是否出错。常见的检错编码有奇偶校验码循环冗余码

1、奇偶校验码

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

2、循环冗余码

循环冗余码(Cyclic Redundancy Code,CRC)又称多项式码,任何一个由二进制数位串组成的代码都可与一个只含有0和1两个系数的多项式建立一一对应关系。一个k位帧可以视为从Xk-1到X0的k次多项式的系数序列,这个多项式的阶数为k-1,高位是Xk-1项的系数,下一位是Xk-2的系数,以此类推(类似十进制与二进制的转换),最后一位是余数R,作为帧检验序列。

给定一个m bit的帧或报文,发送器生成一个r bit的序列,称为帧检验序列(FCS)。这样所形成的帧将由m+r比特组成。发送方和接收方事先商定一个多项式G(x),使得这个带检验码的帧刚好能被预先确定的多项式G(x)整除。接收方用同样的多项式去除收到的帧,如果无余数,那么认为无差错。

假设一个帧有m位,其对应的多项式为M(x),则计算冗余码的步骤如下:

①加0:假设G(x)的阶为r,在帧的低位端加上r个0;

②模2除:利用模2除法(异或,相同0不同1),用G(x)对应的数据串去除①中计算出的数据串,得到的余数即冗余码。

例:要发送的数据是1101 0110 11,采用CRC校验,生成的多项式是10011,那么最终发送的数据应该是?

10011 X4+X1+1 r=4 (1101 0110 11 0000)/10011=1100 00 1 1110(FCS)

3.3.2 纠错编码

海明距离:两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任何两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。

在数据通信的过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。若海明距离为d,则检错需要d+1位,纠错需要2d+1位。

海明码的编码过程:

(1)确定海明码的位数

设n为有效信息的位数,k为校验位的个数,2k-1n+k(海明不等式),n=4,k=3,设信息为D4D3D2D1(1010),共四位,校验位为P3P2P1,共三位,对应的海明码为H7H6H5H4H3H2H1。

(2)确定校验位的分布

规定校验位Pi在海明位号为2i-1的位置上,其余各位为信息位,因此有:

H7

H6

H5

H4

H3

H2

H1

D4

D3

D2

P3

D1

P2

P1

(3)分组以形成校验关系

每个数据位用多个校验位进行校验,但要满足条件:被校验数据位的海明位号等于校验该数据位的各校验位海明号之和。分组形成的校验关系如下:

P1(H1)

P2(H2)

P3(H4)

D1

3

1

2

D2

5

1

4

D3

6

2

4

D4

7

1

2

4

(4)检验位取值

校验位Pi的值为第i组所有位求异或(偶校验)。

根据(3)的分组有:

      P1=D1D2⊕D4=0⊕1⊕1=0

      P2=D1⊕D3⊕D4=0⊕0⊕1=1

      P3=D2⊕D3⊕D4=1⊕0⊕1=0

所以,1010对应的海明码为1010010

(5)海明码的校验原理

每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成k个校验方程:

S1=P1⊕D1⊕D2⊕D4

S2=P2⊕D1⊕D3⊕D4

S3=P3⊕D2⊕D3⊕D4

若S3S2S1的值为“000”,则说明无错;否则说明出错,且这个数就是错误位的位号,如S3S2S1=001,说明第1位出错,即H1出错,直接将该位取反就达到了纠错的目的。

3.4 流量控制与可靠传输机制

3.4.1 流量控制、可靠传输与滑动窗口机制

流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧。流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:停止—等待协议滑动窗口协议

1、停止—等待流量控制基本原理

发送方每发送一个帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很

2、滑动窗口流量控制基本原理

在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小WT代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。

发送端每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧时,发送方就会停止发送,直到收到接收方发送的确认帧使窗口移动。接收端收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接收窗口之外,则一律丢弃。

特性:

①发送窗口在接收窗口发回确认帧并向前移时才可能向前滑动。

②从滑动窗口的概念看,停止—等待协议、后退N帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:

停止—等待协议:发送窗口大小=1,接收窗口大小=1。

后退N帧协议:发送窗口大小>1,接收窗口大小=1。

选择重传协议:发送窗口大小>1,接收窗口大小>1。

③接收窗口的大小为1时,可保证帧的有序接收。

④数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(与传输层的滑动窗口协议有区别)。

3、可靠传输机制

数据链路层的可靠传输通常使用确认超时重传两种机制来完成。确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。

自动重传请求(Automatic Reqeat reQuest,ARQ)通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种:停止—等待(StopandWaitARQ后退N帧(GoBackNARQ选择性重传(Selective RepeatARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称为连续ARQ协议。注意,在数据链路层中流量控制机制和可靠传输机制是交织在一起的。

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

在停止—等待协议中,源站发送单个帧后必须等待确认,在目的站的回答到达源站之前,源站不能发送其他的数据帧。从滑动窗口机制的角度看,停止—等待协议相当于发送窗口和接收窗口大小均为1的滑动窗口协议。

在停止—等待协议中,除数据帧丢失外,还可能出现以下两种差错:

到达目的站的帧可能已遭破坏,接收站利用差错检测技术检出后,简单地将该帧丢弃。为了对付这种可能发生的情况,源站装备了计时器。在一个帧发送后,源站等待确认,若在计时器计满时仍未收到确认,就再次发送相同的帧。如此重复,知道该数据帧无错误地到达为止。

②数据帧正确而确认帧被破坏,此时接收方已收到正确的数据帧,但发送方收不到确认帧,因此发送方重传已被接收的数据帧,接收方收到同样的数据帧时会丢弃该帧,并重传一个该帧对应的确认帧。发送的帧交替地使用0和1来标识,确认帧分别用ACK 0和ACK 1来表示,收到的确认帧有误时,重传已发送的帧。对于停止—等待协议,由于每发送一个数据帧就停止—等待,因此用1 bit来编号就已足够。在停止—等待协议中,若连续出现相同发送序号的数据帧,表明发送端进行了超时重传。连续出现相同序号的确认帧时,表明接收方收到了重复帧。

此外,为了超时重传和判定重复帧的需要,发送方和接收方都须设置一个帧缓冲区。发送端在发送完数据帧时,必须在其发送缓存中保留此数据帧的副本,这样才能在出差错时进行重传。只有在收到对方发来的确认帧ACK时,方可清楚此副本。停止—等待协议通信信道的利用率很低。为了克服这一缺点,就产生了后退N帧协议选择重传协议

3.4.3 多帧滑动窗口与后退N帧协议(GBN)

在后退N帧协议ARQ中,发送方无须在收到上一个确认帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送N个帧后,若发现该N个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N个帧,即接收方只允许按顺序接收帧。由于连续发送了许多帧,所以确认帧必须指明是对哪一帧进行确认。为了减少开销,GBN协议还规定接收端不一定每收到一个正确的数据帧就必须立即发回一个确认帧,而可以在连续收到好几个正确的数据帧后,才对最后一个数据帧发确认信息,或者可在自己有数据要发送时才将对以前正确收到的帧加以捎带确认。这就是说,对某一数据帧的确认就表明该数据帧和此前所有的数据帧均已正确无误地收到,称为累加确认

GBN协议的接收窗口为1,可以保证按序接收数据帧。若采用n bit对帧编号,则其发送窗口的尺寸WT应满足1WT2n-1。若发送窗口的尺寸大于2n-1,则会造成接收方无法分辨新帧和旧帧。后退N帧协议一方面因连续发送数据帧而提高了信道的利用率,另一方面在重传时又必须把原来已传送正确的数据帧进行重传(一个出错全部重传),这种做法又使得传送效率降低。由此可见,若信道的传输质量很差导致误码率较大时,GBN协议不一定优于停止—等待协议。

3.4.4 多帧滑动窗口与选择重传协议(SR)

为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传ARQ协议。

在SR协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传。另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就会发送一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传。

SR协议的接收窗口尺寸WR和发送窗口尺寸WT都大于1,一次可以发送或接收多个帧。在SR协议中,接收窗口和发送窗口的大小通常是相同的,且最大值都为序号范围的一半,若采用n bit对帧编号,则需要满足WTmax=WRmax=2(n-1)。

SR协议可以避免重传那些本已正确到达接收端的数据帧,但在接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧。接收端不能接收窗口下界以下或者窗口上界以上的序号的帧,因此所需缓冲区的数目等于窗口的大小,而不是序号数目。

*3.4.5 概念补充

信道效率,是指发送方在一个发送周期的时间内,有效地发送数据所需要的时间占整个发送周期的比率。发送方从开始发送数据到收到第一个确认帧为止,称为一个发送周期,设为T,发送方在这个周期内共发送L比特的数据,发送方的数据传输速率为C,则发送方用于有效传输数据的时间为L/C,在这个情况下,信道的利用率为(L/C)/T。

例题:一个信道的数据传输率为4 kb/s,单向传输时延为30 ms,如果使停止—等待协议的信道最大利用率达到80 %,要求数据帧长度至少为多少?

L/C=L/4,T=L/4+30×2,(L/C)/T=80 %

L=960 bit

3.5 介质访问控制

介质访问控制所要完成的主要任务是,为使用介质的每个节点隔离来自同意信道上其他节点所传送的信号,以协调活动节点的传输。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层。介质访问控制的内容是,采取一定的措施,使得两对节点的通信不会发生互相干扰的情况。常见的MAC方法有信道划分划分介质访问控制随机访问介质访问控制轮询访问介质访问控制。其中前者是静态划分信道的方法,而后两者是动态分配信道的方法。

3.5.1 信道划分介质访问控制

信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备。

下面介绍多路复用技术的概念。当传输介质的带宽超过传输单个信号所需的带宽时,人们就通过在一条介质上同时携带多个传输信号的方法来提高传输系统的利用率,这就是所谓的多路复用,也是实现信道划分介质访问控制的途径。多路复用技术把多个信号组合在一条物理信道上进行传输,使多个计算机或终端设备共享信道资源提高了信道的利用率

信道划分的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个节点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。信道划分介质访问控制分为以下四种:

1、频分多路复用(FDM)

频分多路复用是一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。在物理信道的可用带宽超过单个原始信号所需带宽的情况下,可将该物理信道的总带宽分割成若干与传输单个信号带宽相同(或略宽)的子信道,每个子信道传输一种信号,这就是频分多路复用。(类似并行)

每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽。在实际应用中,为了防止子信道之间的干扰,相邻信道之间需要加入“保护频带”。

频分多路复用的优点在于充分利用了传输介质的带宽,系统效率较高;由于技术比较成熟,实现也较容易。

2、时分多路复用(TDM)

时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。每个时间片由复用的一个信号占用,而不像FDM那样,同一时间同时发送多路信号。这样,利用个信号在时间上的交叉,就可以在一条物理信道上传输多个信号。(类似并发)

就某个时刻来看,时分多路复用信道上传送的仅是某一对设备之间的信号;就某段时间而言传送的是按时间分割的多路复用信号。但由于计算机数据的突发性,一个用户对已经分配到的子信道的利用率一般不高。统计时分多路复用 (STDM,又称异步时分多路复用)是TDM的一种改进,它采用STDM帧,STDM帧并不固定分配时隙,而按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片,因此可以提高线路的利用率。

3、波分多路复用(WDM)

波分多路复用即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用。

4、码分多路复用(CDM)

码分多路复用是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它既共享信道的频率,又共享时间。

实际上,更常用的名词是码分多址(Code Division Multiple Access,CDMA),其原理是每个比特时间再划分成m个短的时间槽,称为码片(Chip),通常m的值是64或128,下例中为简单起见,设m为8。每个站点被指派一个唯一的m位码片序列。发送1时站点发送它的码片序列;发送0时,站点发送该码片序列的反码。当两个或多个站点同时发送时,各路数据在信道中线性相加。为从信道中分离出各路信号,要求各个站点的码片序列相互正交。

简单理解就是,A站向C站发出的信号用一个向量来表示,B站向C站发出的信号用另一个向量来表示,两个向量要求相互正交。向量中的分量,就是所谓的码片。

下面举例说明CDMA的原理:

假如站点A的码片序列被指派为00011011,则A站发送00011011就表示发送比特1,发送11100100就表示发送比特0。为了方便,按惯例将码片中的1写为+1,将0写为-1,因此A站的码片序列是-1-1-1+l+1-1+1+1,B站的码片序列是+1+1+1-1-1+1-1-1。令向量 S、T表示A、B站的码片向量。两个不同站的码片序列正交即向量S和T的规格化内积(Inner Product)为0,S·T0,S·S=1。令S=(-1 -1 -1 +l +1 -1 +1 +1),T=(+1 +1 +1 -1 -1 +1 -1 -1),得到S+T=(0 0 -2 -2 0 -2 0 2),到达C站后,进行数据分离,如果要得到来自A站的数据,C站就必须知道A站的码片序列,让S与S+T进行规格化内积。根据叠加原理,其他站点的信号都在内积的结果中被过滤掉了,内积的相关项都是0,而只剩下A站发送的信号。得到S·(S+T)=1所以A站发出的数据是1。同理,如果得到来自B站的数据,那么T·(S+T)=-1,因此从B站发送过来的信号向量是一个反码向量,代表0。

码分多路复用技术具有频谱利用率高、抗干扰能力强、保密性强、语音质量好等优点,还可以减少投资和降低运行成本,主要用于无线通信系统,特别是移动通信系统。

3.5.2 随机访问介质访问控制

在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突,导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA 协议等,它们的核心思想都是:胜利者通过争用获得信道从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议

不难发现,如果介质访问控制采用信道划分机制,那么结点之间的通信要么共享空间,要么共享时间,要么两者都共享;而如果采用随机访问控制机制,那么各结点之间的通信就可既不共享时间,也不共享空间。所以随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为。

1、ALOHA协议

ALOHA,是Additive Link On-line Hawaii system的缩写。ALOHA协议分为ALOHA协议时隙ALOHA协议

① 纯ALOHA协议

纯ALOHA 协议的基本思想是,当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功。纯ALOHA 系统采用的重传策略是让各站等待一段随机的时间,然后再进行重传。若再次发生碰撞,则需要再等待一段随机的时间,直到重传成功为止。假设网络负载为G,则纯ALOHA网络的吞吐量为S=Ge-2G。当G=0.5时,S=0.5e-1≈0.184,这是吞吐量S可能达到的极大值。可见,纯ALOHA网络的吞吐量很低。为了克服这一缺点,人们在原始的纯ALOHA 协议的基础上进行改进,产生了时隙ALOHA协议。

② 时隙ALOHA协议

时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。从而避免了用户发送数据的随意性,减少了数据产生冲突的可能性,提高了信道的利用率。

时隙ALOHA网络的吞吐量S与网络负载G的关系是S=Ge-G。当G=1时,S=e-1≈0.368。这是吞吐量S可能达到的极大值。可见,时隙ALOHA网络比纯ALOHA网络的吞吐量大了1倍。

2、CSMA协议

时隙ALOHA系统的效率虽然是纯ALOHA系统的两倍,但每个站点都是随心所欲地发送数据的,即使其他站点正在发送也照发不误,因此发送碰撞的概率很大。

若每个站点在发送前都先监听一下共用信道,发现信道空闲后再发送,则就会大大降低冲突的可能,从而提高信道的利用率,载波监听多路访问(Carrier Sense Multiple Access,CSMA)协议依据的正是这一思想。CSMA协议是在ALOHA协议基础上提出的一种改进协议,它与ALOHA协议的主要区别是多了一个载波监听装置。

根据监听方式和监听到信道忙后的处理方式不同,CSMA协议分为三种:

① 1—坚持CSMA

1—坚持CSMA(l-persistent CSMA)的基本思想是:一个结点要发送数据时,首先监听信道,如果信道空闲,那么立即发送数据;如果信道忙,那么等待,同时继续监听直至信道空闲;如果发生冲突,那么随机等待一段时间后,再重新开始监听信道。

“1—坚持”的含义是:监听到信道忙后,继续坚持监听信道;监听到信道空闲后,发送帧的为1,即立即发送数据。

传播延迟对1—坚持CSMA协议的性能影响较大。结点A开始发送数据时,结点B也正好有数据要发送,但这时结点A 发出数据的信号还未到达结点 B,结点 B 监听到信道空闲,于是立即发送数据,结果必然导致冲突。即使不考虑延迟,1—坚持CSMA协议也可能产生冲突。例如,结点A正在发送数据时,结点B和C也准备发送数据,监听到信道忙,于是坚持监听,结果当结点A发送完毕,结点B和C就会立即发送数据,同样导致冲突。(一直监听,一空闲后多个站点立即发送,容易造成冲突)

② 非坚持CSMA

非坚持CSMA(Non-persistent CSMA)的基本思想是:一个结点要发送数据时,首先监听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么放弃监听,等待一个随机的时间后重复上述过程。

非坚持CSMA协议在监听到信道忙后就放弃监听,因此降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但也会增加数据在网络中的平均延迟。可见,信道利用率的提高是以增加数据在网络中的延迟时间为代价的。(随即监听,空闲即发)

③ p—坚持CSMA

P—坚持CSMA(p-persistent CSMA)用于时分信道,其基本思想是:一个结点要发送数据时,首先监听信道;如果信道忙,就持续监听,直至信道空闲;如果信道空闲,那么以概率p发送数据,以概率1-p推迟到下一个时隙;如果在下一个时隙信道仍然空闲,那么仍以概率p发送数据,以概率1-p推迟到下一个时隙;这个过程一直持续到数据发送成功或因其他结点发送数据而检测到信道忙为止,若是后者,则等待下一个时隙再重新开始监听。

p-坚持 CSMA 在检测到信道空闲后,以概率p发送数据,以概率1-p推迟到下一个时隙。其目的是降低1—坚持CSMA协议中多个结点检测到信道空闲后同时发送数据的冲突概率;采用坚持“监听”的目的是,试图克服非坚持CSMA 协议中由于随机等待而造成的延迟时间较长的缺点。因此,p—坚持CSMA协议是非坚持CSMA 协议和1—坚持CSMA协议的折中方案。

3、CSMA/CD协议

载波监听多路访问/碰撞检测(CSMA/CD)协议是CSMA协议的改进方案,适用于总线形网络或半双工网络环境。对于全双工的网络,由于全双工采用两条信道,分别用来发送和接收,在任何时候,收发双方都可以发送或接收数据,不可能产生冲突,因此不需要CSMA/CD协议。

载波监听是指每个站点在发送前和发送中都必须不停地检测信道,在发送前检测信道是为了获得发送权,在发送中检测信道是为了及时发现发送的数据是否发生了碰撞。站点要发送数据前先监听信道,只有信道空闲才能发送,碰撞检测(Cllision Detection)就是边发送边监听,如果监听到了碰撞,则立即停止数据发送,等待一段随机时间后,重新开始尝试发送数据。

CSMA/CD的工作流程可简单概括为“先听后发,边听边发,冲突停发,随机重发”。

电磁波在总线上的传播速率总是有限的,因此,当某个时刻发送站检测到信道空闲时,此时信道并不一定是空闲的。设τ为单程传播时延。在t=0时,A发送数据。在t= τ-δ时,A发送的数据还未到达B,由于B检测到信道空闲而发送数据。经过时间δ/2后,即在t= t- δ/2时,A发送的数据和B发送的数据发生碰撞,但这时A和B都不知道。在t=τ时,B检测到碰撞,于是停止发送数据。在t= 2τ-δ时,A检测到碰撞,也停止发送数据。显然,CSMA/CD中的站不可能同时进行发送和接收,因此采用CSMA/CD协议的以太网只能进行半双工通信

站A在发送后至多经过时间2τ就能知道所发送的帧有没有发生碰撞。因此把以太网端到端往返时间2τ称为争用期(又称冲突窗口或碰撞窗口)。每个站在自己发送数据之后的一小段时间内,存在发生碰撞的可能性,只有经过争用期这段时间还未检测到碰撞时,才能确定这次发送不会发生碰撞。

现考虑一种情况,某站点发送一个很短的帧,但在发送完毕之前并没有检测出碰撞。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞,因而目的站将收到有差错的帧并丢弃。可是发送站却不知道发生了碰撞,因而不会重传这个帧。为了避免发生这种情况,以太网规定了一个最短帧长。在争用期内如果检测到碰撞,站点就会停止发送,此时已发送出去的数据一定小于最短帧长,因此凡长度小于这个最短帧长的帧都是由于冲突而异常中止的无效帧。最小帧长的计算公式为:最小帧长=总线传播时延×数据传输速率×2

例如,以太网规定取51.2 μs为争用期的长度。对于10 Mb/s的以太网在争用期内可发送512 bit。即64 B。在以太网发送数据时,如果前64 B未发生冲突,那么后续数据也就不会发生冲突(表示已成功抢占信道)。换句话说,如果发生冲突,那么就一定在前64 B。由于一旦检测到冲突就立即停止发送,因此这时发送出去的数据一定小于64 B。因此,以太网规定最短帧长为64 B,凡长度小于64 B的帧都是由于冲突而异常中止的无效帧,收到这种无效帧时应立即丢弃。如果只发送小于64 B的,那么需要在MAC子层中于数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC的长度不小于64 B。

除检测冲突外,CSMA/CD还能从冲突中恢复。一旦发生了冲突,参与冲突的两个站点紧接着再次发送是没有意义的,如果它们这样做,那么将会导致无休止的冲突。CSMA/CD采用截断二进制指数退避算法来解决碰撞问题。算法精髓如下:

① 确定基本退避时间,一般取两倍的总线端到端传播时延2τ(即争用期)。

② 定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,就不再增大而一直等于10。

③ 从离散的整数集合[0,1,···,2k-1]中随机取出一个数r,重传所需退避的时间就是τ倍的基本退避时间,即2rτ。

④ 当重传达16次仍不能成功时,说明网络太拥挤,认为此永远无法正确发出,抛弃此帧并向高层报告出错。

现在来看一个例子:假设一个适配器首次试图传输一帧,当传输时,它检测到碰撞。第1次重传时,k=1,随机数r从整数{0,1}中选择,因此适配器可选的重传推迟时间是0或2τ。若再次发送碰撞,则在第2次重传时,随机数r从整数{0,1,2,3}中选择,因此重传推迟时间是在0,2τ,4τ,6τ这4个时间中随机地选取一个。以此类推。

使用截断二进制指数退避算法可使重传需要推迟的平均时间随重传次数的增大而增大(这也称动态退避),因而能降低发生碰撞的概率,有利于整个系统的稳定。

CSMA/CD算法的归纳如下:

① 准备发送:适配器从网络层获得一个分组并封装成帧放入适配器的缓存。

② 检测信道:若检测到信道空闲,它就开始发送这个帧。若检测到信道忙,它就持续检测直至信道上没有信号能量,然后开始发送这个帧。

③ 在发送过程中,适配器仍持续检测信道。这里只有两种可能:

·发送成功:在争用期内一直未检测到碰撞,这个帧肯定能发送成功;

·发送失败:在争用期内检测到碰撞,此时立即停止发送,适配器执行指数退避算法,等待一段随机时间后返回到步骤②。若重传16次仍不能成功,则停止重传并向上报错。

4、CSMA/CA协议

CSMA/CD协议已成功应用于使用有线连接的局域网,但在无线局域网环境下,却不能简单地搬用CSMA/CD协议,特别是碰撞检测部分。主要有两个原因:

① 接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现碰撞检测,则硬件上的花费就会过大。

② 在无线通信中,并非所有的站点都能够听见对方,即存在“隐蔽站”问题。

为此,802.11标准定义了广泛应用于无线局域网的CSMA/CA协议,它对CSMA/CD协议进行了修改,把碰撞检测改为碰避避免(Collision Avoidance,CA)。“碰撞避免”并不是指协议可以完全避免碰撞,而是指协议的设计要尽量降低碰撞发生的概率。由于802.11无线局域网不使用碰撞检测,一旦站点开始发送一个帧,就会完全地发送该帧,但碰撞存在时仍然发送整个数据帧(尤其是长数据)会严重降低网络的效率,因此要采用碰撞避免技术降低碰撞的可能性。

由于无线信道的通信质量远不如有线信道,802.11使用链路层确认/重传(ARQ)方案,即站点每通过无线局域网发送完一帧,就要在收到对方的确认帧后才能继续发送下一帧。为了尽量避免碰撞,802.11规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space,IFS)。帧间间隔的长短取决于该站要发送的帧的类型。802.11使用了下列三种IFS:

① SIFS(短IFS):最短的FIS,用来分隔属于一次对话的各帧,使用SIFS的类型有ACK帧、CTS帧、分片后的数据帧,以及所有回答AP探询的帧等。

② PIFS(点协调IFS):中等长度的IFS,在PCF操作中使用。

③ DIFS(分布式协调S):最长的IFS,用于异步竞争访问的时延。

CSMA/CA的退避算法和CSMA/CD的稍有不同。信道从忙态变为空闲态时,任何一个站要发送数据帧,不仅都要等待一个时间间隔,而且要进入争用窗口,计算随机退避时间以便再次试图接入信道,因此降低了碰撞发生的概率。当且仅当检测到信道空闲且这个数据帧是要发送的第一个数据帧时,才不使用退避算法。其他所有情况都必须使用退避算法,具体为:①在发送第一个帧前检测到信道忙;②每次重传;③每次成功发送后要发送下一帧。

CSMA/CA算法的归纳如下:

① 若站点最初有数据要发送,且检测到信道空闲,在等待时间DIFS后,就发送整个数据帧。

② 否则,站点执行CSMA/CA退避算法,选取一个随机回退值。一旦检测到信道忙,退避计时器就保持不变。只要信道空闲,退避计时器就进行倒计时。

③ 当退避计时器减到0时(这时信道只可能是空闲的),站点就发送整个并等待确认。

④ 发送站若收到确认,就知道已发送的帧被目的站正确接收。这时如果要发送第二帧,就要从步骤②开始,执行CSMA/CA退避算法,随机选定一段退避时间。

若发送站在规定时间(由重传计时器控制0内没有收到确认ACK,就必须重传该帧,再次使用CSMA/CA协议争用该信道,直到收到确认,或经过若干次重传失败后放弃发送。

*5处理隐蔽站问题:RTS和CTS

站A和B都在AP的覆盖范围内,但A和B相距较远,彼此都听不见对方。当A和B检测到信道空闲时,都会向AP发送数据,或经过若干次重传失败后放弃发送。这就是隐蔽站问题。

为了避免该问题,802.11允许发送站对信道进行预约。源站要发送数据帧之前先广播一个很短的请求发送RTS(Request To Send)控制,它包括源地址、目的地址和这次通信(含相应的确认帧)所持续的时间,该能被其范围内包括AP在内的所有站点听到。若信道空闲,则AP广播一个允许发送CTS(Clear To Send)控制,它包括这次通信所需的持续时间(从RTS帧复制),该帧也能被其范围内包括A和B在内的所有站点听到。B和其他站听到CTS后在CTS中指明的时间内将抑制发送。CTS有两个目的:① 给源站明确的发送许可;② 指示其他站点在预约期内不要发送。

使用RTS和CTS帧会使网络的通信效率有所下降,但这两种帧都很短,与数据帧相比开销不算大。相反,若不使用这种控制帧,一旦发生碰撞而导致数据帧重发,则浪费的时间更多。信道预约不是强制性规定,各站可以自己决定使用或不使用信道预约。只有当数据帧长度超过某一数值时,使用RTS和CTS才比较有利。

CSMA/CD与CSMA/CA主要有如下区别:

① CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。

② 传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.1 a/b/g/n等。

③ 检测方式不同。CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA采用能量检测载波检测和能量载波混合检测三种检测信道空闲的方式。

总结:CSMA/CA协议的基本思想是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD协议的基本思想是发送前监听,边发送边监听一旦出现碰撞马上停止发送

3.5.3 轮询访问:令牌传递协议

在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。典型的轮询访问介质访问控制协议是令牌传递协议,它主要用在令牌环局域网中。

在令牌传递协议中,一个令牌(Token)沿着环形总线在各结点计算机间依次传递。令牌是一个特殊的MAC控制,它本身并不包含信息,仅控制信道的使用,确保同一时刻只有一个站点独占信道。当环上的一个站点希望传送帧时,必须等待令牌。一旦收到令牌,站点便可启动发送帧。帧中包括目的站点地址,以标识哪个站点应接收此帧。站点只有取得令牌后才能发送数据帧,因此令牌环网不会发生碰撞。站点在发送完一帧后,应释放令牌,以便让其他站使用。由于令牌在网环上是按顺序依次传递的,因此对所有入网计算机而言,访问权是公平的。

当计算机都不需要发送数据时,令牌就在环形网上游荡,而需要发送数据的计算机只有在拿到该令牌后才能发送数据帧,因此不会发送冲突(因为令牌只有一个)。令牌环网中令牌和数据的传递过程如下:

① 网络空闲时,环路中只有令牌帧在循环传递。

② 令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。

③ 数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。如果目的地址和自己的地址相同,那么接收站就复制该数据帧以便进一步处理。

④ 数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若有错则重传。

⑤ 源站点传送完数据后,重新产生一个令牌,并传递给下一站点,以交出信道控制权。

在令牌传递网络中,传输介质的物理拓扑不必是一个环,但是为了把对介质访问的许可从一个设备传递到另一个设备,令牌在设备间的传递通路逻辑上必须是一个环。

轮询介质访问控制非常适合负载很高的广播信道。所谓负载很高的信道,是指多个结点在同一时刻发送数据概率很大的信道。可以想象,如果这样的广播信道采用随机介质访问控制,那么发生冲突的概率将会很大,而采用轮询介质访问控制则可以很好地满足各结点间的通信需求。

轮询介质访问控制既不共享时间,也不共享空间,它实际上是在随机介质访问控制的基础上,限定了有权力发送数据的结点只能有一个。

3.6 局域网

3.6.1 局域网基本概念和体系结构

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

① 为一个单位所拥有,且地理范围和站点数目均有限。

② 所有站点共享较高的总带宽(即较高的数据传输速率)。

③ 较低的时延和较低的误码率。

④ 各站为平等关系而非主从关系。

⑤ 能进行广播和组播。

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

三种特殊的局域网拓扑实现如下:

① 以太网(目前使用范围最广的局域网)。逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构。

② 令牌环(Token Ring,IEEE 802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。

③ FDDI(光纤分布数字接口,IEEE 802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。

IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层物理层,并将数据连路层拆分为两个子层:逻辑链路控制(LLC)子层媒体接入控制(MAC)子层。与接入传输媒体有关的内容都放在MAC子层,它向上层屏蔽对物理层访问的各种差异,提供对物理层的统一访问接口,主要功能包括:组帧和拆卸帧、比特传输差错检测、透明传输。LLC子层与传输媒体无关,它向网络层提供无确认无连接、面向连接、带确认无连接、高速传送4种不同的连接服务类型。

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

3.6.2 以太网与IEEE 802.3

IEEE 802.3标准是一种基带总线形的局域网标准,它描述物理层和数据链路层的MAC子层的实现方法。随着技术的发展,该标准又有了大量的补充与更新,以支持更多的传输介质和更高的传输速率。

以太网逻辑上采用总线形拓扑结构,以太网中的所有计算机共享同一条总线,信息以广播方式发送。为了保证数据通信的方便性和可靠性,以太网简化了通信流程并使用了CSMA/CD方式对总线进行访问控制。

严格来说,以太网应当是指符合DIX Ethernet V2标准的局域网,但DIX Ethernet V2标准与IEEE 802.3标准只有很小的差别,因此通常将802.3局域网简称为以太网

以太网采用两项措施以简化通信:

①采用无连接的工作方式,不对发送的数据帧编号,也不要求接收方发送确认,即以太网尽最大努力交付数据,提供的是不可靠服务,对于差错的纠正则由高层完成;

②发送的数据都使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接收端利用这种电压转换方便地把位同步信号提取出来。

1、以太网的传输介质与网卡

以太网常用的传输介质有4种:粗缆、细缆、双绞线和光纤。各种传输介质的使用情况。

各种传输介质的适用情况

参数

10BASE5

10BASE2

10BASE—T

10BASE—FL

传输媒体

基带同轴电缆(粗缆)

基带同轴电缆(细缆)

非屏蔽双绞线

光纤对(850nm)

编码

曼彻斯特编码

曼彻斯特编码

曼彻斯特编码

曼彻斯特编码

拓扑结构

总线形

总线形

星形

点对点

最大段长

500 m

185 m

100 m

2000 m

最多节点数目

100

30

2

2

计算机与外界局域网的连接是通过主机箱内插入的一块网络接口板[又称网络适配器(Adapter)或网络接口卡(Network Interface Card,NIC)]实现的。网卡上装有处理器和存储器,是工作在数链路层的网络组件。网卡和局域网的通信是通过电缆或双绞线以串行方式进行的,而网卡和计算机的通信则是通过计算机主板上的IO总线以并行方式进行的。因此,网卡的重要功能就是进行数据的串并转换。网卡不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存功能等。

全世界的每块网卡在出厂时都有一个唯一的代码,称为介质访问控制(MAC)地址,这个地址用于控制主机在网络上的数据通信。数据链路层设备(网桥、交换机等)都使用各个网卡的MAC地址。另外,网卡控制着主机对介质的访问,因此网卡也工作在物理层,因为它只关注比特,而不关注任何地址信息和高层协议信息。

2、以太网的MAC帧

每块网卡中的MAC地址也称物理地址:MAC地址长6字节,一般用由连字符(或冒号)分隔的12个十六进制数表示,如02-60-8c-e4-b1-21。高24位为厂商代码,低24位为厂商自行分配的网卡序列号。严格来讲,局域网的“地址”应是每个站的“名字”或标识符。

由于总线上使用的是广播通信,因此网卡从网络上每收到一个MAC帧,首先要用硬件检查MAC帧中的MAC地址。如果是发往本站的帧,那么就收下,否则丢弃。

以太网MAC帧格式有两种标准:DIX Ethernet V2标准(即以太网V2标准)和IEEE 802.3标准。这里先介绍最常用的以太网V2的MAC帧格式。

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

② 地址:通常使用6字节(48 bit)地址(MAC地址)。

③ 类型:2字节,指出数据域中携带的数据应交给哪个协议实体处理。

④ 数据:46~1500字节,包含高层的协议消息。由于CSMA/CD算法的限制,以太网帧必须满足最小长度要求64字节,数据较少时必须加以填充(0~46字节)。

⑤ 填充:0~46字节,当帧长太短时填充帧,使之达到64字节的最小长度。

⑥ 校验码(FCS):4字节,校验范围从目的地址段到数据段的末尾,算法采用32位循环余码(CRC),不但需要检验MAC的数据部分,还要检验目的地址、源地址和类型字段,但不校验前导码。

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

3、高速以太网

速率达到100 Mb/s的以太网称为高速以太网

① 100BASE—T以太网

100BASE—T以太网是在双绞线上传送100 Mb/s基带信号的星形拓扑结构以太网,它使用CSMA/CD协议。这种以太网既支持全双工方式,又支持半双工方式,可在全双工方式下工作而无冲突发生,因此在全双工方式下不使用CSMA/CD协议。

MAC帧格式仍然是802.3标准规定的。保持最短帧长不变,但将一个网段的最大电缆长度减小到100 m。帧间时间间隔从原来的9.6 μs改为现在的0.96 μs。

② 吉比特以太网

吉比特以太网又称千兆以太网,允许在1 Gb/s速率下用全双工和半双工两种方式工作。使用802.3协议规定的帧格式。在半双工方式下使用CSMA/CD协议。与10BASE—T和100BASE—T技术向后兼容。

③ 10吉比特以太网

10吉比特以太网与10 Mb/s、100 Mb/s和1 Gb/s以太网的格式完全相同。10吉比特以太网还保留了 802.3 标准规定的以太网最小和最大长,便于升级。这种以太网不再使用铜线而只使用光纤作为传输媒体。只工作在全双工方式,因此没有争用问题,也不使用CSMA/CD协议。

以太网从10 Mb/s到10 Gb/s的演进证明了以太网是可扩展的(从10 Mb/s到10 Gb/s)、灵活的(多种传输媒体、全/半双工、共享/交换),易于安装,稳健性好。

3.6.3 IEEE 802.3无线局域网

1、无线局域网的组成

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

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

对于有固定基础设施的无线局域网,IEEE制定了无线局域网的802.11系列协议标准,包括802.11 a/b/g/n等。802.11使用星形拓扑,其中心称为接入点AP(Access Point,AP),在MAC层使用CSMA/CA协议。使用802.11系列协议的局域网又称WiFi

802.11标准规定无线局域网的最小构件是基本服务集BSS(Basic Service Set,BSS)。一个基本服务集包括一个接入点和若干移动站。各站在本BSS内之间的通信,或与本BSS外部站的通信,都必须通过本BSS的AP。上面提到的AP就是基本服务集中的基站(base station)。安装AP时,必须为该AP分配一个不超过32字节的服务集标识符(Service Set IDentifier,SSID)和一个信道。SSID是指使用该AP的无线局域网的名字。一个基本服务集覆盖的地理范围称为一个基本服务区BSA(Basic ServiceArea,BSA),无线局域网的基本服务区的范围直径一般不超过100 m。

一个基本服务集可以是孤立的,也可通过AP连接到一个分配系统DS(Distribution System,DS),然后再连接到另一个基本服务集,就构成了一个扩展的服务集ESS(Extended Service Set,ESS)。分配系统的作用就是使扩展的服务集对上层的表现就像一个基本服务集一样。ESS还可以通过一种称为Portal(门户)的设备为无线用户提供到有线连接的以太网的接入。门户的作用相当于一个网桥。移动站A如果要和另一个基本服务集中的移动站B通信,就必须经过两个接入点AP1和AP2,即A—AP1—AP2—B,注意AP1到AP2的通信是使用有线传输的。移动站A从某个基本服务集漫游到另一个基本服务集时仍然可保持与另一个移动站B的通信。但A在不同的基本服务集使用的AP改变了。

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

另一种无线局域网是无固定基础设施的无线局域网,又称自组网络(ad hoc network)。自组网络没有上述基本服务集中的AP,而是由一些平等状态的移动站相互通信组成的临时网络。各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。

自组网络通常是这样构成的:一些可移动设备发现在它们附近还有其他的可移动设备,并且要求和其他移动设备进行通信。自组网络中的每个移动站都要参与网络中其他移动站的路由的发现和维护,同时由移动站构成的网络拓扑可能随时间变化得很快,因此在固定网络中行之有效的一些路由选择协议对移动自组网络已不适用,需引起特别的关注。

自组网络和移动IP并不相同。移动IP技术使漫游的主机可以用多种方法连接到因特网,其核心网络功能仍然是基于固定网络中一直使用的各种路由选择协议。而自组网络是把移动性扩展到无线领域中的自治系统,具有自己特定的路由选择协议,并且可以不和因特网相连。

2、802.11局域网的MAC帧

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

① MAC首部,共30字节。帧的复杂性都在MAC首部。

② 帧主体,即帧的数据部分,不超过2312字节。它比以太网的最大长度长很多。

③ 帧检验序列FCS是尾部,共4字节。

802.11帧的MAC首部中最重要的是4个地址字段(都是MAC地址)。这里仅讨论前三种地址(地址4用于自组网络)。这三个地址的内容取决于控制字段中的“去往AP”和“来自AP”这两个字段的数值。

802.11局域网的数据帧

去往AP

来自AP

地址1

地址2

地址3

地址4

1

0

接收地址=

AP地址

发送地址=

源地址

目的地址

——

0

1

接收地址=

目的地址

发送地址=

AP地址

源地址

——

地址1是直接接收数据帧的结点地址,地址2是实际发送数据的结点地址。

① 现假定在一个BSS中的站A向站B发送数据。在站A发往接入点AP的数据的控制字段中“去往AP=1”而“来自AP=0”;地址1是AP的MAC地址,地址2是A的MAC地址,地址3是B的MAC地址。注意,“接收地址”与“目的地址”并不等同。

② AP接收到数据帧后,转发给站B,此时在数据的帧控制字段中,“去往AP=0”而“来自AP=1”;地址1是B的MAC地址,地址2是AP的MAC地址,地址3是A的MAC地址。请注意,“发送地址”与“源地址”也不等同。

下面讨论一种更复杂的情况。两个AP通过有线连接到路由器,现在路由器要站A发送数据。路由器是网络层设备,它看不见链路层的接入点AP,只认识站A的IP地址,而AP是链路层设备,它只认识MAC地址,并不认识IP地址。

① 路由器从IP数据报获知A的IP地址,并使用ARP获取站A的MAC地址。获取站A的MAC地址后,路由器接口R1将该IP数据报封装成802.3(802.3只有两个地址),该帧的源地址字段是R1的MAC地址,目的地址字段是A的MAC地址。

② AP收到该802.3帧后,将该802.3帧转换为802.11帧,在帧控制字段中,“去往AP=0”而“来自AP=1”;地址1是A的MAC地址,地址2是AP的MAC地址,地址3是R1的MAC地址。这样,A可以确定(从地址3)将数据报发送到子网中的路由器接口的MAC地址。

现在考虑从站A向路由器接口R1发送数据的情况。

① A生成一个802.11帧,在控制字段中,“去往AP=1”而“来自AP=0”;地址1是AP的MAC地址,地址2是A的MAC地址,地址3是R1的MAC地址。

② AP收到该802.11帧后,将其转换为802.3帧。该帧的源地址字段是A的MAC地址,目的地址字段是R1的MAC地址。

由此可见,地址3在BSS和有线局域网互连中起着关键作用,它允许AP在构建以太网时能够确定目的MAC地址。

3.6.4 VLAN基本概念与基本原理

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

·以太网中出现大量的广播帧,特别是经常使用的ARP和DHCP协议。

·一个单位的不同部门共享一个局域网,对信息保密和安全不利。

通过虚拟局域网(Virtual LAN),可以把一个较大的局域网分割成一些较小的与地理位置无关的逻辑上的VLAN,而每个VLAN是一个较小的广播域。

802.3 ac标准定义了支持VLAN的以太网格式的扩展。它在以太网帧中插入一个4字节的标识符(插入在源地址字段和类型字段之间),称为VLAN标签,用来指明发送该的计算机属于哪个虚拟局域网。插入VLAN标签的称为802.1 Q。由于VLAN的首部增加了4字节,因此以太网的最大长从原来的1518字节变为1522字节。

VLAN标签的前两个字节置为0x8100,表示这是一个802.1 Q。在VLAN标签的后两个字节中,前4位没有用,后12位是该VLAN的标识符VID,它唯一标识了该802.1 Q属于哪个VLAN。12位的VID可识别4096个不同的VLAN。插入VID后,802.1 Q的FCS必须重新计算。

3.7 广域网

3.7.1 广域网的基本概念

广域网通常是指覆盖范围很广(远超一个城市的范围)的长距离网络。广域网是因特网的核心部分,其任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,它可以是长达几千千米的光缆线路,也可以是长达几万千米的点对点卫星链路。因此广域网首要考虑的问题是通信容量必须足够大,以便支持日益增长的通信量。

广域网不等于互联网。互联网可以连接不同类型的网络(既可以连接局域网,又可以连接广域网),通常使用路由器来连接。局域网可以通过广域网与另一个相隔很远的局域网通信。

广域网由一些结点交换机(注意不是路由器,结点交换机和路由器都用来转发分组,它们的工作原理也类似。结点交换机在单个网络中转发分组,而路由器在多个网络构成的互联网中转发分组)及连接这些交换机的链路组成。结点交换机的功能是将分组存储并转发。结点之间都是点到点连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个结点交换机相连。

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

广域网和局域网的区别与联系

广域网

局域网

覆盖范围

很广,通常跨区域

较小,通常在一个区域内

连接方式

结点之间都是点到点连接,但为了提高网络的可靠性,一个结点交换机往往与多个结点交换机相连

普遍采用多点接入技术

OSI参考模型层次

三层:物理层,数据链路层,网络层

两层:物理层,数据链路层

联系与相似点

1、广域网和局域网都是互联网的重要组成构件,从互联网的角度上看,二者平等(不是包含关系)

2、连接到一个广域网或一个局域网上的主机在该网内进行通信时,只需要使用其网络的物理地址

着重点

资源共享

数据传输

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

常见的两种广域网数据链路层协议是PPP协议HDLC协议。PPP目前使用得最广泛,而HDLC已很少使用。

3.7.2 PPP协议

点对点协议(Point-to-Point Protocol,PPP)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。设计的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。

PPP协议有三个组成部分:

链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。

网络控制协议(NCP)。PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

③ 一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。

PPP帧的前3个字段和最后2个字段与HDLC帧是一样的,标志字段(F)仍为7E(01111110),前后各占1字节,若它出现在信息字段中,就必须做字节填充,使用的控制转义字节是7D(01111101)。但在PPP中,地址字段(A)占1字节,规定为0xFF,控制字段(C)占1字节,规定为0x03,两者的内容始终是固定不变的。PPP是面向字节的,因而所有PPP帧的长度都是整数个字节。

第4个字段是协议段,占2字节,在HDLC中没有该字段,它是说明信息段中运载的是什么种类的分组。以比特0开始的是诸如IP、IPX和AppleTak这样的网络层协议;以比特1开始的被用来协商其他协议,包括LCP及每个支持的网络层协议的一个不同的NCP。

第5段信息段的长度是可变的,大于或等于0且小于或等于1500 B。为了实现透明传输,当信息段中出现和标志字段一样的比特组合时,必须采用一些措施来改进。

第6个字段是帧检验序列(FCS),占2字节,即循环余码检验中的余码。检验区包括地址字段、控制字段、协议字段和信息字段。

PPP协议的特点:

① PPP提供差错检测但不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验)。它是不可靠的传输协议,因此也不使用序号和确认机制。

② 它仅支持点对点的链路通信,不支持多点线路。

③ PPP只支持全双工链路。

④ PPP的两端可以运行不同的网络层协议,但仍然可使用同一个PPP进行通信。

⑤ PPP是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法:若PPP用在异步线路(默认),则采用字符填充法;若PPP用在SONET/SDH等同步线路,则协议规定采用硬件来完成比特填充(和HDLC的做法一样)。

*3.7.3 HDLC协议

高级数据链路控制(HDLC)协议是面向比特的数据链路层协议。该协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,有较高的数据链路传输效率;所有帧采用CRC检验,对信息进行顺序编号,可防止漏收或重发,传输可靠性高;传输控制功能与处理功能分离,具有较大的灵活性。

HDLC的帧由标志、地址、控制、信息和FCS等字段构成。

标志字段F,为01111110。在接收端只要找到标志字段就可确定一个帧的位置。HDLC协议采用0比特填充的首尾标志法实现透明传输。在发送端,当一串比特流数据中有5个连续的1时就立即在其后填入一个0。接收帧时,先找到F字段以确定的边界,接着对比特流进行扫描。每当发现5个连续的1时,就将其后的一个0删除,以还原成原来的比特流。

地址字段A,共8位,根据不同的传送方式,表示从站或应答站的地址。

控制字段C,共8位,HDLC的许多重要功能都靠控制字段来实现。

PPP和HDLC的格式很相似。但两者有以下几点不同:

① PPP协议是面向字节的,HDLC协议是面向比特的。

② PPP帧比HDLC多一个2字节的协议字段。当协议字段值为0x0021时,表示信息字段是IP数据报。

③ PPP协议不使用序号和确认机制,只保证无差错接收(CRC检验),而端到端差错检测由高层协议负责。HDLC协议的信息使用了编号和确认机制,能够提供可靠传输

3.8 数据链路层设备

*3.8.1 网桥的基本概念

两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就称为一个网段。网桥工作在链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域(又称冲突域)。如果把网桥换成工作在物理层的转发器,那么就没有这种过滤通信量的功能。由于各网段相对独立,因此一个网段的故障不会影响到另一个网段的运行。网桥必须具有路径选择的功能,接收到帧后,要决定正确的路径,将该帧转送到相应的目的局域网站点。

网络1和网络2通过网桥连接后,网桥接收网络1发送的数据,检查数据中的地址,如果是网络2的地址,那么就转发给网络2;如果是网络1的地址,那么就将其丢弃,因为源站和目的站处在同一个网段,目的站能够直接收到这个帧而不需要借助网桥转发。

3.8.2 局域网交换机

1、交换机的原理和特点

局域网交换机,又称以太网交换机,以太网交换机实质上就是一个多端口的网桥,它工作在数据链路层。以太网交换机的每个端口都直接与单台主机或另一个交换机相连,通常都工作在全双工方式。交换机能经济地将网络分成小的冲突域,为每个工作站提供更高的带宽。以太网交换机的原理是,它检测从以太端口来的数据帧的源和目的地的MAC(介质访问层)地址,然后与系统内部的动态查找表进行比较,若数据帧的源MAC地址不在查找表中,则将该地址加入查找表,并将数据帧发送给相应的目的端口。以太网交换机对工作站是透明的,因此管理开销低廉,简化了网络结点的增加、移动和网络变化的操作。利用以太网交换机还可以方便地实现虚拟局域网VLAN,VLAN不仅可以隔离冲突域,而且可以隔离广播域。

对于传统10 Mb/s的共享式以太网,若共有N个用户,则每个用户占有的平均带宽只有总带宽(10Mb/s)的1/N。在使用以太网交换机来连接这些主机,虽然在每个端口到主机的带宽还是10 Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此拥有个端口的交换机的总容量为N×10 Mb/s。这正是交换机的最大优点。

以太网交换机的特点:

① 以太网交换机的每个端口都直接与单台主机相连(网桥的端口往往连接到一个网段),并且一般都工作在全双工方式。

② 以太网交换机能同时连通多对端口,使每对相互通信的主机都能像独占通信媒体那样,无碰撞地传输数据。

③ 以太网交换机是一种即插即用设备,其内部的帧的转发表是通过自学习算法自动地逐渐建立起来的。

④ 以太网交换机由于使用专用的交换结构芯片,交换速率较高。

⑤ 以太网交换机独占传输媒体的带宽。

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

① 直通式交换机,只检查的目的地址,这使得帧在接收后几乎能马上被传出去。这种方式速度快,但缺乏智能性和安全性,也无法支持具有不同速率的端口的交换。

② 存储转发式交换机,先将接收到的帧缓存到高速缓存器中,并检查数据是否正确,确认无误后通过查找表转换成输出端口将该帧发送出去。如果发现帧有错,那么就将其丢弃。优点是可靠性高,并能支持不同速率端口间的转换,缺点是延迟较大。

以太网交换机一般都具有多种速率的端口,例如可以具有10 Mb/s、100 Mb/s和1 Gb/s的端口的各种组合,因此大大方便了各种不同情况的用户。

2、交换机的自学习功能

决定一个帧是应该转发到某个端口还是应该将其丢弃称为过滤。决定一个帧应该被移动到哪个接口称为转发。交换机的过滤和转发借助于交换表(switch table)完成。交换表中的一个表项至少包含:① 一个MAC地址;② 连通该MAC地址的交换机端口。

例如,以太网交换机有4个端口,各连接一台计算机,MAC地址分别为A、B、C和D,交换机的交换表初始是空的。A先向B发送一帧,从端口1进入交换机。交换机收到后,查找交换表,找不到MAC地址为B的表项。然后,交换机将该的源地址A和端口1写入交换表,并向除端口1外的所有端口广播这个帧。C和D丢弃该帧,因为目的地址不对。只有B才收下这个目的地址正确的。交换表中写入(A,1)后,以后从任何端口收到目的地址为A的帧,都应该从端口1转发出去。这是因为,既然A发出的从端口1进入交换机,那么从端口1转发出去的帧也应能到达A。

接下来,假定B通过端口3向A发送一帧,交换机查找交换表后,发现有表项(A,1),将该帧从端口1转发给A。显然,此时已经没有必要再广播收到的帧。将该帧的源地址B和端口3写入交换表,表明以后如有发送给B的帧,应该从端口3转发出去。

经过一段时间,只要主机C和D也向其他主机发送,交换机就会把C和D及对应的端口号写入交换表。这样,转发给任何主机的帧,都能很快地在交换表中找到相应的转发端口。考虑到交换机所连的主机会随时变化,这就需要更新交换表中的表项。为此,交换表中的每表项都设有一定的有效时间,过期的表项会自动删除。这就保证了交换表中的数据符合当前网络的实际状况。这种自学习方法使得交换机能够即插即用,而不必人工进行配置,因此非常方便。

猜你喜欢

转载自blog.csdn.net/Mengxizhouu/article/details/131386214