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王道考研计算机网络> 学习目的 ...
随机推荐
- TaskTracker任务初始化及启动task源码级分析
在监听器初始化Job.JobTracker相应TaskTracker心跳.调度器分配task源码级分析中我们分析的Tasktracker发送心跳的机制,这一节我们分析TaskTracker接受JobT ...
- cocos基础教程(4)基础概念介绍
在Cocos2d-x-3.x引擎中,采用节点树形结构来管理游戏对象,一个游戏可以划分为不同的场景,一个场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏节点(即对象,游戏中基本上所有的类都派生于 ...
- iOS开发——底层OC篇&运行时常用
运行时常用 什么是Runtime(前面的文章已经说的很清楚了,这里就简单的介绍一下) 我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething]; ...
- 诠释Linux中『一切都是文件』概念和相应的文件类型
导读 在 Unix 和它衍生的比如 Linux 系统中,一切都可以看做文件.虽然它仅仅只是一个泛泛的概念,但这是事实.如果有不是文件的,那它一定是正运行的进程. 要理解这点,可以举个例子,您的根目录( ...
- 如何改变服务器的本地域名来访问本地服务器 而不用localhost或者127.0.0.1来访问
1. vim nginx.conf 如下: server { listen 80; server_name pma; ...
- [POJ1157]LITTLE SHOP OF FLOWERS
[POJ1157]LITTLE SHOP OF FLOWERS 试题描述 You want to arrange the window of your flower shop in a most pl ...
- (转)WPF控件开源资源
(转)WPF控件开源资源 Textbox Drag/Drop in WPFhttp://www.codeproject.com/Articles/42696/Textbox-Drag-Drop-in- ...
- C++模板常用使用方法介绍
转载:http://developer.51cto.com/art/201002/182202.htm C++编程语言中的模板应用在一定程度上大大提高了程序开发的效率.我们在这篇文章中为大家详细讲解一 ...
- Phpstorm常用设置
Phpstorm更换主题和字体 1.File -- settings -- Editor -- Colors And Fonts: 2.在右侧窗口中选择Scheme name : 选择一个自己喜欢的主 ...
- ASP注入靶机
ASP: <% Dim Db,MyDbPath dim conn '可修改设置一:========================定义数据库类别,1为SQL数据库,0为Access数据库 ...