tilera netlib应用层协议栈-IP层实现方式

网络 网络管理
Netlib的IP层实现了传统网络协议栈的主要功能:IP数据报的接收和转发处理。接收即为将目的地址为本机的IP数据报上报到传输层处理,转发即为将目的地址非本机的IP数据报根据系统路由信息转发出去。

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表用于数据面查询路由信息;路由表和邻居表的查询过程均不需要的任何的“锁”机制。

责任编辑:林琳 来源: CSDN
相关推荐

2010-06-13 17:51:16

SET应用层协议

2024-01-08 09:08:53

2016-11-29 15:22:47

协议应用层安全层

2011-09-22 13:34:24

2010-06-25 15:22:16

2010-06-13 17:46:47

2010-09-27 13:25:58

TCP IP协议栈

2010-06-09 10:25:18

SET应用层协议

2010-06-21 17:58:06

2010-11-23 10:36:07

2010-06-09 10:28:20

2010-06-13 13:39:46

TCP IP协议栈

2010-06-28 15:52:17

2015-10-16 10:10:18

应用层通信协议

2013-10-28 10:06:26

HTTP协议网络协议

2011-11-10 09:43:14

ZigBee协议栈网络层

2011-11-21 09:55:31

2017-05-11 09:10:31

CAN-bus应用层协议

2014-12-25 17:53:57

PTC物联网ThingWorx

2014-12-15 11:23:00

Docker Comp分布式应用容器应用
点赞
收藏

51CTO技术栈公众号