2016.6.20 计算机网络复习要点第三章之CSMA/CD协议
1.最早的以太网是将许多计算机都连接到一根总线上:
(1)总线的特点是:当一台计算机发送数据时,总线上的所有计算机都检测到这个数据,这种就是广播通信方式;
(2)为了实现在总线上的一对一通信,可以使每一台计算机的适配器拥有一个与其他适配器都不同的地址,当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,该适配器才能接收到这个数据帧;
(3)人们通常把局域网上的计算机称为“主机”,“工作站”,“站点”或“站”
2.以太网为了通信方便采取的措施:
(1)采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据,适配器对发送的数据帧不进行编号,也不要求对方发回确认。
**以太网提供的服务是尽最大努力的交付,即不可靠的交付;
**对有差错帧是否需要重传则由高层来决定,但以太网并不知道这个重传帧,而是当做新的数据帧来发送;
**总线上只要有一台计算机在发送数据,总线的传输资源就会被占用,在同一时间只能允许一台计算机发送数据;
**以太网采用的解决冲突的方法是:CSMA/CD,载波监听多点接入/碰撞检测
(2)以太网发送的数据都是使用曼彻斯特编码的信号。
**二进制基带数字信号通常就是高,低电压交替出现的信号;
**曼彻斯特编码:1是“前高后低”,而0是“前第后高”;
**曼彻斯特编码的缺点是,它所占的频带宽度比原始的基带信号增加了一倍(因为每秒传送的码元加倍了);
3.CSMA/CD协议的要点:
(1)“多点接入”:就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”;
(2)“载波监听”:检测信道;不管在发送前,还是在发送中,每个站都必须不停地检测信道。
**在发送前检测信道,是为了获得发送权,如果检测出已经有其他站在发送,则自己就暂时不许发送数据,必须等到信道变为空闲时才能发送;
**在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞;
(3)“碰撞检测”:边发送边监听;
**即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据;
**当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(相互叠加),当适配器检测到的信号电压变化幅度超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞;
(4)电磁波在1Km电缆的传播时延约为5us;
(5)在局域网分析中,常把总线上的单程,端到端传播时延记为r,A发送数据后最迟要经过多久时间才能知道自己发送的数据和其他站发送的数据有碰撞,这个时间最多为2r(两倍的总线端到端的传播时延)
(6)显然,在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听)。因此,使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行半双工通信(双向交替通信);
(7)每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离;
(8)最先发送数据帧的A站,在发送数据帧后至多经过时间2r就可知道所发送的数据帧是否遭受到碰撞;因此,以太网端到端往返时间2r称为争用期(碰撞窗口);
**经过争用期还没有检测到碰撞,才能肯定这次发送不会发送碰撞;
(9)以太网采用截断二进制指数退避算法来确定碰撞后重传的时机;
**截断二进制指数退避算法:让发生碰撞的站停止发送数据后,不是等待信道变为空闲后就,立即,再发送数据,而是推迟(退避)一个随机的时间
**基本退避时间为争用期2r,具体的争用时间是51.2us;
**从离散的整数集合【0,1...,(2k-1)】中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期;
**K为碰撞次数时。K=Min[重传次数,10],当重传次数超过10时,K就不在增大而是一直等于10;
**当重传达16次仍不能成功时,则丢弃该帧,并向高层报告
(10)适配器每发送一个新的帧,就要执行一次CSMA/CD算法,适配器对过去发送过的碰撞没有记忆功能;
(11)为了避免在发送完毕之前没有检测出碰撞:
**以太网规定一个最短帧长64字节,即512bit,通过填充使帧长不小于64字节;
**对于10Mb/s以太网,发送512bit的时间需要51.2us,也就是上面提到的争用期;
**凡是长度小于64字节的帧都是由于冲突而异常中止的无效帧,只要收到了这种无效帧,就应当立即将其丢弃;
(12)信号在以太网上传播1Km大约需要5us,以太网最大的端到端时延必须小于争用期的一半(即25.6us),这相当于以太网的最大端到端长度约为5Km,实际上以太网覆盖范围远没有这么大;
(13)强化碰撞:就是当发送数据的站一旦发现了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道现在已经发送了碰撞;
(14)CSMA/CD协议的要点归纳:
①准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,但在发送之前,必须先检测信道;
②检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲,就发送这个帧;
③在发送过程中仍不停地检测信道,即网络适配器要边发送边监听,这里只有两种可能性:
④一是发送成功:在争用期内一直没有检测到碰撞,这个帧肯定能够发送成功;
⑤二是发送失败:在争用期内检测到碰撞,这是立即停止发送数据,并按照规定发送人为干扰信号;适配器接着就执行指数退避算法,等待r倍512比特时间后,返回步骤2,继续检测信道;但若重传16次还不能成功,则停止重传而向上报错;
⑥以太网每发送完一帧,一定要把已发送的帧暂时保留一下。
2016.6.20 计算机网络复习要点第三章之CSMA/CD协议的更多相关文章
- 2016.7.7 计算机网络复习要点第四章之网际协议IP
1.与IP协议配套使用的还有三个协议: **地址解析协议ARP: **网际控制报文协议ICMP: **网际组管理协议IGMP: 2.虚拟互连网络: **没有一种单一的网络能够适应所有用户的需求: ** ...
- 2016.7.9 计算机网络复习要点第四章之虚拟专用网VPN和网络地址转换NAT
1.虚拟专用网VPN (1)一个机构内,对于那些仅在本机构内部使用的计算机就可以由本季候自行分配其IP地址,让这些计算机使用仅在本机构有效的IP地址(本地地址),不需要申请全球唯一的IP地址(全球地址 ...
- 2016.7.9 计算机网络复习要点第四章之网际控制报文协议ICMP
1.ICMP允许主机或路由器报告差错情况和提交有关异常情况的报告:为了更有效地转发IP数据报和提高交付成功的机会: 2.ICMP不是高层协议,因为ICMP报文是装在IP数据报中的,作为其中数据部分,所 ...
- 2016.7.8 计算机网络复习要点第四章之地址解析协议ARP
1.地址解析协议ARP:知道一个机器的IP地址,需要找到其相应的硬件地址:ARP协议的用途是为了从网络层使用的IP地址解析出在链路层使用的硬件地址: 2.由于是IP协议使用了ARP协议,因此通常就把A ...
- 2016.6.17 计算机网络复习要点之PPP协议
点对点协议PPP是目前使用最广泛的数据链路层协议. 1.PPP协议的特点: **我们知道因特网用户通常需要连接到某个ISP才能接入到因特网,PPP协议就是用计算机和ISP进行通信时所使用的数据链路层协 ...
- 计算机网络【2】—— CSMA/CD协议
参考文献: https://blog.csdn.net/loveCC_orange/article/details/79177129 一.认识以太网 最早的以太网是将许多计算机都连接到一根总线上. 使 ...
- 10.秋招复习简单整理之CSMA/CD协议
我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用.因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会相互干扰,使得所发送的数据被破坏.因此,如何协调总线上各计算机的工作 ...
- JS复习:第三章&第四章
第三章 一.把一个值转换成字符串的两种方法: 1.使用每个值都有的toString( )方法.这个方法唯一要做的就是返回相应值的字符串表现.例如: var age = 11 ; var ageAsSt ...
- 计算机网络之介质访问控制(静态划分信道、FDM、TDM、STDM、WDM、CDM)、(动态划分信道、ALOHA、CSMA、CSMA/CD、CSMA/CA)、令牌传递协议
文章转自:https://blog.csdn.net/weixin_43914604/article/details/104935912 学习课程:<2019王道考研计算机网络> 学习目的 ...
随机推荐
- myeclipse2014破解过程
之前装的是10,后来没事试试装了2014,然后再破解2014后发现2010的证书就失效了,之前在网上也没找到方法,这段时间也没管,今天又自己想办法试了试,发现成功了!下边是我在网上找的破解方法的破解步 ...
- Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】
Laravel 5 系列入门教程(一)[最适合中国人的 Laravel 教程] 分享⋅ johnlui⋅ 于 2年前 ⋅ 最后回复由 skys215于 11个月前 ⋅ 17543 阅读 原文发表在 ...
- Gson简要使用
哇,原来我已经潜水2年多了,还是需要养成习惯写写东西啊. 最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. ...
- 在Sharepoint 2010中启用Session功能的说明文档
在Sharepoint 2010中启用Session功能的说明文档 开发环境:Windows 7系统,SharePoint Server 2010,Visual Studio 2010 按以下步骤进行 ...
- (转)maven eclipse debug
准备工作: a. 在pom.xml中配置jetty插件: <plugins> <plugin> <groupId>org.mortbay.jetty</gro ...
- Python多线程(2)——线程同步机制
本文介绍Python中的线程同步对象,主要涉及 thread 和 threading 模块. threading 模块提供的线程同步原语包括:Lock.RLock.Condition.Event.Se ...
- DroidDraw - Android的界面设计工具
ADT中的界面开发工具实在是很烂,通常情况下都需要硬编码,对于程序员来说不但效率比较低下,而且调试起来极其不方便,还好在Google未推出GUI的"所见即所得"的工具之前,我们找到 ...
- Java for LeetCode 038 Count and Say
The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221 ...
- BestCoder10 1002 Revenge of GCD(hdu 5019) 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5019 题目意思:给出 X 和 Y,求出 第 K 个 X 和 Y 的最大公约数. 例如8 16,它们的公 ...
- July 31st, Week 32nd Sunday, 2016
If you wept for the missing sunset, you would miss all the shining stars. 如果你为错过夕阳而哭泣,那你有可能也会错过灿烂的星空 ...