Linux基础入门之TCP/IP网络基础知识之介质访问控制

摘要

以太网诞生于上世纪的施乐公司帕洛阿尔托研究室,互联网诞生的前期是美国军方的park项目,此项目当时的计划是在受到严重军事打击后网络(尤其是军事网络)不受影响而设立的(说起来还要谢谢当初的冷战),所以他们就期望有一个事先不需要专门铺设电路或者是就算建立了电路在受到毁坏后也能自动寻路,以此就出现了包交换网络,就是在线路不通的情况下能自动寻路。

介质访问控制

1、MAC:介质访问控制(是medium access control),是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。(在早期网络中,是使用同轴电缆做传输线缆的,和现在我们用的有线电视那种线差不多,所以会出现底层共用信道争用的问题,MAC就是解决这个的)(我们现今用的以太网就用到了这个)

CSMA/CD:载波侦听多路访问冲突检测机制,

所谓载波侦听(Carrier Sense),意思是网络上各个工作站在发送数据前都要确认总线上有没有数据传输。若有数据传输(称总线为忙),则不发送数据;若无数据传输(称总线为空),立即发送准备好的数据。

所谓多路访问(Multiple Access),意思是网络上所有工作站收发数据共同使用同一条总线,且发送数据是广播式的

所谓冲突(Collision),意思是若网上有两个或两个以上工作站同时发送数据,在总线上就会产生信号的混合,这样哪个工作站都辨别不出真正的数据是什么。这种情况称为数据冲突,又称为碰撞

为了减少冲突发生后的影响,工作站在发送数据过程中还要不停地检测自己发送的数据,看有没有在传输过程中与其他工作站的数据发生冲突,这就是冲突检测(Collision Detected)。

CSMA/CD的工作原理可以用以下几句话来概括:先听后说,边听边说。一旦冲突,立即停说。等待时机,然后再说。

Linux基础入门之TCP/IP网络基础知识之介质访问控制

如上图所示:在这么一个网络中ABCD4主机都使用中间的红色同轴电缆来传输信号,如果A需要发送一份文件给B,C需要发送一份文件给D,A在发送前是一直监听这个网络了,看线路是否繁忙被占用,如果有那么则等待线路空闲(先听后说),如果发现网络不被占用了,那么开始给B发送信号,而且在一边发的时候一边监听这个网络(边听边说),如果发现这时候网络上有其他信号,那么立即停止对B的发送(一旦冲突立即听说),停止之后还继续监听网络,如果发现网络又不被占用了那个再次给B发送信息(等待时机然后再说)。

2、令牌环:(Token Ring)

令牌环介质访问控制使用一个令牌沿着环循环,且应确保令牌在环中为唯一的(和我们用的以太网不是一个网络他是一个完全不一样的机制是另外的一种网络)

Linux基础入门之TCP/IP网络基础知识之介质访问控制

如上图所示:在这个网络中我们接入了ABCD四台主机,在网中还有令牌就是我用小红圆表示的东西,一直游走在这个网络中,当所有主机都空闲不发送信息给任何主机的时候,这个环就一直在网络中跑啊跑啊跑的,当A主机要发送信息给B的时候,就进入右边那个模型上的样子,他把令牌抓住了,这时候如果C想发信息给D那么对不起你发不出去因为你没令牌,只能乖乖的等A把令牌丢出去后B抓住了令牌才能发送,一句话总结得玉玺者有天下(注意:真实的网络不是我所画的那样是个圈,只是为了方便理解和说明才画成那样的)


网络配置与管理

冲突域:以太网中,冲突域是由hub组织的。一个hub就是一个冲突域。交换机的每个端口都是一个冲突域。在同一个冲突域中的每一个节点都能收到所有被发送的帧。

Linux基础入门之TCP/IP网络基础知识之介质访问控制

如图上图所示:这是模拟一个HUB中的两个冲突域,中间红色的块负责分割冲突域,而且在其上面还有个表记录着那个主机在哪,如果A要和C通信他们就要遵循MAC控制机制,因为他们还是在一个冲突域内,如果A要和E通信那么这时候发现自己冲突域内找不到就告知1号口,说E查询E主机并需要和E建立通信,这时候中间红色块中表就发现E主机是接在2号口上的那么问题也就解决。

总结:一个主机向另一个主机发出信号。除目的主机外,有多少主机能收到这个信号,这些主机就构成一个冲突域

广播域:网络中能接收任一设备发出的广播帧的所有设备的集合,

Linux基础入门之TCP/IP网络基础知识之介质访问控制

这里还是借助上面冲突域的图:当A需要和E通讯的时候他自己并不知道E在哪,这话似乎他就满世界的大喊E出来我找你还钱,这个动作就叫广播,当BCD听到A喊话后是不会理A的因为他没有A留下的借条,而没有借条A怎么会给他欠款呢,但是接口1不一样打就是个不怕事大的主,A喊的时候还是空口喊喊而他却是换成了一个喇叭把A的喊话传到了更远的地方,这时候喊话就被传播到2号那边的E的冲突域中,然后AE私债能了了,这时候就可以说A所在的冲突域和E所在的冲突域是一个广播域。

总结:广播域就是说如果主机发出一个广播信号后能接收到这个信号的范围。通常来说一个局域网就是一个广播域(用路由器连接的网络除外)

补充信息1:在我自己学习到这里的时候当时我心中就有个疑问,交换机是如何知道自己的所有接口下有哪些主机?其实很简单交换机也是个设备也是可以让管理员接入控制的,也就是说我们可以通过交换机一个特殊的控制接口去管理交换机这个接口就是所谓的console 接口,管理员可以通过console口去交换机上建立一个表写上A主机在交换机1口上,B在2口上...,但是不是所有的交换机都提供这个console接口的,难道那些交换机就没有这个表了么?不然,交换机还有自动学习的功能,交换机可以把所有经过自己的数据进行分析,发现A的数据了就看看A是不是在自己的管辖范围内,是就给他加入自己的表,同时交换机在管理这个表的时候还采用了老化机制,也就是说这个表内容是滚动的,加入说表滚动时间是5分钟,从把A加入表后开始给A计时,过了3分钟又发现了A,然后刷新表从新从5分钟计时,如果到了5分钟还没发现A的通信数据,那么就把A从这个表上删除。以此用自动学习机制和老化机制来实现了智能管理。(那个所谓的表就是CAM表,此表是记录在内存上的)

补充信息2:通过上面说到的广播域和交换机智能管理,我们可以来假设个现象,如果一个广播域中有100个交换机每个交换上有24台主机,所有的交换机的CAM表都么了记录,会发生什么?N多广播信号+疯狂的广播=广播风暴。由此得出在大范围的网络中用这种交换机学习的方式是不能保证网络始终工作在高性能模式下

lookback
  • 本文由 发表于 2015年6月8日07:28:35
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: