你想要的数据链路层,都在这里了!

点击蓝色“程序员的时光 ”关注我 ,标注“星标”,及时阅读最新技术文章

写在前面:

小伙伴儿们,你们好!这篇计算机网络数据链路层总结了好久,图文并茂,绝对是干货类型!喜欢的话多多支持哦~

思惟导图:

思惟导图

1、数据链路层的基本概念;

  • 做用:
    数据链路层解决的是将 源计算机网络层来的数据 可靠地传输到 相邻节点的目标计算机的网络层。
  • 功能:
    如何将数据组合成 数据块 (在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位); 如何 控制帧在物理信道上的传输 ,包括如何 处理传输差错 ,如何 调节发送速率以使之与接收方相匹配 ;在两个网路实体之间提供 数据链路通路的创建、维持和释放管理。
  • 链路:
    链路(Link)是指的从 一个节点到相邻节点的一段物理线路 (有线或无线),而中间没有任何其余的 交换节点
  • 数据链路:
    数据链路(Data Link)则是另外一个概念,这是由于当须要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的 通讯协议 来控制这些数据的传输;
  • 数据链路和帧:
    数据链路层把 网络层交下来的数据 封装成帧发送到链路上,以及把 接收到的帧中的数据取出并上交给网络层 。在因特网中, 网络层协议数据单元就是 IP数据报 (或简称为数据报、分组或 包)。数据链路层 封装的帧 ,在物理层变成 数字信号 在链路上传输。
    结点A传输到结点B
    此次咱们只探讨数据链路层,就不考虑物理层如何实现比特传输的细 节,咱们就能够简单的认为数据帧经过数据链路由节点A发送到节点B。
    结点A传输到结点B

2、三个基本问题;

1,封装成帧;
概念:
封装成帧,就是在将网络层的 IP数据报的先后 分别添加首部和尾部,这样就构成了一个帧。
帧定界符:
不一样的数据链路层协议的帧的首部和尾部包含的信息有明确的规定,帧的首部和尾部有 帧开始符和帧结束符 ,称为 帧定界符 。接收端收到物理层传过来 的数字信号读取到帧开始字符一直到帧结束字符,就认为接收到了一个完整的帧。在数据传输中出现差错时,帧定界符的做用更加明显;
封装成帧
2,透明传输;
帧开始符和帧结束符:
帧开始符和帧结束符最好是不会出如今帧的数据部分的字符,一般咱们电脑键盘可以输入的字符是ASCII字符代码表中打印字符,在ASCII字符代码表中,还有非打印控制字符,在非打印字符中有两个字符专门用来作帧定界符,代码SOH(Start Of Header)做为帧开始定界符,对应的二进制编码为0000 0001,代码EOT(End Of Transmission)做为帧结束定界符。
透明传输
概念:
当传送的帧使用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见无论从键盘上输入什么字符均可以放在这样的帧中传输过去,所以这样的传输就是透明传输。
解决办法:
为了解决透明传输的问题,就必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收端 不被解析为控制字符
发送端的数据链路层在数据中出现控制字符”SOH”和”EOT”的前面插入一个转义字符”ESC”(其十六进制编码是1B)。而在接收端的数据链路层在将数据送往网络层以前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)。 若是转义字符也出如今数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。所以,当接收端收到连续的两个转义字符时,就删除其中前面的一个。
字节填充解决透明传输
3,差错检验;
传输差错:
现实的通讯链路都不会是理想的。这就是说,比特在传输过程当中可能会 产生差错:
第一类是1可能会变成0,而0也可能变成1,这就叫作比特差错;另外一类就是收到的帧并无出现比特错误,但却出现了 帧丢失 帧重复 帧失序
误码率:
就是在一段时间内, 传输错误的比特占所传输比特总数的比率 ,称之为误码率。例如,误码率为10 ^ (-10)时,表示平均每传送10^10个比特就会出现一个比特的差错。误码率与信噪比有很大的关系,若是提升信噪比,就可使误码率减少。
循环冗余检验CRC:
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各类 差错检测措施。目前在数据链路层普遍使用了 循环冗余检验CRC (Cyclic Redundancy Check)的差错检验技术。
循环冗余CRC检验
在数据后面添加的冗余码称为 帧检验序列FCS (frame check seqeunce)。CRC不是得到FCS的惟一方法。
特色:不能肯定出错的bit的是哪一位;可能会出错,但只要通过严格的挑选,而且除数位数足够大,就能够极大减小出错几率;CRC只能作到无差错接受(意思是传输过程没有差错,有差错的一概丢弃);要作到可靠传输,必须加上确认和重传机制。

