计算机网络:数据链路层(1)

预备概念:链路数据链路规程协议数据报

数据链路层

1、基本概念

数据链路层在OSI参考模型和五层参考模型中位于自下而上的第二层。
数据链路层的主要功能:

  1. 链路管理数据链路的建立、维持和释放;
  2. 物理寻址:保证每一帧都能正确达到目的站;
  3. 帧定界:将数据报封装成,确定帧的开始和结束;
  4. 透明传输:不论数据是怎么样的比特组合,都能传输;即传输数据对数据链路是透明的
  5. 差错检测:对物理信道传输的比特流检测差错;
  6. 流量控制:控制发送速率与接收速率匹配。

点对点信道的数据链路层通信步骤:

  1. 结点A将网络层交下来的数据报封装成帧
  2. 结点A将帧发送给结点B;
  3. 结点B首先进行差错检测,如果没有差错,将帧拆分提取出数据报上交给网络层;否则丢弃这个帧。

2、三个基本问题

链路层协议有多种,但是有三个问题是共同的,就是如何做到封装成帧透明传输差错控制

● 封装成帧

封装成帧是指在数据报上添加帧头帧尾,构成一个帧的过程。帧从帧头开始发送,接收端能从接收的比特流中识别帧头和帧尾,从而识别帧的开始和结束。帧头和帧尾的一个重要作用就是帧定界,常用的方法是首尾定界符法;此外,帧头和帧尾还包含许多控制信息。显然,想要提高传输效率,数据部分应当尽可能大于帧头和帧尾的长度。但是出于差错控制等方面考虑,所有数据链路层协议都规定了数据部分的长度上限,称为最大传送单元MTU

● 透明传输

在以字节/字符为单位的数据成帧中,常常采用首尾定界符法,即在帧头和帧尾使用专门指明的控制字符。倘若数据发送过程中发生了故障,导致发送中断,但又很快恢复。此时由于使用了帧定界符,当接收端读取到结束符而没有读取到开始符时,就知道这个帧是不完整的出错帧,必须丢弃,由此避免信道资源的浪费。

如果数据部分的8比特组合与帧的开始符和结束符编码恰好相同时,就会出现帧定界错误。显然这与透明传输的目标相悖。
为了达成透明传输的目标,常用的方法有:字符填充法零比特填充法

字符填充法:封装成帧时,在数据部分中出现的开始符SOH结束符EOT前插入一个转义字符ESC;若出现转义字符,也前插一个转义字符。在接收端读取时,每当读取一个转义字符,就将其删除;若同时读取两个转义字符时,删除其中的一个。由此可以避免数据部分对帧定界产生影响,达到透明传输的目标。
通常字符填充法只是简单的前插一个转义字符,但也有特殊的做法。下面PPP协议的字符填充就是一种特殊做法。

零比特填充法:字符填充法中添加的转义字符有8个字节,且仅适用于字符数据流的传输。对于非字符数据,可以采用零比特法。
零比特填充法采用01111110作为开始和结束的标志F字段。每当在数据部分读取到5个1时,立刻在下一位添加一个0,因此数据部分中不可能连续出现6个1,避免帧定界错误。接收端每读取5个1时,删除其后的一个0,还原成原比特流。
零比特填充法在PPP协议的SONET/SDH链路中使用。

● 差错控制

数据链路层的数据流受外界干扰,可能在传输过程中产生比特差错
一段时间内,传输错误的比特占总比特的比率称为误码率BER。误码率与信噪比有很大的关系。
通信信道的噪声有两类:热噪声引起的差错称为随机错冲击噪声引起的差错称为突发错
差错控制的基本思想就是在信息位上附加一些冗余位,以某种规则与信息位相关联。接收端按规则检验冗余位和信息位。
信息发送时,信息位和冗余位共同组成码字发送。并在接收端检验。冗余码分为纠错码检错码
通信信道使用最广泛的检错码是循环冗余码CRC。能以 1-0.5k-1 的概率检查出k+1位错。
CRC码的生成多项式中,广泛使用的有CRC-16CRC-32CRC-CCITT
CRC码只能做到对帧的无差错接收,而非可靠传输。
除了比特差错外,差错还可能出现帧丢失帧重复帧失序
CRC码的具体操作见计算机组成原理部分。

