第三章 数据链路层(一)

      序言

        我是一只菜鸟,又来了。开始今天数据链路层的学习吧。

                                                                                  ---WH

一、数据链路层基本概念及基本问题

      基本概念  和 三个基本问题 的讲解

     1、基本概念

        先来看一张图,理解一下:数据链路层之间的运输、数据链路层之间的信道。 说的是什么意思?

            看图中的注释,我们应该注意的就是这里说的数据链路层之间的信道等语句,是不考虑物理层中运输的问题。直接考虑链路层这一层。要注意这个事情,不然

                

              

        链路:一条点到点的物理线路段,中间没有任何其他的交换结点,通俗的将,就是一根线,其中不经过任何东西,这样的就是链路,一条链路只是一条通路的一个组成部分

        数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 通俗讲,就是经过了一些交换机呀,什么的,最终到达目的地,所有路段就是数据链路,而数据链路中就包含了多段链路。

        适配器:也就是网卡,就是用来实现数据链路上一些协议。

        帧:数据链路层上传送的就是帧,

            

    2、三个基本问题    

       封装成帧、透明传输、差错控制

        讲解如何封装帧,封装完后帧的传输问题、传输到达目的地,如何检验该段帧是否完整, 就是这三个问题。

      1、封装成帧

        看图就理解了。数据链路层就是在ip数据报的前面后末尾加了一个首部和尾部来代表ip数据包的开始和结束,首部和尾部都市由8位二进制数表示的,可以一样也可以不一样

            

      2、透明传输

         就是为了解决一个问题, 在ip数据包中如果有一个跟帧尾部一样的8位二进制数,则会提前结束接受数据包,这样数据就被破坏了。出现了如下图这样的问题

              

         解决办法:

              看图:通过在特殊字符前面增加一个转义字符 ESC, 就可以解决上面所遇到的问题,在接收端,将数据包中所有ESC的字符删除,遇到两个ESC的,就删除第一个,这样一开始传输的时候有ESC转义字符,接受完就没了,所以说的是透明传输

               

          

      3、差错检测

          问题:

            传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。

            为了检测传送的帧中ip数据包是否完整,是否没有被损坏,所以需要差错检测

          解决:循环冗余检测CRC,截个图,把概念性的文字截下来,看到这个人都晕了,其实很简单,

                  

            按照下图中的7步走,理解一下,然后再看上面的文字,就理解了。

                  

                检测:

                    若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。

                    若余数 R ≠ 0,则判定这个帧有差错,就丢弃。

           生成多项式:也很简单,例如上面的除数1101  就用P(X)=X3+X2+1 (X3是x的三次方的意思)  最高位是2的三次方,就是x的三次方这样算,例如,101101 P(X)=X5+X3+X2+1     

      

           这种冗余差错校验的特点:

                1这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错

                2只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。

                3只能是无差错接受:凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)

                4这是”不可靠“的,是无比特差错,而不是无传输差错的检测机制,要做到可靠的 还要加上确认和重传机制。即考虑帧重复、帧丢失、帧乱序的情况

                

3、可靠传输

      在有些情况下,我们需要数据链路层向上的网络层提供“可靠传输”的服务,就是发送端发送什么,在对应的接收端就收到什么, 前面的CRC只能检测出位数的差错,不能正确的检测出更精准的错误。

      1、停止等待协议

          停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组,详细的可以看书上的文字性描述,很简单,        

        超时重传:解决上面如果数据分组或确认分组丢失时,发送方将会一直等待接收方的确认分组的问题,设置一个超时计时器,弱到了超时计时器所设置的重传时间,而发送方仍收不到接收方的任何确认分组,则会重传原来的分组。

        重复分组:如果只使用超时重传来解决,不用发送确认分组,那么会出现重复分组的问题,就是当接收方收到分组后,发回确认分组时,确认分组丢失,那么会触发超时重传,则接收方会收到两个重复的分组,这里需要注意的是,是确认分组丢失。第一次发送的分组已经正确接收了。

     2、停止等待协议的算法

          因为手写实在太麻烦,所以截图过来看一下这个算法的具体步骤

        

          

        通过画图分析了一下正确的过程,其他依葫芦画瓢

      

    

     3、回退N步协议

         其实跟停止等待协议差不多,只是使用的是流水线传输方式,发送方不间断的发送分组,每次发送的分组大小有限制,如果不限制,可能会使接收方或网络来不及处理这些分组,导致分组的丢失,所以每次发送的分组大小可能是5,6或者更多。这种限制就是回退N步协议。

         回退N步协议:利用发送窗口来限制发送方连续发送分组的个数。要是发送窗口为1就是我们上面所讨论的停止等待协议。

      分析如何工作的

          

        这个就是回退N步协议,根据这个原理图,也能看出,为什么叫回退N步协议了,在哪里出错了,就必须回退到哪里全部重传,为了解决这个,又有了选择重传协议

    

      4、选择重传协议

         也就是改进回退N布协议,  方式都是一样, 在接受方必须逐一确认, 但是出现错误,只需要重传出现错误的那一个分组,不用全部重传,这里的全部,指的是在出现错误的分组之后的所有分组,前提是在同一个发送窗口中。

      5、总结可靠传输

          不可靠的链路上,通过各种协议,就能达到可靠传输,来保证数据的准确性。

时间: 2024-10-18 18:18:08

第三章 数据链路层(一)的相关文章

第三章 数据链路层(三)

序言 一上午搞那个路由器,在图书馆的局域网连路由器开wifi,忙活了一上午,有个疑问,那个插口直接连网线到电脑上就可以用,但是连到路由器上时路由器就不能够自己获取ip地址了,难道是因为线太长了吗?连到别的插口就可以了,等晚上人少的时候在试试,其中原理不是很清楚,希望学习完这本书能够理解一点,路由器设置就是傻瓜式的设置.赶紧写一下今天的这篇文章,结束掉数据链路层这一章节吧. ---WH 一.局域网 局域网和以太网的区别和联系? 是以太网就一定是局域网,但是局域网不一定就是以太网. 因为以太网就是一

《计算机网络(第7版)谢希仁 著》第三章 数据链路层 要点及习题总结

1.数据链路层的三个基本问题:封装成帧,透明传输,差错检测 2.点对点信道的数据链路层 (1)链路和数据链路 链路(物理链路):链路(link)就是从一个结点到相邻结点的一段物理线路(有线或无线〉,而中间没有任何其他的交换结点 数据链路(逻辑链路):为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输,换而言之,数据链路=链路+通信协议 (2)早期的数据通信协议叫通信规程 (3)数据链路层的协议数据单元-------帧 (4)封装成帧:封装成帧

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

第三章  物理层 一  各专有名词含义 1. 数据链路使用的信道 点对点信道(网线)这种信道使用一对一单播的点对点通信方式. 广播信道(无线局域网)这种信道使用一对多的广播通信方式,因此过程比较复杂.广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送. 2. 链路与帧 链路 (link) :是一条无源的点到点的物理线路段,中间没有任何其他的交换结点.又称为“物理链路”.一条链路只是一条通路的一个组成部分. 数据链路 (data link): 除了物理线路外,还必须有

2016.6.13 计算机网络复习要点第三章 数据链路层

**数据链路层使用的信道主要有以下两类: (1)点对点信道:使用一对一的点对点通信方式. (2)广播信道:使用一对多的广播通信方式.广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送. 3.1使用点对点信道的数据链路层 **链路:就是从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点.链路只是一条路径的组成部分. **数据链路:当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输.若把实现

第三章 数据链路层

3.1数据链路层基本概念及基本问题 3.1.1基本概念 数据链路层使用的信道主要有以下两种类型: 点对点信道:这种信道使用一对一的点对点通信方式.(使用PPP协议) 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂.广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送.(CSMA/CD 带冲突检测的载波侦听检测多路访问检测) 链路(link)是一条点到点的物理线路段,中间没有任何其他的交换结点. 一条链路只是一条通路的一个组成部分. 数据链路(data l

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

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

【知识强化】第三章 数据链路层 3.7 广域网

这节课我们来学习一下PPP协议以及HDLC协议. 那这两种协议呢都是通常用于广域网当中,所以我们先来看一下广域网的概念.它是通常跨接很大的物理范围,所覆盖的范围呢从几十公里到几千公里,可以连接多个城市多个国家,而且还可以横跨几个洲,几个洋,提供一个远距离的通信,形成一种国际性的远程网络.像我们现在使用的互联网Internet,就是一个广域网的例子. 那广域网的通信子网呢主要使用的是一种分组交换的技术.那这种分组交换技术,我们在之后网络层章节会具体展开,大家清楚它就可以了.那广域网的通信子网是可以

2017上半年软考 第三章 重要知识点

第三章 讲了信息系统集成所需要的技术: 重点是:信息系统生命周期:立项[形成需求规格说明书].开发.运维.消亡: 信息系统建设包括:设备采购.系统集成.软件开发.运维服务: 软件开发常用方法:结构化方法[整个系统分若干阶段依次进行.每个阶段都有详细的文档编制要求:注重全局和整体性: 缺点开发周期长,文档设计繁琐,设计说明繁琐,工作效率低,要在开发之初认识系统需求].原型法[快速开发一个原型.反复修改来实现用户需求: 分抛弃型原型.进化型原型].面向对象法[关键:能否建立全面.合理.同意,反映需求

Python黑帽编程3.0 第三章 网络接口层攻击基础知识

3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP四层模型之间的对应关系,最后是本章教程需要的几个核心Python模块. 3.0.1 TCP/IP分层模型 国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model).