硬件部分的处理可以用这句话来描述:
收到报文后,判断该报文是二或是三层报文,然后判断其中的源,目的地址是否已经解析,如果已经解析,则硬件完成该报文的转发,如果是未解析的情况,则产生CPU中断,靠软件来学习该未解析的地址。
3)驱动代码部分
其中关键的核心有:
地址解析任务:在该任务中对已经报上来的未解析的地址进行学习,以便硬件完成后续的报文的转发而不需软件干预。
地址管理任务:为了便于软件管理和维护,软件部分保存了一份同硬件中转发表相同的地址表copy。
fib(forwarding information base)表: 这个表的信息来源于ip route table中的路由信息,之所以把它放在了driver部分, 是为了地址解析任务在学IP地址时查找的方便。
举例:
display fib:
Destination/Mask Nexthop Flag Interface
0.0.0.0/0 10.110.255.9 I VLAN-Interface2
10.110.48.0/21 10.110.48.1 D VLAN-Interface1
10.110.48.1/32 127.0.0.1 D InLoopBack0
10.110.255.8/30 10.110.255.10 D VLAN-Interface2
10.110.255.10/32 127.0.0.1 D InLoopBack0
127.0.0.0/8 127.0.0.1 D InLoopBack0
三层转发主要涉及到两个关键的线程:
地址学习线程和报文转发线程,这个和二层的线程是类似的;
1)报文转发线程主要根据地址学习线程生成的转发表(ipfdb table)信息来对报文进行转发,如果里面的信息足够多,这个转发的过程全部由硬件来完成,如果信息不够,则会要求地址学习线程来进行学习,同时该报文硬件不能转发,会交给软件协议栈来进行转发。
2)地址学习线程主要用来生成硬件转发表(ipfdb table)
其实ipfdb table和二层的MAC地址表也是类似的,只不过里面的具体表项所代表的含义和所起的作用不同罢了。
有一个问题:在路由器等软件转发引擎中,每收一个报文都会去查路由表查下一跳,然后再查ARP表找下一跳的MAC,可是在三层交换机(如S3526)中,报文转发的时候不需要去查路由表和ARP表,这样的话,这两个表是不是就没有什么作用了?
回答当然是否定的,在S3526的三层转发流程中,过程一般都是这样的,第一个报文硬件无法转发,要进行IP地址的学习,同时为了保证不丢包,该报文也由软件来进行转发,在学习完成以后,第二,第三个报文以后就一直是由硬件来完成转发了,这个过程也可以套用“一次路由,多次交换”来形象的进行总结,在一次路由中,要利用路由表和ARP表来学习IP地址,和转发第一个报文,在以后的多次交换过程中,则只要有ipfdb table就可以了。 更多请看Cisco与华为技术网(Vlan9.com)Cisco交换机专题、三层交换、交换机故障专题,或进入论坛讨论。
相关专题
- (5370篇文章)Cisco交换机专题
- (2301篇文章)三层交换
- (2247篇文章)交换机故障
- (2213篇文章)交换机配置
- (1417篇文章)华为3Com
- (2213篇文章)交换机配置基础知识与实战技巧
- (12篇文章)华为交换机组网方案
- (5372篇文章)思科交换机配置
- (852篇文章)以太网技术介绍
- (2213篇文章)交换机选购
论坛精华
阅读排行榜
最新技术文档
- 04-23感受真实的虚拟机—Virtual Server王者归来
- 04-23认识各大网络银行及实战使用
- 04-23微软即将发布新一代iSCSI initiator
- 04-23入门基础-VC网络编程入门
- 03-13小窍门:简单个性化我的电脑
- 03-13如何让电脑硬盘运行更快
- 03-13诺基亚将猛攻研发 称未来手机终将取代电脑
- 03-13给别人电脑永远设置个别人删不掉的管理员用户
- 03-13帝国时代3-普鲁士快攻电脑小心得 aoe
- 03-13“守财奴”如何升级电脑?
热门关键字导读
