【计算机网络】数据链路层总结

数据链路层

目录

  1. 数据链路层概述

    • 基本概念
    • 数据链路层的三个基本问题
  2. 点对点信道的数据链路层
    • 概述
    • PPP协议的组成
    • PPP帧的格式和要求
    • PPP协议的工作状态
  3. 广播信道的数据链路层
    • 局域网和以太网
    • 广播信道数据链路层的任务
    • 适配器
    • CSMA/CD协议的要点
    • 以太网应用CSMA/CD协议
    • 信道利用率
    • 以太网的MAC层
    • 扩展以太网
    • 高速以太网以及问题

1. 数据链路层概述

基本概念

数据链路层讨论的是如何把网络层的数据封装成帧,有效的进行通信传输。

链路是指:一个结点到另一个结点的具体的物理线路。

数据链路是指:在链路上加之实现通信协议的软件和硬件。

实现数据链路层的硬件和软件主要是网卡(但适配器工作在物理层和数据链路层)。

此层的协议数据单元PDU叫做。这是将数据报加之首部和尾部形成的。

数据链路层的三个基本问题

  1. 封装成帧

    指将数据报加之首部和尾部形成帧。首部和尾部是必要的,主要作用是帧定界、添加控制信息,以及差错控制。

  2. 透明传输

    如果是文本文件,可以用SOH/EOT充作帧开始、结束控制符,但数据中可能也出现SOH/EOT,这时需要加转义字符ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以达到透明传输。

    这里的透明指的是,数据链路层对传输的数据透明,传输的数据实际上感受不到数据链路层所做的操作。

  3. 差错检测

    奇偶检测、循环冗余CRC等。

    采用CRC,采用n+1位除数(由生成多项式得到),得到n位余数,称作帧检验序列FCS。

    检测时,将传输得到的数据除以同一个除数,若余数0,则可以说无差错。

    若有差错,直接丢弃,除此之外,不做任何操作。

    故差错检测只是检测了bit错误,并不能解决帧失序、丢失、重复等问题。

    也就是说,数据链路层实现的是尽最大努力的交付,即不可靠的传输。

2. 点对点信道的数据链路层

概述

点对点信道主要用于用户同ISP(验证身份)通信时。早期使用高级数据链路控制HDLC,已经淘汰,现在用的是PPP协议,即point-to-point protocol,点对点通信协议。

PPP协议的组成

由三个部分组成:

  1. 一个将数据报封装成帧的方法
  2. 一个用来建立、配置和测试数据链路连接的链路控制协议LCP

    通信双方用以协商。

  3. 套网络控制协议

    每一个协议支持不同的网络层协议,也就是说PPP支持不同的网络层协议。

PPP协议帧的格式和要求

PPP帧的格式如下:

格式划分 F A C 网络层协议 数据报 FCS F
具体内容 7E FF 03 如C021(IP) 数据部分 - 7E
字节数 1 1 1 2 <=1500 2 1

其中,F,A,C都是固定的,A是地址,C字段实际上无用。

实现透明传输:

PPP协议为实现透明传输,采用的策略是:

  1. 异步:字节填充(字符填充)。

    在数据部分,(7E->7D,5E)、(7D->7D,5D)、(小于0x20的,前面添加7D)

  2. 同步:零比特填充

    即每遇到5个1,添加一个0。

PPP协议工作状态

<课本P81>,重点。

3. 广播信道的数据链路层

局域网和以太网

局域网(LAN)指的是一个网络为一个单位所拥有,地理位置和站点数据有限,统称。局域网的工作跨越了物理层和数据链路层。

以太网是局域网的一种实现方式,但如今以太网占据了绝大多数市场,故某种意义上,以太网就是局域网。

以外网的标准有DIX Ethernet V2和IEEE 802.3。二者差别不大,现在广泛使用的是DIX Ethernet V2。

IEEE 802.3把以太网的数据链路层划分为:逻辑链路控制(LCP)和媒体接入控制(MAC),但LCP实际上并无用,现在只使用MAC层。

以外网的其他特点:

  1. 以太网采用的是尽最大努力的交付,不可靠的交付。
  2. 以太网采用使用CSMA/CD协议。
  3. 以太网采用的是曼彻斯特编码,基带信号传输。这种编码中间跃变,由高->低为1,反之为0。

广播信道数据链路层的任

广播信道主要由总线式网络,环形网,星形网等。

广播信道的数据链路层讨论的是如何在一个网络中实现一对一、一对多通信。这里要解决的问题是,总线网络上不能有两个站点同时发送数据,否则就称碰撞(冲突)。

必须有解决这个问题的协议,这就是CSMA/CD协议。

但首先应了解其他几个概念。

适配器

即网卡,实现了数据链路层协议,工作于物理层和数据链路层。

适配器的另一个作用是实现并行通信和串行通信的转换。外网--适配器为串行,而适配器--主机为并行。

适配器还配有ROM,实现缓存,这样可以实现不同速率的兼容。

另外,需要注意,适配器中的ROM中是硬件地址,即MAC地址,而在计算机的存储器中存有IP地址,即软件地址。

CSMA/CD协议的要点

CSMA/CD协议全称:载波多点监听/碰撞检测。他解决的问题是如何在总线局域网上进行“有效”通信。

CSMA/CD的要点如下:

  1. 多点接入

    CSMA/CD协议适用于广播信道,允许总线上多个站点接入。协议的核心是载波监听和碰撞检测。

  2. 载波监听

    由于总线型广播信道上同一时刻只允许一个站点发送数据,故站点需要时时检测信道上是否有其他站点发送数据,这就是载波监听。检测信道通过才能获得发送权。

    载波监听发生在:一个站点发送数据之前,以及发送数据的过程中。一旦发现有其他站点发送数据,则立即停止发送。

    顺便指出,信道上发送的是基带信号,并没有载波,“载波”一词为借用。

  3. 碰撞检测(冲突检测)

    碰撞检测就是“边发送边监听”。适配器边发送数据边检测信道上信号变化情况,看是否发生了 碰撞。若有两个计算机同时发送数据,则信道上的信号电压变化幅度会超过一定的门限值,则计算机(适配器)能够发现这种变化,后续作出进一步响应。

Question:既然每个站点发送数据前,信道已经清空,为什么发送过程中还要碰撞检测(可能发生碰撞)?

Answer: 信号传播需要时间。1Km的电缆传播时延为5us,记单程端到端时延为\(t\),若A站点向B站点发送数据后,经过极短时间\(e\)(\(e\)小于\(t\) us),数据尚未到达B,\(e\)时刻B依然检测到信道为空,此时B也发送数据,那么在时间\(t-e/2\) 时刻,发生碰撞,则A端在\(2t-e\)时刻检测到碰撞发生。

另外,定义单程端到端时延的两倍为争用期,因为从上面分析可以看到,A最迟在\(2t\)时刻检测到碰撞发生(当\(e\)趋向于0),在A发送数据\(2t\)时间内若不发生碰撞,则之后不会发生碰撞。下面对以太网应用CSMA/CD协议的具体规定。

以太网应用CSMA/CD协议

以太网应用CSMA/CD协议,实现了半双工通信,其具体的规定和要点如下:

  1. 以太网发送数据采用曼彻斯特编码。
  2. 发送前(中)载波监听。
  3. 争用期2t定义为51.2us,对于10Mbit/s的以太网,可以算出争用期内发送了512bit数据,故也称作512比特时间。在这个时间内,传播的距离约为5km,但实际上达不到这么多。

    由于争用期内必须发送完512bit才能检测是否发生了碰撞,故以太网规定最短帧长为512bit,即64字节,若数据不够,则需要填充。

  4. 若检测到发生碰撞,等到一段时间后再发送。具体的等待时间采用截断二进制指数退避算法,即:

    在区间\([0,1,3,...(2^k-1)]\)内随机选出一个数\(r\),等待\(r×2t\)时间。即随机个争用期的时间。

    具体\(k\)为:\(重传次数,k = Min(重传次数,10)\)。

    另外,规定重传次数达到16次,则表示想发送数据的站点太多,丢弃该帧,向高层报告。

  5. 强化碰撞策略。一旦检测到发生碰撞,则立即发送32或48bit的人为干扰信号,让所有站点都知道发生了碰撞。
  6. 帧最小间隔为9.6us。因为以太网的帧并没有个帧结束定界,故最小间隔是应有的,这样也可以保证接收站点来得及缓存清理和处理。
  7. 时间计算。若发送时延为\(t0\),传播时延为\(t\),A发送完毕到检测到发生碰撞的时延为\(tB\),强化信号时延为\(tJ\),则因为碰撞浪费的时延为\(tB+tJ\),总线被占用的时延为\(tB+tJ+t\),因为最后1bit还要经过一个单程端到端时延。

信道利用率

说明以太网信道利用率。

发送一帧的时间是(若干个争用期时间\(2t\))+发送时延\(T_0\) + 单程端到端时延\(t\)。可见,提高信道利用率,就要减小\(t\)和\(T0\)之比。定义:$a = \frac {t} {T_0} \(,希望\)a$越小越好。

信道极限利用率为:假设发生碰撞,极限利用率为:

\(S_{max}=\frac{T_0}{T_0+t}=\frac{1}{1+a}\) ,可见,\(a\)越小越好。

以太网的MAC层

上面提到过,对于广播信道,802.3将数据链路层划分为LLC和MAC,但实际上LLC无用,只讨论MAC。MAC就是媒体接入控制的意思。因而,实际上广播信道的数据链路层就是指MAC层。

MAC地址

MAC地址是一个硬件地址,于网卡的ROM中。他是一个48bit即6个字节的序列,现在使用的是EUI-48。一个地址是一个站的名字或者标识符,它由注册管理机构RA同一颁发。前三个字节为公司标识符,即组织唯一标识符OUI,这是生产公司申请到的。后三个字节为扩展标识符,为公司自己制定。

IEEE规定,MAC地址的第一字节的最低位为I/G位,标志是I(individual)或者G(group),为I时为0,表示单个站地址,G时为1,表示组地址,用来多播。

MAC地址的第一字节的倒数第二位为G/L位,表示全球管理(0)/本地管理(1),若不申请全球OUI,也可以使用本地管理,即将G/L位置1。

这样,实际上全球MAC共有\(2^{44}\)个。

局域网内就根据MAC地址进行发送、接受数据,当某站点接收到帧,检查MAC目的地址是否与本机MAC相匹配,不匹配则不接受。

发送的帧包括:单播帧、广播帧(全1)和多播帧。

MAC帧格式

MAC帧(+最前面插入8字节)格式如下:

前同步码 帧开始定界符 目的地址 源地址 类型 数据 FCS
1010..10 1010101011 目的MAC 本站MAC 网络层类型 数据报 CRC检验
7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节
  1. 上面的表格中,前8个字节不属于MAC帧内容,只是为了帧同步和开始定界,CRC也不检测前8字节是否出错。
  2. MAC帧的范围是64字节-1518字节,数据部分是46-1500字节。

扩展以太网

扩展以太网主要从下面两方面。

物理层上扩展以太网

工作在物理层的转发器、集线器,将多个局域网连接起来,扩大碰撞域,但并不增加吞吐量。

数据链路层扩展以太网

使用工作在数据链路层的以太网交换机,扩大以太网。交换机可以实现全双工,并行,存储数据帧缓存,以及自学习交换表(地址表)进行转发。这种方式增加了吞吐量。

应注意自学习交换表的方法,P100,另外,为了防止数据在物理环路上绕圈子,采用“生成树协议STP”,将某些链路在逻辑上切断,其过程类似于最小生成树。

虚拟局域网

不同局域网内的几个计算机可以虚拟的连接起来构成虚拟局域网VLAN,以实现某些特定目的。

VLAN就是由一些局域网网段构成的与物理位置无关的逻辑组。

VLAN的帧增加了4个字节的VLAN标识符,标记此站点属于哪个VLAN。

这样可以防止广播风暴。

器件