3、PPP协议

点对点协议PPP是目前使用最广泛的数据链路层协议。PPP协议就是用户计算机与互联网ISP通信时使用的数据链路层协议。
PPP协议在1994年成为互联网正式标准[RFC 1661]。

● 需求与组成

PPP协议必须考虑以下需求

  1. 简单:不需要纠错、不需要序号、不需要流量控制,提高互操作性
  2. 封装成帧:规定特殊的帧界定符
  3. 透明性:保证数据传输的透明性
  4. 多种网络层协议:在同一条物理链路上支持多种网络层协议
  5. 多种类型链路:能够在多种链路上运行。
  6. 差错检测:检测差错并立即丢弃有差错的帧。
  7. 链接状态检测:及时自动检测链路是否处于正常工作状态
  8. 最大传送单元:设置最大传送单元MTU
  9. 网络层地址协商:提供机制使两个实体协商知道彼此的网络层地址
  10. 数据压缩协商:提供方法协商数据压缩算法

PPP协议有三个组成部分

  1. 一个将IP数据报封装到串行链路的方法。既支持异步链路,也支持面向比特的同步链路。
  2. 一个用来建立、配置和测试数据链路连接的链路控制协议LCP
  3. 一套网络控制协议NCP
● 帧格式

PPP的帧格式除信息部分外,帧头可以分为4个字段,帧尾可以分为2个字段。如图:
PPP的帧格式
帧头(首部)第一个字段和帧尾(尾部)第二个字段都是标志字段F,规定为0x7E,为PPP帧的定界符。
帧头的地址字段A规定为0xFF,控制字段C规定为0x03,目前没有携带有效信息
枕头的第4个字段是2字节的协议字段。为0x0021时,信息部分为IP数据报;为0xC021时,信息部分是LCP协议的数据;为0x8021时,信息部分是网络层的控制数据。
信息部分的长度是有限的,最大不超过1500字节。

PPP帧采用一种特殊的字符填充法。它规定转义字符为0x7D。填充方法如下:

  1. 把信息部分每一个0x7E字节变为两字节序列(0x7D,0x5E)。
  2. 每一个0x7D字节变为两字节序列(0x7D,0x5D)。
  3. 若出现ASCII码的控制字符(小于0x20),前插一个转义字符0x7D。

PPP协议在SONET/SDH链路中采用同步传输的零比特填充法

● 工作状态

PPP协议的工作状态如图:
PPP协议的工作状态
可以总结为如下步骤:

  1. 起始和终止状态为链路静止状态。
  2. 用户电脑通过调制解调器呼叫路由器,路由器检测载波信号,建立物理链路,进入链路建立状态。
  3. LCP开始协商配置选项,发送LCP配置请求帧,链路的另一端发送下述响应中的一种:
    配置确认帧:所有配置都接受
    配置否认帧:所有配置都识别但不接受
    配置拒绝帧:选项有的不识别或不接受,需要继续协商
    若LCP配置协商成功,则进入鉴别状态;否则回到链路静止状态。
    配置选项包括鉴别协议的规约
  4. 鉴别状态下只允许发送LCP分组,鉴别协议分组和链路质量的检测分组。此处可以使用口令鉴别协议口令握手鉴别协议。若鉴别成功,进入网络层协议状态;否则进入链路终止状态,待物理链路释放后转入链路静止状态。
  5. 在网络层协议状态,链路两端的NCP根据网络层的不同协议网络层特定的网络控制分组,也即NCP配置协商。如果运行的是IP协议,则对每一端配置IP协议模块时就要使用IP控制协议IPCP,这一步骤中NCP将为主机分配一个IP地址,使主机成为互联网上的一台主机。
  6. 网络层配置完毕后,就进入链路打开状态。链路中两个PPP端点可以向彼此发送分组,还可以发送回送请求LCP分组回送回答LCP分组
  7. 数据传输结束后,链路的一端可以发送终止请求LCP分组,在收到终止确认LCP分组后,进入链路终止状态,待物理链路释放后转入链路静止状态。

4、广播信道的数据链路层

上面讨论的数据链路层内容都是建立在点对点信道的基础上,也即采用一对一通信方式的信道。数据链路层除了点对点信道外,还有一种类型,称为广播信道,即采用一对多广播通信方式的信道。局域网是一种典型的应用广播信道的网络。如今以太网是局域网中应用最普遍的技术。

● 局域网(以太网)

局域网最主要的特点是:网络为一个单位所有,且地理范围和站点数目均有限
局域网的主要优点:

  1. 具有广播功能。从一个站点可很方便地访问全网,共享局域网连接内的硬件软件资源。
  2. 便于系统的扩展逐渐演变。各设备的位置可随意调整改变。
  3. 提高系统的可靠性可用性生存性

决定局域网性能的三要素:网络拓扑传输介质介质接入控制技术
由于以太网在局域网市场中占据了绝对优势,以太网几乎成为了局域网的同义词。

● 局域网的网络拓扑

局域网网络拓扑

a) 星形网

通过中心设备将多个设备连接起来的局域网是星形网
由于集线器的出现和双绞线的大量应用,星形以太网多级星形以太网获得非常广泛的应用。
星形以太网在物理结构上是星形网,在逻辑拓扑结构上是以太网。

b) 环形网

用一个连续的环将多个设备连接起来,构成闭合的物理环形结构的局域网是环形网
环形网中数据沿着一个方向逐站传输,多个结点共享一条环通路。
环形网的建立、维护、结点插入和删除比较复杂。
环形网主要应用于令牌网中,称为令牌环网

c) 总线网

各设备直接连接在一条作为公共传输介质总线上的局域网是总线网
总线两端的匹配电阻吸收电磁波能量,避免产生电磁波反射。
所有结点都通过总线,以广播方式发送和接收数据。因此总线网不可避免的会发生冲突
总线网主要有两种形态:
1、传统以太网:使用CSMA/CD协议,现演变为星形以太网
2、令牌总线网:在物理结构上是总线网,在逻辑拓扑结构上是令牌环网,现已退出市场。

● 介质接入控制

广播信道可能有多个用户站点同时请求访问信道,为使多用户合理而方便地共享通信介质资源,需要介质接入控制
介质接入控制的两种方式:静态划分信道动态媒体接入控制
静态划分信道使用信道复用技术对信道划分,其资源浪费、利用率低、不适合于局域网和部分广播信道。
动态媒体接入控制分为随机接入受控接入控制
随机接入的特点是用户可随机发送信息,在共享信道上可能发生碰撞(冲突),必须要有解决碰撞的网络协议。
典型的随机接入访问协议:ALOHA协议、CSMA协议、CSMA/CD协议(现行以太网协议)
受控接入控制的特点是用户必须服从一定的控制来使用信道。典型代表为令牌环网多点路线探询

● 以太网的标准

以太网的两个标准:DIX Ethernet V2标准IEEE 802.3标准。数据率均为10Mbps。802委员会还有802.4等其它局域网标准。
为了使数据链路层适用多个局域网标准,802委员会局域网的数据链路层拆为逻辑链路控制LLC媒体接入控制MAC两个子层。
与接入媒体相关的内容都存放在MAC子层中,因此LLC子层与传输媒体无关,换言之局域网对LLC子层是透明的
由于常用TCP/IP协议中使用的局域网是DIX Ethernet V2标准,因此802委员会制定的LLC子层的作用已经不大了。很多厂商生产的网课只有MAC协议而没有LLC协议。以后一般不考虑LLC子层。

以太网严格指符合DIX Ethernet V2标准的局域网;但由于802.3标准与它只有很小的差别,也将802.3标准的局域网称为以太网。
传统以太网表示最早的,速率为10Mbps的以太网。

● 通信适配器

计算机与外界局域网的连接是通过通信适配器(又称网络接口卡、网卡)进行的。网络适配器中有处理器储存器(RAM和ROM)。

以前的通信适配器常是一块独立的电路板,因此称网络接口卡。现在的网络适配器已经嵌入主板中,因此不再网络接口卡的名字。

适配器的重要功能:

  1. 进行串行-并行转换
  2. 对数据进行缓存
  3. 在计算机操作系统中安装驱动设备
  4. 实现以太网协议

适配器在接收和发送帧时,不使用计算机的CPU;当接收到有差错的帧时,直接丢弃而不用通知计算机。当收到正确的帧时,才中断通知计算机并交付网络层。发送数据时网络层将IP数据报下交给适配器,组装成帧后发送。
计算机的硬件地址就在适配器的ROM中;计算机的软件地址-IP地址则在计算机的储存系统中。

● 以太网的特点

以太网将许多计算机连接到一根总线上(或是集线器等设备)。总线上的任一计算机都能检测任一主机发送的数据信号。
每一台计算机的适配器地址不同,因此在帧的帧头写明接收站的地址。每个计算机只接收首地址一致的数据帧;否则丢弃不接受。由此在广播信道上实现一对一的通信。
为了通信的简便,以太网采取了两个重要措施:

  1. 采用较为灵活的无连接工作方式,即不必先建立连接就可以发送数据。
    ● 以太网的数据帧不进行编号,也不需要回发确认
    ● 局域网的通信质量好,产生差错的概率很小
    ● 以太网提供的是不可靠的交付,即尽最大努力的交付。
    ● 收到有差错的数据帧就丢弃,其它什么也不做。
    ● 高层发现丢失数据重传,以太网并不知道这是重传帧
  2. 以太网发送的数据都使用曼彻斯特编码的信号。
● CSMA/CD协议

以太网采用CSMA/CD协议协调总线上各计算机的工作。CSMA/CD协议主要有三个概念:多点接入载波监听碰撞检测

  1. 多点接入:许多计算机以多点接入的方式连接在一根总线上,即总线网。
  2. 载波监听:先听后发。在每一个站发送数据前先检测总线上是否有其它主机在发送数据。
  3. 碰撞检测:边听边发
    ● 由于信号传播存在延迟,因此先听后发并不能保证信道一定处于空闲状态。
    ● 当几个站同时在总线上发送数据时,总线的信号电压摆动值将增大。当信号电压超过一定门限值时,就认为发生了碰撞。
    ● 一旦发现发生了碰撞,主机立刻停止发送,等待一段随机时间后重新发送。

CSMA/CD的特性:

  1. CSMA/CD协议就是带有碰撞检测的载波监听多点接入协议
  2. CSMA/CD协议下的站不能同时接收和发送,只能进行半双工通信
  3. 每个站在开始发送数据后的一小段时间内,存在发生碰撞的可能性
  4. 发送的不确定性使以太网平均通信量远小于最高数据率。

设信号从站A到站B的时延为t,则在发送数据后至多2t的时间内可以知道是否发生碰撞。往返时延2t也被称为争用期。
经过争用期后未发生碰撞,可以确定这次发送不会发生碰撞。
CSMA/CD的发送流程可以概括为:先听后发边听边发冲突停止延迟重发

● 截断二进制指数退避算法

当发生碰撞后,主机要推迟(退避)一个随机时间才能再次发送数据。以太网采用截断二进制指数退避算法确定具体退避时间。

  1. 基本退避时间取为2t(争用期)。
  2. 从整数集合(0,1,…,2k-1)中随机取一个数,记为r。重传所需的时间就是r * 2t(r倍基本退避时间)。
  3. 参数k的计算:k=min(重传次数,10)
  4. 当重传次数达16次仍不能成功时丢弃该帧,并向高层报告。

以太网的争用期最短有效帧长

  1. 以太网取51.2us为争用期的长度
  2. 10Mbps的以太网,在争用期内可以发送64字节数据
  3. 若前64字节没有发生冲突,就后面的数据也不会发生冲突;如果发生冲突,一定在前64字节
  4. 由于一检测到冲突就停止发送,发送的数据一定小于64字节
  5. 以太网规定最短有效帧长为64字节,凡小于64字节的帧均为因冲突停止的无效帧
  6. 检测到碰撞后,除了停止发送外,还要继续发送人为干扰信号,让信道内所有主机都接收到,这称为强化碰撞
● 星形以太网

IEEE 802.3标准制定的传统以太网使用的传输媒体有:铜缆(10Base510Base2)、双绞线(10Base-T)、光缆(10Base-F)
由于集线器的出现和双绞线价格便宜、使用方便,粗缆和细缆现在已经退出了市场。1990年IEEE制定了星形以太网802.3i标准。它规定使用3类及以上UTP作为传输介质,采用星形拓扑结构,中央结点通常为集线器交换机,用RJ-45模块作为端接器。
10Base-T双绞线以太网的出现,是局域网发展史上的非常重要的里程碑。从此以太网在局域网中占据了统治地位。

集线器的特点如下:

  1. 集线器使用电子器件模拟电缆线工作,使用集线器的以太网在逻辑上仍是一个总线网,使用的时CSMA/CD协议。
  2. 一个集线器有许多接口,每个接口使用RJ-45插头与计算机的适配器相连,很像一个多接口的转发器。
  3. 集线器工作在物理层,仅仅简单地转发比特,不进行碰撞检测。
  4. 集线器采用了专门的芯片,进行自适应串音回拨抵消。

使用集线器扩展局域网:使用多个集线器可以连接成覆盖更大范围的多级星形以太网。
一个以太网是一个独立的碰撞域。集线器扩展以太网后,碰撞域也会扩大,但吞吐量并没有提高。

● MAC层

IEEE 802委员会将数据链路层分为LLC子层MAC子层
传输媒体接入相关的内容都放在MAC子层。因此局域网中的硬件地址又称为MAC地址
IEEE 802标准为局域网规定了48bit/6字节的全球地址,是局域网上每台计算机中固化在适配器的ROM中的地址。
IEEE注册管理机构RA负责向厂商分配地址的前3个字节为机构唯一标识OUI。后3个字节由厂商自行指派,为扩展标识符
这种地址称为扩展的唯一标识符-48,又称MAC-48MAC-48 = 厂商ID + NIC ID
IEEE规定地址的第一字节的最低位为I/G位,为0时表示单个站地址;为1时表示一个组地址,用来进行组播(多播)
第一个字节的最低第二位为G/L位。为0时表示全球管理,是厂商购买的OUI,地址表示单个站地址;为1时表示本地管理,用户可任意分配网络上的地址。对于每一个单个站,可供分配的本地管理地址有246个。
适配器具有过滤功能,只接收发往本站的帧。其中发往本站的帧有:

  1. 单播帧。收到的MAC地址与本机完全相同。
  2. 广播帧。发送给本局域网全体站点的帧。
  3. 多播帧。发送给本局域网一部分站点的帧。

常用MAC帧的格式有两种:DIX Ethernet V2标准和IEEE 802.3标准,使用的最多的是前一种V2帧。
以太网的V2 MAC帧由五个字段组成:

  1. 前两个字段分别为6字节长的目的地址源地址字段。
  2. 第三个字段是2字节的类型字段,表示上一层的协议。
  3. 第四个字段是数据字段,其长为46~1500字节(46=64-18)。
  4. 最后一个字段是4字节的帧检验序列FCS
  5. 在实际的传输媒介中,在帧的前面要插入8个字节,其中前7个字节是前同步码,最后一个字节是帧开始界定符

MAC帧采用曼彻斯特编码,因此不需要帧结束界定符,只需要判断信道的电压何时停止变化。
MAC帧最小间隙为9.6us,相当于96bit发送时间。在检测到总线空闲后,还需要9.6us才能再次发送数据。目的是让站清理缓存。
无效MAC帧有:帧的长度不是整数倍字节;FCS检测有差错;长度不在46~1500字节。

发布了39 篇原创文章 · 获赞 4 · 访问量 2044

猜你喜欢

转载自blog.csdn.net/weixin_44712386/article/details/104918914
今日推荐