Man page - packet(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 ja ru zh_TW zh_CNManual
PACKET(7)
NAMESYNOPSIS 總 覽
DESCRIPTION 描 述
ADDRESS TYPES 地 址 型 別
SOCKET OPTIONS 套 介 面 選 項
IOCTLS 輸 入 輸 出 控 制
ERROR HANDLING 錯 誤 處 理
COMPATIBILITY 相 容 性
NOTES 注 意
ERRORS 錯 誤 資 訊
VERSIONS 版 本
BUGS 缺 陷
CREDITS 貢 獻 者
SEE ALSO 參 見
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :
跋
NAME
分 組 (也 譯 為 資 料 包 ), PF_PACKET - 在 裝 置 層 的 分 組 介 面 譯 註 : PF_PACKET 中 的 PF 是 protocol family(協 議 族 )的 縮 寫 。
SYNOPSIS 總 覽
#include
<sys/socket.h>
#include <features.h> /* 需 要 裡
面 的 glibc 版 本 號 */
#if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1
#include <netpacket/packet.h>
#include <net/ethernet.h> /* 鏈 路
層 ( L2) 協 議 */
#else
#include <asm/types.h>
#include <linux/if_packet.h>
#include <linux/if_ether.h> /* 鏈 路
層 協 議 */
#endif
packet_socket = socket(PF_PACKET, int socket_type, int protocol);
DESCRIPTION 描 述
分 組 套 介 面 (也 譯 為 插 口 或 套 接 字 )被 用 於 在 裝 置 層 (OSI 的 鏈 路 層 ) 收 發 原 始 (raw )分 組 。 它 允 許 使 用 者 在 使 用 者 空 間 實 現 在 物 理 層 之 上 的 協 議 模 組 。
對 於 包 含 鏈 路 層 報 頭 的 原 始 分 組 , socket_type 引 數 是 SOCK_RAW; 對 於 去 除 了 鏈 路 層 報 頭 的 加 工 過 的 分 組 , socket_type 引 數 是 SOCK_DGRAM。 鏈 路 層 報 頭 資 訊 可 在 作 為 一 般 格 式 的 sockaddr_ll 中 的 中 得 到 。 socket 的 protocol 引 數 指 的 是 IEEE 802.3 的 按 網 路 層 排 序 的 協 議 號 , 在 標 頭 檔 案 中 有 所 有 被 允 許 的 協 議 的 列 表 。 當 protocol 被 設 定 為 htons(ETH_P_ALL)時 , 可 以 接 收 所 有 的 協 議 。 到 來 的 此 種 類 型 的 分 組 在 傳 送 到 在 核 心 實 現 的 協 議 之 前 要 先 傳 送 給 分 組 套 介 面 。
譯 註 : DGRAM 是 資 料 報 的 意 思 , htons 函 式 名 是 hosts to networks of a short (16位 整 數 的 從 主 機 到 網 路 的 位 元 組 序 變 換 )的 縮 寫 。
只 有 有 效 uid 是 0 或 有 CAP_NET_RAW 能 力 的 程 序 可 以 開 啟 分 組 套 介 面 。
傳 送 到 裝 置 和 從 裝 置 傳 送 來 的 SOCK_RAW 分 組 不 改 變 任 何 分 組 資 料 。 當 收 到 一 個 SOCK_RAW 分 組 時 , 地 址 仍 被 分 析 並 傳 送 到 一 個 標 準 的 sockaddr_ll 地 址 結 構 中 。 當 傳 送 一 個 SOCK_RAW 分 組 時 , 使 用 者 供 給 的 緩 衝 區 應 該 包 含 物 理 層 報 頭 。 接 著 此 分 組 不 加 修 改 的 放 入 目 的 地 址 定 義 的 介 面 的 網 路 驅 動 程 式 的 佇 列 中 。 一 些 裝 置 驅 動 程 式 總 是 增 加 其 他 報 頭 。 SOCK_RAW 分 組 與 已 被 廢 棄 的 Linux 2.0 的 SOCK_PACKET 分 組 類 似 但 不 相 容 。
對 SOCK_DGRAM 分 組 的 操 作 要 稍 微 高 一 層 次 。 在 分 組 被 傳 送 到 使 用 者 之 前 物 理 報 頭 已 被 去 除 。 從 SOCK_DGRAM分 組 套 介 面 送 出 的 分 組 在 被 放 入 網 路 驅 動 程 式 的 佇 列 之 前 , 基 於 在 sockaddr_ll 中 的 目 的 地 址 得 到 一 個 適 合 的 物 理 層 報 頭 。
預 設 的 所 有 特 定 協 議 型 別 的 分 組 被 髮 送 到 分 組 套 介 面 。 為 了 只 從 特 定 的 介 面 得 到 分 組 , 使 用 bind(2)來 指 定 一 個 在 sockaddr_ll 結 構 中 的 地 址 , 以 此 把 一 個 分 組 套 介 面 繫 結 到 一 個 介 面 上 。 只 有 地 址 字 段 sll_protocol 和 sll_ifindex 被 繫 結 用 途 所 使 用 。
不 支 援 在 分 組 套 介 面 上 的 connect(2) 操 作 。 (不 能 作 為 客 戶 端 使 用 )
ADDRESS TYPES 地 址 型 別
sockaddr_ll 是 裝 置 無 關 的 物 理 層 地 址 。
struct
sockaddr_ll
{
unsigned short sll_family; /* 總 是 AF_PACKET */
unsigned short sll_protocol; /* 物 理 層
的 協 議 */
int sll_ifindex; /* 介 面 號 */
unsigned short sll_hatype; /* 報 頭 型
別 */
unsigned char sll_pkttype; /* 分 組 型
別 */
unsigned char sll_halen; /* 地 址 長
度 */
unsigned char sll_addr[8]; /* 物 理 層
地 址 */
};
sll_protocol 是 在 linux/if_ether.h 標 頭 檔 案 中 定 義 的 按 網 路 層 排 序 的 標 準 的 以 太 楨 協 議 型 別 。 sll_ifindex 是 介 面 的 索 引 號 (參 見 netdevice(2)); 0 匹 配 所 有 的 介 面 (當 然 只 有 合 法 的 才 用 於 繫 結 )。 sll_hatype 是 在 linux/if_arp.h 中 定 義 的 ARP 硬 體 地 址 型 別 。 sll_pkttype 包 含 分 組 型 別 。 有 效 的 分 組 型 別 是 : 目 標 地 址 是 本 地 主 機 的 分 組 用 的 PACKET_HOST, 物 理 層 廣 播 分 組 用 的 PACKET_BROADCAST , 傳 送 到 一 個 物 理 層 多 路 廣 播 地 址 的 分 組 用 的 PACKET_MULTICAST, 在 混 雜 (promiscuous)模 式 下 的 裝 置 驅 動 器 發 向 其 他 主 機 的 分 組 用 的 PACKET_OTHERHOST, 本 源 於 本 地 主 機 的 分 組 被 環 回 到 分 組 套 介 面 用 的 PACKET_OUTGOING。 這 些 型 別 只 對 接 收 到 的 分 組 有 意 義 。 sll_addr 和 sll_halen 包 括 物 理 層 (例 如 IEEE 802.3)地 址 和 地 址 長 度 。 精 確 的 解 釋 依 賴 於 裝 置 。
譯 註 : (1) 對 於 乙 太 網 (ethernet) OSI 模 型 不 完 全 適 用 , 以 太 楨 定 義 包 括 物 理 層 和 鏈 路 層 的 基 本 內 容 , 所 謂 的 以 太 楨 協 議 型 別 標 識 的 是 網 路 層 的 協 議 。 IEEE 802 委 員 會 為 與 OSI 相 一 致 , 把 以 太 楨 定 義 稱 為 MAC(medium access control)層 , 在 MAC 層 與 網 路 層 之 間 加 入 LLC (logical link control)層 , 補 充 上 了 OSI 標 準 的 鏈 路 層 。 但 在 BSD TCP/IP 中 是 為 了 相 容 官 方 標 準 才 被 實 現 的 。 對 於 TCP/IP 協 議 族 OSI 模 型 也 不 完 全 適 用 , TCP/IP 沒 定 義 鏈 路 層 , 只 能 用 UNIX 的 設 備 驅 動 程 式 去 對 應 鏈 路 層 。 無 論 如 何 這 是 既 成 事 實 , 在 本 手 冊 頁 中 物 理 層 、 鏈 路 層 、 裝 置 層 指 的 都 是 乙 太 網 的 MAC 層 。 餘 以 為 不 必 嚴 格 按 層 次 劃 分 去 理 解 問 題 , 現 在 這 個 協 議 棧 是 優 勝 劣 汰 的 結 果 , 不 是 委 員 會 討 論 出 來 的 。 (2) 乙 太 網 地 址 分 為 三 類 , 物 理 地 址 (最 高 位 為 0), 多 路 廣 播 地 址 (最 高 位 為 1), 廣 播 地 址 (全 是 1)。 以 DP8390 為 例 , 它 的 接 收 配 置 暫 存 器 的 D2 位 用 來 指 定 NIC 是 否 接 受 廣 播 楨 , D3 位 用 來 指 定 NIC 是 否 對 多 路 廣 播 楨 進 行 過 濾 , D4 位 用 來 指 定 NIC是 否 接 受 所 有 的 物 理 地 址 楨 。 混 雜 (Promiscuous)模 式 就 是 接 收 所 有 物 理 地 址 楨 。
SOCKET OPTIONS 套 介 面 選 項
分 組 套 介 面 可 被 用 來 配 置 物 理 層 的 多 路 廣 播 和 混 雜 模 式 。 配 置 透 過 呼 叫 setsockopt(2)實 現 , 套 介 面 引 數 是 一 個 分 組 套 介 面 、 層 次 引 數 為 SOL_PACKET 、 選 項 引 數 中 的 PACKET_ADD_MEMBERSHIP 用 於 增 加 一 個 繫 結 , 選 項 引 數 中 的 PACKET_DROP_MEMBERSHIP 用 於 刪 除 一 個 綁 定 。 兩 個 選 項 都 需 要 作 為 引 數 的 packet_mreq 結 構 :
struct
packet_mreq
{
int mr_ifindex; /* 介 面 索 引
號 */
unsigned short mr_type; /* 動 作 */
unsigned short mr_alen; /* 地 址 長
度 */
unsigned char mr_address[8]; /* 物 理 層
地 址 */
};
mr_ifindex 包 括 介 面 的 介 面 索 引 號 , mr_ifindex 的 狀 態 是 可 以 改 變 的 。 mr_type 引 數 指 定 完 成 那 個 動 作 。 PACKET_MR_PROMISC 允 許 接 收 在 共 享 介 質 上 的 所 有 分 組 , 這 種 接 受 狀 態 常 被 稱 為 混 雜 模 式 ; PACKET_MR_MULTICAST 把 套 介 面 繫 結 到 由 mr_address 和 mr_alen 指 定 的 物 理 層 多 路 廣 播 組 上 ; PACKET_MR_ALLMULTI 設 定 套 介 面 接 收 所 有 的 來 到 介 面 的 多 路 廣 播 分 組 。
除 此 之 外 傳 統 的 ioctls 如 SIOCSIFFLAGS, SIOCADDMULTI, SIOCDELMULTI 也 能 用 於 實 現 同 樣 的 目 的 。
IOCTLS 輸 入 輸 出 控 制
SIOCGSTAMP 用 來 接 收 最 新 收 到 的 分 組 的 時 間 戳 。 它 的 引 數 是 timeval 結 構 。
除 此 之 外 , 所 有 的 在 netdevice(7) 和 socket(7) 中 定 義 的 標 準 的 ioctl 在 分 組 套 介 面 上 均 有 效 。
ERROR HANDLING 錯 誤 處 理
分 組 套 接 只 對 傳 送 分 組 到 裝 置 驅 動 程 式 時 發 生 的 錯 誤 做 錯 誤 處 理 , 其 他 不 做 錯 誤 處 理 。 這 裡 沒 有 等 待 解 決 的 錯 誤 的 概 念 。
COMPATIBILITY 相 容 性
在 Linux 2.0 中 , 得 到 分 組 套 介 面 的 唯 一 方 法 是 呼 叫 socket(PF_INET, SOCK_PACKET, protocol)。 它 仍 被 支 援 但 變 得 沒 有 價 值 。 兩 種 方 法 的 主 要 不 同 在 於 SOCK_PACKET 使 用 老 的 sockaddr_pkt 結 構 來 指 定 一 個 介 面 , 沒 有 提 供 物 理 層 介 面 無 關 性 。 (依 賴 於 物 理 裝 置 )
struct
sockaddr_pkt
{
unsigned short spkt_family;
unsigned char spkt_device[14];
unsigned short spkt_protocol;
};
spkt_family 包 括 裝 置 型 別 , spkt_protocol 是 在 中 定 義 的 IEEE 802.3 協 議 型 別 , spkt_device 是 表 示 裝 置 名 的 null 終 結 的 字 串 , 例 如 eth0。
譯 註 : "who is nntp" 就 是 一 個 以 null (’ ’)終 結 的 字 串 。
這 個 結 構 已 經 被 廢 棄 , 不 應 在 新 的 程 式 碼 中 使 用 。
NOTES 注 意
不 建 議 對 要 求 可 移 植 的 程 式 透 過 pcap(3) 使 用 PF_PACKET 協 議 族 ; 它 只 覆 蓋 了 PF_PACKET 特 徵 的 一 個 子 集 。
譯 註 : 該 函 式 庫 可 在 ftp://ftp.ee.lbl.gov/libpcap.tar.Z 得 到 。
SOCK_DGRAM 分 組 套 介 面 對 IEEE 802.3 楨 不 做 生 成 或 分 析 IEEE 802.2 LLC 報 頭 的 嘗 試 。 當 在 套 介 面 中 指 定 了 ETH_P_802_3 協 議 , 告 知 核 心 生 成 802.3 楨 , 並 填 寫 了 長 度 欄 位 ; 使 用 者 必 須 提 供 提 供 LLC 報 頭 來 產 生 符 合 標 準 的 分 組 。 到 來 的 802.3 分 組 不 在 協 議 欄 位 DSAP/SSAP 上 實 現 多 路 複 用 ; 而 是 故 意 的 把 ETH_P_802_2 協 議 的 LLC 報 頭 提 供 給 使 用 者 。 所 以 不 可 能 繫 結 到 ETH_P_802_3; 而 可 以 繫 結 到 ETH_P_802_2 並 自 己 做 多 路 複 用 。 預 設 的 傳 送 的 是 標 準 的 乙 太 網 DIX 封 裝 並 填 寫 協 議 欄 位 。
譯 註 : 長 度 欄 位 和 協 議 欄 位 其 實 都 是 以 太 楨 的 第 四 欄 位 , 這 個 欄 位 的 值 在 小 於 1518 時 表 示 此 以 太 楨 是 IEEE 802.3 楨 , 在 大 於 1536 時 表 示 此 以 太 楨 是 DIX 楨 。 DIX 中 的 D 代 表 DEC, I 代 表 Intel, X 代 表 Xerox。
分 組 套 介 面 不 是 輸 入 或 輸 出 防 火 牆 的 系 列 主 題 。
ERRORS 錯 誤 資 訊
ENETDOWN
介 面 未 啟 動 。
ENOTCONN
未 傳 遞 介 面 地 址 。
|
ENODEV |
在 介 面 地 址 中 指 定 了 未 知 的 裝 置 名 或 介 面 索 引 。 |
EMSGSIZE
分 組 比 介 面 的 MTU(最 大 傳 輸 單 元 )大 。
ENOBUFS
沒 有 足 夠 的 記 憶 體 分 配 給 分 組 。
|
EFAULT |
使 用 者 傳 遞 了 無 效 的 地 址 。 |
|||
|
EINVAL |
無 效 引 數 。 |
|||
|
ENXIO |
介 面 地 址 包 含 非 法 介 面 索 引 號 。 |
|||
|
EPERM |
使 用 者 沒 有 足 夠 的 許 可 權 來 執 行 這 個 操 作 。 |
EADDRNOTAVAIL
傳 遞 了 未 知 的 多 路 廣 播 組 地 址 。
|
ENOENT |
未 收 到 分 組 。 |
除 此 之 外 , 底 層 的 驅 動 程 式 可 能 產 生 其 他 的 錯 誤 資 訊 。
VERSIONS 版 本
PF_PACKET 是 Linux 2.2 的 新 特 徵 。 Linux 的 早 期 版 本 只 支 援 SOCK_PACKET。
BUGS 缺 陷
glibc 2.1 沒 有 定 義 SOL_PACKET。 建 議 的 補 救 是 使 用
#ifndef SOL_PACKET
#define SOL_PACKET 263
#endif
在 此 以 後 的 glibc 版 本 中 更 正 了 錯 誤 並 且 在 libc5 系 統 上 不 會 發 生 。
沒 有 對 IEEE 802.2/803.3 LLC 的 處 理 被 認 為 是 缺 陷 。
套 介 面 過 濾 器 未 歸 入 文 件 。
CREDITS 貢 獻 者
本 手 冊 頁 是 Andi Kleen 寫 的 , 他 得 到 了 Matthew Wilcox 的 幫 助 。 在 Linux 2.2 中 的 PF_PACKET 是 Alexey Kuznetsov 實 現 的 , 他 的 實 現 是 以 Alan Cox 和 其 他 人 的 程 式 碼 為 基 礎 的 。
SEE ALSO 參 見
ip(7), socket(7), socket(2), raw(7), pcap(3). RFC 894 - IP 資 料 報 的 Ethernet 楨 封 裝 標 準 。 RFC 1700 - IP 資 料 報 的 IEEE 802.3 楨 封 裝 標 準 。 標 頭 檔 案 linux/if_ether.h 包 含 物 理 層 協 議 。
[中 文 版 維 護 人 ]
mhss <jijingzhisheng@up369.com>
[中 文 版 最 新 更 新 ]
2000/10/15
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :
http://cmpp.linuxforum.net
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh