Linux 网络协议栈纲要
来源:互联网 发布:淘宝的流量钱包自动领 编辑:程序博客网 时间:2024/06/12 01:13
Linux的网络架构从上往下可以分为三层,分别是 :
用户空间的应用层。
内核空间的网络协议栈层。
物理硬件层。
其中最重要最核心的当然是内核空间的协议栈层了。
Linux网络协议栈结构Linux的整个网络协议栈都构建与Linux Kernel中,整个栈也是严格按照分层的思想来设计的,整个栈共分为五层,分别是 :
1. 系统调用接口层,实质是一个面向用户空间应用程序的接口调用库,向用户空间应用程序提供使用网络服务的接口。
2. 协议无关的接口层,就是SOCKET层,这一层的目的是屏蔽底层的不同协议(更准确的来说主要是TCP与UDP,当然还包括RAW IP, SCTP等),以便与系统调用层之间的接口可以简单,统一。简单的说,不管我们应用层使用什么协议,都要通过系统调用接口来建立一个SOCKET,这个SOCKET其实是一个巨大的sock结构,它和下面一层的网络协议层联系起来,屏蔽了不同的网络协议的不同,只把数据部分呈献给应用层(通过系统调用接口来呈献)。
3. 网络协议实现层,毫无疑问,这是整个协议栈的核心。这一层主要实现各种网络协议,最主要的当然是IP,ICMP,ARP,RARP,TCP,UDP等。这一层包含了很多设计的技巧与算法,相当的不错。
4. 与具体设备无关的驱动接口层,这一层的目的主要是为了统一不同的接口卡的驱动程序与网络协议层的接口,它将各种不同的驱动程序的功能统一抽象为几个特殊的动作,如open,close,init等,这一层可以屏蔽底层不同的驱动程序。
5. 驱动程序层,这一层的目的就很简单了,就是建立与硬件的接口层。
可以看到,Linux网络协议栈是一个严格分层的结构,其中的每一层都执行相对独立的功能,结构非常清晰。
其中的两个“无关”层的设计非常棒,通过这两个“无关”层,其协议栈可以非常轻松的进行扩展。在我们自己的软件设计中,可以吸收这种设计方法。
总结下:
Fig.1 Linux Network Protocol Stack
上一篇:A example of NF_IP_PRE_ROUTING module PART_1(转载)
下一篇:Writing Loadable Kernel Modules using netfilter hooks (in-depth HOWTO) – Part 1
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
- Linux 网络协议栈纲要
- Linux 网络协议栈纲要
- linux网络协议栈纲要
- Linux 网络协议栈纲要
- Linux纲要
- Linux网络协议栈
- linux网络协议栈
- Linux网络协议栈
- linux 网络协议栈
- linux 网络协议栈
- Linux网络协议栈
- Linux 网络协议栈协议的处理
- Linux网络协议栈协议的处理
- Linux 网络协议栈协议的处理
- Linux网络协议栈剖析
- Linux网络协议栈--IP
- LINUX网络协议栈--UDP
- Linux网络协议栈学习
- linux 内核网络,数据接收流程图
- linux内核ipv4网络部分分层结构及涉入源文件
- Linux Netfilter实现机制和扩展技术
- ClippingNodeTest之ScrollViewDemo
- A example of NF_IP_PRE_ROUTING module PART_1(转载)
- Linux 网络协议栈纲要
- Writing Loadable Kernel Modules using netfilter hooks (in-depth HOWTO) – Part 1
- [原创]CentOS6.0系统下安装配置openCV成功
- 全球首款工业物联网芯片渝“芯”一号在渝发布
- SQL 其他问题
- IT男们,先别慌着coding了,看看了中国又发生了什么吧
- 理解js中的闭包
- 认清经济大形势,别让我们辛苦code来的财富一再缩水
- [原创]通过SSH登录Linux服务器很慢,且服务器提示Access Denied时的解决方案