linux网络体系结构

协议栈

linux优点之一在于它丰富而稳定的网络协议栈。其范围从协议无关层(例如通用socket层接口或设备层)到给中具体的网路协议实现。

协议简介

对于网络的理论介绍一般采用OSI(Open System Interconnection)模型,但是Linux中网络栈的介绍一般分为四层的Internet模型

协议栈层次对比
在这里插入图片描述

网络接口层

网络接口层把数据链路层和物理层合并在一起,提供访问物理设备的驱动程序,对应的网络协议主要是以太网协议

网际层

网络层协议管理离散的计算机间的数据数据传输,如IP协议为用户和远程计算机提供了信息包的传输方法,确保信息包能正确地到达目的机器。重要的网络层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)和IP协议(网际协议)等

传输层

传输层的功能包括:格式化信息流、提供可靠传输。传输层包括TCP(传输控制协议)UDP(用户数据协议),它们是传输层中最主要的协议。

应用层

应用层位于协议栈的顶端,它的主要任务是服务于应用,如利用FTP(文件传输协议)传输一个文件。常见的应用层协议有:HTTP,FTP,Telnet等。应用层是Linux网路设定很关键的一层,Linux服务器的配置文档主要针对应用层中的协议。

Linux网路子系统

linux网络子系统架构
在这里插入图片描述
内核空间中的5层为linux网络子系统

5层解释:
linux网络子系统的顶部是系统调用接口层。它为用户空间的应用程序提供一种访问内核网络子系统的方法。位于其下面的是一个协议无关层,它提供了一种通用方法来使用传输层协议。然后是具体协议的实现,在linux中包括内嵌的协议TCP、UDP,当然还有IP。然后是设备无关层,它提供了协议与设备驱动通信的通用接口,最下面是设备驱动程序

系统调用接口

应用程序提供访问内核子系统的方法:socket系统调用。

协议无关接口

实现一组通用函数来访问不同的协议:通过socket实现。linux 中的socket使用 struct sock 来描述,这个结构包含了特定socket所需要的所有状态信息,还包括socket所使用的特定协议和在socket上可以执行的一些操作。

网络协议

网络协议层用于实现具体的网络协议,如:TCP、UDP等。

设备无关接口

设备无关接口将协议与各种网络设备驱动连接在一起。这一层提供一组通用函数供底层网络设备驱动程序使用,让它们可以对高层协议栈进行操作。
首先,设备驱动程序可能会通过调用 register_netdevice 或 unregister_netdevice 在内核中进行注册或注销。调用者首先填写 net_device 结构,然后传递这个结构进行注册。内核调用它的 init 函数(如果定义了),然后执行一组健全性检查,并将新设备添加到设备列表中(内核中的活动设备链表)。

驱动程序

网络体系结构的最底部是负责管理物理网络设备的设备驱动程序层。

猜你喜欢

转载自blog.csdn.net/qq_41782149/article/details/89762634