4、数据链路层1(计算机网络笔记)

三、数据链路层

3.1 基本概念及基本问题

3.1.1基本概念

数据链路层的简单模型

1

说明:本章我们只是关注数据链路层的传输,即仅从数据链路层观察帧的流动。

  • 数据链路层的信道类型
    数据链路层使用的信道主要有以下两种类型:
    1、点对点信道:这种信道使用一对一的点对点通信方式
    2、广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用抓用的共享信道协议来协调这些主机的数据发送。

  • 链路与数据链路
    1、链路是一条点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
    2、数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现今最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。


  • 2

    说明:网络层中传递过来的数据报加上帧头和帧尾以及校验之后就变为数据帧了。数据链路层就像一个数字管道,所以常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位就是帧。

3.1.2 三个基本问题

  • 封装成帧
    1、封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
    2、首部和尾部的一个重要作用就是进行帧定界。
    3

    下面看一个例子,用控制字符进行帧定界的方法
    4

    说明:试想,帧还未发送完,发送端出了问题,只能重发该帧。接收端却收到了前面“半截子帧”,它会抛弃吗?为什么?当然这里的开始和结束字符也可以是别的。
  • 透明传输

    5

    说明:若传输的数据是ASCII码中“可打印字符(供95个)”集时,一切正常。若传输的数据不是仅由“可打印字符”组成时,就会出现问题,如图所示。如果数据部分恰好包含了开始标记或者结束标记,如何告诉计算机?
    6

    说明:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。字节填充或字符填充:接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现在数据当中,那么应在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

  • 差错控制
    传输过程中可能会产生比特差错:1可能会变成0,而0也可能变成1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。误码率与信噪比有很大关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。数据链路层中如果发现数据有误会直接将其扔掉,而是否需要重发是由传输层来决定。

3.2 两种情况下的数据链路层

3.2.1 使用点对点信道的数据链路层

  • PPP协议使用场合

    7

    说明:我们家用的电脑到路由器的那根线就是点对点,使用的是PPP协议。这是一个数据链路层的协议。现在全世界是有那个的最多的数据链路层协议是点对点协议PPP(Point-toPoint Protocol)。用户使用拨号电话线接入Internet时,一般都是使用此协议。

  • PPP协议满足的要求

    • 简单:这是首要的要求
    • 封装成帧
    • 透明性
    • 多种网络协议:如TCP
    • 多种类型链路
    • 差错检测
    • 检测连接状态
    • 最大传送单元
    • 网络层地址协商
    • 数据压缩协商
  • PPP协议不需要满足的要求

    • 纠错
    • 流量控制
    • 序号
    • 多点线路
    • 半双工或单工链路
  • PPP协议的组成

    • 数据链路层协议可以用于异步串行或同步串行介质
    • 它使用LCP(链路控制协议)建立并维护数据链路连接,如身份验证,计费
    • 网络控制协议(NCP)允许在点到点连接上使用多种网络协议,如图所示
      8
  • PPP协议的帧格式

    9

    说明:其中A、C段是固定的,因为这是点对点,所以不需要地址。而FCS是帧检验序列。PPP是面向字节的,所有的PPP帧的长度都是整数字节。
    这里也会出现字节填充的问题:信息字段中出现了标志字段的值,可能会被误认为是“标志”,怎么办?

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

如果信息部分传递的不是上面所说的字节流,而是二进制流,则透明传输的问题需要使用零比特填充方法:PPP协议用在SONET/SDH链路时,是使用同步传输(一连串的比特连续传送)。这时PPP协议采用零比特填充方法来实现透明传输。在发送端,只要发现有五个连续的1,则立即填入一个0。接收端对帧中的比特流进行扫描。每当发现五个连续1,就把这五个连续1后的一个0删除。

10

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

    • 在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理
    • Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输页式可靠的。比如在传输的过程中数据丢失了、有错,这里是不会让发送端重发的,如果有错就扔掉。
    • 帧检验序列FCS字段可保证无差错接受。
  • PPP协议的工作状态
    当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。这些分组及其响应的选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机称为Internet上的一个主机。通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。

3.2.2 使用广播信道的数据链路层

局域网中使用广播信道进行数据传输。

  • 共享通信媒体
    1、静态划分信道(太麻烦,一般不使用)
    频分复用
    时分复用
    波分复用
    马分复用
    2、动态媒体接入控制(多点接入)
    随机接入(主要被以太网采用)
    受控接入,如多点线路探寻或轮询(目前已不被采用)

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

    11

    说明:这是正常情况下的情况,但是如果A计算机想要获得相关数据,就可以使用一些抓包工具实现,这样信息就不安全了。

  • 以太网使用CSMA/CD协议
    CSMA/CD表示载波监听多点接入/碰撞检测Carrier Sense Multiple Access with Collision Detection。“多点接入”表示许多计算机以多点接入的方式连接在一根总线上行。“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞,就是用电子技术检测总线上有没有其他计算机发送的数据信号。

  • 碰撞检测

    • 碰撞检测就是计算机边发送数据边检测信道上的信号电压大小。
      1、当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)
      2、当一个站检测到信号电压摆动值超过一定的门限值时,就人为总线上至少有两个站同时在发送数据,标明产生了碰撞。
      3、所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称“冲突检测”。
    • 检测到碰撞后
      1、在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
      2、每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
  • CSMA/CD协议的重要特性
    使用此协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。每个站在发送数据之后一小段时间内,存在着遭遇碰撞的可能性。这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

  • 争用期
    最先发送数据帧的站,在发送数据帧后至多经过时间2τ(两倍的端到端时延)就可知道发送的数据帧是否遭到了碰撞。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
    争用期
    1、以太网的端到端时延称为争用期或碰撞窗口。通常,取51.2μs为争用期的长度。
    2、对于10Mb/s以太网,在争用期内可发送512bit,即64字节
    3、以太网在发送数据时,若前64字节未发生冲突,则后续的数据就不会发生冲突
    最短有效帧长
    1、如果发生冲突,就一定是在发送的前64字节之内
    2、由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于64字节
    3、以太网规定了最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。

  • 二进制指数类型退避算法
    发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据

    • 确定基本退避时间,一般是取为争用期
    • 确定参数k,k = Min[重传次数, 10]
    • 从整数集合[0, 1, ......, (2^k-1)]中随机地取出一个数,记为r。重传所需的时延就是r倍的基本退避时间
    • 当重传达16次仍不能成功时即丢弃该帧,并向高层报告。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348

推荐阅读更多精彩内容