文章目录

  • 前言
  • 一、什么是广播信道?
  • 二、CSMA/CD协议
    • 1.协议主要的功能
      • 1.1多点接入
      • 1.2 载波监听
      • 1.3 碰撞检测
  • 三、MAC帧
    • 3.1 MAC帧的组成
    • 3.2 MAC帧的用途以及实现原理
    • 3.3 帧最小长度
  • 四、交换机
    • 4.1介绍
    • 4.2 工作原理
    • 4.3 交换机的分类

前言

主要介绍数据链路层的广播通信方式,包括CSMA/CD协议、MAC帧、交换机的知识


一、什么是广播信道?

数据链路层主要有两种信道:点对点信道、广播信道,点对点通信主要用于主机连接到ISP的通信,广播通信主要用于局域网内主机之间的通信,特点是一台主机发出的数据在广播域内的主机都可以接收到(除了源主机),相比点对点通信,广播通信主要的优点是可以节省线路,共享信道。

二、CSMA/CD协议

1.协议主要的功能

1.1多点接入

CSMA/CD支持多个主机接入同一条主线,这是局域网内进行广播传输的基础。

1.2 载波监听

要想实现广播通信,最简单的就是设一条主线,将所有要进行通信的主机都连接到这条主线上,这样理论上任何一台主机发送数据主线上的其他主机都可以接受到这个数据。但是因为只有一条线路,如果不使用任何信道复用技术的话在同一时间一条线路上只能有一个主机在传输数据,否则就会导致信号碰撞,信号改变,使得目标主机无法识别,所以必须要有一个机制来检测、协调多个主机之间的数据发送,而载波监听就是解决检测信号的问题。
每一台主机无论是在发送数据前还是发送数据时都必须时刻监听信道的信号。发送数据前的监听,是为了检测信道上是否有数据在传输,若检测结果是信道上有传输信号则进行等待,若无则进行传输。传输数据时的监听是为了检测冲突信号,虽然信道上有信号就不传输的机制可以避免大部分的冲突,但依旧存在发生碰撞的可能,具体可以看1.3的内容。

1.3 碰撞检测

因为数据在信道上的传输有传播时延,就会导致依旧会有发送碰撞的可能。我们可以假设A,B主机在同一主线上上,之间的距离为225比特时间,t=0比特时间时A开始发送数据,t=200比特时间时B开始发送数据,此时A发送的数据尚未传输到B端,B的检测机制无法检测到信号,那么B就认为此时信道是空的,B也开始发送数据,当B发送的数据向A端传输时一定会与信道上A发送的数据发送碰撞,导致数据失效。因此我们就需要机制来检测碰撞,并且解决碰撞这个问题,检测碰撞可以直接由载波监听功能来实现,因为碰撞的表现就是信号发生不规则的波动、变化。为了解决碰撞CSMA/CD协议使用了截断二进制指数退避算法。基本原理就是当主机检测到碰撞信号后就会停止发送数据,并且等待一段时间,这个等待时间称为规避时间,等待结束后再进行检测若信道空闲且空余时间大于帧间最小间隔时间9.6μs(96bit时间)则进行传输,否则继续等待并持续监听。
在介绍截断二进制指数退避算法前先介绍一下争用期时间。
争用期时间:电磁波在1km电缆上的传播时延为5μs。设传输速率为10Mbit/s,假设局域网总线长度为2500m(实际上没有这么多),往返就是5000m,则电磁波在此局域网上的传播时延为25μs(理想状态下),当时往往还要加上之间中继器的额外时延,最坏的估计下传播时延为45μs,再加上强化信号的48bit的传输时延4.8μs,一共为49.8μs,所以通常争用期时间取51.2μs,争用期的时间在10Mbit/s的条件下刚好可以传输512bit(帧的最短长度就是64字节,原因在后面会介绍)。
截断二进制指数退避算法:当主机检测到碰撞信号时就会立即停止发送数据,并发送一段干扰信号(32或48字节,一般是48字节),以便让其他用户知道发生了碰撞,然后主机就会进入规避状态,规避时间的计算规则如下,从离散的整数集合[0,21,22,…,2k]中取一个随机整数r,则r*征用期时间就是规避时间,k的数值等于重传次数,但是不会超过10,k=Min[重传次数,10],当重传次数达到16次时,就会停止重传,并且向上层汇报(说明此时有很多主机要发送消息)。规避时间过后就会继续进行载波监听,进行重传。

