作者:http://blog.vckbase.com/zuilang
第四章局域网
传统以太网
先看一些概念的中英对照:
网卡:网络接口卡(NIC,Network Interface Card),通信适配器(adapter)。
MAC(Medium Access Control):媒体接入控制子层。
关于网卡
网卡上面装有处理器和存储器,装有对数据进行缓存的存储芯片。计算机到局域网的通信过程如下:
计算机―>主板I/O总线、并行传输―>网卡―>电缆双绞线等、串行传输―>局域网
设备驱动程序告诉网卡,应当从存储器的什么位置将多大的数据块发送到局域网,或者应当在存储器的什么位置上将局域网传送过来的数据块存储下来。网卡还要能够实现以太网协议。
网卡受计算机的控制,可看成为一个半自治单元。当网卡收到一个有差错的帧时,它就将这个帧丢弃而不必通知计算机。当网卡收到一个正确的帧时,它就使用中断来通知计算机并交付给协议栈中的网络层。当计算机要发送一个IP数据报时,就由协议栈向下交给网卡组装成帧后发送到局城网。
CSMA/CD协议
为了通信的简便,以太网采取了两种重要的措施:
第一、采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。
第二、以太网对发送的数据帧不进行编号,也不要求对方发回确认。这样做的理由是局
域网信道的质量很好,因信道质量产生差错的概率是很小的。
因此,以太网提供的服务是不可靠的。当目的站收到有差错的数据帧就丢弃,其他什么也不做。差错的纠正由高层决定。例如,如果高层使用TCP协议,那么TCP就会发现丢失了一些数据。于是经过一定的时间后,TCP就将这些数据重新传递给以太网进行重传。但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
总线在同一时间只能允许一台计算机发送信息。以太网采用的协调方法是使用CSMA/CD(Carrier Sense Multiple Access with Collision Detection)载波监听多点接入/碰撞检测。
“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
“多点接入”就是说明这是总线型网络。
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。在发生碰撞时,等待一段随机时间后再次发送。
既然已有载波监听,为何还需要碰撞检测呢?因为电磁波在总线上传输需要时间,有可能开始传输没有冲突(没有监听到),在传输过程中与别的数据“碰面”(碰撞检测到)了。
关于集线器
使用无屏蔽双绞线、星形网拓扑的局域网:每个站需要用两对双绞线,分别用于发送和接收。在星形网的中心则增加了一种可靠性非常高的设备:集线器(hub)。
集线器的特点:
1. 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议,并共享逻辑上的总线。网络中的各个计算机必须竞争对传输媒体的控制,并且在一个特定时间至多只有一台计算机能够发送数据。因此,这种10BASE-T以太网又称为星型总线或盒中总线。
2. 集线器和转发器都是工作在物理层,它的每个端口都具有发送和接收数据的功能。当集线器的某个端口接收到工作站发来的比特时,就简单地将该比特向所有其他端口转发。若两个端口同时有信号输入(即发生碰撞),那么所有的端口都收不到正确的帧。
3. 集线器采用了专门的芯片,进行自适应串音回波抵消。这样就可使端口转发出去的较强信号不致对该端口接收到的较弱信号产生干扰(这种干扰即近端串音)。
以太网的MAC层
MAC层的硬件地址:固化在网卡ROM中的全球唯一的地址,现在使用的长度是6字节。
扩展的局域网
使用路由器进行局域网之间的互连是在网络层进行互连,还可在物理层或数据链路层使用转发器和集线器将局域网进行扩展。这种扩展的局域网在网络层看来仍然是一个网络。在物理层使用集线器进行扩展,在数据链路层使用网桥进行扩展。
关于网桥:
网桥从端口接收网段上传送的各种帧,先暂存在其缓存中,若未出现差错且目的站地址属于另—个网段,则通过查找转发表,将收到的帧送往对应的端口转发出去,否则丢弃此帧。因此,仅在同一个网段中通信的帧,不会被网桥转发到另一个网段去,因而不会加重整个网络的负担。网桥是通过内部的端口管理软件和网桥协议实体来完成上述操作的。转发表也叫做转发数据库或路由目录。
目前使用得最多的网桥是透明网桥(transparent bridge)。“透明”是指局域网上的站点并不知迢所发送的帧将经过哪几个网桥。透明网桥是一种即插即用设备,按照以下算法建立转发表:
(1)从端口x收到无差错的帧(如有差错即丢弃),在转发表中查找目的站MAC地址。
(2)如有,则查找出到此MAC地址应当走的端口d,然后进行(3),否则转到(5)。
(3)如到这个MAC地址去的端口d=x,则丢弃此帧(因为这表示不需要经过网桥进行转发)。否则从端口d转发此帧。
(4)转到(6)。(是不是出了问题?怎么多出来一步?应该可以直接放到第三步)
(5)向网桥除x以外的所有端口转发此帧(这样做可保证找到目的站)。
(6)如源站不在转发表中,则将源站MAC地址加入到转发表,登记该帧进入网桥的端
号,设置计时器。然后转到(8)。如源站在转发表中,则执行(7)。
(7)更新计时器。
(8)等待新的数据帧。转到(1)。
局域网的拓扑经常会发生变化,因此网桥中的端口管理软件会周期性地扫描转发表中的项目并更新。
多端口网桥——以太网交换机
交换式集线器(switching hub),也称为以太网交换机(switch)或第二层交换机(表明这种交换机工作在数据链路层)。
虚拟局域网
没啥好记的,就是从逻辑上划分局域网。
无线局域网
暂时忽略。