2013年8月26日星期一

Cloud_017:交换机基础知识 (整理)

1. 从HUB谈起
刚参加工作时,交换机接触的不多,主要用的是HUB集线器。
HUB是工作在物理层的设备,不具备任何智能处理能力。
HUB本身不能识别目的地址,当同一局域网内的主机A给主机B传输数据时,数据包是以广播的方式传输到HUB的每个端口,
由每一台终端通过验证数据包头的地址信息来确定是否接收。
也就是说,在这种工作方式下,同一时刻网络上只能传输一组数据帧的通讯,如果发生碰撞还得重试。这种方式就是共享网络带宽。

2. 交换机工作原理
与HUB广播方式传输数据不同,交换机把主机的网卡的硬件地址(MAC)连接在哪个端口的信息记录在一张“地址表”上。
这样,当同一局域网内的主机A给主机B传输数据时,数据包是直接发送给主机B所在的端口上。
具体流程如下:
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的。
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口。
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上。
(4)如表中找不到相应的端口则把数据包广播到所有端口上。
当目的机器对源机器回应时,交换机又可以记录这一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
通过不断的循环这个过程,全网的MAC地址信息都可以用这种方式“学习”到,交换机就是这样建立和维护它自己的地址表。

与HUB另外一个不同点是,交换机在同一时刻可进行多个端口对之间的数据传输,每个端口上连接的网络设备独享全部的带宽。
比如,当节点A向节点D发送数据时,节点B可同时向节点C发送数据。
假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。

3. 二层交换机
二层交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。
上面介绍的就是二层交换机的基本工作原理,二层交换机是工作在数据链路层的设备。

4. 三层交换机
三层交换机具有路由功能,使用IP协议进行数据交换,因此,三层交换机是工作在网络层和链路层的设备。
当主机A给主机B传输数据时,具体流程如下:
(1)已知目的主机B的IP,那么主机A就用子网掩码取得网络地址,判断主机B的IP是否与自己在同一网段。
(2)如果在同一网段,但不知道主机B的MAC地址,主机A就发送一个ARP请求,主机B返回其MAC地址。
(3)主机A用此MAC地址封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
(4)如果主机A和主机B不在同一网段,把第一个数据包发送给缺省网关,在“地址表”首先存放的就是缺省网关的MAC地址。
(5)三层模块接收到此数据包,查询路由表以确定到达主机B的路由,并构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。
(6)通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后主机A发送给主机B的数据包,就直接交由二层交换模块完成。
因此,如果主机A和主机B不在同一网段,要经过一次路由多次转发,路由由三层模块负责,转发由二层模块负责。

下图是一个交换机的典型拓扑图。
其中每个局域网中使用二层交换机,然后通过三层交换机进行跨局域网的信息传递。


5. 四层交换机
四层交换机依据TCP/UDP协议以及端口号传输数据包,因此,四层交换机是工作在传输层、网络层和链路层的设备。
当请求发出时,四层交换机根据源和目的IP地址、TCP/UDP、端口号来决定发送到哪里。
四层交换机会为提供相同服务的一组服务器设立虚拟IP,经过一套算法,来选择组中最好的服务器(找到该服务器的实际IP地址)来响应请求。

参考文献:
1. http://network.51cto.com/art/201107/278931.htm
2. http://network.51cto.com/art/201107/278943.htm
3. http://zhidao.baidu.com/question/29002608.html
4. http://www.360doc.com/content/06/0721/11/0_161305.shtml

没有评论: