在这里我们将要讨论一些网络物理和逻辑形态╋以及它们各自的特征╋同时也会开始介绍 IEEE的802.x 标准。
网线的困扰
要架设网络╋当然先要将个机器连接起来。假如您喜欢的话╋我们可以将每两个网络节点都直接用网线连接起来╋如果材料够╋地方又允许的话╋这完全是有可能的。那么按此接法╋我们需要的网线数量 = 节点数目 x ( 节点数目 - 1 ) / 2 ╋也可以从下面的列表中直接看出来?
天哪?如果有一百台计算机起不是整个办公室都布满网线了??而且网线也需要钱买的啊╋所以实际上╋是没有人会采用这样的联机方法的。 ^_^ 较常见的布线设计大都以下面所介绍的 topology 作参考:
物理形态
星状形态(Star Topology)
一个星状的网络形态里面╋在中央是一个集线器(HUB/SWITCH)╋或 MAU (Multistation Acces Unit)╋所有的工作站?服务器和打印机都接到 HUB 上面╋看上去就像一颗星星向四周放射星光一样╋因而得名。
HUB 通常有两种?惰性(passive) HUB和活性(active) HUB。前者仅仅是将各个网线接口(port)连接起来╋也就是将上面的那个接线方法从一个办公室缩小为一个盒子罢了╋再无其它功能了?而后者还会起到增益器(Repeater)的作用,以延长网线连接的距离。
星状的形态里面╋hub 是不可缺少的部件╋如果一个 hub 的 port 都接满了╋我们还可以引一条线出去接另外一个 hub╋这样就有另外一个星星了╋但最多可以串接 4 个 hub (也就是共5个)。通常,在 hub 上面您会看到一个 uplink 的 port ,若将两个 hub 连接起来的话,您可用两种方法:1) 用普通线将 uplink 接到另一 hub 的普通 port ?2) 用跳接线将两个普通 port 连起来。但请留意与 uplink 相连的那个 port ,若是 uplink 有使用的话,那这个 port 就不能使用了?反之亦然。
星状形态的优点是?
?容易扩充
?容易除错
?容易布线
使用星状形态,如果有哪台机器不能连上网络╋我们只需要查看这台机器和 hub 之间的联机就是了。若是您的机器都四散东西╋甚至楼上楼下的╋使用星装形态的话╋你就不必担心如何将它们整体的连接起来╋只需关心各台机器怎样集中到 hub 而已。
总线形态(Bus Topology)
在 bus 形态里面也有两个类型?一是Thick Ethernet╋另一是Thin Ethernet。前者使用一条厚厚的中央网线(10base5)╋两头带有终端电阻╋然后各接点再通过一条较细的网线连到这条厚线上面?而后者则只使用 10base2 网线将所有的节点连接起来╋网线和节点之间使用 T 型接口连接╋而在两端的接点则各连接一个终端电阻。
Bus 形态的最大问题是出现问题的时候的问题(???废话啦~~)╋网络这时候需要整个停下来检查╋如果是因为终端电阻没接好那还好办╋换一个就可以。但要是其中一个节点有问题的话╋你就得慢慢找出来了。在 star 形态里面╋要是该节点有问题╋受影响的仅是其接点罢了。但在 bus上面则不同╋如果一个节点是关闭的话╋框包会略过它而直接通过 T 型接头传给下一个开着的节点。然而╋要是该有问题的接点开着的话╋也会接收和发送框包╋但却会令到网络越来越慢甚至停顿下来。
顺便一提╋我们在给 10Base2 网络除错的时候╋一个较好的方法是二分法?先从中间断起。就是将其中一个终端电阻接到中间的节点去╋然后检查各自分开的部份╋找有问题那边?再继续断开中间╋如此一直到找到问题的节点为止。
Bus 形态唯一好处是便宜?无需 hub 而且省 cable?省钱。如果在家里玩玩或接点不多╋Bus 形态也是值得考虑的。不过,现在这个优势已不复存在了,若你不是为了怀古,真要用 bus 形态的机会不高。
环状形态(Ring Topology)
一般来说╋这样的形态我们是比较少见到的╋因为其布线是一个非常头痛的问题╋您大概从下图可见一斑?
Ring 形态的布线是整条线是首尾连接而成一个环状,无需使用终端电阻。若它使用双网线连接╋其布线数量也是双倍增加了。但在一般的办公室环境里面甚少会见到物理 Ring 形态的网络╋常见于用来连接数建筑物之间的高速骨干干网╋如 FDDI 等。
逻辑形态
虽然我也知道我很?嗦╋但我还是要提醒大家╋网络形态和逻辑形态是两码子事情╋在学习逻辑形态的时候我建议您先将物理形态忘记掉。
Bus / Ethernet
我想 Ethernet 恐怕是最佳的逻辑 bus 形态例子了╋它也是现在最普遍的 LAN 类型。
这个逻辑 bus 形态是如何工作的呢?很简单╋就是每次只能有一个节点在网络上传递数据给其它节点╋其形式是通过对整个网络进行广播(broadcast)。然后其它接点收听到广播之后╋就看看数据是否传个自己的╋如果是╋则接收下来?如果不是╋则略过。每一节点都有一个自己用的 48bit 的地址(也可以称为Node ID╋也就是在前面说的网卡硬件地址了)╋每一个在网络中传输的数据都是以这个地址为传送和接收依据的。
当任何一个节点进行广播的时候╋所有的其它节点都收听得到,但真正接收的只有一个节点。其情形就像我们上课一样╋老师说?“第几排第几号同学出来拿作业?”虽然全班同学都听得到╋但却只有一位同学可以拿到。Bus 形态也和这种形式很类似╋当然具有更严谨的一套法则啦。在bus上面的数据都是以框包(frame)形式传递╋框包送出来之后╋会以电子信号同时向 bus 两端广播╋当目的地接收到给它的框包╋也不是据为己有的╋而是复制一份给自己╋而原来的框包则还是会继续被送给下一个节点╋直到封包抵达终端电阻才会被销毁。
任何类型的数据要在这一网络上面传递的话╋都必须严格的遵循既定的框包格式?Data Link Layer 作制定的格式╋是给网络用来安排数据的。Ethernet 的 Data Link Layer Frame 看起来如图?
每一个 frame 都不可以超过1518bytes╋这样就可以确保任何一个工作站都不会占用网络太久。工作站对网络广播之前╋都会先倾听一下有没其它人在使用网络╋如果听起来很安静╋则它会发送广播。但要是网络上仍然嘈嘈的呢?(这个情形就是 bus 形态最担心的)╋这时候工作站就需等待了。
假如节点 A 和节点 B 相隔得太远的话╋当他们倾听的时候可能都还没听得到对方有话要说╋就都同时把封包出去╋这就是所谓的 碰撞(collision) 了。如果当一个碰撞发生了╋就会在网线产生一个频率涟漪(frequecy ripple)。如果第一个节点监测到有这样的 ripple ╋它就会发出一个高频信号去清除所有其它信号。这个信号告诉所有节点碰撞已经发生╋这样全部节点都不会再发送封包了。这时候╋每一个节点都会随机的等待一段时间再重新进行广播╋总共可以进行 16 次尝试大家才会最终放弃。不过其情形也不会好到哪里╋因为在大家等待之后╋彼此都有封包要发送╋谁都想先发送自己的封包╋如果节点越多╋距离越长╋发生碰撞的机会也就越高。
情形就象上课时您要发言╋得先看看有没有其它同学在发言╋如果已经有人在说话了╋那你就先等他/她讲完再举手。要是两个人都同时举手╋老师就会宣布重新再举手╋这时候大家可以在一秒钟之内再举手?要是还是一样╋那么可以再于两秒之内任何时段举手?再来就 4 秒?8 秒?16 秒....的延续下去╋要试过 16 次都还一样╋没办法了╋大家都不要说好了。
在网络上╋我们称这样的方法为 CSMA/CD (Carrier-Sensing Multiple Access with Collision Detection)。要注意的是╋所有这些处理过程都必须在 Ethernet 网卡上面进行╋也就是说╋如果您要选用 Ethernet 形态╋那么你就必须全部使用 Ethernet 网卡。
Ethernet 可以在 bus, star 等物理形态上面使用。10baseT 就是使用 star 的物理形态╋但逻辑上却是 bus 形态来的╋同样也是 Ethernet╋使用的是 IEEE802.3 标准。
Token Ring
Token Ring 网络在物理上也和 100BaseT Ethernet 一样使用 star 形态。只不过代替 hub 的是 MAU 而已╋一个 MAU 可以连接八台计算机╋然后还可以连接到另一个 MUA。一块 Token Ring 网卡上面╋其中有端会带有一个 D-shell 类型的接头╋而另一端则有一个 odd-looking IBM 接头。在 Token Ring 上面无需使用终端电阻╋网线的一头接到网卡╋另一头接在 MUA 就可以了。
我们还记得在 Ethernet 系统上面使用广播形式传送封包╋然而在 Token Ring 里面╋每一个节点都只会得到其前面的一个节点送来的信息。Token Ring 的灵魂所在是一个叫做 Token Packet 的封包。这样的设计可以避免碰撞发生╋Token Ring 可以确保每次只能有一个工作站可以发送资料╋它们使用 token packet (或曰 token stick)来达到这一目的。只有获得这个 Token packet 的接点才可以发送资料。
举个例子╋同学们在班上为了避免同时有两个人发言╋于是就使用一个令牌╋由一个同学传给下一个同学╋然后最后的同学传回给最前面的同学。拿到令牌的同学╋看看如果令牌是空的╋就把说话写在令牌上面(写满为止╋如果不够用╋等下次再写)╋然后注明来源地址和目的地址╋再将令牌传给下一位同学。接到令牌的同学╋会检查目的地址╋如果不是给自己的╋就传给下一位╋如果地址是给自己的╋则抄一份保存╋原来的令牌照样传递下去。因为令牌是绕着圆圈的传递╋所以始终会到自己手上的。当那位原先发送信息的同学收回令牌╋看到来源地址是自己的╋就把令牌擦干净╋然后把令牌交给下一位同学╋就算他还有话要说╋也要这样做。如果下一位同学没有东西要写╋就简单的把令牌交给下再一位则可?如果有东西要写╋就重复刚才的规则。
Token Ring 上使用的是类似的方法╋