Linux Kernel TCP/IP Stack — L1 Layer — Physical NIC
Posted 范桂飓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Kernel TCP/IP Stack — L1 Layer — Physical NIC相关的知识,希望对你有一定的参考价值。
目录
网卡与网卡适配器
我们知道计算机的输入输出系统由外部硬件设备(e.g. 网卡)及其与主机之间的控制部件(e.g. 网卡驱动)所构成,其中控制部件常被称为设备控制器、设备适配器、设备驱动或 I/O 接口,主要负责控制并实现主机与外设之间的数据传输。
在本文中,网卡指物理网络设备卡、网卡适配器指网卡设备控制器,即安装在操作系统上的网络设备驱动。
网络设备驱动在 Linux 内核中是以内核模块的形式存在的。所以对于网卡驱动的初始化,同样需要提供一个内核模块初始化函数来完成的,初始化网络设备的硬件寄存器、配置 DMA 以及初始化相关内核变量等。
设备初始化函数在内核模块被加载时调用,包括:
- 初始化 PHY 模块,包括设置双工/半双工运行模式、设备运行速率和自协商模式等。
- 初始化 MAC 模块,包括设置设备接口模式等。
- 初始化 DMA 模块,包括建立 BD(Buffer descriptor)表、设置 BD 属性以及给 BD 分配缓存等。
网卡的组成
网卡工作在物理层和数据链路层,主要由 PHY/MAC 芯片、Tx/Rx FI
以上是关于Linux Kernel TCP/IP Stack — L1 Layer — Physical NIC的主要内容,如果未能解决你的问题,请参考以下文章
Linux Kernel TCP/IP Stack — L4 Layer
Linux Kernel TCP/IP Stack — 协议栈发包处理流程
Linux Kernel TCP/IP Stack — Overview
Linux Kernel TCP/IP Stack — Overview