文档章节

第3章 数据链路层

FunTime
 FunTime
发布于 2017/06/25 17:14
字数 6025
阅读 57
收藏 0

 

数据发送模型    数据链路层的简单模型

数据链路层使用的信道主要有以下两种类型:

  • 点对点信道:这种信道使用一对一的点对点通信方式
  • 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议协调这些主机的数据发送

链路(Link)是一条点到点的物理线路段,中间没有任何其他的交换节点。

  • 一条链路只是一条通路的一个组成部分

数据链路(data link)除了物理线路外,还必须有通信协议控制这些数据的传输。若把实现这些协议的硬件和软件都加到链路上,就构成了数据链路。

  • 现最常用的方法是使用适配器(即网卡)实现这些协议的硬件和软件
  • 一般的适配器都包括了数据链路层物理层这两层的功能

 

帧头、帧尾、物理层地址、校验值组成。

数据链路层像个数字管道,常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是

 

数据链路层的三个基本问题封装成帧、透明传输(添加转义字符然后去掉)、差错检测

封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧确定帧的界限

        首部和尾部的一个重要作用就是进行帧定界

 

控制字符进行帧定界的方法举例

试想:帧还未发送完,发送端出了问题,只能重新发送该帧。接收端却收到了前面的“半截子帧”,它会抛弃么?为什么?

(图中帧开始符、结束符只是举个例子)

 

若传输的数据是 ASCII码中“可打印字符(共95个)”集 时,一切正常。

若传输的数据不是仅由“可打印字符”组成 时,就会出问题,如下图

 

字节填充法解决透明传输的问题上图中的问题

发送端的数据链路层数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。

字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层将数据送往网络层之前删除插入的转义字符。

如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到两个连续的转义字符时,就删除其中前面的一个转义字符

 

差错检测

在传输过程中可能会产生比特差错1 变成0 , 0变成1

一段时间内传输错误的比特占所传输比特总数的比率成为误码率BER(Bit Error Rate)

误码率与信噪比有很大的关系

为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施

 

循环冗余检验CRC 的计算过程

被除数后面加 n 个0,除数就有 n+1 位,除数是 非0的任意数。

FCS 为帧检验序列。

举一种CRC算法计算FCS:

接收端收到数据后进行检测:用数据后面加上FCS除以除数,如果余数是0,则没有错误;如下图。

 

帧检验序列FCS

数据后面加上冗余码称为帧检验序列FCS(Frame Check Sequence)

循环冗余检验CRC 和 帧检验序列FCS并不等同。

  • CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码
  • FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法

 

接收端对收到的每一帧进行CRC检验

检验:

  • 若得出的余数R = 0 ,则判定这个帧没有差错,就接收(accept)
  • 若余数R != 0,则判定这个帧有差错,就丢弃

特点:

  • 但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错
  • 只要经过严格的筛选,并使用位数足够多的除数P,那么检测不到的差错的概率就很小很小

 

两种情况下的数据链路层

  • 使用点对点信道的数据链路层
  • 使用广播信道的数据链路层(计算机连接在总线上、计算机连接在集线器上)

PPP协议

1992年制定了PPP协议。经过1993年和1994年修订,现在的PPP协议已成为因特网的正式标准[RFC1661]。

PPP协议三个组成部分

  • 数据链路层协议可用于异步串行介质同步串行介质
  • 使用LCP(链路控制协议)建立并维护数据链路层连接
  • 网络控制协议(NCP)允许在点到点连接使用多种网络层协议,如图所示:

PS:    ADSL拨号上网,拨通之后链路层就通了; 如果拨号的账号密码错误或账号欠费则链路层不通;链路控制协议通了,网络控制协议才有可能通。

PPP协议是数据链路层协议,在数据链路层又分为三种:     网络控制协议(NCP,针对每一个网络层协议)、 链路控制协议(LCP,有身份验证、计费功能)、 高级数据链路控制协议(HDLC)。

 

PPP协议的使用场合

现在全世界使用得最多数据链路层协议点对点协议 PPP(Point-to-Point Protocol)

用户使用拨号电话线接入因特网时,一般都是使用PPP协议

 

PPP协议帧格式

帧中的协议指明信息部分的内容;FCS是帧检验序列,用于判断收到的信息部分是否有错误

标志字段 F = 0x7E(符号“0x”表示后面的字符是用十六进制表示。十六进制的7E的二进制表示是01111110)。

地址字段A只置为0xFF。地址字段实际上并不起作用

控制字段C通常置为0x03。

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

 

字节填充(PPP协议的透明传输)

问题:信息字段(信息部分)中出现了标志字段的值可能会被误认为是“标志”,怎么办?

  • 将信息字段中出现的每个0x7E字节转换为2字节序列(0x7D,0x5E)
  • 若信息字段中出现一个0x7D的字节,则将其转换为2字节序列(0x7D,0x5D)
  • 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节同时将该字符的编码加以改变

 

零比特填充方法

PPP协议用在SONET/SDH链路时,是使用同步传输(一连串的比特连续传送)。这时PPP协议采用零比特填充方法实现透明传输

在发送端,只要发现有5个连续1,则立即填入一个0。接收端对帧中的比特流进行扫描。每当发现5个连续的1时,就把这5个连续的1后的一个0删除

 

PPP协议不使用序号和确认机制

PPP协议之所以不使用序号和确认机制是出于以下的考虑:

  • 在数据链路层出现差错的概率不大时使用比较简单的PPP协议较为合理
  • 因特网环境下,PPP的信息字段放入的数据是IP数据报数据链路层的可靠传输不能保证网络层的传输也是可靠的
  • 帧检验序列FCS字段可保证无差错接收(有错误就扔掉)。PPP协议只实现无差错接收

 

PPP协议的工作状态

当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)

这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机。

通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。

最后释放的是物理层的连接。

 

PPP应用举例

扩展实验3-1:验证PPP(查看视频 第三章 数据链路层 - 05)

 

局域网 使用广播信道的数据链路层

局域网的拓扑

共享通信媒体

静态划分信道(计算机组建的局域网不使用,太麻烦)

  • 频分复用
  • 时分复用
  • 波分复用
  • 码分复用

动态媒体接入控制(多点接入)

  • 随机接入(主要被以太网采用)
  • 受控接入,如多点线路探询(polling),或轮询。(目前已不被采用

 

初识以太网

最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件

一台计算机与另一台计算机通讯,则数据包会被发送到每台计算机,通信的计算机可以判断数据包是否是发送给自己的以便接收;如果其他计算机安装了抓包工具则可以捕获数据包,所以不安全

用集线器的局域网

总线上的每一个工作的计算机都能检测到B发送的数据信号。由于只有计算机D的地址与数据帧首部写入的地址一致,因此只有D才接收这个数据帧。其他所有的计算机(A,C和E)都检测到不是发送给它们的数据帧,因此就丢掉这个数据帧而不能接收下来。

具有广播特性的总线上实现了一对一的通信(用地址实现)。所谓广播是该区域内工作的计算机都能都到其他计算机发送的信号。

 

载波监听 多点接入 / 碰撞检测     以太网使用 CSMA/CD 协议

CSMA/CD表示Carrier Sense Multiple Access with Collision Detection。

多点接入”表示许多计算机以多点接入的方式连接到一根总线上

载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据如果有,则暂时不要发送数据,以免发生碰撞

“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号

 

碰撞检测

“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小

  • 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
  • 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞
  • 所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。

检测到碰撞后

  • 发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
  • 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段时间再次发送

电磁波在总线上的 有限传输速率 的影响

某个站监听到总线是空闲时,也可能总线并非真正是空闲的

A向B发出的信息,要经过一定的时间后才能传送到B。

B若在A发送的信息到达B之前发送自己的帧(因为这时B的载波监听检测不到A所发送的信息),则必然要在某个时间和A发送的帧发生碰撞。碰撞的结果两个帧都变得无用

 

传播时延对载波监听的影响

 

重要特性

    全双工通信(两台计算机可以同时发送信息);半双工通信(某个时间段只能允许一台计算机发送信息)

    集线器(hub)只支持半双工,如果设置为全双工则网络不通。

使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)

每个站在发送数据之后的一小段时间(2倍的抛时间)内,存在着遭遇碰撞的可能性。

这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率

一个10M的集线器,理论上,连接在其上的计算机的带宽为集线器的带宽比上工作的计算机的数量。

实际上远小于理论值,因为计算机越多发生冲突的可能性越大,消耗时间。

 

争用期

最先发送数据帧的站,在发送数据帧后至多经过时间2抛(两倍的端到端往返时延)就可知道发送的数据帧是否遭遇了碰撞。

经过争用期这段时间还没有检测到碰撞,才能肯定这次发送没有发生碰撞。

以太网的争用期

  • 以太网的端到端往返时延2抛称为争用期,或碰撞窗口。通常,取51.2微秒为争用期的长度
  • 对于10Mb/s的以太网,在争用期内可发送512bit,即64字节
  • 以太网在发送数据时,若前64字节未发生冲突,则后续的数据就不会发生冲突。

最短有效帧长

  • 如果发生冲突,则一定是在发送的前64字节之内。
  • 由于一检测到冲突就立即终止数据发送,这时已经发送出去的数据一定小于64字节。
  • 以太网规定了最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常终止的无效帧
  • (以太网的网线最长不能超过100m,否则影响冲突的检测。)

 

二进制指数类型退避算法

发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。

  • 确定基本退避时间一般是取 争用期2抛
  • 定义参数k,     k = Min(重传次数 , 10)
  • 整数集合[0,1,...,(2^k - 1)]随机地取出一个数,即为 r重传所需的时延就是 r 倍的基本退避时间 r(2抛) 
  • 重传达16次仍不能成功时即丢弃该帧,并向高层报告

 

 

以太网的信道利用率:最大值

以太网参数的要求

  • 数据率一定时,以太网的连线的长度受到限制否则 抛的数值会太大
  • 以太网的帧长不能太短否则T0的值会太小,使 a值 太大

信道利用率的最大值:

  • 理想化的情况下,以太网上的各站发送数据都不会产生碰撞(这显然已经不是 CSMA/CD,而是需要使用一种特殊的调度方法),即总线一旦空闲就有某一个站立即发送数据
  • 发送一帧占用线路的时间是 T0 + 抛,而帧本身的发送时间是T0。于是我们可计算出理想情况下的极限信道利用率Smax为:

 

MAC层

MAC层的硬件地址(MAC地址)

局域网中,硬件地址又称为物理地址,或MAC地址

802标准所说的“地址”严格地讲应当是每一个站的“名字”或“标识符”

但鉴于大家都早已习惯了将这种48位的“名字”称为“地址”,所以本书也采用这种习惯用法,尽管这种说法并不太严格。

  • IEEE的注册管理机构RA负责向厂家分配地址字段的前三个字节(即高位24位)
  • 地址字段中的后三个字节(即低位24位)厂家自行指派,称为扩展标识符必须保证生产出的适配器没有重复地址
  • 一个地址块可以生成 2^24 个不同的地址。这种48位地址称为MAC-48,它的通用名称EUI-48
  • “MAC地址”实际上就是适配器地址适配器标识符EUI-48
  • “MAC地址” 在适配器出厂时就固定在芯片中了,但可以指定要使用的地址(本地连接-->高级-->网络地址(network address) 或 使用注册表编辑器 (regedit) 等修改)。

 

适配器检查MAC地址

适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址

  • 如果是发往本站的帧则收下,然后再进行其他的处理。
  • 否则就将此帧丢弃,不再进行其他的处理。

