Linux 网络子系统之结构介绍

Linux 网络设备驱动程序的体系结构

  • 图片说明如下:

991711-20170313113605838-1209457762.png

  • 网络协议接口层

    网络协议接口层向网络层协议提供统一的数据包收发接口,不论上层协议是ARP还是IP,都通过 dev_queue_xmit() 函数发送数据,
    并通过 netif_rx() 函数接受数据,这一层的存在使得上层协议独立于具体的设备。

    它们的代码的声明在 kernel 源码目录的 include/linux/netdevice.h
    它们的代码的实现在 kernel 源码目录的 net/core/dev.c

  • 网络设备接口层

    网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性的操作和结构体 net_device
    该结构体是设备驱动功能层中各函数的容器。
    实际上,网络设备接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构。

    该容器的定义是在 kernel 源码目录的 include/linux/netdevice.h

  • 设备驱动功能层

    设备驱动功能层的各函数是网络设备接口层 net_device 数据结构的具体成员,
    是驱动网络设备硬件完成相应动作的程序,他通过 hard_start_xmit() 函数启动发送操作,并通过网络设备上的 中断 触发接收操作。

  • 网络设备与媒介层

    网络设备与媒介层是完成数据包发送和接收的物理实体,包括网络设配器和具体的传输媒介,
    网络设配器被设备驱动功能层中的函数在物理上驱动,对于linux 系统而言,网络设备和媒介都可以是虚拟的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值