全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Linux网络栈总体架构

时间:2023-07-24 10:59

人气:

作者:admin

标签: 网络  Linux 

导读:网络栈总体架构 总体结构 网络栈指的是为了进行网络数据包的收发,由内核实现的一套函数集合。网络栈安装预先设置的一套规则对用户数据进行封装从而达到网络上主机之间数据交换...

网络栈总体架构

总体结构

网络栈指的是为了进行网络数据包的收发,由内核实现的一套函数集合。网络栈安装预先设置的一套规则对用户数据进行封装从而达到网络上主机之间数据交换的目的。

最初按照这种分层设计的思想,网络栈被分为了4层,从上到下依次为应用层、传输层、网络层、链路层,而且在每个层次都定义了数据的封装方式,随着网络协议的发展,四层分层架构满足不了新的需求,OSI七层网络栈出现,在原先的应用层进行了更细致的划分,将应用层划为:应用层、表示层、会话层。

以OSI七层模式为依据,学习Linux1.2内核网络栈实现中的文件对应关系:

图片

应用层:

该层定义了一套用户调用接口函数,即socket套接字接口函数,如socket、bind、accept等,这套接口函数由Linux操作系统的glicbc库提供,网络栈实现不涉及这套函数。

表示层、会话层:

相应的功能实现对于BSD Socket或INET Socket层。

传输层:

如常见的TCP、UDP协议,对于传输层的实现集中在TCP协议和UDP协议上

该层涉及的文件主要有:tcp.c udp.c igmp.c snmp.h

网络层:

数据包路由功能实现在网络层,这一层也是IP协议所在的层次,RAW套接字也划分在这一层,用户必须自己创建IP首部和传输层协议首部。

该层涉及的文件主要有:ip.c route.c ip_fw.c raw.c packet.c

链路层:

链路层实现是作为网络栈与底层硬件驱动的一个接口层存在的。

该层涉及的文件主要有:dev.c p8022.c panap.c p8023.c eth.c arp.c

“驱动层”:

OSI七层模式没有这一层,将驱动层序所在层次定义为“驱动层”,该层与链路层进行交互,完成数据包的收发公工作。

该层涉及的文件定义在dricers子目录下的一些网络设备的驱动程序。

物理层:

网络栈实现不涉及物理层

Linux网络栈层次命名

网络栈分层如下:BSD socket层、INET层、传输层(L4)、网络层(L3)、链路层(L2)

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信