总结工作在物理层的:转发器、集线器hub。

工作于数据链路层:交换机。

工作于物理+数据链路层:适配器。

高速以太网以及问题

传统以太网指的是10BASE T,意义10:10Mbit/s,BASE:基带信号,T:双绞线。

之前还有:

10BASE 5:10:10Mbit/s,BASE:基带信号,5:500m粗缆。

10BASE 2:10:10Mbit/s,BASE:基带信号,2:200m细缆。

现在带宽逐渐提高,已经有:

100BASE T:100:100Mbit/s,BASE:基带信号,T:双绞线。

吉比特以太网、10吉比特以太网等。

100BASE T

将带宽提高10倍,帧格式不变。参数\(a=\frac{t}{T_0}\),\(T_0\)变为\(1/10\),则\(a\)增加10倍,信道利用率降低。100 BASE T采用的策略是保证最短帧长不变,争用期减少到\(1/10\),即争用期为5.12us,帧最小间隔是0.96us,(这其实是将物理线路最长长度减少到\(1/10\),实际中100BASE-TX是100m)

吉比特以太网

发送速率1G bit/s。帧格式不变,吉比特以太网可以工作在半双工和全双工下,保持\(a\)不变,采取:

  1. 半双工下

    仍然保持物理线路最长为100m(与100BASE-T同),最短帧长依然为512bit(64字节),但争用期不再是512bit时间,而是512字节时间(扩大8倍),这样,发送不足512字节的帧,需要进行填充处理,使得达到512字节,这叫载波延伸。另外,还有分组突发功能,第一个短帧采用载波延伸,后面跟着的短帧则一个接一个发送,形成长度达到1500字节的数据。(这是为了保证不要每个短帧都填充,只要过了争用期就好了。)

  2. 全双工下

    不需要载波延伸和分组突发,因为不会发生冲突。

10吉比特以太网(10GE)

帧格式不变,只工作于全双工,不使用CSMA/CD协议,没有争用期之说。

NOTE:半双工下采用CSMA/CD,全双工不用CSMA/CD。

原文地址:https://www.cnblogs.com/duye/p/9903160.html

时间: 2024-10-08 21:41:59

【计算机网络】数据链路层总结的相关文章

计算机网络 —— 数据链路层

计算机网络 -- 数据链路层 一. 基本概念 链路(link):物理链路,一条无源的点到点的物理线路段,中间没有其他交换结点.一条链路只是一条通路的一个组成部分. 数据链路(data link):逻辑链路,= 物理链路 + 通信协议(控制数据传输).现在最常用的方法是使用 适配器(网卡) 来实现协议(硬件+软件).一般的适配器都包括了数据链路层和物理层这两层的功能. 帧(frame):数据链路层的协议数据单元 二. 基本问题 封装成帧:在一段数据的前后分别添加首部和尾部,这样就构成了一个帧. 首

计算机网络数据链路层

1.数据链路层使用的信道类型: 点对点信道(1对1) 广播信道(1对多),如:集线器.交换机 2.链路与数据链路: 链路:点对点的物理线路段,中间无任何其他交换结点 数据链路:通信协议 + 软件 + 硬件(一般用适配器即网卡来实现这些协议的软硬件,一般的适配器都包含了链路层和物理层这两层的功能) 3.数据链路层要解决的3个基本问题: 封装成帧:帧头尾用于界定帧 透明传输:发送前用转义字符(ESC)插入到数据包中包含的帧头.尾相同字符 差错检测:接收端用循环冗余检测(CRC)技术计算无余数时,才接

计算机网络--数据链路层

物理层 数据链路层:研究怎么从一个主机传送到另一个主机(在一个局域网内) 使用点对点信道 桢--点对点信道数据链路层的协议数据单元 IP数据报(PDU)--网络层的协议数据单元网络层 传送方式:见下图 三个基本问题 封装成桢:在一段数据前后添加首部和尾部7 首部和尾部作用就是:帧定界 最大传送单元MTU--帧的数据部分小于这个值 帧定界符:SOH和EOT(他们是二进制代码:分别为1和4).(这个东西在传输出现差错的时候作用明显,传送不完全的时候,我们可以通过帧定界符判断这个帧是否完全. 透明传输

计算机网络——数据链路层(PPP)

数据链路层使用的信道主要有以下两种类型: (1)点对点信道 (2)广播信道 使用点对点信道的数据链路层 首先明确一下"链路"和"数据链路"并不是一回事. 所谓链路,指的是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点. 数据链路除了必须有一条物理线路以外,还必须有一些必要的通信协议来控制这些数据的传输.若把视线这些协议的硬件和软件加到链路上,就构成了数据链路. 点对点信道的数据链路层的协议数据单元为帧 点对点信道的数据链路层在进行通信时的主要步骤:

[技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码

1.CRC.FCS是什么 CRC,全称Cyclic Redundancy Check,中文名称为循环冗余校验,是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误.它是利用除法及余数的原理来作错误侦测的. FCS,全称Frame Check Sequence,中文名称为帧校验序列,俗称帧尾,即计算机网络数据链路层的协议数据单元(帧)的尾部字段,是一段4个字节的循环冗余校验码. 注:CRC循环冗余校验和FCS帧校验序列是

计算机网络读书笔记-----数据链路层的可靠性

此篇是为了引出TCP的可靠机制. 停止等待协议: 在计算机网络发展的初期,通信网的传输质量普遍不是很好,所以数据传输的差错率较大.所以数据链路层就必须解决可靠传输的问题. 停止等待是最简单也是最基本的数据链路层协议 工作原理如下: 发送端每发送完一帧后就停止发送,等待接收端的确认,如果收到了接收端发来的确认帧,就继续发送下一帧. 在接收端,每收到一个无差错的帧,就将其交付给上层,并给发送端返回一个确认帧. 接收端如果收到有差错的帧,就悄悄的丢弃这个帧,其余什么也不做.发送端长时间没有收到接收端发

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

1.数据链路层基本概念及基本问题:                 2)基本问题:             ① 封装成帧:帧头+数据+帧尾+校验和                 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,确定帧的界限.                 首部和尾部的一个重要的作用就是进行帧定界. 用控制字符进行帧定界的方法举例: ② 透明传输:加转义字符,后再去掉转义字符,就跟没加一样.                 若传输的数据是A

计算机网络01:数据链路层-基本介绍

1. 总体认识 如今TCP/IP协议簇已是计算机网络的主流协议框架,它是一个四层协议,依下往上分为网络接口层.网络层.传输层.应用层.有很多人将网络接口层分为物理层和数据链路层,因此也称为五层协议.物理层考虑的是如何连接不同主机的传输媒体设备,以便完成网络通信,主要是一些硬件的规范:数据链路层则是考虑在一个局域网内,如何将网络数据从一个主机传输到另一个主机.本文将从数据链路层开始,探索计算机网络基本原理. 数据链路层在五层协议中的位置如下图所示,我们只需关注它与网络层和物理层的交互.当网络层的I

计算机网络读书笔记-----数据链路层

首先区分链路与数据链路的概念 链路只是从一个节点到相邻节点的一段物理线路,中间没有任何其他的交换节点.所以说链路只是一条路径的组成部分. 数据链路:是必要的物理线路和必要的通信协议构成数据链路. 数据链路层的协议数据单元---帧 类似在网络层协议数据单元是IP数据报 路由器的协议栈只有三层:网络层,链路层,物理层 数据链路层的任务是:把网络层交下来的数据发送到链路上,以及把接收到的帧中的数据取出并上交给网络层. 当两个主机进行通信时:应用进程将数据从应用层逐层往下传,经过传输层再到网络层,网络层

计算机网络基础---数据链路层

数据链路层知识梳理 在数据链路层传输的数据单位为:帧 链路和数据链路 链路:一条点到点的物理线路. 数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输. 若把实现这些协议的硬件和软件加到链路上,就构成了数据链路.(用网卡来实现这些协议的硬件和软件) 数据发送的模型 数据链路层主要使用的通道: 广播讯道: 一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到. 所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞). 主要有两种