1、电 子 科 技 加 年 第 期 总 第 期基 于 零 拷 贝 的 网 络 数 据 捕 获 技 术 的 研 究 与 实 现张 坷 , 权 义 宁西 安 电 子 科 技 大 学 计 算 机 学 院 , 陕 西 西 安摘 要 以 传 统 捕 包 平 台 为 研 究 对 象 , 着 重 分 析 了 高 速 网 络 环 境 下 数 据 拷 贝 、 硬 件 中 断 对 捕 包 性 能 的 影 响 ,根 据 “ 零 拷 贝 ” 思 想 提 出 了 改 进 的 方 法 , 实 现 了 网 络 接 口 设 备 直 接 将 数 据 报 文 存 储 到 应 用 程 序 可 以 访 问 的 地 址 空间 , 减 少
2、了 数 据 报 丈 在 内 核 态 里 传 精 时 的 数 据 拷 贝 次 数 , 降 低 了 网 络 数 据 接 收 的 延 迟 通 过 减 少 网 卡 接 收 报 文时 的 中 断 次 数 , 增 加 每 次 中 断 处 理 的 报 文 数 , 节 省 了 时 间 , 提 高 了 在 高 速 网 络 环 境 中 主 机 对 网 络 数 据 包 的捕 获 和 实 时 处 理 能 力 。 仿 真 实 脸 脸 证 了 该 方 法 的 可 行 性 。关 健 词 零 拷 贝 内 存 映 射 硬 件 中 断 数 据 捕 获中 圈 分 类 号现 一 幻 即 别 犯 一,哪 , , ,。 , 二 一一 ,
3、 ” 一 盯 ” 卯叩 , 西似 ,一 一一 砰 叩目 前 的 捕 包 技 术 , 无 论 是 系 统 下 的, 还 是 系 统 下 的目 旧 , 一 次 完 整 的 数 据 捕 获 处理 过 程 , 至 少 需 要 从 网 络 设 备 到 操 作 系 统 内 存 空间 , 从 系 统 内 存 空 间 到 用 户 应 用 程 序 空 间 这 两 次拷 贝 。 随 着 的 发 展 和 网 络 带 宽 的 提 高 , 网络 数 据 流 量 急 剧 增 长 , 依 靠 传 统 捕 包 技 术 捕 获 数据 包 的 各 种 网 络 应 用 已 无 法 满 足 需 求 。笔 者 提 出 了 一 种 基
4、于 “ 零 拷 贝 ” 川 思 想 的 高 速网 数 据 捕 获 技 术 , 使 得 网 络 设 备 的 收 发 数 据 直 接与 应 用 程 序 的 用 户 缓 冲 区 进 行 数 据 交 换 , 同 时 通过 对 网 卡 中 断 处 理 程 序 的 改 进 , 有 效 提 高 了 高 速网 络 环 境 中 主 机 对 数 据 包 的 数 据 捕 获 能 力 。收 稿 日 期 仍 一作 者 简 介 张 坷 一 , 男 , 硕 士 研 究 生 。 研 究 方 向网 络 安 全 与 网 络 计 算 。 权 义 宁 一 , 男 , 副 教 授 , 博士 研 究 生 。 研 究 方 向 网 络 安
5、全 与 网 络 计 算 。零 拷 贝 思 想当 前 , 对 于 数 据 捕 获 技 术 而 言 , 数 据 的 拷 贝次 数 是 影 响 性 能 的 主 要 瓶 颈 , 所 以 要 想 提 高 数 据捕 获 效 率 , 获 得 高 性 能 的 数 据 捕 获 平 台 , 最 好 的方 法 就 是 减 少 甚 至 消 除 数 据 拷 贝 的 次 数 。 特 别 是基 于 零 拷 贝 的 网 络 数 据 捕 获 技 术 的 研 究 与 实 现内 核 态 和 用 户 态 之 间 的 内 存 拷 贝 和 数 据 上 下 文 切换 , 缩 短 数 据 包 的 传 输 路 径 , 实 现 用 户 态 对
6、核 心态 数 据 的 直 接 访 问 , 使 用 户 态 的 应 用 程 序 不 受 操作 系 统 的 干 预 , 直 接 与 网 络 接 口 进 行 交 互 。 由 此便 很 容 易 引 出 零 拷 贝 的 思 想 。所 谓 零 拷 贝 是 指 在 某 节 点 的 数 据 收 发 过 程 中不 会 出 现 任 何 内 存 间 的 拷 贝 , 发 送 时 数 据 包 由 应用 程 序 的 用 户 缓 冲 区 直 接 经 过 网 络 接 口 到 达 外 部网 络 。 同 理 , 接 收 时 网 络 接 口 直 接 将 数 据 包 送 人用 户 缓 冲 区 。零 拷 贝 思 想 的 关 键 就 在
7、 于 用 户 态 应 用 程 序 直接 和 网 络 接 口 进 行 交 互 , 避 免 内 存 拷 贝 以 及 数 据在 内 核 态 和 用 户 态 之 间 的 切 换 , 缩 短 了 数 据 流 经的 路 径 , 为 上 层 的 应 用 和 业 务 处 理 提 供 了 更 多 的时 间 。 因 此 也 就 间 接 地 提 高 了 系 统 的 整 体性 能 。虚 拟 设 备 进 行 叩 时 , 就 会 调 用 这 个 函 数 。这 个 函 数 新 建 立 一 个 , 同 时 将 一 一 叭返 回 给 应 用 层 作 为 用 户 可 以 使 用 的 虚 拟 地 址 , 代码 如 下一 , 一一二
8、 一一 一一 一一其 中 一 一 叩 定 义 为一 一 一零 拷 贝 技 术 的 实 现 和 网 卡 中 断 处 理 程 序的 改 进零 拷 贝 的 实 现 , 需 要 解 决 内 存 映 射 、 地 址 翻译 、 网 卡 中 断 处 理 方 式 等 问 题 。 内 存 映 射 和 地 址翻 译 使 得 用 户 和 网 络 接 口 设 备 可 以 直 接 访 问 共 同的 地 址 空 间 , 改 进 网 卡 的 中 断 处 理 方 式 , 可 以 减少 的 中 断 处 理 时 间 , 提 高 的 利 用 率 。, 内 存 映 射 和 地 址 翻 译虽 然 内 核 访 问 用 户 空 间 的 数
9、 据 时 一 般 不 会 受到 操 作 系 统 限 制 , 但 出 于 安 全 性 的 考 虑 , 用 户 访问 内 核 空 间 的 数 据 就 会 受 到 限 制 。 所 以 在 收 发 包过 程 中 数 据 就 要 经 历 从 核 心 态 到 用 户 态 的 传 递 过程 , 也 就 会 产 生 内 存 之 间 的 拷 贝 。 如 果 用 户 能 和内 核 共 享 某 块 缓 冲 区 , 所 有 的 数 据 都 存 放 在 这 块共 享 的 缓 冲 区 内 , 那 么 就 能 避 免 内 存 之 间 的 拷 贝 。为 了 解 决 内 存 映 射 和 地 址 翻 译 的 问 题 , 在 中注
10、 册 了 一 个 一 叮模 块 。模 块 是 一 个 虚 拟 设 备 , 由 用 户 在 内 核 创建 , 以 模 块 的 形 式 加 载 。 在 中 , 设 备是 用 户 和 网 卡 之 间 的 访 问 中 介 , 是 整 个 系 统 的 核心 。 为 了 实 现 内 存 映 射 和 地 址 翻 译 , 在 模 块的 系 统 调 用 中 定 义 了 一 叩 函 数 , 当 应 用 层 对一 一 ,一 一 ,一 一 ,如 以 上 代 码 所 示 , 当 用 户 虚 拟 设 备的 时 候 , 只 是 得 到 了 一 个 虚 拟 地 址 而 当 用 户 程序 访 问 这 个 虚 拟 地 址 空 间
11、 中 的 数 据 , 这 个 数 据 所 在的 页 从 未 调 人 内 存 或 调 人 后 已 被 换 出 时 , 操 作 系 统就 会 进 行 缺 页 处 理 。 一 一 在 用 户 层 访 问这 个 , 发 生 页 面 失 效 时 将 用 户 和 内 核 共 享 的咐 相 应 内 存 地 址 返 给 用 户 层 。 这 个 函 数 首 先将 用 户 要 访 问 的 虚 拟 地 址 由 一 一 的 参数 传 人 一 一 做 差 得 出 偏 移 量 。 ,然 后 将 哎 。 所 对 应 的 物 理 页 调 人 内 存 ,并 返 回 这 个 物 理 页 。 这 样 就 完 成 了 虚 拟 地 址
12、 和 物理 地 址 之 间 的 转 换 。网 卡 中 断 处 理 方 式 的 改 进在 采 用 中 断 方 式 的 系 统 中 , 如 果 收 发 数 据 包的 数 量 很 大 时 , 势 必 产 生 大 量 的 网 络 中 断 , 对这 些 中 断 信 号 的 频 繁 响 应 , 将 会 给 服 务 器 带 来 沉重 的 负 担 。传 统 的 网 卡 中 断 处 理 方 式 , 在 网 络 数 据 流 量巨 大 的 情 况 下 , 中 断 非 常 频 繁 。 如 果 上 层 程 序 未做 改 进 , 那 么 上 层 程 序 很 有 可 能 没 有 足 够 的 时 间处 理 收 到 的 数 据
13、 , 数 据 的 接 收 队 列 很 快 就 会 被 填电 子 科 技 年 月 巧 日墓 于 零 拷 贝 的 网 络 数 据 捕 获 技 术 的 研 究 与 实 现满 。 在 这 种 情 况 下 , 中 断 处 理 程 序 即 使 能 接 收 到新 的 数 据 包 , 也 无 法 向 上 层 传 递 。 此 时 , 网 卡 的计 数 虽 然 在 增 加 , 但 实 际 上 数 据 包 已 经 被 丢 弃 ,系 统 看 起 来 像 是 停 止 运 行 一 样 。 这 种 情 况 就 是 通常 所 说 的 “ 接 收 活 锁 ” 。为 了 解 决 以 上 这 个 问 题 , 这 里 提 出 的 方
14、 案 是给 中 断 加 一 个 定 时 器 沈 , 通 过 修 改 网 卡 的 驱动 程 序 , 改 变 过 去 每 包 中 断 的 方 式 , 将 其 改 为 每隔 一 定 的 时 间 发 送 一 次 中 断 , 每 次 可 以 同 时 处 理多 个 数 据 包 。 通 过 在 后 继 的 试 验 和 实 际 的 应 用 中发 现 , 的 确 降 低 了 系 统 的 消 耗 , 提 高 了 系 统 的 性能 。 伪 代 码 如 下,沈觅觅 一 玛一 次沈如 上 代 码 所 示 , 一 是 一 个 结 构 ,结 构 里 标 明 这 个 时 钟 的 周 期 , 就是 时 间 到 了 以 后 的
15、回 调 函 数 , 砚 是 中 断 申请 函 数 。 通 过 设 定 沈 的 值 便 可 以 确定 定 时 器 沈 的 等 待 时 间 。 表 示 网 卡数 据 接 收 函 数 , 一 将 凡 汀 加 入 定 时 器 链表 , 定 时 器 到 时 了 将 被 删 除 , 可将 沈 重 新 加 人 链 表 , 使 其 继 续 工 作 。仿 真 实 验 与 性 能 分 析根 据 文 中 设 计 的 数 据 收 发 平 台 称 为 讨平 台 。, 系 统 的 框 架 结 构由 个 部 分 组 成 虚 拟 设 备 、 改 进后 的 网 卡 驱 动 程 序 和 上 层 应 用 程 序 接 口 。为 了
16、很 好 地 处 理 大 流 量 下 大 量 的 数 据 包 , 系统 在 用 户 层 开 辟 出 一 个 大 的 用 户 缓 冲 区 ,用 来 存 放 接 收 和 发 送 的 数 据 包 。虚 拟 设 备 是 用 户 程 序 与 网 络 接 口 进 行 交互 的 中 介 , 位 于 内 核 区 , 由 用 户 创 建 。对 于 网 卡 驱 动 程 序 的 改 进 主 要 集 中 在 发 送 和接 收 的 中 断 处 理 函 数 上 。 以 接 收 过 程 为 例 , 传 统的 网 卡 驱 劫 程 序 是 首 先 通 过 方 式 将 数 据 从 网卡 存 储 单 元 传 输 到 内 核 的 某
17、块 缓 冲 区 一 次 拷 贝 过程 , 然 后 中 断 处 理 程 序 将 这 个 数 据 包 推 人 上 层 的协 议 栈 又 一 次 拷 贝 过 程 。 文 中 的 改 进 方 法 就 是将 网 卡 设 备 的 私 有 域 填 上 设 备 的 信 息 , 网 卡进 行 传 输 时 , 直 接 根 据 设 备 中 的 描 述 符找 到 真 正 的 位 于 用 户 区 的 缓 冲 区 , 然 后 直 接 将 数据 包 从 网 卡 传 到 用 户 区 , 数 据 包 不 再 进 人 内 核 的协 议 栈 。测 试 参 数 的 选 择对 数 据 捕 获 平 台 的 性 能 进 行 测 试 , 主
18、 要 考 虑的 是 其 捕 包 的 效 率 , 因 此 对 捕 包 平 台 进 行评 测 选 取 的 测 试 参 数 主 要 有 收 包 速 度 , 以, 为 单 位 收 包 流 量 , 以 为 单 位数 据 捕 获 时 的 空 闲 时 间 。测 试 环 境硬 件 环 境台 能 制 造 出 大 流 量 数 据 包 的 硬 件 发 包 机 , 一台 具 有 千 兆 光 纤 接 口 的 高 性 能 服 务 器 作 为 收 包 机 ,一 台 交 换 机 用 于 旁 路 接 人 。软 件 环 境发 包 机 台 安 装 操 作 系 统 , 安 装基 于 的 千 兆 捕 包 设 备 操 作 系 统 是一
19、, 安 装 了 新 的 网凡 瓦 ,墓 于 零 拷 贝 的 网 络 数 据 捕 获 技 术 的 研 究 与 实 现卡 驱 动 程 序 , 并 加 载 了 新 平 台 所 需 的 模 块基 于 的 千 兆捕 包 设 备 操 作 系 统 是, 一 , 普 通 的 千 兆 网 卡 驱 动 程 序 , 采 用捕 获 数 据测 试 程 序 开 发 了 基 于 的 应 用 程 序和 上 层 协 议 栈 测 试 程 序 , 用 于 测 试 用 户 层 单 纯 收包 和 将 包 还 原 到 层 的 性 能 。 收 包 率 和 收 包 流量 从 测 试 程 序 中 获 得 , 的 利 用 率 从 的进 程 中
20、获 得 , 上 下 文 切 换 信 息 从 的进 程 中 获 取 。, 测 试 结 果 分 析捕 获 能 力 及 其 捕 获 趋 势 的 分 析在 数 据 包 大 小 为 字 节 的 情 况 下 , 不 做 上 层处 理 , 系 统 数 据 捕 获 能 力 及 其 捕 获 趋 势 的 分 析 ,如 图 , 图 所 示 。咤凡 ,之 胶 辞毕娜发 包 率 两 一 ,图 字 节 情 况 下 可 捕 包 率 与 流 童 关 系卢卢 一一口口口亡一一工, ,三且万匕辞烹娜发 包 率 万 一 ,包 流 量 的 饱 和 值 不 到 万 , 一 , 而 全 新 捕 包 平 台的 饱 和 值 超 过 了 印
21、万 一 , 因 此 可 以 看出 , 无 论 在 性 能 峰 值 和 变 化 趋 势 上 , 帅 可 捕 包 平台 都 超 过 帅 捕 包 平 台 很 多 。收 包 速 率 峰 值 和 空 闲 率 的 分 析在 数 据 包 大 小 为 字 节 的 情 况 下 , 不 做 上 层处 理 , 种 平 台 收 包 速 率 峰 值 和 空 闲 率 的 分析 , 如 表 所 示 。表 种 平 台 的 收 包 速 率 和 空 闲 率空 闲 率 收 包 速 率 值 万 , 一 哪标 准 驱 动 程 序饰 讨表 中 的 空 闲 率 是 每 个 空 闲 率 的 平均 值 。从 上 面 的 分 析 可 以 看 出
22、 , 单 就 收 包 速 率 峰 值而 言 , 是 传 统 捕 包 平 台 的 倍 多 , 充 分 说 明新 捕 包 平 台 更 适 合 大 流 量 网 络 情 况 下 的 捕 包 需 求 。就 空 闲 率 而 言 , 的 平 均 空 闲率 约 为 , 几 乎 是 的 倍 , 但 与 采 用 标准 网 卡 驱 动 程 序 相 比 , 的 空 闲 率 相 差 不 大 。这 同 样 是 因 为 在 网 络 流 量 很 大 时 , 单 位 时 间 内 接收 的 数 据 包 数 量 非 常 巨 大 , 产 生 中 断 的 次 数 还 是会 非 常 频 繁 , 迫 使 需 要 大 量 时 间 处 理 中
23、 断 ,也 就 使 两 者 在 空 闲 率 上 相 差 无 几 了 。可 以 看 出 , 这 种 基 于 零 拷 贝 技 术 的 捕 包 平 台比 传 统 的 捕 包 平 台 在 性 能 上 有 显 著 提 高 。 高 速 的收 包 速 率 使 其 能 够 适 应 大 流 量 的 网 络 环 境 。图 字 节 情 况 下 叩 捕 包 率 与 流 童 关 系从 图 , 图 的 对 比 可 以 看 出 , 全 新 捕 包 平 台对 于 麟 字 节 小 包 的 收 包 速 度 峰 值 最 高 可 达麟 万 一 , 远 远 高 于 标 准 网 卡 驱 动 程 序 的 收 包速 度 , 更 是 传 统
24、捕 包 平 台 的 倍 以 上 。 从 测试 数 据 还 可 以 看 出 , 当 系 统 的 收 包 流 量 达 到 饱 和 状态 后 , 系 统 的 数 据 捕 获 率 都 会 随 着 网 络 流 量 的 再 增大 而 略 有 减 小 。 这 说 明 虽 然 本 系 统 对 每 包 中 断 进 行了 改 进 , 但 当 数 据 包 流 量 过 大 时 , 产 生 中 断 的 次 数还 是 会 非 常 频 繁 , 导 致 系 统 响 应 不 过 来 , 而 使 数 据包 丢 失 。 但 是 基 于 详 的 传 统 数 据 捕 获 平 台 收结 束 语详 细 介 绍 了 一 个 基 于 零 拷
25、贝 技 术 的 数 据 捕 获和 发 送 平 台 讨 的 设 计 和 实 现 。 并 对 新 构 建 的这 个 数 据 收 发 平 台 进 行 了 性 能 测 试 , 测 试 结 果 表明 , 这 个 新 的 数 据 收 发 平 台 比 传 统 的 同 类平 台 在 性 能 上 有 了 成 倍 的 提 高 , 完 全 能 够 适 应 大流 量 宽 带 网 络 环 境 下 构 建 高 性 能 互 联 网 内 容 安 全审 计 与 控 制 系 统 的 需 求 。 在 后 续 的 研 究 中 , 还 要在 这 方 面 进 一 步 深 入 , 争 取 找 到 更 合 适 的 方 法 ,使 互 联 网
26、内 容 安 全 审 计 与 控 制 系 统 更 加 完 善 , 适应 今 后 更 加 复 杂 的 网 络 环 境 。下 转 第 页电 子 科 技 年 月 巧 日 必移 动 路 由 优 化 分 析种 路 由 方 案 下 数 据 包 的 传 输 时 延 由 图 所 示 。引引 一 一 口口 队 旧旧 加 日 卫 工工 二 卜 钊 ” 习习 界 刚 电电 口 二二日 , 口 比 日日 妞妞 口 工工邓 引 口口口 肚 一 压 正正八 一一口口口惬惬乍乍 一 口口口口川 口口 即 日 叭 、 百百 川川 幼幼 伙 门门 价 旧 日 硒 习 如 画 路 由 ” 。 “ 三 角 路 由 ” 不 是 最 优
27、 路 由 , 尤 其 当 通 信 节点 与 移 动 节 点 很 近 时 会 带 来 一 些 潜 在 的 问 题 参考 文 献 【 提 出 了 路 由 优 化 的 一 种 方 案 , 对 此 方 案在 上 作 了 仿 真 分 析 。 仿 真 结 果 表 明 优 化 路 由 减少 了 网 络 时 延 , 提 高 了 网 络 利 用 率 。 但 是 通 过 仿真 也 该 看 到 路 由 优 化 方 案 增 加 了 移 动 复 杂 性 ,频 繁 的 链 路 切 换 也 带 来 了 注 册 开 销 的 增 大 。 这 些难 题 都 还 有 待 于 在 以 后 的 研 究 中 逐 步 解 决 。甘 图 时
28、 延 比 校通 过 比 较 平 均 时 延 和 最 小 时 延 , 能 很 清 楚 的看 到 路 由 优 化 方 案 成 功 地 消 除 了 “ 三 角 路 由 ” 的 影响 , 通 过 减 小 数 据 包 传 输 时 延 很 大 程 度 上 提 高 了网 络 效 率 。结 束 语在 移 动 中 , 通 信 节 点 发 送 数 据 包 到 移 动 节点 时 , 首 先 要 到 达 家 乡 代 理 , 然 后 由 家 乡 代 理 通过 隧 道 转 发 给 移 动 节 点 , 而 移 动 节 点 可 以 直 接 向通 信 节 点 发 送 数 据 包 , 形 成 了 一 个 不 理 想 的 “ 三
29、角参 考 文 献南 训 【 ,南 平 面 初 面 【 即 , 入 刃南 ,刀切 月 飞 】刀 俪 四 甲 ,一 一, 卜吓 习 ,上 接 第 页参 考 文 献, 一 一雌 一 幻 即 。, , 一从 , , ,一 一。 。 。, , 一, 一、 幻 即 ,止 叹 , 一, , 一 , 吐 记 一找 泪 一 花以 记 邵一 肠 , , 碎三即肠 币上 接 第 页参 考 文 献卜 , 功喇 与 跳 , 科 一可 向 民 , 龚 正 虎 , 夏 建 东 零 拷 贝 技 术 及 其 实 现 的 研 究【 计 算 机 工 程 与 科 学 , , 一杨 武 , 方 滨 兴 , 云 晓 春 , 等 基 于
30、系 统 的 报 文 捕 获技 术 研 究 【 计 算 机 工 程 与 应 用 , 岌 幻 , 汤 一 呱珑 树 友 一 甲 衍 砂 公 服 【氏 , 】朋 呷 伽 。 , , 望 刃王 佰 玲 , 方 滨 兴 传 统 报 文 捕 获 平 台 性 能 影 响 因 素 分 析计 算 机 工 程 与 应 用 , , 一张 悠 慧 , 汪 东 升 , 郑 纬 民 统 一 缓 存 基 于 用 户 层 通 信 的 合作 缓 存 技 术 【 计 算 机 研 究 与 发 展 , 么 】 刀 , 一 刀切 丑 雌乞 司 ,施 聪 基 于 平 台 的 源 代 码 分 析 【 岁 【 一 肠 一 刀 一 可 二一 伪 一 的 。 , 刀 一 一功