“发往本站的帧”包括以下三种帧:

  • 单播(unicast)帧(一对一
  • 广播(broadcast)帧(一对全体
  • 多播(multicast)帧(一对多

MAC帧格式

  • DIX Ethernet V2 标准
  • IEEE的802.3标准

最常用的MAC帧 以太网V2的格式

 

无效的帧:

  • 帧的长度不是整数个字节
  • 用收到的帧检验序列FCS查出有差错
  • 数据字段的长度不在46~1500之间。

有效的MAC帧长度64~1518字节之间。

对于检查出的无效MAC帧就简单地丢弃以太网不负责重传丢弃的帧

 

帧间最小间隔

帧间最小间隔为9.6微秒相当于96bit的发送时间

一个站在检测到总线开始空闲后,还要等待9.6秒才能再次发送数据

这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理做好接收下一帧的准备

 

扩展以太网

在物理层考虑扩展

集线器级联:使用网络的计算机数量增加,组建了一个大的冲突域。

主机使用光纤一对光纤调制解调器连接到集线器

 

↓    计算机数量增多,效率可能降低。(例如:A和B通信,C和D就不能通讯了)

 

优化以太网

在数据链路层考虑扩展

在数据链路层扩展局域网是使用网桥

网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发

网桥具有过滤功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口

 

交换机特点:端口带宽独享(100M交换机则每个端口都是100M)、安全基于MAC地址转发通过学习构建MAC地址表(转发数据就基于MAC地址表)

交换机的端口对应的MAC地址就决定了目标地址是否经过该端口。

 

目前使用得最多的网桥透明网桥(transparent bridge)。

“透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。

透明网桥是一种即插即用设备,其标准是IEEE 802.1D

 

高速以太网

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

双绞线上传送100Mb/s基带信号星型拓扑以太网,仍使用IEEE 802.3 的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标准规定的。

保持最短帧长不变(64字节),但将一个网段的最大电缆长度减小到100m

帧间时间间隔从原来的9.6微秒改为现在的0.96微秒

 

如果交换机接了一个hub,则不再是全双工,哪怕hub上只接了一台计算机。只要不是全双工,就要使用CSMA/CD协议。

 

网卡可以设置成“自动检测:全双工还是半双工,100M还是10M”

 

Gbyte吉比特以太网

允许在1Gb/s下全双工和半双工两种方式工作。

使用802.3协议规定的帧格式。

在半双工方式下使用CSMA/CD协议(全双工方式不需要使用CSMA/CD协议)。

与10BASE-T和100BASE-T技术向后兼容。

当吉比特以太网工作在全双工方式时(即通信双方可同时进行发送和接收数据),不使用载波延伸和分组突发。

吉比特以太网的物理层

1000BASE-X     基于光纤通道的物理层

  • 1000BASE-SX    SX表示短波长    传输距离275或550米。
  • 1000BASE-LX     LX表示长波长    550米或5000米
  • 1000BASE-CX     CX表示铜线       传输距离25米

1000BASE-T

  • 使用4对5类线 UTP(非屏蔽双绞线)
  •  

吉比特以太网的配置举例

 

10吉(万兆)比特以太网

10吉比特以太网与10Mb/s、100Mb/s和1Gb/s以太网的帧格式完全相同

10吉比特以太网还保留了802.3标准规定的以太网最小和最大帧长便于升级

10吉比特以太网不再使用铜线而使用光纤作为传输媒体

10吉比特以太网只工作在全双工模式,因此没有争用问题,也不使用CSMA/CD协议

 

端到端的以太网传输

10吉比特以太网的出现,以太网的工作范围已经从局域网(校园网、企业网)扩大到城域网和广域网,从而实现了端到端的以太网传输

这种工作方式的好处

  • 成熟的技术
  • 互操作性很好
  • 在广域网中使用以太网时价格便宜
  • 统一的帧格式简化了操作和管理

以太网从10Mb/s到10Gb/s的演进

以太网从10Mb/s到10Gb/s的演进证明了以太网是:

  • 可扩展的(从10Mb/s到10Gb/s)
  • 灵活的(多种传输媒体、全/半双工、共享/交换)
  • 易于安装
  • 稳健性好

使用高速以太网进行宽带接入

以太网已成功地把速率提高到1~10Gb/s,所覆盖的地理范围也扩展到了城域网和广域网,因此现在人们正在尝试使用以太网进行宽带接入

以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级

采用以太网接入可实现端到端的以太网传输中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本

 

Cisco建网3层模型   

 

企业局域网设计

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

上一篇: 第4章 网络层
下一篇: 第2章 物理层
FunTime
粉丝 2
博文 7
码字总数 12977
作品 0
运维
私信 提问
【计算机网络】第3章 数据链路层层 知识总结

《计算机网络》——谢希仁 第3章知识点总结 数据链路层使用的信道主要有以下两种类型: (1)点对点信道:使用一对一的点对点通信方式 (2)广播信道:使用一对多的广播通信方式 使用点对点信...

qq_37792173
2017/08/23
0
0
《TCP/IP详解 卷1:协议》系列分享专栏

《TCP/IP详解卷1:协议》是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一。 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识。阅读对象为计算机专业学生、教师以及研究网络...

开元中国2015
2018/11/15
104
0
【网络原理】第四章 数据链路层(一)

一、数据链路层的定义与其主要完成的功能 1、为什么要设计数据链路层? 有了物理层进行二进制位流的透明传输,为什么还要设计数据链路层呢?在物理层进行二进制传输 时,有些问题是其难以解决...

XuAn97916
2018/06/26
0
0
Python黑帽编程3.0 第三章 网络接口层攻击基础知识

3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止。 本节简单概述下OSI七层模型和TCP/I...

zting科技
2017/01/11
0
0
ARP地址解析协议——地址解析

引入: 首先,有两个关键的概念,一个是互联网通信,它是通过使用网络层地址在第3层发送数据完成的;另一个是数据的实际传输,它发生在使用数据链路层地址的第2层。 其次,还需要知道第2层和...

一颗成长树
2016/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部