Man page - arp(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pt_BR es pl ja ru zh_TW zh_CNManual
ARP
NAME描 述
IOCTLS
SYSCTLS
BUGS
版 本
另 见
[中 文 版 维 护 人 ]
[中 文 版 最 新 更 新 ]
《 中 国 linux论 坛 man手 册 页 翻 译 计 划 》 :
跋
NAME
arp - Linux的 ARP核 心 模 块
描 述
这 个 核 心 协 议 模 块 实 现 RFC826中 定 义 的 Address Resolution Protocol [译 注 : 即 TCP/IP的 第 三 层 到 第 一 层 的 地 址 转 换 协 议 ], 用 于 在 直 接 相 连 的 网 络 中 换 第 二 层 硬 件 地 址 和 Ipv4 协 议 地 址 之 间 的 转 换 。 用 户 除 非 想 对 其 进 行 配 置 , 否 则 一 般 不 会 直 接 操 作 这 个 模 块 。
实 际 上 , 它 提 供 对 核 心 中 其 它 协 议 的 服 务 。
用 户 进 程 可 以 使 用 packet (7) 的 sockets, 收 到 ARP 包 ( 译 注 : 一 译 分 组 ) 。 还 有 一 种 机 制 是 使 用 netlink (7) sockets, 在 用 户 空 间 管 理 ARP 缓 存 的 机 制 。 我 们 也 可 以 通 过 ioctl (2) 控 制 任 意 PF_INET socket上 的 ARP 表
ARP 模 块 维 护 一 个 硬 件 地 址 到 协 议 地 址 映 射 的 缓 存 。 这 个 缓 存 有 大 小 限 制 , 所 以 不 常 用 的 和 旧 的 记 录 ( Entry) 将 被 垃 圾 收 集 器 清 除 ( garbage-collected) , 垃 圾 收 集 器 永 远 不 能 删 除 标 为 永 久 的 记 录 。 我 们 可 以 使 用 ioctls直 接 操 纵 缓 冲 , 并 且 其 性 状 可 以 用 下 面 定 义 的 sysctl 调 节 。
如 果 在 限 定 的 时 间 ( 见 下 面 的 sysctl) 内 , 一 条 现 存 映 射 没 有 肯 定 反 馈 时 , 则 认 为 相 邻 层 的 缓 存 记 录 失 效 。 为 了 再 次 向 目 标 发 送 数 据 , ARP将 首 先 试 着 询 问 本 地 arp进 程 app_solicit 次 , 获 取 更 新 了 的 MAC( 介 质 访 问 控 制 ) 地 址 。 如 果 失 败 , 并 且 旧 的 MAC地 址 是 已 知 的 , 则 发 送 ucast_solicit 次 的 unicast probe。 如 果 仍 然 失 败 , 则 将 向 网 络 广 播 一 个 新 的 ARP请 求 ,此 时 要 有 待 发 送 数 据 的 队 列
如 果 Linux 接 到 一 个 地 址 请 求 , 而 且 该 地 址 指 向 Linux 转 发 的 地 址 , 并 且 接 收 接 口 打 开 了 代 理 arp 时 , Linux 将 自 动 添 加 一 条 非 永 久 的 代 理 arp 记 录 ; 如 果 存 在 拒 绝 到 目 标 的 路 由 , 则 不 添 加 代 理 arp 记 录 。
IOCTLS
有 三 个 ioctl 可 以 用 于 所 有 PF_INET 的 sockets 中 。 它 们 以 一 个 指 向 struct arpreq 的 指 针 作 为 它 们 的 参 数 。
struct arpreq
{
struct sockaddr arp_pa; /* 协 议 地
址 (protocol address)*/
struct sockaddr arp_ha; /* 硬 件 地
址 (hardware address) */
int arp_flags; /* 标 志 (flags) */
struct sockaddr arp_netmask;
/* 协 议 地 址 的 网
络 掩 码 (netmask of protocol address)*/
char arp_dev[16];
};
SIOCSARP , SIOCDARP 和 SIOCGARP 可 分 贝 设 置 、 删 除 和 获 取 ARP 映 射 。 设 置 和 删 除 ARP 映 射 是 特 许 操 作 , 只 有 拥 有 CAP_NET_ADMIN 权 限 的 进 程 或 有 效 UID为 0的 进 程 可 以 执 行 。
arp_pa 必 须 是 AF_INET socket, 并 且 arp_ha 必 须 有 和 arp_dev . 指 定 的 设 备 相 同 的 类 型 。 arp_dev 是 个 以 null结 束 的 设 备 名 字 符 串 。
如 果 设 置 了 ATF_NETMASK 标 志 , 那 么 arp_netmask 必 须 有 效 。 Linux 2.2 不 支 持 代 理 网 络 ARP 记 录 , 因 此 , 要 设 成 0xffffffff或 者 0, 以 删 除 现 存 代 理 arp记 录 。 这 里 不 使 用 现 存 代 理 arp记 录 。 ATF_USETRAILERS 已 经 过 时 了 , 不 应 该 继 续 使 用 。
SYSCTLS
ARP 支
持 一 个 sysctl 接 口 ,
可 以 用 以 配 置
全 局 参 数 或 逐
个 网 络 接 口 地
进 行 配 制 。 该 sysctl
可 以 通 过
/proc/sys/net/ipv4/neigh/*/*
文 件
或 者 使 用
sysctl
(2)
接 口 来 访 问 。
系 统 中 每 个 接
口 都 在 /proc/sys/net/ipv4/neigh/.
中 有 自 己 的 目
录 。 ‘default’目 录
中 的 设 置 用 于
所 有 新 建 的 设
备 。 sysctl 相 关 的 时
间 是 以 秒 为 单
位 , 除 非 特 别
声 明 过 .
anycast_delay
对 IPv6 相 邻 请 求 信 息 的 回 复 的 最 大 延 迟 时 间 ; 目 前 还 不 支 持 anycast。 缺 省 值 为 1秒 。
app_solicit
这 是 在 使 用 多 路 广 播 探 测 (multicast probe)前 , 经 过 网 络 连 接 送 到 用 户 间 隙 ARP端 口 监 控 程 序 的 探 测 ( probe) 最 大 数 目 (见 mcast_solicit )。 缺 省 值 为 0。
base_reachable_time
一 旦 发 现 相 邻 记 录 , 至 少 在 一 段 介 于 base_reachable_time /2和 3* base_reachable_time /2 之 间 的 随 机 时 间 内 , 该 记 录 是 有 效 的 。 如 果 收 到 上 层 协 议 的 肯 定 反 馈 , 那 么 记 录 的 有 效 期 将 延 长 。 缺 省 值 是 30秒 。
delay_first_probe_time
发 现 某 个 相 邻 层 记 录 无 效 (stale)后 , 发 出 第 一 个 探 测 要 等 待 的 时 间 。 缺 省 值 是 5秒 。
gc_interval
收 集 相 邻 层 记 录 的 无 用 记 录 的 垃 圾 收 集 程 序 的 运 行 周 期 , 缺 省 为 30秒 。
gc_stale_time
决 定 检 查 一 次 相 邻 层 记 录 的 有 效 性 的 周 期 。 当 相 邻 层 记 录 失 效 时 , 将 在 给 它 发 送 数 据 前 , 再 解 析 一 次 。 缺 省 值 是 60秒 。
gc_thresh1
存 在 于 ARP高 速 缓 存 中 的 最 少 层 数 , 如 果 少 于 这 个 数 , 垃 圾 收 集 器 将 不 会 运 行 。 缺 省 值 是 128。
gc_thresh2
保 存 在 ARP 高 速 缓 存 中 的 最 多 的 记 录 软 限 制 。 垃 圾 收 集 器 在 开 始 收 集 前 , 允 许 记 录 数 超 过 这 个 数 字 5 秒 。 缺 省 值 是 512。
gc_thresh3
保 存 在 ARP 高 速 缓 存 中 的 最 多 记 录 的 硬 限 制 , 一 旦 高 速 缓 存 中 的 数 目 高 于 此 , 垃 圾 收 集 器 将 马 上 运 行 。 缺 省 值 是 1024。
locktime
ARP 记 录 保 存 在 高 速 缓 存 内 的 最 短 时 间 ( jiffy数 ) , 以 防 止 存 在 多 个 可 能 的 映 射 (potential mapping)时 , ARP 高 速 缓 存 系 统 的 颠 簸 (经 常 是 由 于 网 络 的 错 误 配 置 而 引 起 )。 缺 省 值 是 1 秒 。
mcast_solicit
在 把 记 录 标 记 为 不 可 抵 达 的 之 前 , 用 多 路 广 播 /广 播 ( multicast/broadcast) 方 式 解 析 地 址 的 最 大 次 数 。 缺 省 值 是 3。
proxy_delay
当 接 收 到 有 一 个 请 求 已 知 的 代 理 ARP 地 址 的 ARP 请 求 时 , 在 回 应 前 可 以 延 迟 的 jiffy( 时 间 单 位 , 见 BUG) 数 目 。 这 样 , 以 防 止 网 络 风 暴 。 缺 省 值 是 0.8秒 。
proxy_qlen
能 放 入 代 理 ARP 地 址 队 列 (proxy-ARP addresses)的 数 据 包 最 大 数 目 。 缺 省 值 是 64。
retrans_time
重 发 一 个 请 求 前 的 等 待 jiffy( 时 间 单 位 , 见 BUG) 的 数 目 。 缺 省 值 是 1秒 。
ucast_solicit
询 问 ARP端 口 监 控 程 序 前 , 试 图 发 送 单 探 测 ( unicast probe) 的 次 数 。 (见 app_solicit ). 缺 省 值 是 3秒 。
unres_qlen
每 个 没 有 被 其 它 网 络 层 解 析 的 地 址 , 在 队 列 中 可 存 放 包 的 最 大 数 目 。 缺 省 值 是 3.
BUGS
时 钟 设 置 的 时 间 单 位 jiffy, 跟 硬 件 体 系 有 关 。 在 Alpha 上 , 一 个 jiffy 是 1/1024 秒 , 而 在 其 它 机 器 上 , 是 1/100 秒 。
目 前 还 没 有 办 法 从 用 户 空 间 发 送 肯 定 反 馈 。 这 意 味 着 在 用 户 空 间 实 现 的 面 向 连 接 的 协 议 ( connection oriented protocols) 将 产 生 大 量 的 ARP 通 讯 。 因 为 ndisc将 重 新 探 测 MAC地 址 。 内 核 NFS 的 实 现 也 存 在 同 样 的 问 题 。
这 个 手 册 页 主 要 讲 IPv4 规 范 并 且 共 享 IPv4 和 IPv6 的 功 能 .
版 本
Linux 2.0中 的 struct arpreq, 添 加 了 arp_dev , 同 时 ioctl 数 目 也 改 变 了 。 在 Linux 2.2 中 将 不 再 支 持 旧 的 ioctl。
在 Linux 2.2 中 , 取 消 了 对 网 络 代 理 arp 记 录 (网 络 掩 码 不 是 0xffffffff)的 支 持 。 这 个 功 能 被 内 核 设 置 的 一 个 自 动 代 理 arp 取 代 , 这 个 自 动 代 理 arp 用 于 所 有 位 于 其 它 接 上 的 可 到 达 的 主 机 ( 如 果 该 接 口 的 转 发 和 代 理 arp 打 开 了 ) 。
另 见
ip (7)
RFC826 了
解 ARP 描 述 .
RFC2461 描 述 了 IPv6使 用
的 近 邻 查 找 以
及 基 本 算 法
[中 文 版 维 护 人 ]
Alan Yao <Alan_Yao@163.net>
[中 文 版 最 新 更 新 ]
2000/10/23
《 中 国 linux论 坛 man手 册 页 翻 译 计 划 》 :
http://cmpp.linuxforum.net
跋
本
页 面 中 文 版 由
中 文 man 手 册 页 计
划 提 供 。
中 文 man 手 册 页 计
划 :
https://github.com/man-pages-zh/manpages-zh