参考文献:

https://blog.csdn.net/loveCC_orange/article/details/79177129

一、认识以太网

最早的以太网是将许多计算机都连接到一根总线上。

使用总线如何通信呢?

当一台计算机发送数据的时候,总线上的所有计算机都能检测到这个数据。这就是广播通信方式。当我们需要在总线上进行一对一通信的时候,就需要使每一台计算机的网卡拥有一个与其他网卡都不同的地址。这个时候,我们在发送数据帧时,就需要表明数据帧接收站的地址。只有网卡地址与其相同时,才接受数据帧,否则丢弃帧。

以太网的实现方式:

  • 采用较为灵活的无连接的工作方式,即不必建立连接就可以直接发送数据。网卡对发送的数据帧不进行编号,也不要求对方发回确认。这样做可以使以太网工作起来非常简单。以太网所提供的服务是尽最大努力的交付,即不可靠的服务。

  • 以太网发送的数据都是使用曼彻斯特编码的信号,使用曼彻斯特编码的优点是可以很方便的解决接收端接收连续的0或者1时无法提取同步信号的问题;缺点就是因为曼彻斯特编码的规则导致每秒需要传输的码元数量增加了一倍,所以它占的频带宽度也比原始的基带信号增加了一倍。

二、CSMA/CD(多点接入载波监听/冲突检测)协议

多点接入说明是总线型网络,计算机以多点接入的方式连接在一根总线上,协议的实质是“载波监听”和“碰撞检测”。

1.载波监听

载波监听就是利用电子技术检测总线上有没有其他计算机也在发送。载波监听实际上就是检测信道。在发送前,每个站不停地检测信道,是为了获得发送权;在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞,这就是碰撞检测。总之,载波监听是全程都在进行的

2.碰撞检测

碰撞检测就是边发送边监听。就是网卡边发送数据边检测新岛上的信号电压的变化情况,以便判断自己在发送数据的时候其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加),当网卡检测到的信号电压超过一定的门限值时,说明总线上至少有两个站同时在发送数据,表明产生了碰撞(冲突),所以也称为冲突检测。这时,由于接收的信号已经识别不出来,所以任何一个正在发送的站就会立即停止发送数据,然后等待一段随机事件以后再次发送。

3.传播时延对碰撞检测的影响

因为网卡只有在接收到电压幅度不正常的信号以后才能判断是否产生了冲突,所以它在接收到信号之前会认为信道是空闲的。但是信号传播会有延迟,比如下图:

如图为两台计算机A、B,假设二者指甲距离为一公里,如果A、B同时发送数据,则会在线路中间发生碰撞,那么A、B检测到碰撞的时间为图中单程端到端的传播时延t;若A先发,B后发,那么A最长时间检测到碰撞的时间为2t。

注:电磁波在1km电缆的传播时延约为5us(需要记住!)

在使用CSMA/CD协议时,一个站不可能同时进行发送和接收,进行的是半双工通信。

从图中可以看出,每个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。(这个时间是2t,t由两站之间的距离决定)这是以太网发送的不确定性。正是这种不确定性使得以太网的平均通信量远小于以太网的最高数据率。

以太网端到端的往返时间2t称为争用期(碰撞窗口)

三、截断二进制指数退避算法

以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后立即再发送数据,而是退避一个随机的时间。一以减小再次发生碰撞的概率。具体算法如下:

  • 协议规定了基本退避时间为2t,具体的争用期时间通常取51.2us,对于10Mb/s的以太网,在争用期内可发送512bit,即64字节。
  • 从离散的整数集合【0,1,……(2^k-1)】中随机取一个数,记为r,重传应推后的时间就是r倍的争用期。

        k=Min[重传次数,10]

  • 当重传次数不超过10时,参数k等于重传次数;当重传次数超过10时,k就不再增大一直等于10。
  • 当重传16次仍然不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。

 例如:

  • 在第一次重传时,k=1,随机数从{0,1}中选一个数。所以重传的推迟时间可以是0或者2t,随机选择。
  • 第二次发生碰撞,k=2,随机数从{0,1,2,3}中选一个,所以重传的推迟时间可以是0,2t,4t,6t随机选择一个。
  • 以此类推。。

