linux kernel 网络协议栈

推荐学习网址:http://blog.sina.com.cn/s/blog_4b9eab320102vme0.html

协议栈分层/层次结构

系统调用接口(详见Jones的另一篇文章:使用Linux系统调用的内核命令)
协议无关接口(BSD socket层)
网络协议(或者简称网络层。这是一个协议的集合,从链路层到传输层的协议都包括在内。不同的协议在/net文件夹下除core以外的子目录下,例如基于IP的协议簇都在/net/ipv4目录下,以太网协议在/net/ethernet目录下)
驱动无关接口(又称通用设备层–generic device layer/驱动接口层/设备操作层–device handling layer。属于网络协议栈最核心的部分,文件位于内核/net/core文件夹下,所以又叫网络核心层。其中包括了核心的数据结构skbuff文件中的sk_buff/dev.c文件中net_device,这些数据结构将在下篇文章中介绍)
设备驱动程序(在/driver/net文件夹内)
不像OSI或者TCP/IP协议栈,事实上并没有一个命名标准,因此在这里,这些层次的名称并不是通用的,但是其语义是清晰的,而且在大多数其他的文章里只是个别字上的差别。分层详细介绍可以参考Jones的文章。

重要数据结构sk_buff

全称socket buffers,简称skb,中文名字叫套接字缓存。它可以称得上是Linux内核网络协议栈中最重要的数据结构,没有之一。它作为网络数据包的存放地点,使得协议栈中每个层都可以对数据进行操作,从而实现了数据包自底向上的传递。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值