三、MAC帧

3.1 MAC帧的组成


前同步码(7字节):
帧开始定界符(1字节):用于表示帧开始
目的地址(6字节):目标主机的mac地址
源地址(6字节):发送主机的mac地址
类型(2字节):用于表示应向上递交给网络层的哪个协议
数据部分:分组后的ip数据报,长度在46~1500字节之间
FCS(4字节):帧检验序列,校验范围从目的地址变到数据段的末尾,算法采用32位循环冗余码(CRC),不但需要检验MAC帧的数据部分,还要检验目的地址、源地址和类型字段,但是不校验前导码。

3.2 MAC帧的用途以及实现原理

MAC帧是用于局域网之间广播传输数据的最小单位,其作用当然是用于传输数据。
在介绍其实现原理之前先简单介绍一下MAC地址,MAC地址也被称为物理地址,每一台计算机中都有,且是世界上唯一的、不会改变的(大部分情况都不会),所以MAC地址就对应着世界上唯一的一台设备,所以我们可以通过MAC地址来找到任何一台设备。
MAC帧中包含了目标主机的MAC地址,所以当源主机要发送数据时,就会依照CSMA/CD协议在局域网内发送数据帧,局域网内的所有主机都可以收到这个帧,但是只有主机的MAC地址与帧中的目标MAC地址相同的主机才会将这个数据帧留下,并进行处理后向上层传递,而其他主机则会丢弃这个数据帧。
在以太网上传输数据是以帧为单位的,以太网传输帧时,各帧之间必须有一定的间隔,所以接收端只要找到帧定界符,其后续到达的比特流就都属于同一个MAC帧,所以,以太网不需要帧结束定界符,也不需要使用字节插入来保证透明传输。

3.3 帧最小长度

为什么会有帧最小长度?
因为数据太短会导致发生碰撞但未检测到,数据未重传。
假设一个帧长度很短,发生碰撞后,碰撞的信号还没有传输到发送主机时帧就发送完毕了,这就会导致发生碰撞却未重传的问题。
怎么得到帧最小长度?
帧最小长度的计算方法为争用期时间*信道传输速率,如果信道传输速率为10Mbit/s,争用期按照之前得到的为51.2μs,那么帧最小长度就是64字节,512bit。再介绍一下计算原理,争用期时间是数据在广播信道上来回传播所需要的最长时间,如果在一个争用期的时间内都没有检测到碰撞信号就说明一定没有发生碰撞。

四、交换机

4.1介绍

利用交换机是一种在数据链路层扩展以太网的方式。最初人们使用的是网桥,网桥就是将接受到的帧根据MAC帧中的目的地址查找地址表(地址表中有mac地址以及对应的端口),然后进行转发,或者丢弃。而交换机本质上就是一个多接口的网桥,交换机的每一个接口都与一个主机或交换机相连,并且都是全双工方式,同时还具有并行性(一个交换机可以同时连接多对接口,使多对主机可以同时通信),并且相互通信的主机都是独占信道,是无碰撞传输(所以不需要用到CSMA/CD协议)。而且交换机还设有存储器,当数据传输过于繁忙时就会先将数据存储在存储器中,之后再发送出去。

4.2 工作原理

交换机会接收端口发来的数据帧,并读取帧中的目标地址,然后在交换表中查找目标地址对应的端口,然后将这个数据帧从这个端口转发出去。
那么交换表中的地址及对应的端口是怎么形成的呢?
当交换机刚刚接入到局域网中时,交换表是空的,当有某个端口发数据过来时,交换机就会读取数据帧中的源地址,再加上端口号写入交换表中,然后因为交换表中查找不到目标地址对应的端口号,交换机就会在除了源端口外的所有端口进行广播发送。这样循环往复,交换表中的地址就会越来越完整。同时交换表中的每一个数据还具有老化时间,如果在老化时间内收到地址刷新信息(地址的端口号与交换表中的端口号对不上),就进行更新,如果超过老化时间就删除这个数据。

4.3 交换机的分类

存储转发:交换机在转发前要先将数据帧进行存储,差错检验,然后再进行转发,帧通过交换机的转发时延依据帧长度有所不同。
直通式:交换机只要读取到帧中的目标地址就进行转发,无差错检验,转发时延相同(因为帧头长度总是固定的)。


