Linux网络体系架构

1、Linux的协议栈层次

2、Linux的网络子系统架构

Linux的协议栈层次

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

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

网络接口层—>网际层—>传输层—>应用层

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

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

传输层的功能包括:格式化信息流、提供可靠传输。传输层包括TCP和UDP

应用层的主要任务是服务于应用,如利用FTP传输一个文件。常见的应用层协议有:HTTP、FTP、Telnet等。Linux服务器的配置文档主要针对应用层中的协议。

Linux的网络子系统架构

从上往下:System call interface—>Protocol agnostic interface—>Network protocols —>Device agnostic interface—>Device drivers

System call interface为用户空间的应用程序提供了一种访问内核网络子系统的方法—socket系统调用。

Protocol agnostic interface提供了一种通用方法来使用传输层协议。实现一组通用函数来访问各种不同的协议,通过socket实现。Linux中的socket使用struct sock来描述,这个结构包含了特定socket所需要的所有状态信息,还包括socket 所使用的特定协议和在socket上可以执行的一些操作。

Network protocols用于实现各种具体的网络协议,如:TCP、UDP等

Device agnostic interface提供了协议与设备驱动通信的通用接口。将协议与各种网络设备驱动连接在一起。这一层提供一组通用函数供底层网络设备驱动程序使用,让它们对高层协议栈进行操作。首先,设备驱动程序可能通过调用register_netdevice或unregister_netdevice在内核中进行注册或注销。调用者先填写net_device结构,然后传递这个结构进行注册。内核调用它的init函数(如果

linux网络驱动架构,Linux网络体系架构和网卡驱动设计相关推荐

  1. 在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动

    在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动 1.下载8822CE驱动https://github.com/alanfox2000/realtek-linux/tree/ ...

  2. w311m linux驱动下载,腾达(Tenda)W311M V3.0网卡驱动(LINUX)

    这是腾达(Tenda)W311M V3.0网卡驱动(LINUX)下载,支持Soft AP功能. 软件说明 支持Soft AP功能. 硬件介绍 W311M是一款采用11N无线技术,无线传输速率达150M ...

  3. 没有网络的计算机怎么装驱动程序,装机后电脑没有网络的情况下,驱动人生6教你首先将网卡驱动安装好...

    驱动人生6在管理驱动.更新驱动等方面给童鞋们提供了很多方便,但如果童鞋们的电脑在没联网的情况下,却不能用驱动人生6来更新电脑驱动.驱动人生的工程师们不断努力,日夜开发,带网卡版驱动人生6终于发布官网抢 ...

  4. linux网卡驱动离线安装_linux系统如何安装网卡驱动

    linux系统如何安装网卡驱动 很多初学者都觉得能够在自己的笔记本上安装linux系统是一件很酷的事情,结果两个小时安装好linux系统,却发现缺少各种驱动, 为了让各位少走一些弯路,小编在这里把li ...

  5. 【Linux】ubuntu16.04/18.04安装I219-V有线网卡驱动

    intel219网卡的linux驱动,ubuntu16.04/18.04安装I219-V有线网卡驱动问题解决方法(示例代码) 安装ubuntu16.04/18.04 LTS后无网络连接的解决方法: 1 ...

  6. xp 计算机没装网络控制器,XP系统如何安装没有线网卡驱动?

    XP系统如何安装没有线网卡驱动?? 新安装的电脑要安装没有线网卡驱动才能连上WiFi网络,这样电脑才能正常上网,也有这样的情况:电脑没有线网卡驱动需要升级或者更新.有一些朋友大概还不会安装没有线网卡驱 ...

  7. Linux查网卡驱动版本,centos查看系统版本,网卡驱动和版本信息。

    1.uname -a  (Linux查看版本当前操作系统内核信息)[root@iZ28q5krmouZ logs]# uname -a Linux iZ28q5krmouZ 2.6.32-573.22 ...

  8. 从零开始之驱动发开、linux驱动(四十五、DM9000网卡驱动)

    这里我们肯定不是要从零开始编写网卡驱动的. 因为编写网卡驱动时,需要网络基础知识,特别是网络底层的知识,目前还没学. 将来我可能选择在,网络,图像视屏,或USB这个三个方向,选择一个深入钻研. 这里主 ...

  9. 从零开始之驱动发开、linux驱动(四十四、虚拟网卡驱动)

    网卡驱动的书写格式很简单 1.申请一个网卡设备结构体 2.设置这个结构体,硬件相关初始化 3.注册这个网卡设备 参考的韦东山老师的视屏,代码如下 #include <linux/module.h ...

  10. 华为网卡linux驱动安装驱动安装,Ubuntu server 16.04安装网卡驱动方法

    Ubuntu server 16.04安装网卡驱动方法 Ubuntu server 16.04安装,发现无网卡 $ ifconfig -a 检查 /etc/udev/rules.d/下为空 $ ls ...

最新文章

  1. Java中Math类常用函数总结
  2. 大学python实训总结-【实训总结】大学生python相关实训总结
  3. python定义字典列表_[Python基础]五、列表、元组和字典
  4. optee的RPC设计(模型)详解
  5. 【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
  6. 操作系统实验报告8:进程间通信—消息机制
  7. C# ref与out关键字解析
  8. Ubuntu 9.04下让Swing和Swt编写的Java桌面程序运行
  9. python装饰器传递参数_Python装饰器高级版—Python类内定义装饰器并传递self参数...
  10. redis依赖_请勿过度依赖 Redis 的过期监听
  11. php用户注册重复_php如何禁止重复注册用户名
  12. python编写学生管理系统设计感想-python案例----学生管理系统(实现学员的增删改查功能)...
  13. 使用idea格式化xml中的SQL
  14. sql循环语句在update中的应用
  15. 判断是否为 retina屏幕
  16. 使用video speed controller给视频加速
  17. 游戏策划在游戏的开发过程中扮演什么角色?——游戏策划入门
  18. Dynamics crm2013 IFD部署后启用多组织
  19. 【LeetCode】买卖股票的最佳时机含手续费 [M](动态规划)
  20. 百度版ChatGPT:文心一言发布会盛大召开!

热门文章

  1. LeetCode简单题之判断能否形成等差数列
  2. LeetCode简单题之矩阵对角线元素的和
  3. LeetCode简单题之卡牌分组
  4. GPU上的快速光谱图分区
  5. View的Touch事件分发(一.初步了解)
  6. linux7怎样搭建zabbix,Centos7.0 搭建Zabbix环境
  7. linux locale文件,Linux 怎样修改locale语言设置
  8. RxJava firstElement 与 lastElement 以及 elementAt
  9. minsdk(API23)deviceSdk(API22)
  10. 【luogu3398】 仓鼠找sugar [LCA 倍增]