带带弟弟彻底搞懂链路层(二)

简介: hey guys,大家好啊,这里是 cxuan 计算机网络连载系列的文章第 12 篇文章。本篇文章我来跟你计算机网络中的数据链路层相关知识。

通信类型分类

共享介质型网络

共享介质型网络故名思义就是多个设备共同使用同一个通信介质的网络。共享介质型网络的类型主要有以太网(Ethernet)光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)

共享说的是,多个设备会使用同一个载波信道进行发送和接收,这是一种半双工的设计。

什么是半双工?

半双工指的是数据可以在一个信道上的两个方向上相互传输,但是不能同时传输,举个简单的例子,就是你能给我发消息,我也能给你发消息,但是不能你给我发消息的同时我也在给你发消息。

既然多个设备会共同使用一个信道,那么就可能存在多个数据传输到同一个介质上导致的数据争用问题,为此,共享介质型网络有两种介质访问控制方式:争用和令牌传递

争用

争用是发生在共享介质,载波监听多路访问(CSMA) 上的数据访问方式。在这种访问方式下,网络中各个介质会采用先到先得的方式占用载波信道发送数据。如果多个介质同时发送帧,就势必会产生冲突,继而导致通信性能的下降和网络拥堵。下面是争用的处理方式

微信图片_20220416162049.png

如上图所示,假如 A 想要给 C 发送数据,那么介质 A 会在确认周围没有其他介质要给 C 发送数据后,也就是经过一段时间后,A 会把数据马上发送给 C。

微信图片_20220416162053.png

每个介质在接受到 A 发送的数据后,会从 A 报文中解析出来 MAC 地址判断是否是发送给自己的数据包,如果不是的话就是丢弃这条数据。

微信图片_20220416162056.png

上面这种方式会使用在一部分以太网中,但是另外一部分以太网却使用了 CSMA 的改良方式 - CSMA/CD 。CSMA/CD 会要求每个介质提前检查一下链路上是否有可能产生冲突的现象,一旦发生冲突,那么尽可能早地释放信道。它的具体工作原理大致如下:

  • 监听载波信道上是否会有数据流动,如果没有的话,那么任何介质都可以发送数据。
  • 介质会检查是否发生冲突,一旦发生冲突就会丢弃数据,同时立即释放载波信道。
  • 放弃数据后,会经过一段时间重新争用介质。

下面是 CSMA/CD 的改良版

微信图片_20220416162100.png

上图这个过程是 CSMA(Carrier Sense Multiple Access),首先介质会监控载波信道上是否有数据存在,如果没有再发送,如果有,等一段时间再发送。

下面是 CD(Collision Detection) 的示意图

微信图片_20220416162103.png

  • 在发送数据 -> 发送完成后,如果电压一直处于规定范围内,就会认为数据已经正常发送。
  • 发送途中,如果电压超过了一定范围,就会认为是数据冲突。
  • 发生冲突时会先发送一个阻塞报文,继而放弃数据,在延迟一段时间后再次发送

令牌环

第二种共享介质型网络的传输方式就是令牌环了,令牌环顾名思义就是有一个令牌一样的东西,以环为一圈进行令牌传输,那么令牌是啥呢?你想啊,我们最终的目的不就是为了传输数据吗?那么这个令牌,它可不可以作为数据呢?

其实,在这种传输方式中,令牌环是作为一种特殊报文来传输的,它是控制传输的一种方式,在数据传输的过程中同时会将令牌进行传递,只有获得令牌的介质才能够传输数据。这种方式有两个优点,即

  • 持有令牌的介质才能够传输数据,这样能够保证不会有报文冲突情况。
  • 每个介质都有平等获取令牌的机会,这样保证了即使网络拥堵也不会导致性能下降。

但是这种令牌环的传递方式也是有缺点的,因为只有持有令牌的介质才能发送数据,所以即使在网络不太拥堵的情况下,其利用率也达不到 100%。

下面是令牌的传递示意图

微信图片_20220416162106.png

最一开始,令牌位于介质 A 处,此时介质 A 拥有数据传输的能力,然后介质 A 把令牌传递给介质 B。

微信图片_20220416162110.png

此时 B 持有令牌,所以介质 B 具有发送数据的能力。

微信图片_20220416162114.png

这个数据最终会由 D 接收,然后 D 就会设置一个已接收数据的标志位,然后数据会继续向下发送。

微信图片_20220416162116.png

令牌环是一项很成功的技术,尤其是在公司环境中使用,但后来被更高版本的以太网所取代。

在了解完共享网络之后,我们来探讨一波非共享网络

相关文章
|
15天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
15天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
15天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
15天前
|
存储 人工智能 算法
2024重生之回溯数据结构与算法系列学习(7)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人数据结构与算法系列学习之队列的基本概念、如何判断队列已满/已空、队列的链式存储结构[头的出入队]、双端队列、中缀、后缀、前缀表达式、特殊矩阵和一二维数组的压缩储存等具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
6月前
|
网络架构 智能硬件
重拾计网-第三弹 你不知道的计算机网络的秘密
重拾计网-第三弹 你不知道的计算机网络的秘密
|
缓存 网络协议 安全
计算机网络的连环炮面试题
计算机网络的连环炮面试题
55 0
|
机器学习/深度学习 人工智能 Java
|
存储 域名解析 缓存
计算机网络连环炮40问
计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。
338 0
|
Java 关系型数据库 MySQL
【浅尝高并发编程】接私活差点翻车
作为一名本本分分的练习时长两年半的Java练习生,一直深耕在业务逻辑里,对并发编程的了解仅仅停留在八股文里。一次偶然的机会,接到一个私活,核心逻辑是写一个 定时访问api把数据持久化到数据库的小服务。
174 0
|
存储 设计模式 缓存
揭秘通信协议设计的奥妙,作为面试官我都看蒙了
所谓的通信协议就是通信双方共同遵循的一种“约定”,用于通信发送方将内容按照“通信协议”所规定的格式组装成**“二进制流”**,通信接收方按照“通信协议”所规定的格式正确的从二进制流中解码出一个个原始请求。