文档编号:465
浏览:13113 评分:173
最后更新于:2009-09-02
二层交换机工作于数据链路层,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
数据链路层主要通过接收物理层提供的比特流服务,在相邻节点之间建立链路,对传输中可能出现的差错进行检错和纠错,向网络层提供无差错的透明传输。
在数量链路层传输的基本单位为“帧(Frame)”。每一帧包括一定数量的数据和一些必要的控制信息。
目前,有四种不同格式的以太网帧,在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,其中,前7个字节称为前同步码(Preamble),最后1个字节是帧起始标志符0xAB,它标志着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。紧接着的是6字节的目标MAC地址,6字节的源MAC地址,随后的帧因不同的格式而各不同,最后4个字节是帧校验序列FCS ,采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。不同格式的以太网帧的各字段定义都不相同,彼此也不兼容。
交换机的具体工作流程如下:
1) 当交换机从某个端口收到一个数据帧,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
3) 如本端口下的主机访问本端口下的主机时丢弃;
4) 如表中有与这目的MAC地址对应的端口,把数据包直接转发到这端口上;
4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以记录这一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的端口地址表。
端口地址表中记录了端口下包含主机的MAC地址,端口地址表是交换机上电后自动建立的,保存在RAM中,并且自动维护。端口地址列表中表项是有生命期的。每个表项在建立后开始进行倒记时,每次发送数据都要刷新记时,对于长期不发送数据的主机,其MAC地址的表项在生命期结束时被删除,所以端口地地表记录的总是最活动的主机的MAC地址。