精华内容
下载资源
问答
  • 数据链路层透明传输

    千次阅读 2019-04-25 23:36:53
    发送端的数据链路层,在含有开始,结束和这字符本身的二 进制编码插入“ESC”字符,才发送给接收端的数据链路层, 然后接收端的数据链路层再把对方加的字符删掉,才发给自 己的网络 也就是说,“ESC”字符的加加...

    如果一段数据中出现EOT,那我要怎么告诉计算机,这个不是
    结束。不然的话后面的数据部分会被接收端当做无效帧而丢
    弃。

    通过字节填充法可以解决上面这个问题(透明传输的问题)
     发送端的数据链路层,在含有开始,结束和这字符本身的二
    进制编码插入“ESC”字符,才发送给接收端的数据链路层,
    然后接收端的数据链路层再把对方加的字符删掉,才发给自
    己的网络层
       也就是说,“ESC”字符的加加减减只在数据链路层中实
    现,出到其它层之后就好似乜都无发生过,像没加过一样,
    所以叫透明传输,我们也把这个“ESC”字符的加加减减叫做
    字节填充/字符填充。

    展开全文
  • 数据链路层功能之组帧和透明传输

    千次阅读 2020-03-16 17:40:56
    数据部分有一个最大传送单元MTU,即有传输数据上限。所组成的帧的长度就是帧长。 接收端在收到物理上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。 首部和尾部包含许多的控制...

    封装成帧

    什么是组帧?
    是指把网络层的IP数据报加头加尾。数据报成为帧的数据部分。数据部分有一个最大传送单元MTU,即有传输数据上限。所组成的帧的长度就是帧长。
    在这里插入图片描述

    接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

    首部和尾部包含许多的控制信息,他们的重要作用是:帧定界。(确定帧的界限)

    帧同步: 接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

    组帧的四种方法:
    1.字符计数法
    2.字符(节)填充法
    3.零比特填充法
    4.违规编码法

    在介绍着四种方法之前要先了解“透明传输”这个概念。

     

    透明传输

    什么是透明传输?
    指不管所传数据是什么样的比特组合,都能在链路上传送。

    当比特组合和某个控制信息完全一样时,就必须采取适当措施,让接收方不会认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

    这里的适当措施其实也就是上面提到的组帧方法。

     

    透明传输在组帧上的应用

    1.字符计数法
    每一个帧的首部都有一个计数字段(第一个字节,八位二进制数),其用来标明帧内的字符数。(包含该计数字段)。
    在这里插入图片描述
    但该方法有一个很大的缺点:
    当某个帧的首部,即计数字段发生错误,就会导致后面的帧都出错。
    如果第1帧计数字段为3,那么该帧中只有5、1、2,第2帧的首部(计数字段)就是数字3。导致后面的帧混乱。

     
    2.字符填充法
    我们拿出一个帧来举例。如下图:
    在这里插入图片描述
    SOH和EOT分别表示帧开始和结束。都是八位的比特组合。
    ①如果传送的帧由文本文件组成,那么都是从键盘上输入的,都是ASCII码,都可以传输过去。即透明传输。
    ②如果传送的是由非ASCII码的文本文件组成时(如二进制代码程序或者图像)。这时可能会导致帧中出现帧开始或结束的比特组合。如下图:
    在这里插入图片描述
    这样就会导致在接收端提前结束帧的识别。那么就需要字符填充法。
    发送时,除了首尾的控制信息之外,每个控制信息之前加入转义字符(一个字节)。接收时在将转义字符去掉。
    在这里插入图片描述

     
    3.零比特填充法
    还是拿一个帧来举例,同样除了首尾之外,还出现了控制信息。那么我们用零比特填充法来解决。

    操作:
    在发送端,扫描整个信息字段,只要连续5个1,就立即填入一个0。
    在接收端,先找到标志字段,确定边界,再用硬件对比特流进行扫描,发现连续5个1时,就把后面的0删除。
    总结一个口诀: 5 “1” 1 “0”(5个1,插入1个0)

     
    4.违规编码
    比如曼彻斯特编码,规定先高后低为1,先低后高为0,当然也可以反过来定义。
    在这里插入图片描述
    在这个编码中是不会出现“高-高”和“低-低”的,那么我们就用这两个来定界帧的起始和终止。

     
    以上四种方法既是组帧的方法,又确保了透明传输。

    由于字节计数法中Count字段的脆弱性(其值若有错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性。所以比较普遍使用的帧同步法是比特填充和违规编码法。

    展开全文
  • 如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地“找到帧的边界”。 解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。 发送端的数据链路层在数据中出现控制...

    一、透明传输

    如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地“找到帧的边界”。

    解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。

    发送端的数据链路层在数据中出现控制字符“SOH” 或“EOT”的前面插入一个转义字符“ESC” (其十六 进制编码是 1BH)。接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

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

    二、差错检测

    在传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1。

    在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。误码率与信噪比有很大的关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

    差错控制是数据链路层的主要功能之一,但不是数据链路层所特有的功能。在网络层和传输层也都有差错控制能力,只是差错控制的对象不同。 数据链路层的差错控制是保证相邻结点之间的传输差错控制在所允许的最小范围内

    循环冗余检验的原理

    在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。

    在发送端,先把数据划分为组。假定每组k个比特。假设待传送的一组数据 M = 101001(现在 k = 6)。 我们在 M 的后面再添加供差错检测用的n位冗余码一起发送。

    用二进制的模2运算进行2n乘M的运算,这相当于在M后面添加n个0。得到的 (k + n) 位的数除以事先选定好的长度为 (n+ 1) 位的除数P,得出商是Q而余数是R,余数R比除数P少1位,即R是n位。将余数R 作为冗余码拼接在数据 M 后面发送出去。

    计算举例

    现在 k = 6, M = 101001。设n = 3, 除数 P = 1101,被除数是 2^nM= 101001000。模2运算的结果是:商 Q = 110101, 余数R= 001。 把余数R作为冗余码添加在数据M的后面发送出去。发送的数据是:2^nM + R 即:101001001,共(k + n) 位。

    帧检验序列FCS 

    在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。循环冗余检验CRC 和帧检验序列 FCS 并不等同。CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

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

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

    (2)若余数 R!=0,则判定这个帧有差错,就丢弃。

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

    循环冗余码 

    在数据链路层传送的帧中,广泛使用了CRC 检错技术。

    循环冗余校验码CRC(Cyclic Redundancy Check),能够检测出数据帧中的1位或n位错误,然后丢弃重传, 具有良好的检错能力。CRC方法也称为多项式编码(表示除数),标准格式为:

           

    仅用循环冗余检验CRC差错检测技术只能做到无差错接受(accept)

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

    要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。

    应当明确,“无比特差错”与“无传输差错”是不同的概念。 • 在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。 

    展开全文
  • 数据链路层主要解决3个问题:封装成帧、透明传输、差错检测。 封装成帧 “帧”是数据链路中数据的基本单位,发送端在一段数据前后添加特定标记形成“帧”,接收端根据前后特定标记识别出“帧”。 帧首部和...

    OSI模型中的数据链路层与物理层,在TCP/IP协议中同属于网络接口层。

    数据链路层为物理连接之间提供了可靠的数据传输。数据链路层主要解决3个问题:封装成帧、透明传输、差错检测。

    封装成帧

    “帧”是数据链路层中数据的基本单位,发送端在一段数据前后添加特定标记形成“帧”,接收端根据前后特定标记识别出“帧”。

    帧首部和尾部是特定的控制字符(即:特定比特流),帧首部(SOH)使用00000001,帧尾部(EOT)使用00000100。

    透明传输

    假如帧数据中刚好存在帧首部、帧尾部的比特流,那该怎么处理呢?

    下图的帧数据中出现了帧尾部的比特流。

    解决方式是在帧数据的EOT前面加一个转义字符

    如果帧数据中就包含了ESC+EOT比特流,则在前面再加一个转义字符。

    这种处理方法跟编程语言中使用“\”作为转义字符是一个道理。

    “透明”在计算机领域是一个非常重要的术语,透明即“当它不存在”。在特殊比特流前面加转义比特流,将帧数据中的特殊比特流透明化,以便能把这些比特流标识为正常的数据。

    差错检测

    数据在物理层以比特流的方式传输,传输过程中可能发生差错,0可能变成1,1可能变成0。数据链路层提供差错检测功能,在发送的数据块中添加一些冗余信息,以便接收方判断数据在传输过程中是否出错。

    奇偶检验码

    奇偶检验码是一种通过增加冗余位使得码流中"1"的个数恒为奇数或偶数的编码方法。下面以码流中“1”恒为偶数讲解。

    假设要发送数据是00110010,1的个数是奇数个,在数据的末尾加1,保证数据中“1”为偶数个。假设要发送数据是00111010,1的个数是偶数个,在数据的末尾加0,保证数据中“1”为偶数个。

    当001100101在传输过程中有一个比特位发生变化,变成了000100101,接收端收到数据后,发现“1”的个数为奇数个,则认为此数据在传输过程中发生了错误。

    奇偶检验有局限性,如果数据有两个比特位发生错误,奇偶检验无法检测出错误。例如001100101在传输过程中,前面的两位发生错误,变成111100101,由于“1”的个数还是偶数个,则服务端认为此数据是正确的。

    循环冗余校验码CRC

    目前在数据链路层广泛使用了CRC检测技术(循环冗余检测)。CRC校验码是在数据后面添加n位冗余码,构成“数据+n位冗余码”的帧发送出去。

    CRC用到了模“2”除法,二进制的模“2”除法不会向前一位借位,仅是一种异或的数学关系。例如:1001除以1010,商为1,余数是11。1101除以1011,商为1,余数是110。如下图:

    计算CRC循环冗余校验码有3步骤:

    1、选定一个用于校验的多项式G(x),G(x)的位串(也叫“最高阶”)是r。

    2、在数据尾部添加r个0,使用模“2”除法除以多项式的位串。

    3、得到的余数填充在原数据末尾,得到可校验的位串。

    下面以G(x)=x^{3}+x^{2}+1,数据=101001 为例子讲解。

    发送端

    1、 G(x)=x^{3}+x^{2}+1,最高阶是3,对应的二进制串为1101。

    2、要校验的数据为101001,由于G(x)最高阶是3,则在数据后加3个0,变成101001000。

    101001000除以G(x)对应的二进制串1101

    3、将余数001添加到原始数据101001的后面,变成101001001,这个数据就是发送给接收端的数据。

    接收端

    接收端将接收到的数据除以G(x)=x^{3}+x^{2}+1对应的二进制串1101,如果余数为0,则认为数据没有出错。

    例如:接收端收到101001001后,使用101001001除以G(x)=x^{3}+x^{2}+1对应的二进制串1101,余数为0,证明数据在传输过程中没发生错误。

    最大传输单元MTU

    MTU即Maximum Transmission Unit 最大传输单元。它是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。

    数据链路层传输数据的基本单位是帧,数据帧不可能无限大,以太网的MTU一般为1500字节。

    路径MTU是指一条因特网传输路径中,从源地址到目的地址所经过的“路径”上的所有IP跳的MTU的最小值。

    上图中计算机A向计算机B传输数据会经过几个小型网络,小型网络之间的MTU各不相同。路径MTU就是此“路径”上最小的MTU,路径MTU = 1492

    以太网协议

    MAC地址

    网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写进硬件内部。 MAC地址是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号或者中杠隔开,如08:00:20:0A:8C:6D是一个MAC地址。

    window使用 ipconfig -all 命令查看MAC地址

    以太网协议

    以太网(Ethernet)是一种使用广泛的局域网技术,可以完成相邻设备的数据帧传输,是TCP/IP协议簇四层模型的网络接口层使用的协议。

    以太网协议数据帧的格式如下:

    目的地址、原地址是接收端、发送端的MAC地址,各占6个字节(前面有提到MAC地址是6个字节的)。

    类型用于表示网络层使用的协议(备注:数据链路层的上一层就是网络层),占2字节,例如:0800表示网络层使用的是IP协议。

    帧数据是网络层交付给数据链路层的数据。数据链路层将网络层的数据加上头(目的地址、源地址、类型),加上尾(CRC冗余校验码)就组成了以太帧网协议的数据帧。

    数据链路层将CRC循环冗余校验码添加到以太帧的尾部。

    数据链路层使用以太网协议完成相邻设备间的数据传输。

    问题一:如上图所示,计算机A要将数据发送给计算机C,过程是怎样的呢?

    1、路由器E维护了一张MAC地址表,存储了计算机A、B、C的MAC地址与硬件接口(即:路由器插槽)的映射。

    2、路由器接收到A发送的数据帧后,读取数据帧中的目的地址。路由器通过MAC地址表知道目的地址的设备插在了E3接口上,则将数据帧发送给E3接口的设备。

    问题二:假如MAC地址没有C与E3的映射会怎样呢?

    1、路由器收到A发送的数据帧后,在MAC地址表中找不到目的地址与硬件接口的映射,就会将数据帧广播给除了A以外的所有设备。

    2、将数据广播出去后,路由器将收到B、C的响应信息,并将C的MAC地址与硬件接口的映射更新到MAC地址表。

    问题三:如果A与C之间有多个路由器,数据如何传输?

    以太网协议只能解决相邻节点的数据传输,这种跨设备传输的问题将交给网络层解决。请看这篇博客 https://blog.csdn.net/u010606397/article/details/110422346

     

     

     

    展开全文
  • 计算机网络之数据链路层原理

    千次阅读 2019-05-29 17:30:04
    以及数据链路层数据可能会遇到那些问题呢?搞清楚这些问题之前,先让我们看下面经典的数据链路层数据发送模型。 主机H1与主机H2进行网络通信,主机H1发送一个数据包给H2,这个数据包经历若干路由器最终到达主机H2。...
  • 数据链路层.pptx

    2020-12-20 19:14:55
    数据链路层结构:“MAC子”的最基本功能就是如何控制不同用户数据传输中对物理层传输介质的访问,其中包括:介质访问时的寻址和介质访问冲突的解决。“LLC子”的最基本功能就是负责数据链路中“逻辑链路”的...
  • 一、一些概念 1.链路和数据链路  ...2.数据链路层三个基本功能:封装成帧、透明传输、差错控制        ①封装成帧:就是在一段数据的前后分别添加首部和尾部
  • 文章目录1 使用点对点信道的数据链路层1.1 数据链路和帧1.2 三个基本问题1. 封装成帧2 点对点协议 PPP3 使用广播信道的数据链路层4 扩展的以太网5 高速以太网 数据链路层使用的信道主要有以下两种类型: 点对点信道...
  • 链路 (link) 是一条无源的点到点的物理线路段,中间没有... 一般的适配器都包括了数据链路层和物理这两的功能。(路由器的接口也是工作在数据链路层) 也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路
  • 数据链路层:2、封装成帧、透明传输封装成帧的定义:透明传输的定义:为了实现透明传输的组帧方法:字符计数法:字符填充法:零比特填充法:违规编码法:四种方法的比较: 封装成帧的定义: 帧的数据部分 = IP数据...
  • 文章目录数据链路帧的概念透明传输差错检测数据链路层可靠传输协议滑动窗口(连续 ARQ 协议)解决发送帧出错的协议 数据链路层 数据链路的功能 为网络提供服务: 链路管理 :数据链路的建立、维持和释放。 ...
  • 文章目录封装成帧透明传输字节/符填充差错检测 CRC=>FCS差错表现奇偶校验码循环冗余码(CRC)帧检验序列(FCS) 封装成帧 透明传输 字节/符填充 差错检测 CRC=>FCS 差错表现 奇偶校验码 奇偶校验无法纠错...
  • 三个基本功能 封装成帧(framing) ...发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。 字节填充(byte stuffing)或字符填充(character stuffin...
  • 基本概念 结点:主机、路由器 链路:网络中两个结点之间的物理通道,链路的...数据链路层在物理提供服务的基础上向网络提供服务,其最基本的服务是将源自网络来的数据可靠地传输到相邻节点的目标机网络。其主要
  • 数据链路层传输的三个基本问题

    千次阅读 2017-12-20 18:53:31
    封装成帧 透明传输 差错控制 封装成帧 : 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。...透明传输 : 解决透明传输问题:字节填充(byte stuffing)或字符填充(character st
  • 史上最全的数据链路层基础知识详解

    千次阅读 多人点赞 2020-03-14 16:45:53
    三个基本问题2.1封装成帧2.1.1基本概念2.1.2常用成帧方法2.2透明传输2.2.1解决透明传输问题2.2.2用字节/字符填充法解决透明传输问题2.2.3字节填充的标志字节法的特点.2.2.4字节填充的首尾定界法2.2.5零比特填充法2.3...
  • 数据链路层: 前言: 数据链路层使用的信道主要有以下的两种类型:  1. 点对点信道。这种信道使用一对一的点对点信道方式。  2. 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。 通常我们使用的...
  • 从整个互联网来看,局域网仍属于数据链路的范围。 链路 VS 数据链路 链路:从一个结点到相邻结点的一段物理链路。 数据链路:物理线路+实现通信协议的硬件和软件。...帧:数据链路层的协议传输单元 步骤:(.
  • 数据链路层传输层的疑惑解答

    千次阅读 2019-01-22 23:37:19
    1)停止等待、后退N帧和滑动窗口  【1】这三种协议是做什么的?  流量控制:接收方控制发送...数据链路层负责结点之间链路的事情。把有比特查错的物理信道变成无比特差错的数据链路。  运输负责应用进程之间...
  • 一、 封装数据帧、 二、 "数据帧" 附加信息、 三、 "数据帧" 帧同步、 四、 "数据帧" 长度、 五、 "数据帧" 组装方法、 六、 透明传输、 七、 字符计数法、 八、 字符填充法 ( 加转义字符 ...十一、 透明传输常用方法、
  • 计算机网络第三弹——数据链路层

    千次阅读 2019-05-11 15:07:50
    彩蛋 ... 建议大家关注左边栏二维码所示公众号,后台回复"N4-2...数据链路层概述 数据链路是计算机网络五协议体系结构的第2(从下往上计数),在整个体系结构中有非常重要的作用: ​ 图1:不同主机之间通...
  • 透明传输中的“透明”是一个很重要的术语,它表示某一个实际存在的事物看起来却好像不存在一样,在数据链路层透明传送数据表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。...
  • (1)结点A的数据链路层把网络交下来的IP数据报添加首部和尾部封装成帧。 (2)结点A把封装好的帧发送给结点B的数据链路层。 (3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的...
  • 一、会话 提供的服务可使应用建立和维持会话,并能使会话获得同步。会话使用校验点可使通信会话在通信失效...这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示方法不同。 例如,IBM主机...
  • 数据链路层

    万次阅读 2018-07-07 18:30:16
    本篇目录***************************************数据链路的三个基本问题使用点对点信道的数据链路层使用广播信道的数据链路层以太网MAC的硬件地址***************************************一、数据链路的三...
  • 一、使用点对点信道的数据链路层 计算机网络体系结构 数据链路层是实现设备之间通信的非常重要的一 数据链路的作用 仅从数据链路层观察帧的流动 数据链路层使用的信道 1.1.1 数据链路和帧 链路(link)是一...
  • 点对点信道的数据链路层

    千次阅读 2018-12-16 13:02:52
    数据链路层协议有许多中)数据路层的三个基本问题 问题一:封装成帧 问题二:透明传输 问题三:差错检测(解决的一般来说是比特差错) CRC(Cyclic Redundancy Check)的差错检错技术简单例子 数据链路和帧  ...
  • # 数据链路层主要研究的三个基本问题     封装成帧:源mac,目的mac、帧开始符、帧结束符、帧校验序列     透明传输:文本传输、可执行文件传输的界定符    ...
  • 学习总结-计网-数据链路层-封装成帧(帧同步)
  • 数据链路层简介

    千次阅读 2020-09-16 17:54:04
    为什么设置数据链路层2.数据链路层解决了什么问题2.1.封装成帧2.2.透明传输2.3.差错校验2.4.MAC寻址3.链路向网络提供的服务3.1.无确认的无连接服务3.2.有确认的无连接服务3.3.有确认的面向连接服务 1.为什么设置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,714
精华内容 18,685
关键字:

数据链路层透明传输