请教xtang,关于“Architecture of io-pkt”架构,有点不明白文档说的是什么?

官方文档:Core Networking Stack User’s Guide [6.5.0]
下载地址:http://www.qnx.com/download/group.html?programid=20945
文档:core_ntwk_user_guide.pdf

这个文档中p17~p18页说的我有点不明白?

The io-pkt stack分几层:
1:最底层是driver:提供的功能”At the bottom layer are drivers that providethe mechanism for passing data to, and receiving data from,
the hardware“,这个我明白!

2:第二层的描述”The drivers hook into a multi-threaded layer-2 component (that also provides fast forwarding andbridging capability)
that ties them together and provides a unified interface into the layer-3 component“
我先理解下我的意思:驱动接收到的数据被hook到multi-threaded layer-2,layer-2负责把他们联系在一起,提供一个统一的接口给layer-3使用。

但是文档给的图没有layer-2??这点不明白!!!!!
难道是“Ether input / 802.11framework /others”?---------这个属于多线程处理吗??????
我怎么上传不了图片 :cry:

3:layer-3是TCP, UDP,ip等协议

感觉你理解得很正确啊。:slight_smile:

驱动负责处理传入ether数据包(如果是无线的话,会有无线管理包传给802.11层,数据包最后打成ether包),然后通过ether_input()传入协议栈;(multi-threaded layer-2 component)是在协议栈内部的一个处理层。如果是bridge需要重传包,或是IP包需要forwarding时,协议栈的这个处理层直接就处理了。之所以是多线程更主要的是为了对应多网卡的情形。

如果IP包是给本机的,那么这个layer-2处理层最后会将包交给上层的layer-3处理。

thank you,xtang