数据链路层---广播信道相关推荐

  1. 数据链路层——广播信道CSMA/CD协议

    传统以太网 如果Alice在给Bob发送消息时,此时恰好Tom发给Alice的消息也到达了. 解决: 引入信道分配机制:在发送消息之前首先检测信道上有没有别的消息:若没有,则发送:若有,则等待一段时间 ...

  2. 计算机网络 数据链路层——广播信道 简记

    局域网的数据链路层 特点:为一个单位所拥有,且地理范围和站点数目均有限. 优点: (1)具有广播功能 (2)便于系统的扩展和逐渐演变 (3)提高了系统的可靠性 局域网的拓扑 星形网: 环形网: 总线型 ...

  3. 计算机网络——使用广播信道的数据链路层

    目录 使用广播信道的数据链路层 媒体接入控制 媒体接入控制的类型 局域网 局域网的拓扑 局域网体系结构 计算机通过适配器和局域网进行通信 MAC地址 单站地址.组地址.广播地址 使用广播信道的数据链路 ...

  4. 第三章--数据链路层

    第三章--数据链路层 本章目录: 3.1使用点对点信道的数据链路层 3.1.1数据链路和帧 3.1.2三个基本问题 3.2点对点协议PPP 3.2.1PPP协议的特点 3.2.2PPP协议的帧格式 3 ...

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

    有一说一,王道的计算机网络个人感觉不尽如意,数据链路层的内容安排实在是有些乱,里面并不是按照课本来的,而是穿插了很多其它章节的知识. 3.1 数据链路层的功能 数据链路层在物理层提供服务的基础上,向网 ...

  6. 网络-数据链路层回顾

    数据链路层是干嘛的? 网络层是研究分组怎样从一个网络通过路由器转发到另一个网络 数据链路层主要研究在同一个局域网中,分组怎样从一个主机传送到另一个主机(不经过路由器) 数据链路层主要使用两种信道: 点 ...

  7. 《计算机网络》学习总结——数据链路层(完整理解)

    本文目录 第三章 数据链路层 3.1 数据链路层的几个共同问题 3.1.1 数据链路和帧 3.1.2 三个基本问题 3.2 点对点协议PPP 3.2.1 PPP协议的特点 3.2.2 PPP协议的帧格 ...

  8. OSI体系结构——数据链路层详解

    前言 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间.数据链路层在物理层提供的服务的基础上向网络层提供服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理 ...

  9. 网络知识-03 数据链路层-以太网

    文章目录 3 使用广播信道的数据链路层 3.1 局域网 3.1.1 局域网的分类 3.1.2 IEEE 802标准 3.1.3 MAC子层和LLC子层 3.2 以太网 3.2.1 帧格式 3.2.1. ...

最新文章

  1. 论防止爆T的重要性:N相关孪生素数
  2. springboot工具类
  3. ajax脚本格式,jQuery ajax调用 - jim脚本响应是什么格式?
  4. latex目录标题中间空一个字符
  5. android8支持设备,Android8.0奥利奥支持机型有哪些 安卓8.0奥利奥适合设备详细介绍...
  6. Linux服务器,服务管理--systemctl命令详解,设置开机自启动
  7. python获取html文本框内容_Python3处理HTML获取所需内容
  8. 一维差分(附模板题)
  9. RHEL6.3下编译安装ffmpeg
  10. 4.微服务:从设计到部署 --- 服务发现
  11. RSA、DSA算法原理与举例
  12. 精通javascript学习笔记
  13. hackerrank测试题·
  14. linux下的系统监控软件,管理员必备的20个Linux系统监控工具
  15. 小程序毕设作品之微信企业公司小程序毕业设计(6)开题答辩PPT
  16. 大数据智能推荐系统原理介绍
  17. 解读《西厢记》——基于人脑的句法分析
  18. chromium 各种版本下载
  19. DNC: A deep neural network-based clustering-oriented network embedding algorithm 2021
  20. 7号团队-团队任务5:项目总结会

热门文章

  1. 基于flask_sqlalchemy的数据库服务器与前端联调实践
  2. 工具变量 两阶段的协变量_综合工具变量
  3. CSDN助手1.3.1.0源代码
  4. 好玩的网站“彩蛋”们(程序员视角)...
  5. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
  6. goccess 导出html设置参数,GoAccess中文界面显示配置
  7. python 之易经启卦
  8. php json字符串解析中的引号问题
  9. Win7下Borland C++ 4.5 TASM5.0调试uC/OS-II
  10. 学习笔记:隐马尔科夫