可能会出现这样一种情况就是:

某个站发送了一个很短的帧,但发生了碰撞,但发生了碰撞,不过在这个帧发送完毕后才检测到发生了碰撞。已经没有办法中止帧的发送,因为已经发送完了。这个时候即使发生了碰撞,那么刚才的帧也无法进行重传,就会产生错误。

注:数据帧能够重传的一个条件:以太网要实现重传,必须保证这个站在收到冲突信号的时候这个帧没有传完

所以基于这种情况,以太网规定了一个最短帧的长度为64个字节,即512bit。因为64字节正好是争用期长度,如果在争用期内没有发生碰撞,那么就不会发生碰撞了。因此,凡长度小于64字节的帧都是由于冲突而异常停止的无效帧。接收端收到这种帧会直接丢弃。(对于10Mb/s传统以太网而言!!!)

我们知道信号在以太网上传播1km需要5us,以太网上最大的端到端的时延必须小于争用期的一半(25.6us),相当于以太网的最大端到端长度约为5km。实际上的以太网覆盖范围远没有这么大。因此实际的以太网都能在争用期51.2us内检测到可能发生的碰撞。以太网确定以51.2us作为争用期,不仅考虑了端到端时延,而且还考虑了好多其他因素。

强化碰撞

当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道发生了碰撞。以太网还规定了帧间最小间隔为9.6us,相当于96比特时间,这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

以太网建立重传机制的原因:

首先,以太网不想采用连接机制,因为会降低效率,但他又想有一定的重传机制,因为以太网的重传是微秒级,而传输层的重传,如TCP的重传达到毫秒级,应用层的重传更达到秒级,我们可以看到越底层的重传,速度越快,所以对于以太网错误,以太网必须有重传机制。

四、CSMA/CD协议的工作过程(重要)

  • 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,,放入网卡的缓存中,但在发送之前,必须先检测信道。

  • 检测信道:不停地检测信道,一直等待信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小时间间隔),就发送这个帧。

  • 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:

    • 发送成功:在争用期内一直未检测到碰撞,这个帧发送成功,回到(1)
    • 发送失败:在争用期内检测到碰撞,这是立即停止发送数据,并按规定发送认为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。若重传16次仍不能成功,则停止重传向上报错。

以太网每发完一帧,一定要把已经发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个帧重传一次。

转载于:https://www.cnblogs.com/bopo/p/9247945.html

计算机网络【2】—— CSMA/CD协议相关推荐

  1. 计算机网络 --- 数据链路层CSMA/CD协议

    CSMA/CD协议 全称为载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection) CSMA/CD协议 ...

  2. 计算机网络之CSMA/CD协议

    一.CSMA/CD(多点接入载波监听/冲突检测)协议 多点接入说明是总线型网络,计算机以多点接入的方式连接在一根总线上,协议的实质是"载波监听"和"碰撞检测". ...

  3. 【计算机网络】CSMA/CD协议

    CSMA/CD协议的要点 1.多点接入 2.载波监听(实质上是检测信道) 3.碰撞检测(边发送边监听),当几个站同时在总线上发送数据时,总线上的电压会增大.适配器检测到电压变化幅度超过一定阈值时,就认 ...

  4. 计算机网络-CSMA/CD协议

    目录 1 前言 2 以太网采取了两种重要的措施 2.1 无连接的工作方式 2.2 使用曼彻斯特 (Manchester) 编码 2.3 存在的问题 3 CSMA/CD协议 3.1 存在的问题 3.2 ...

  5. 计算机网络——数据链路层PPP、CSMA/CD协议

    概述 数据链路层属于计算机网络的低层,数据链路层使用的信道的类型有以下两种: (1)点对点通信:这种信道使用一对一的点对点通信方式 (2)广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂, ...

  6. 【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★

    文章目录 一. CSMA/CD 协议 二. 传播时延对于 载波监听 的影响 三. 单程端到端传播时延 相关概念 四. 碰撞后重传时机 ( 截断二进制指数规避算法 ) 五.截断二进制指数规避算法 计算示 ...

  7. 计算机网络·CSMA/CD协议有关计算

    CSMA/CD 一.官方解释 二.争用期 三.二进制退避算法 一.官方解释 如果两个人同时和我们说话,我们是不能够听清说的啥的.计算机也是一样,在同一时间里只能允许一台计算机发送数据,否则各个计算机之 ...

  8. 计算机网络(十四)-CSMA/CD协议

    一.CSMA/CD协议 载波监听多点接入/碰撞检测CSMA/CD. 1.1 CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据. 1.2 MA:多点 ...

  9. 计算机网络之数据链路层:11、CSMA/CD协议-随机访问介质访问控制

    数据链路层:11.CSMA/CD协议 思维导图: 载波监听多点接入/碰撞监听协议(CSMA-CD协议): 如何确定碰撞后的重发时机: 最小帧长问题: 思维导图: 载波监听多点接入/碰撞监听协议(CSM ...

  10. 计算机网络的最短帧长公式,每日一题 | CSMA/CD协议的最短帧长公式

    原标题:每日一题 | CSMA/CD协议的最短帧长公式 苏世计算机考研,程序猿专属的学习分享社区 苏世小课堂,每日一题! 为了帮助大家及时回顾所学知识,特开设本"每日一题"专栏,从 ...

最新文章

  1. 中了Globelmposter3.0,后缀为4444怎么解决勒索病毒解密
  2. latex参考文献顺序不对_latex模板中,引用多篇参考文献,连续引用压缩问题
  3. 【三国志战略版】拆解与分析
  4. 服务器无线不能登录界面,Web认证无法跳转到登录页面
  5. 64位Windows2003 Enterprise sp2 上64位Oracle10.2.0.1升级到Oracle10.2.0.3具体步骤
  6. pymysql建表_Python数据库操作,针对pymysql 和 MYSQL数据库
  7. 储存字母 电子计算机,计算机基础_精简版
  8. [计算机网络] - TCP半连接队列和全连接队列
  9. Exchange 中关于邮件的生命周期和托管文件夹的相关设定
  10. python中https请求的封装_python接口自动化9-https请求(SSL)
  11. 中国OpenJDK联盟解决问题和BUG的优先级
  12. linux制作iso启动盘
  13. springboot实现简单的单点登录
  14. 开发“小米商城官网首页”(静态页面)
  15. 步进电机、伺服电机、舵机的原理和区别?
  16. 记录一次GeoTIFF文件二进制源码阅读
  17. uniapp连接手机端调试
  18. ubuntu18.04安装中中文输入法
  19. 论文阅读笔记:《EIGENGAME: PCA AS A NASH EQUILIBRIUM》(特征博弈:主成分分析就是纳什均衡)
  20. 百面机器学习和百面深度学习-测试1

热门文章

  1. 电子学会2023年3月青少年软件编程python等级考试试卷(一级)真题,含答案解析
  2. Android 手机上获取手机当前上网IP地址(手机网关给手机号分配的IP)
  3. 7000字长文深度解读:DTC商业模式,对品牌增长的颠覆式影响
  4. 华勤技术股份有限公司
  5. Python学好兼职无忧,接单兼职平台曝光,除了主业,副业也能让你月入过万
  6. 浏览器缩放时,页面布局发生变化
  7. 面包店利用拼团模式面包免费送-月销售30万 !
  8. 【常用工具类】EasyExcel
  9. 连目标管理都不会,还谈什么目标?
  10. Google文件系统