本文章为计算机网络第三章:数据链路层复习总结。
教材为《计算机网络(第七版)》 — 谢希仁。
部分图片来自课堂PPT;部分图片截取自网络。
如有错误,请指出,谢谢。
第二章:物理层
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要任务是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
对于网络层而言,数据链路层的基本任务是将原机器中来自网络层的数据传输到目标机器的网络层。
**注意:**有链接一定要有确认,因此不存在无确认的面向连接的服务。
数据链路层连接的建立、维持和释放过程称为链路管理。主要用于面向连接的服务。在多个站点共享同一物理信道的情况下如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。
在两个站点之间的传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传输。
封装成帧就是在一段数据的前后分别添加首部和尾部,然后构成了一个帧。首部和尾部的一个重要作用就是进行帧定界。
控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(End Of Transmmission)表示帧的结束。
帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始和终止。
如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地“找到帧的边界”,那么就要采取有效的措施解决这个问题,即透明传输。“在数据链路层透明传送数据”表示无论发送什么样的 比特组合的数据,这些数据都能够按照原样没有差错地 通过这个数据链路层。
流量控制即限制发送方的数据流量,使其发送速率不超过接收方的接受能力。这个过程需要通过某种反馈机制使得发送方能够知道接受方能否跟上自己。对数据链路层而言,流量控制控制的是相邻两节点之间数据链路上的流量。
帧在传输过程中可能出现错误:1变成0,0变成1。
用于使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。
在一段时间内,传输错误的比特占所传输比特总数的比率称为**误码率BER **(Bit Error Rate)。误码率与信噪比有很大的关系。
在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。
数据链路层之所以要把比特组合成帧为单位进行传输,是为了在出错时只重发出错的帧,而不必重发全部数据。为了使接收方能够正确的接收并检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步和透明传输等问题。通常有4种方法实现组帧:
在帧头部使用一个计数字段来标明帧内字符数。目的结点的数据链路层收到字节计数值时,就知道后面跟随的字节数,从而确定帧的结束。但是一旦计数字段出错,接收方就无法判断所传输帧的结束位和下一帧的开始,发生灾难性后果。
字符填充法使用一些特定的字符来定界一帧的开始和结束。如果数据段出现填充字符,则在填充字符前加上转义字符来加以区分。
零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含人一个数的比特,它使用一个特定的比特模式,即01111110来标示一个帧的开始和结束。为了避免数据段中也出现01111110导致误判,发送方的数据链路层在数据段中一旦遇到了连续的5个1时,就立马在之后插入一个0;接收方进行逆操作来还原数据。
零比特填充法很容易由硬件实现,性能优于字符填充法。
在物理层进行比特编码时,通常采用违规编码法。即借用编码方法中的违规编码序列来定界帧的开始和结束。
目前较常用的组帧方法时比特填充法和违规编码法。
比特在传输的过程中,优于噪声的缘故,可能产生差错。
差错主要分为两种:
通常使用编码技术进行差错控制。差错控制可分为以下两种:
数据链路层的编码和物理层的数据编码不同。物理层的编码针对的是单个比特,解决传输过程中比特的同步等问题。数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错。
检错编码都采用冗余编码技术。常见的检错编码有奇偶校验码和循环冗余码。
奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它由n-1位信息元和n位校验元组成。
又分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。
在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。
循环冗余码(CRC)又称为多项式码,任何一个由二进制数位串组成的代码都可以与一个只含有0和1两个系数的多项式建立一一对应关系。
得定一个 m bit的帧或报文,发送器生成一个 r bit的序列,称为帧校验序列(FCS)。
循环冗余校验CRC和帧校验序列FCS并不等同:
循环冗余校验的原理:
冗余码的计算:
接收端检验:
但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
只要经过严格的挑选,并使用位数足够多的除数P,那么出现检测不到的差错的概率就很小很小。
计算示例:
注意事项:
在数据通信过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。
最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。
海明码的编码原理和过程:
以数据码1010为例。
确定海明码的位数
设n为有效信息的位数,k为校验码的位数,则信息位n和校验码k应满足
n + k < = 2 k − 1 ( 若 要 检 测 两 位 错 , 则 需 要 再 加 一 位 校 验 码 , 即 k + 1 位 ) n + k <= 2^k - 1(若要检测两位错,则需要再加一位校验码,即k + 1位) n+k<=2k−1(若要检测两位错,则需要再加一位校验码,即k+1位)
例:
海明码位数为 n + k = 7 < = 2 3 − 1 n + k = 7 <= 2^3 - 1 n+k=7<=23−1 成立,则设信息位为 D 4 D 3 D 2 D 1 ( 1010 ) D_4D_3D_2D_1(1010) D4D3D2D1(1010) ,共四位,校验位为 P 3 P 2 P 1 P_3P_2P_1 P3P2P1 ,共三位,对应的海明码为 H 7 H 6 H 5 H 4 H 3 H 2 H 1 H_7H_6H_5H_4H_3H_2H_1 H7H6H5H4H3H2H1 。
确定校验位的分布
规定校验位 P i P_i Pi在海明位号为 2 i − 1 2^{i-1} 2i−1的位置上,其余各位为信息位。
因此,本例中:
P 1 P_1 P1的海明位号为 2 i − 1 = 2 1 − 1 = 1 2^{i-1} = 2^{1-1} = 1 2i−1=21−1=1,即 H 1 H_1 H1为 P 1 P_1 P1;
P 2 P_2 P2的海明位号为 2 i − 1 = 2 2 − 1 = 2 2^{i-1} = 2^{2-1} = 2 2i−1=22−1=2,即 H 2 H_2 H2为 P 2 P_2 P2;
P 3 P_3 P3的海明位号为 2 i − 1 = 2 3 − 1 = 4 2^{i-1} = 2^{3-1} = 4 2i−1=23−1=4,即 H 4 H_4 H4为 P 3 P_3 P3;
所以海明码各位的分布如下:
H 7 H_7 H7 H 6 H_6 H6 H 5 H_5 H5 H 4 H_4 H4 H 3 H_3 H3 H 2 H_2 H2 H 1 H_1 H1 D 4 D_4 D4 D 3 D_3 D3 D 2 D_2 D2 P 3 P_3 P3 D 1 D_1 D1 P 2 P_2 P2 P 1 P_1 P1
分组以形成校验关系
每个数据位用多个校验位进行校验,但要满足被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。另外校验位不需要再被校验。
D 1 D_1 D1放在 H 3 H_3 H3上,由 P 2 P_2 P2 P 1 P_1 P1校验。3 = 2 + 1;
D 2 D_2 D2放在 H 5 H_5 H5上,由 P 3 P_3 P3 P 1 P_1 P1校验。5 = 4 + 1;
D 3 D_3 D3放在 H 6 H_6 H6上,由 P 3 P_3 P3 P 2 P_2 P2校验。6 = 4 + 2;
D 4 D_4 D4放在 H 7 H_7 H7上,由 P 3 P_3 P3 P 2 P_2 P2 P 1 P_1 P1校验。7 = 4 + 2 + 1;
校验位取值
校验位 P i P_i Pi的值为第i组(由该校验位校验的数据位)所有位求异或。
P 1 = D 1 ⊕ D 2 ⊕ D 4 = 0 ⊕ 1 ⊕ 1 = 0 P_1 = D_1 \oplus D_2 \oplus D_4 = 0 \oplus 1 \oplus 1 = 0 P1=D1⊕D2⊕D4=0⊕1⊕1=0
P 2 = D 1 ⊕ D 3 ⊕ D 4 = 0 ⊕ 0 ⊕ 1 = 1 P_2 = D_1 \oplus D_3 \oplus D_4 = 0 \oplus 0 \oplus 1 = 1 P2=D1⊕D3⊕D4=0⊕0⊕1=1
P 3 = D 2 ⊕ D 3 ⊕ D 4 = 1 ⊕ 0 ⊕ 1 = 0 P_3 = D_2 \oplus D_3 \oplus D_4 = 1 \oplus 0 \oplus 1 = 0 P3=D2⊕D3⊕D4=1⊕0⊕1=0
所以1010对应的海明码为1010010
海明码的校验原理
每个校验位分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成k个校验方程。
S 1 = P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 S_1 = P_1 \oplus D_1 \oplus D_2 \oplus D_4 S1=P1⊕D1⊕D2⊕D4
S 2 = P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 S_2 = P_2 \oplus D_1 \oplus D_3 \oplus D_4 S2=P2⊕D1⊕D3⊕D4
S 1 = P 2 ⊕ D 2 ⊕ D 3 ⊕ D 4 S_1 = P_2 \oplus D_2 \oplus D_3 \oplus D_4 S1=P2⊕D2⊕D3⊕D4
如果 S 3 S 2 S 1 S_3S_2S_1 S3S2S1的值为“000”,说明没有出错;否则说明出错,且这个数就为出错的位号。
流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方法有两种:停止-等待协议和滑动窗口协议。
发送方每发送一帧,都要等到收到接收方的应答消息之后,在发送下一帧;接收方每收到一帧,都要发送应答消息,通知发送方可以发送下一帧。
发送端和接收端分别设定发送窗口和接收窗口。
**发送窗口:**实质是发送缓存,包含已经发送出去但尚未接收到确认的帧序号以及还能发送的帧序号。
窗口大小 W T W_T WT是无需等待确认应答,就可持续发送的数据的最大值。
当发送窗口之内没有可发送的帧(即全是已发送但未收到确认的帧)时,发送方就会停止发送,直到收到确认信息后是发送窗口开始移动,有了新的可发送帧之后,才开始继续发送。
**接受窗口:**实质是接收缓存,包含期望接收的帧序号。
在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。若接收到的数据帧落在接受窗口之外,则一律将其丢弃。
在连续ARQ协议中,接受窗口的大小 W R = 1 W_R = 1 WR=1。
只有当收到的帧的序号与就收窗口一致时才能接受该帧。否则,就丢弃它。
每当收到一个序号正确的帧,接受窗口就向前滑动一个帧的位置。同时发送该帧的确认信号。
滑动窗口的重要特性:
数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。
自动重传请求(Auto Repeat reQuest,ARQ)通过接收方请求发送方重传出错的数据帧来回复出错的帧。传统自动重传请求分为三种:
所有ARQ协议窗口宽度应满足 W T + W R < = 2 n W_T+W_R<=2^n WT+WR<=2n。
在停止等待协议中,发送站发送单个帧之后必须等待确认帧,在接收方的确认帧到达发送方之前,发送方不能发送其他数据帧。
停止等待协议的四种情况:
计时器的时间一般可选为略大于“从发完数据帧到收到确认帧所需的平均时间”。
解决重复帧问题——序号机制
使每一个帧带上不同的发送序号。每发送一个新的数据帧就把它的发送序号加1。若接收方收到了序号相同的数据帧,这时就丢弃重复帧,并且同时向发送方重新发送确认帧。
帧的编号问题:
对于停止等待协议,由于每发送一个数据帧就停止等待,因此用一个bit来编号就足够了。
数据帧的发送序号以0和1交替的方式出现在数据帧中。
确认帧带有序号,ACKn表示:第n-1号帧已经收到,现在期望收到第n号帧。
停止等待协议的优点是比较简单,缺点是通信信道的利用率不高,信道还远远没有被数据比特填满。为了克服这一缺点,就产生了后退N帧协议和选择重传协议。
发送方无需在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序之后,就会要求发送方重发最后一个正确接收的数据帧之后所有未被确认的帧;或者当发送方发送了N个帧之后,发现某一个帧在计时器超时之后仍未返回确认帧,则判定该帧丢失或出错,发送方将重发该帧及之后的帧。
接受方只按序接收数据帧。如出现差错,虽然丢弃了这些不按序的无差错帧,但应重复发送已发送过的最后一个 确认帧(防止确认帧丢失)。
注意:
信道利用率:
由于每个数据帧都必须包括一定的控制信息(如帧的序号、地址、同步信息以及其他的一 些控制信息),所以即使连续不停地发送数据帧,信道利用率(即扣除全部的控制信息后 的数据率与信道容量之比)也不可能达到 100 %。
当出现差错时(这是不可避免的),数据帧的不断重传将进一步使信道利用率降低。 若数据帧的帧长取得很短,那么控制信息在每一帧中所占的比例就增大,因而额外开销 增大,这就导致信道利用率的下降。
最佳帧长
若帧长取得太长,则数据帧在传输过程中出错的概率就增大,于是重传次数将增大,这 也会使信道利用率下降。
由此可见,存在一个最佳帧长,在此帧长下信道的利用率最高。
接收方可加大接受窗口,先收下发送序号不连续但仍处于接受窗口内的那些数据,等到所缺序号的数据帧收到后再一并交个主机。
选择重传ARQ协议可避免重复传送那些本来已经正确到达接收端的数据帧。但我们付出的代价是在接收端要设置具有相当容量的缓存空间。
对于选择重传ARQ协议,若用 n 比特进行编号,则接收窗口的最大值应满足: W R < = 2 n / 2 W_R <= 2^n/2 WR<=2n/2。
介质访问控制的主要任务是:为使用介质的每个结点隔离来自同一信道上的其他结点所传送的信号,以协调活动节点的传输。用来决定广播信道中信道分配的协议属于数据链路层的一个子层:介质访问控制MAC(Medium Access Control)子层。
常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。前者属于静态划分信道的方法,后两者属于动态划分信道的方法。
点我跳转,文章的最后一节
随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能够根据自己的意愿随机的发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧冲突(碰撞),导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞的通过。这些规则就是随机访问介质访问控制协议,常见的协议有:ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称为争用型协议。
随机访问介质访问控制实质上时一种将广播信道转化为点到点信道的行为。
ALHOA协议是Additive Link On-Line HAwaii system的缩写,它是夏威夷大学早期研制的随机接入系统。分为纯ALOHA协议和时隙ALOHA协议两种。
纯ALOHA协议
基本思想是:当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据(想发就发)。如果在一段时间内未收到确认,那么该站点就认为在传输过程中发生了冲突。发送站点需要**等待一段时间(随机)**后再发送数据,直至发送成功。
假设网络负载( T 0 T_0 T0时间内所有站点发送成功的和未成功而重传的帧平均值)为G,则纯ALOHA网络的吞吐量S( T 0 T_0 T0时间内成功发送的平均帧数)为 S = G e − 2 G S=Ge^{-2G} S=Ge−2G。当 G = 0.5 G=0.5 G=0.5时, S = 0.5 G e − 1 ≈ 0.184 S=0.5Ge^{-1}\approx 0.184 S=0.5Ge−1≈0.184,为吞吐量S可能达到的最大值。由此可见,纯ALOHA网络的吞吐量很低。
时隙ALOHA协议
时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。从而避免了用户发送数据的随意性,减少了数据产生冲突的可能性(冲突只发生在时隙的起点,冲突发生时只浪费一个时隙,一旦某个站占用时隙并发送成功,则在该时隙内不会出现冲突),提高了信道的利用率。
时隙ALOHA网络的吞吐量S与网络负载G的关系是 S = G e − G S=Ge^{-G} S=Ge−G。当 G = 1 G=1 G=1时, S = e − 1 ≈ 0.368 S=e^{-1}\approx0.368 S=e−1≈0.368。
由此可见,时隙ALOHA网络比纯ALOHA网络的吞吐量大了1倍。
载波侦听多路访问CSMA(Carrier Sense Multiple Access)协议的思想是:若每个站点在发送前都先帧听一下公用信道,发现信道空闲之后再发送,则就会大大降低冲突的可能,从而提高信道的利用率。它与ALOHA协议的区别是多了一个载波侦听装置。
CSMA协议分为三种:
1-坚持CSMA
1-坚持CSMA(1-persistent CSMA)的思想是:一个结点要发送数据时,首先帧听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么等待,同时继续帧听直至信道空闲;如果发生冲突,那么随机等待一段时间后,再重新开始帧听信道。
传播延迟对1-坚持CSMA协议的性能影响较大。结点A开始发送数据时,结点B正好也有数据要发,但是结点A发出的数据还未到达结点B,结点B帧听到信道空闲,也开始发送数据,结果就发生了冲突;还有如果结点A正在发送数据,结点B与结点C也准备发送数据,帧听到信道忙,就都开始继续帧听,结果当结点A一发送完毕,结点B和结点C都会立即发送数据,同样也会导致发生冲突。
非坚持-CSMA
非坚持CSMA(No-persistent CSMA)的基本思想是:一个结点要发送数据时,首先帧听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么放弃帧听,等待一个随机时间后再重复上述过程。
非坚持CSMA协议在帧听到信道忙后就放弃帧听,但会增加数据在网络中的平均延迟。
p-坚持CSMA
p-坚持CSMA(p-persistent CSMA)用于时分信道,基本思想是:一个结点要发送数据时,首先帧听信道,如果信道忙,就持续帧听,直至信道空闲;如果信道空闲,那么以概率 p p p发送数据,以概率 1 − p 1-p 1−p推迟到下一时隙;这个过程一直持续到数据发送成功或因其他结点发送数据而检测到信道忙为止,若是后者,则等待下一个时隙在重新开始帧听。
三种类型的CSMA协议比较:
信道状态 | 1-坚持 | 非坚持 | p-坚持 |
---|---|---|---|
空闲 | 立即发送数据 | 立即发送数据 | 以概率 p p p发送数据,以概率 1 − p 1-p 1−p推迟到下一个时隙 |
忙 | 继续坚持帧听 | 放弃帧听,等待一个随机的时间后帧再帧听 | 持续帧听,直至信道空闲 |
载波侦听多路访问/碰撞检测CSMA/CD(Carrier Sense Multiple Access With Collision Detection)协议是CSMA协议的改进方案,适用于总线型网络或半双工网络环境。“碰撞检测”:边发送边帧听,即适配器边发送数据边检测信道上信号电压的变化情况(当几个站点同时发送数据时,总线上的信号电压摆动值会因为互相叠加而增大),以判断是否自己在发送数据的同时其他站点也在发送数据。工作流程可简单概括为:“先听后发,边听边发,冲突停发,随机重发”。
CSMA/CD协议中总线的传播延迟影响很大。如下图所示,在 t = 0 t=0 t=0时A检测到线路空闲,开始发送数据,B同时也检测到线路空闲,在 t = τ − ξ t=\tau-\xi t=τ−ξ 时,由于A发送的数据还未到达B,因此B检测线路为空,开始发送数据,再经过 ξ / 2 \xi/2 ξ/2 之后,即 t = τ − ξ / 2 t=\tau-\xi/2 t=τ−ξ/2 时,A的数据和B的数据发生碰撞;在 t = τ t=\tau t=τ 时B检测到碰撞,停止发送;在 t = 2 τ − ξ t=2\tau-\xi t=2τ−ξ 时A也检测到碰撞,停止发送数据。
由此可知,A在 2 τ 2\tau 2τ 之后必定会知道自己所发送的帧是否发生碰撞,因此我们把以太网端到端的往返时间 2 τ 2\tau 2τ 称为争用期,只有在争用期这段时间内没有检测到碰撞,才能确定这次发送不会发生冲突。
为了确保发送站在发送数据的同时能够检测到发出去的帧是否发生碰撞,那么就有必要设置一个帧的最小长度,任何站点再收到比最小帧长还小的帧时,应将其当作无效帧丢弃。最小帧的计算公式为:
最 小 帧 长 = 总 线 传 播 时 长 ∗ 数 据 传 输 率 ∗ 2 最小帧长=总线传播时长*数据传输率*2 最小帧长=总线传播时长∗数据传输率∗2
以太网规定取51.2 μ s \mu s μs为争用期的长度,最短帧长为64B。
CSMA/CD协议采用二进制指数退避算法来解决碰撞问题。算法如下:
在有线网络中,CSMA/CD很有效,但在无线网络中,不能照搬CSMA/CD,特别是碰撞检测部分。因此,802.11定义了广泛应用于无线局域网中的CSMA/CA协议,将碰撞检测改为碰撞避免(Collision Avoidance,CA)(并不是真正的避免,而是尽量降低碰撞发生的概率)。
在轮询访问中,用户不能随便地发送信息,而要通过一个集中控制的监控器,以循环的方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点不能使用信道。典型的轮询介质访问控制协议时令牌传递协议,主要用在令牌环网中。
轮询介质访问控制既不共享时间,也不共享空间,实际上是在随机介质访问控制的基础上,限定了有权力发送数据的结点只有一个。
**局域网(Local Area Network,LAN)**是指在一个较小的地理范围内,将各种设备通过各种连接介质互相连接起来,组成资源和信息共享的计算机互连网络。
主要特点有:
局域网的特性主要由三个要素决定:拓扑结构、传输介质、介质访问控制方式。
常见的局域网拓扑结构主要由四类:星形结构、环形结构、总线型结构、星形和总线型结合的复合形结构。
主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
数据链路层的两个子层:逻辑链路控制 LLC (Logical Link Control)子层、媒体接入控制 MAC (Medium Access Control)子层。与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的。所以以后一般不考虑 LLC 子层。
以太网的两个标准:
DIX Ethernet V2标准与IEEE的802.3标准只有很小的差别,因此可以将802.3局域网简称为“以太网”。
严格说来,“以太网”应当是指符合DIX Ethernet V2标准的局域网。
以太网常用的传输介质有:粗缆、细缆、双绞线、光纤。
计算机与外界局域网的连接是通过网络接口板实现。
网络接口板又称为通信适配器(adapter)或网络接口卡NIC (Network Interface Card),或“网卡”。每块网卡都有一个唯一编码,称为介质访问控制地址MAC。
适配器的重要功能:1.进行串行/并行转换。2.对数据进行缓存。3.在计算机的操作系统安装设备驱动程序。4.实现以太网协议。
计算机通过适配器和局域网进行通信:
每块网络适配器都有一个地址,称为MAC地址,也称为物理地址;MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡),其中高24位为厂商代码,低24位为厂商自行分配的网卡序列号。。
一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
速率达到或超过100Mb/s的以太网称为高速以太网。
100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星形拓扑结构以太网,既支持全双工方式,有支持半双工方式,在全双工模式下不使用CSMA/CD协议。
吉比特以太网
又称千兆以太网,允许在 1 Gb/s 下全双工和半双工两种方式工作。在半双工方式下使用 CSMA/CD 协议(全双工方式不需要使用 CSMA/CD 协议)。
10吉比特以太网
10 吉比特以太网只工作在全双工方式。也不使用 CSMA/CD 协议。
使用高速以太网进行宽带接入
以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级。
采用以太网接入可实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本。
用多个集线器可连成更大的局域网。
用集线器组成更大的局域网都在一个碰撞域中。
优点:
缺点:
集线器在转发帧时,不对传输媒体进行检测。
网桥在转发帧之前必须执行CSMA/CD算法。
数据链路层拓展以太网使用的是网桥。
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。
优点:
缺点:
交换机:
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。
IEEE 802.11 是无线局域网的一系列协议标准,包括802.11a和802.11b等。
802.11的MAC层采用CSMA/CA协议进行介质访问控制。冲突避免要求每个发送站在发送之前先帧听信道。如果信道空闲,那么结点就可以发送帧;发送站在发送完一帧之后,必须在等待一个短的时间间隔,检查接收站是否发回帧的确认ACK。如果没收到ACK,则说明自此发送没有碰撞,发送成功;如果在规定时间内没有收到确认,那么表示发生冲突,发送失败,进行重发。
无线局域网可分为两大类:固定基础设施无线局域网和无固定设施无线局域自组织网络。
广域网通常是指覆盖范围很广(远超一个城市范围)的长距离网络。广域网是因特网的核心部分,其任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,它可以是几千千米的光缆线路,也可以是长达几万千米的点对点卫星链路。
广域网不等于互联网,互联网可以连接不同类型的网络(既可以是局域网,也可以连接广域网)。
广域网中的一个重要问题时路由选择和分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由。分组是通过转发表进行转发的。
PPP协议和HDLC协议是目前最常用的两种广域网数据链路层控制协议。
PPP(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。采用字节填充方法。只支持全双工链路。
PPP协议的特点:
互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
PPP协议不需要的功能:
纠错、流量控制、序号、多点线路、半双工和单工链路
PPP协议的组成:
PPP协议的帧格式:
PPP协议的工作状态:
可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络 层的内容。
高级数据链路控制协议HDLC(High-Level Data Link Control)是ISO制定的面向比特的数据链路层协议。采用0比特插入法。
HDLC适用于链路的两种基本配置:非平衡配置和平衡配置
站:
HDLC有3中站类型:主站、从站和复合站。主站负责控制链路的操作,主站发出的帧为命令帧;从站受控于主站,按主站的命令进行操作,发出的帧为响应帧。有些站即有主站的功能,又有从站的功能,称为复合站。
数据操作方式:
HDLC帧:
标志字段F(Flag)为6个连续1加上两边各一个0共8 bit。 “01111110”。在接收端只要找到标志字段就可确定一个帧的位置。
网桥分为:
**特点:**把两个或多个以太网通过网桥连接在一起变成一个网段。
**特点:**实质上就是一个多端口网桥。
交换方式: