以太网网卡原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

00H 04H 08H 0CH 10H 14H
基地址寄存器
18H 1CH 20H 24H
卡总线CIS指针
28H 2CH 30H
子系统标识
保留 Reserved
子系统制造商标识
扩展ROM基地址 容量指针 中断引脚 中断线 保留 Reserved
34H 38H 3CH
Max_Lat
Max_Gnt
11
TCP/IP网络层次结构
12
TCP/IP网络层次结构图
13
BSD socket 层
14
BSD socket 层
•BSD 为不同的操作系统上的应用,提供了统一的接口
•Unix/Linux 中socket 和文件句柄 是统一的
•通过系统调用,从用户态切到内核态
15
INET Socket(TCP) 层
16
INET Socket(TCP) 层
•Linux中TCP/IP网络层次结构与实现 Linux通过一组邻 的软件层实现了TCP/IP模型,它由BSD Socket层、INET Socket层、传输层、网络层,和链路层构成。 •应用程序使用系统调用向内核函数传递参数和数据从 而进入内核空间,由内核中注册的内核函数对相应的数 据结构进行处理
20
以太网卡驱动主要Fra Baidu bibliotek程
•中断后进接收处理函数。它先关闭接收中断后,将轮询 函数挂软中断调度队列。之后在软中断处理过程中将调用 xxxx_poll程序。 •把数据从网卡接收缓存中拷贝出来。数据在环形缓冲区 的存放格式如下:| 长度| 状态位| 内容| 长度| 状态位 | 内容| ... •生成个skb ,调用系统函数通知上层协议驱动数据包的 到来,并将新skb放到上层队列 •环形缓冲区内的数据已被取完,轮询结束开启接收中断
以太网卡原理
1
我们知道局域网包含以太网,本次培训主 要目的了解以太网的基本原理
2
学习完此课程,您将会:



以太网卡的基本原理 PCI 总线基本原理 Linux 驱动基本原理 网卡驱动基本原理
3
网卡基本原理图
4
以太网卡工作概图(读流程)
应用程序通过socket 读 通过DMA/IO 读到物理空间 虚拟内存空间(用户态) 物理内存空间(内核态)
������
•PCI设备信息枚举(Enumeration)和 •PCI 设备的I/O 和内存映射,中断的自动配置
8
X86 的地址空间和PCI空间的映射
9
PCI 在PC中的结构
10
PCI 的配置空间
31 16 15 0
设备标识 状态 分类码 BIST 头类型
制造商标识 命令 修正标志 延迟定时器 行大小
•在Inet sockcet层,如无数据可读可能被阻塞
•内存在这里从内核态拷到用户空间
•TCP 和UDP 协议主要在这里完成
17
IP层
18
IP 层
•在里完成IP的分片重组
•IP 的路由在此层完成,并提交给本地TCP/IP协议栈
•IP 包的过滤和防火墙功能,也是在这里提供。
19
Ethernet 层
6
网卡上主要模块
•CSMA/CD(载波监听多路访问/冲突避免)模块 •内部物理接口 (PHY)包含一个ENDEC •IEEE 802.3 MAC层模块 •网卡控制其内部集成了几KB的RAM,用来存放数据包。
7
PCI 总线原理
•PCI 的配置空间和存储空间
•内存映射(Memory Mapped)和IO 映射(I/O Mapped)
21
讨论
•为什么小包时达不到线速? •你认为系统的瓶颈在哪? •多核CPU有效果吗? •如何可以提高性能?
22
通过PCI 总线映射到PCI 空间
通过网卡上的芯片读到FIFO
数 据 传 输 方 向
PCI总线空间 网卡上的内存空间
以太网线上的电信号
以太网的冲突域
5
网卡上的内部结构
RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、 数据编码解码逻辑和其他端口。其内部结构如图1所示
相关文档
最新文档