Ethernet HUB
是如何工作的?


     Ethernet HUB的基本工作原理是广播(broadcast)技术,也就是HUB从任何一个端口收到一个Ethernet包时,它都将此Ethernet包广播到所有其它端口,HUB中不记忆哪一个MAC地址挂在哪一个端口。接在HUB端口上的NIC(网卡)根据信息包所要求的功能执行相应动作,这是由网络层(layer 3)之上控制的,Ethernet HUB不处理这些内容,Ethernet HUB只负责从一个端口上收到的Ethernet包广播到所有其它端口(所谓广播,是指HUB将该Ethernet包发送到所有其它端口,并不是指HUB将该包改变为广播包),仅此而已。
   Ethernet包中带有源MAC地址(NIC中带的Ethernet地址,48位长,见图1)和目的MAC地址。MAC地址与Ethernet包中的目的MAC地址相同的计算机执行该包中所要求的动作,这个动作由layer 3之上定义,与Ethernet HUB无关,Ethernet HUB只处理Ethernet包,即只与MAC地址打交道。如果该目的MAC地址不存在,或该目的MAC地址不响应(即上层软件不处理),Ethernet HUB并不知道,也不处理。这就好像邮递员,他是根据信封上的地址传递信件,只管传递,不管信中是什么内容以及收信人是否回信,或收信人由于某种原因没有回信,而导致发信人着急,与邮递员无关。只是邮递员在找不到该地址时还会将信退回,Ethernet HUB不管退信,只负责转发。见
图2。

前缀标志

SFD

目的MAC地址

MAC地址

长度

数据

DAD

CRC

  7字节 1字节 2-6字节 2-6字节 2字节  0-1500字节 X字节     4字节

1 IEEE 802.3包格式

Windows 95/98中,当用户A双击“网上邻居”时,相当于生成了一个Ethernet广播包,此包中的目的MAC地址为全1,该包要求执行的命令是:“请告诉我你们的名字!”。请注意,Ethernet HUB不处理此命令,也不知道此命令是什么,Ethernet HUB只知道此包为广播包,并负责将此包广播到所有其它端口(源端口除外),仅此而已。与HUB相连的计算机中的NIC收到此包(因为是广播包,故收下),将包中的数据域内容传送给上层软件(即Windows 95/98),上层软件返回网络中的计算机名给广播包的发送者(广播包中含有发出者的源MAC地址),用户A收到各个计算机回送的响应包,从而得知网络上有什么用户,并由Windows 95显示在“网上邻居”中。如果找不到网络上的用户,则可能有下列原因:

  1.该用户没有连到网上或接触不好(如电缆两端RJ-45),或该计算机没有加电。如果是接触不好,可能会有时看到,有时看不到。
  2HUB内部信息包传送不正确,芯片设计有问题(这几乎是不可能的)。
  3.互连的计算机高层协议配置不正确,导致双方无法互相理解。如绑定的协议不一致,有的用TCP/IP,有的用IPX等等,或者超时时间太短(此时间与Ethernet无关),以致于响应包还在路上,就宣布网络寻找结束,没有发现××用户。这个时间不是由Ethernet控制的,是由计算机操作系统控制的,如果某些计算机正在执行某些操作而不响应NIC的中断,它自然无法处理该广播包,从而使用户A看不到某些计算机。
  4.此外,与HUB相连的计算机的工作模式(即Half-duplex,或Full-duplex)必须与HUB一致。HUB只能工作于半双工,计算机网卡也必须设为半双工(或自动方式),当然速率也必须一致,否则计算机发出的响应包也可能到达不了用户A,从而导致看不到用户。
  5、请参阅“Windows 95/98
对等网的浏览”一文的内容。

HUB工作原理:① HUB从某一端口A将收到的包发送到所有端口

HUB工作原理:② 非广播包时,地址与包目的MAC地址相同的站响应用户A

HUB工作原理:③ 广播包时,所有用户都响应用户A

 

2 Ethernet HUB工作特点


back(1).gif (2190 字节)