基于Intel IXA的千兆以太路由器设计
第一章 设计背景 | 第1-14页 |
1.1 网络流量模式的转变 | 第9页 |
1.2 IntelIXA概述 | 第9-12页 |
1.2.1 微引擎技术 | 第10页 |
1.2.2 Xscale微结构 | 第10页 |
1.2.3 IXA硬件抽象层(HAL) | 第10-11页 |
1.2.4 IXP1200网络处理器系列 | 第11页 |
1.2.5 IXA软件开发包(SDK) | 第11-12页 |
1.3 IXP1200以太评估系统 | 第12-13页 |
1.4 实际工作及价值 | 第13-14页 |
第二章 IntelIXP1200 | 第14-38页 |
2.1 IXP1200概述 | 第14-18页 |
2.1.1 IXP1200体系结构 | 第14-17页 |
2.1.2 IXP1200的主要特性 | 第17-18页 |
2.2 重要概念 | 第18-22页 |
2.2.1 参考(Reference) | 第18-19页 |
2.2.2 信号和同步 | 第19页 |
2.2.3 线程和现场对换 | 第19-20页 |
2.2.4 本地数据存储和成块传输 | 第20-21页 |
2.2.5 并发性 | 第21-22页 |
2.3 StrongARM核 | 第22-23页 |
2.4 微引擎 | 第23-27页 |
2.5 SRAM单元 | 第27-30页 |
2.6 SDRAM单元 | 第30-31页 |
2.7 PCI单元 | 第31-33页 |
2.8 IX总线单元 | 第33-38页 |
2.8.1 就绪总线 | 第35页 |
2.8.2 IX数据总线模式 | 第35-36页 |
2.8.3 ScratchpadRAM | 第36页 |
2.8.4 Hash单元 | 第36页 |
2.8.5 IXB3208总线扩展结构 | 第36-38页 |
第三章 系统概述 | 第38-45页 |
3.1 功能描述及任务分摊 | 第38页 |
3.2 StrongARM软件 | 第38-40页 |
3.3 微引擎软件概述 | 第40-42页 |
3.4 数据结构概述 | 第42-44页 |
3.4.1 数据结构描述 | 第42-43页 |
3.4.2 内存使用分配 | 第43-44页 |
3.5 快速端口特性 | 第44-45页 |
第四章 基本数据通路 | 第45-68页 |
4.1 微引擎初始化 | 第45-46页 |
4.2 数据结构 | 第46-53页 |
4.2.1 接收状态(Rec_State) | 第46-47页 |
4.2.2 Inter-thread邮箱 | 第47页 |
4.2.3 输出端口邮箱 | 第47-48页 |
4.2.4 IP路由表 | 第48-49页 |
4.2.4.1 Trie表格式 | 第48-49页 |
4.2.4.2 IP转发表格式 | 第49页 |
4.2.5 包描述符和包缓冲区 | 第49-50页 |
4.2.6 发送队列 | 第50-52页 |
4.2.6.1 队列结构 | 第50-51页 |
4.2.6.2 发送队列描述符格式 | 第51-52页 |
4.2.7 发送状态信息 | 第52页 |
4.2.8 利用IXP1200硬件同步机制 | 第52-53页 |
4.3 包流程概述 | 第53-55页 |
4.3.1 接收处理流程 | 第53-54页 |
4.3.2 发送处理流程 | 第54-55页 |
4.4 接收处理 | 第55-61页 |
4.4.1 线程执行顺序 | 第55-56页 |
4.4.2 接收线程初始化 | 第56页 |
4.4.3 处理接收请求 | 第56-57页 |
4.4.4 处理MAC异常 | 第57-58页 |
4.4.5 线程之间传递状态信息 | 第58-59页 |
4.4.6 处理MAC和IP头部 | 第59-60页 |
4.4.7 处理非SOPMPKT | 第60页 |
4.4.8 帧排队 | 第60-61页 |
4.4.8.1 标注帧处理完成 | 第60-61页 |
4.4.8.2 将帧插入到发送队列上 | 第61页 |
4.5 发送处理 | 第61-68页 |
4.5.1 线程间通信 | 第61-63页 |
4.5.1.1 发送单元计数器 | 第62页 |
4.5.1.2 任务寄存器 | 第62页 |
4.5.1.3 发送状态信息 | 第62-63页 |
4.5.1.4 发送Inter-thread信号 | 第63页 |
4.5.2 发送初始化 | 第63页 |
4.5.3 发送调度器 | 第63-64页 |
4.5.4 读取一个任务 | 第64页 |
4.5.5 发送SOPMPKT | 第64-65页 |
4.5.6 发送MiddleMPKT | 第65页 |
4.5.7 发送EOPMPKT | 第65-66页 |
4.5.8 确认TFIFO单元 | 第66-67页 |
4.5.9 处理Skip任务 | 第67-68页 |
第五章 实现数据包过滤 | 第68-81页 |
5.1 过滤特性分析 | 第68-71页 |
5.1.1 IP地址过滤 | 第68-69页 |
5.1.2 封装协议过滤 | 第69页 |
5.1.3 IP分段过滤 | 第69页 |
5.1.4 IP选项过滤 | 第69页 |
5.1.5 ICMP消息类型过滤 | 第69-70页 |
5.1.6 TCP/UDP端口过滤 | 第70页 |
5.1.7 TCP标志位过滤 | 第70-71页 |
5.2 数据结构 | 第71-75页 |
5.2.1 端口过滤描述符 | 第72-73页 |
5.2.2 过滤规则表 | 第73-75页 |
5.2.2.1 IP过滤规则 | 第73-74页 |
5.2.2.2 TCP过滤规则 | 第74页 |
5.2.2.3 UDP过滤规则 | 第74页 |
5.2.2.4 ICMP过滤规则 | 第74-75页 |
5.3 包过滤发生时机 | 第75-76页 |
5.4 包过滤处理 | 第76-81页 |
5.4.1 创建匹配参数表 | 第77页 |
5.4.2 规则匹配 | 第77-79页 |
5.4.2.1 IP规则匹配 | 第78页 |
5.4.2.2 ICMP规则匹配 | 第78-79页 |
5.4.2.3 TCP规则匹配 | 第79页 |
5.4.2.4 UDP规则匹配 | 第79页 |
5.4.3 处理丢弃的数据包 | 第79-81页 |
第六章 实现网络地址转换(NAT) | 第81-93页 |
6.1 NAT是如何工作的 | 第81-86页 |
6.1.1 静态NAT | 第81-83页 |
6.1.2 动态NAT | 第83页 |
6.1.3 端口地址转换(PAT) | 第83-85页 |
6.1.4 NAT中对特定应用的处理 | 第85-86页 |
6.2 NAT与网络安全 | 第86页 |
6.3 动态NAT实现 | 第86-93页 |
6.3.1 内部网络与外部网络 | 第86-87页 |
6.3.2 全局IP地址池 | 第87-88页 |
6.3.3 活动转换表 | 第88-89页 |
6.3.4 NAT进行的时机 | 第89-90页 |
6.3.5 对源地址进行NAT | 第90-91页 |
6.3.6 对目的地址进行NAT | 第91-93页 |
第七章 总结 | 第93-94页 |
参考文献 | 第94-95页 |
致谢 | 第95页 |