tilera netlib应用层协议栈-IP层实现方式
2014-04-08 20:14
211 查看
转载请注明出处!
Netlib的IP层实现了传统网络协议栈的主要功能:IP数据报的接收和转发处理。接收即为将目的地址为本机的IP数据报上报到传输层处理,转发即为将目的地址非本机的IP数据报根据系统路由信息转发出去。下面为netlib
IP层实现的处理流程图:
Netlib IPv4处理模块实现的功能为:
IPV4数据包的接收处理,合法性检查、路由、传输层上报
IPv4路由表查询引擎与维护历程
IPv4邻居信息(ARP)查询引擎和维护信息
Netlib IPv4处理模块的架构:
IPv4模块在用户空间维护路由和邻居信息。路由表和邻居信息表都是全局、可共享数据结构,这样数据面和空间面都能具有访问权限。
控制面基于netlink实现内核路由和邻居信息的共享机制,控制面完成路由表项和邻居信息的添加、删除操作。
数据面只会查询路由表和邻居信息表,并且查询过程不需要加锁。
路由表和邻居信息表项删除机制:
关于路由表和邻居信息表项的删除机制类似于flow table的flow entry删除机制,删除过程分为两步:将表项从相应的表中删除、释放表项占用的物理内存空间。
具体删除步骤如下
控制面将表项待删除的表项指针从相应的表中移除
gc(garbage collector)负责释放表项占用的内存空间。为了能够达到安全的释放内存,gc需要等待所有访问该表项的任务(绑定到具体的tile上)完成访问后,方能将其安全的释放。
路由表的查询机制:
路由表包括两种表:Hash表和Trie表。其中,Hash表保存路由的完成信息;Trie表用于数据面查询路由信息;路由表和邻居表的查询过程均不需要的任何的“锁”机制。
转载请注明出处!
Netlib的IP层实现了传统网络协议栈的主要功能:IP数据报的接收和转发处理。接收即为将目的地址为本机的IP数据报上报到传输层处理,转发即为将目的地址非本机的IP数据报根据系统路由信息转发出去。下面为netlib
IP层实现的处理流程图:
Netlib IPv4处理模块实现的功能为:
IPV4数据包的接收处理,合法性检查、路由、传输层上报
IPv4路由表查询引擎与维护历程
IPv4邻居信息(ARP)查询引擎和维护信息
Netlib IPv4处理模块的架构:
IPv4模块在用户空间维护路由和邻居信息。路由表和邻居信息表都是全局、可共享数据结构,这样数据面和空间面都能具有访问权限。
控制面基于netlink实现内核路由和邻居信息的共享机制,控制面完成路由表项和邻居信息的添加、删除操作。
数据面只会查询路由表和邻居信息表,并且查询过程不需要加锁。
路由表和邻居信息表项删除机制:
关于路由表和邻居信息表项的删除机制类似于flow table的flow entry删除机制,删除过程分为两步:将表项从相应的表中删除、释放表项占用的物理内存空间。
具体删除步骤如下
控制面将表项待删除的表项指针从相应的表中移除
gc(garbage collector)负责释放表项占用的内存空间。为了能够达到安全的释放内存,gc需要等待所有访问该表项的任务(绑定到具体的tile上)完成访问后,方能将其安全的释放。
路由表的查询机制:
路由表包括两种表:Hash表和Trie表。其中,Hash表保存路由的完成信息;Trie表用于数据面查询路由信息;路由表和邻居表的查询过程均不需要的任何的“锁”机制。
相关文章推荐
- Linux 自检和 SystemTap
- BS项目中的CSS架构_仅加载自己需要的CSS
- 关于三种主流WEB架构的思考
- 算法系列15天速成 第十天 栈
- Array栈方法和队列方法的特点说明
- w3c技术架构介绍
- linux学习笔记 linux目录架构
- Linux内核链表实现过程
- SQL Server 2008网络协议深入理解
- java数据结构之java实现栈
- 浅析栈区和堆区内存分配的区别
- C++中静态存储区与栈以及堆的区别详解
- C++中栈结构建立与操作详细解析
- 面试:(设计,架构)
- 十日谈
- 实现一个栈并获取其最小元素
- 将中缀表达式转化为后缀表达式
- 图解后缀表达式的计算过程
- 栈是如何实现递归的
- 顺序栈的出栈操作