3、点对点信道的数据链路层;

1,概念;
点到点信道是指的一条链路上就一个发送端和接收端的信道,一般用在广域网链路。
点对点数据链路层
2,ppp协议;
如今使用最多的数据链路层协议是 点对点协议PPP ,用户使用拨号电话线接入因特网时,通常都是使用PPP协议。
PPP协议组成部分
PPP协议应知足:
简单;封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测链接状态;最大传送单元;网络层地址协商;数据压缩协商;
PPP协议帧格式;
标志字段F = 0x7E 地址字段A = 0xFF,它并不起做用 控制字段C = 0x03 PPP协议是面向字节的,因此全部的PPP帧的长度都是整数字节。
PPP协议帧格式

4、广播信道的数据链路层;

1,概念;
广播信道的数据链路层一般用在 局域网链路
总线型
2,共享通讯媒体;
静态划分信道(麻烦):频分复用;时分复用;波分复用;码分复用;动态媒体接入控制(多点接入):随机接入(主要是以太网);受控接入,如多点线路探询(polling),轮询(不采用了)。
3,CSMA/CD协议;
总线型网络使用 CSMA/CD协议 进行通讯,即 带冲突检测的载波侦听多点接入技术
即使检测出总线上没有信号,开始发送数据后也有可能和迎面而来的信 号在链路上发生碰撞。好比,A计算机发送的信号和B计算机发送的信号在链路C处发生碰撞,碰撞后的信号相互叠加,在总线上电压变化幅度将会增长,发送方检测到 电压变化超过必定的门限值时,就认为发生冲突,这就是冲突检测。
CSMA/CD协议
4,CSMA/CD的重要特性;
使用CSMA/CD协议的以太网不能进行全双工通讯而 只能进行双向交替通讯 (半双工);每一个站在发送数据以后的一小段时间内,存在着遭遇碰撞的可能;这种发送的不肯定性使整个以太网的平均通讯量 远小于 以太网的最高数据率。

5、以太网;

1,初识以太网;
最初的以太网是将许多计算机都链接到一根总线上,当初认为这样链接即简单又可靠,由于总线上没有有源器件。总线上每个主机都能检测到B发送的数据。可是只有D的地址和数据帧首部写入的地址一致,因此只有D接收。其他计算机都能检测到这不是发送给他们的数据帧,因此就丢弃这个数据帧。这是一种具备广播特性的总线上实现了一对一通讯。这种方式不安全。
以太网结构
2,以太网提供的服务;
以太网提供服务是不可靠的交付,即最大努力的交付; 当接收站收到的有差错的数据帧时就丢弃此帧 ,其它什么也不作,差错的纠正由高层来处理;若是高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是看成一个新帧发送。
3,以太网的星型拓扑结构;
物理上是星型,逻辑上是总线型 。为了下降成本,最初由粗的同轴电缆变成细的同轴电缆最后变成无屏蔽双绞线。每一个站须要用两对双绞线,分别用于发送和接收;在星形的中心增长了一种可靠性高的设备,为集线器(hub)。
星型拓扑结构
4,集线器的特色;
集线器使用电子器件来模拟实际电缆线的工做,所以整个系统仍然是像一个传统的以太网那样运行。因为集线器使用了 大规模集成电路芯片,因此可靠性更高 ;使用集线器逻辑上仍然是一个总线网,各工做站使用的仍是CSMA/CD协议,共享逻辑网络上的总线;集线器像一个多接口的转发器,工做在物理层。
5,信道利用率;
争用期长度为2t;帧长为L bit,数据发送旅为C b/s,帧的发送时间为L/C = T0 秒。 一个帧从开始发送,经可能发生的碰撞后,将再次重传屡次,直到发送成功且信道转为空闲(即再通过t使得信道上没有信号在传播)时为止 ,是发送一帧所需的平均时间。
发送一帧所需平均时间
定义a = t / T0,是单程端到端时延t与帧发送时间T0的比值。a越小, 说明碰撞检测越快,信道利用率高 。当数据率(网速)必定时,以太网的连线长度受到限制,不然t会太长;以太网的帧长不能过短,不然T0过小,使a太大。
信道利用率的最大值:
假设理想状态下,以太网个展发送的数据都不会碰撞,一旦总线空闲就能有站当即发送数据,因此没有争用期;发送一帧须要占用总线T0+t,而帧自己须要发送时间为T0,因而理想状况下极限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).

6、MAC层;

1,MAC层的硬件地址;
硬件地址 = 物理地址 = MAC地址 MAC地址前3个字节(24位)是厂家分配的地址字段,后3个字节(24位)是厂家自定义,称为扩展标识符;一个地址块能够产生2^24个地址,这种48位地址称为MAC-48,通用名为EUI-48,这就是MAC地址;MAC地址其实是每个站的名字或标识符。
2,适配器检查MAC地址;
适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:若是是发往本站的帧就收下,而后进行其它处理;不然丢弃。发往本站的帧包括:单播帧(unicast)(一对一) 广播帧(broadcast)(一对全体) 多播帧(multicast)(一对多)
3,MAC帧的格式;
6 + 6 + 2 + 46 + 4 =64 byte,以太网的帧最短是64个字节,这也就是为何IP数据报的最短长度为46字节;
MAC帧格式
前8个字节的做用是实现比特同步,第一个字段共7个字节,称为前同步码,做用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。
MAC帧地址
4,无效的MAC帧;
帧的长度不是整数个字节; 用收到的帧检验序列FCS查出有错误 ;数据字段的长度不在46-1518字节内;有效的MAC帧长度为64-1518字节之间;对于检查出来的无效MAC帧简单的丢弃。
5,帧间最小间隔;
帧间最小间隔为9.6微秒。至关于96bit的发送时间。一个站在检测到总线空闲时,还须要等待9.6微秒后才能再次发送数据;这样作是为了 使刚刚收到的数据帧的站接收缓存来得及清理,作好接收下一帧的准备。

7、扩展以太网;

1,在物理层考虑扩展;
距离扩展:
主机使用 光纤 一对光纤调制解调器 链接到集线器。
距离扩展
数量扩展:
集线器集联,使网络中计算机数量增长,可是会形成效率下降,成为一个大的冲突域。
数量扩展
2,在数据链路层考虑扩展;
使用网桥优化以太网:
网桥工做在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发。网桥具备过滤帧的功能。当网桥收到一个帧时,并非向全部的接口转发此帧,而是现检查此帧的目的MAC地址,而后再肯定将该帧转发到哪个接口。
网桥优化以太网
透明网桥:
透明指局域网上的站点不知道所发送的帧将通过几个网桥,由于 网桥对于各站点是看不见的,也不须要网络管理员配置网桥的MAC地址表 ,所以咱们称透明网桥。
透明网桥
交换机:
随着网桥的接口的增长, 后来 网桥和集线器合并了,计算机能够直接和交换机链接 ,这就是交换机。
交换机

8、高速以太网;

1,概念;
速率在100Mb/s以上的以太网称为高速以太网。
高速以太网
2,特色;
使用交换机组建的100BASE-T以太网,可在全双工方式下工做而无冲突发生(注意,若是交换机上某一路链接着集线器(半双工),则这一路不能实现全双工)而无冲突,此时不使用CSMA/CD协议。MAC帧格式不变,还是802.3 标准。最短帧长度不变,可是一个网段的最大电缆长度减小到100m。帧间间隔从9.6微秒缩小到0.96微秒。


这篇计算机网络笔者总结了好久,把数据链路层的基本知识都涉及到了,实属不易,但愿获得你们支持!



往期推荐程序员


好了,今天就先分享到这里了,下期继续给你们带来计算机网络的讲解!欢迎关注个人原创技术公众号~

本文分享自微信公众号 - 程序员的时光(gh_9211ec727426)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。微信

相关文章
相关标签/搜索