/proc/pid/net/, /proc/net/ -
اطلاعات
لایه شبکه
- /proc/pid/net/ (از
لینوکس 2.6.25)
- توضیحات /proc/net
را مشاهده
کنید.
- /proc/net/
- این
دایرکتوری
شامل
فایلها و
زیرشاخههای
گوناگونی
است که حاوی
اطلاعاتی
دربارهٔ
لایهٔ شبکه
هستند. این
پروندهها
ساختارهای
اسکی (ASCII)
دارند و
بنابراین
با دستور cat(1)
نیز
خواندنی
هستند. با
این حال،
مجموعه
ابزار
استاندارد
netstat(8) دسترسی
بسیار
تمیزتر و
منسجمتری
به این
فایلها
فراهم
میکند.
- با پیدایش
فضاهای نام
شبکه (network namespaces)،
اطلاعات
گوناگون
مربوط به
پشتهٔ شبکه
مجازیسازی
شدهاند
(نگاه کنید
به network_namespaces(7)).
بنابراین،
از لینوکس 2.6.25
به بعد، /proc/net
یک پیوند
نمادین (symlink)
به
دایرکتوری
/proc/self/net است که
شامل همان
پروندهها
و
دایرکتوریهای
فهرستشده
در زیر
میباشد. با
این حال،
این
پروندهها
و
دایرکتوریها
اکنون
اطلاعات
مربوط به
فضای نام
شبکهای را
نشان
میدهند که
فرایند
جاری عضو آن
است.
- /proc/net/arp
- این پرونده
حاوی یک
رونوشت
متنی اسکی
خواندنی از
جدول ARP هسته
است که برای
تفکیک
آدرسها به
کار میرود.
این جدول هر
دو نوع
ورودیهای
یاد
گرفتهشده
بهطور
پویا و
ورودیهای
از پیش
برنامهریزیشده
ARP را نمایش
میدهد.
قالب آن به
شرح زیر
است:
-
IP address HW type Flags HW address Mask Device
192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0
192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0
- در اینجا "IP
address" آدرس IPv4
رایانه و "HW
type" نوع
سختافزاری
آدرس
برگرفته از
RFC 826 است.
پرچمها
بیانگر
پرچمهای
داخلی
ساختار ARP
(تعریفشده
در /usr/include/linux/if_arp.h)
هستند و "HW address"
در صورت
مشخص بودن،
نگاشت لایه
پیوند داده
برای آن
آدرس IP است.
- /proc/net/dev
- این
شبهپرونده
حاوی
اطلاعات
وضعیت
دستگاه
شبکه است.
این فایل
تعداد
بستههای
دریافتی و
ارسالی،
تعداد
خطاها و
برخوردها
(collisions) و سایر
آمارهای
پایهای را
ارائه
میدهد. این
دادهها
توسط
برنامهٔ
ifconfig(8) برای
گزارش
وضعیت
دستگاه
استفاده
میشوند.
قالب آن به
شرح زیر
است:
-
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
- /proc/net/dev_mcast
- تعریفشده
در /usr/src/linux/net/core/dev_mcast.c:
-
indx interface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
3 eth1 1 0 01005e000001
4 eth2 1 0 01005e000001
- /proc/net/igmp
- پروتکل
مدیریت
گروه
اینترنت (Internet Group
Management Protocol).
تعریفشده
در /usr/src/linux/net/core/igmp.c.
- /proc/net/rarp
- این فایل از
همان
ساختار و
قالب
پروندهٔ arp
استفاده
میکند و
شامل
پایگاهدادهٔ
کنونی
نگاشت
معکوس است
که برای
ارائهٔ
خدمات
جستجوی
آدرس معکوس
توسط rarp(8) به
کار میرود.
اگر RARP در
هسته
پیکربندی
نشده باشد،
این فایل
وجود
نخواهد
داشت.
- /proc/net/raw
- حاوی
رونوشتی از
جدول
سوکتهای
خام (RAW) است.
بیشتر
اطلاعات
این فایل به
جز در موارد
اشکالزدایی،
چندان
کاربردی
نیست. مقدار
"sl" شماره
خانه جدول
هش هسته
برای سوکت
است، "local_address"
جفت آدرس
محلی و
شماره
پروتکل است.
"St" وضعیت
داخلی سوکت
را نشان
میدهد.
مقادیر "tx_queue"
و "rx_queue" صف
دادههای
خروجی و
ورودی را از
نظر میزان
مصرف
حافظهٔ
هسته مشخص
میکنند.
فیلدهای "tr"
،"tm->when" و "rexmits"
در RAW
استفاده
نمیشوند.
فیلد "uid"
شناسه
کاربری
مؤثر (UID)
ایجادکنندهٔ
سوکت را
نگهداری
میکند.
- /proc/net/snmp
- این پرونده
حاوی
دادههای
متنی اسکی
مورد نیاز
برای
پایگاههای
اطلاعات
مدیریتی (MIB)
مربوط به
پروتکلهای
IP، ICMP، TCP و UDP برای
یک عامل (agent)
پروتکل SNMP
است.
- /proc/net/tcp
- حاوی
رونوشتی از
جدول
سوکتهای TCP
است. بسیاری
از این
اطلاعات به
جز در موارد
اشکالزدایی
کاربرد
چندانی
ندارند.
مقدار "sl"
شماره
خانهٔ جدول
هش هسته
برای سوکت
است، "local_address"
جفت آدرس
محلی و
شماره پورت
میباشد.
"rem_address" جفت
آدرس
دوردست و
شماره پورت
است (در
صورت متصل
بودن). "St"
وضعیت
داخلی سوکت
است. مقادیر
"tx_queue" و "rx_queue" صف
دادههای
خروجی و
ورودی بر
مبنای
میزان مصرف
حافظه هسته
هستند.
فیلدهای "tr"
،"tm->when" و "rexmits"
حاوی
اطلاعات
داخلی
وضعیت سوکت
در هسته
هستند و
تنها برای
اشکالزدایی
به کار
میروند.
فیلد "uid"
شناسه
کاربری
مؤثر (UID)
ایجادکننده
سوکت را
نشان
میدهد.
- /proc/net/udp
- حاوی
رونوشتی از
جدول
سوکتهای UDP
است. بیشتر
اطلاعات آن
به جز در
موارد
اشکالزدایی
چندان مفید
نیست. مقدار
"sl" شماره
خانهٔ جدول
هش هسته
برای سوکت
است، "local_address"
جفت آدرس
محلی و
شماره پورت
است. "rem_address" جفت
آدرس
دوردست و
شماره پورت
است (در
صورت متصل
بودن). "St"
وضعیت
داخلی سوکت
را نشان
میدهد.
مقادیر "tx_queue"
و "rx_queue" صف
دادههای
خروجی و
ورودی بر
مبنای
میزان مصرف
حافظه هسته
هستند.
فیلدهای "tr"
،"tm->when" و "rexmits"
توسط UDP
استفاده
نمیشوند.
فیلد "uid"
شناسه
کاربری
مؤثر (UID)
ایجادکننده
سوکت را نگه
میدارد.
قالب آن به
شرح زیر
است:
-
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
- /proc/net/unix
- سوکتهای
دامنه
یونیکس (UNIX domain sockets)
موجود در
سیستم و
وضعیت
آنها را
فهرست
میکند.
قالب آن به
شرح زیر
است:
-
Num RefCount Protocol Flags Type St Inode Path
0: 00000002 00000000 00000000 0001 03 42
1: 00000001 00000000 00010000 0001 01 1948 /dev/printer
- فیلدها به
شرح زیر
هستند:
- Num:
- شماره خانه
در جدول
هسته.
- RefCount:
- تعداد
کاربران
این سوکت.
- Protocol:
- در حال حاضر
همیشه 0 است.
- Flags:
- پرچمهای
داخلی هسته
که وضعیت
سوکت را
مشخص
میکنند.
- Type:
- نوع سوکت.
برای
سوکتهای
SOCK_STREAM این
مقدار 0001
است؛ برای
سوکتهای
SOCK_DGRAM برابر 0002
است؛ و برای
سوکتهای
SOCK_SEQPACKET برابر 0005
است.
- St:
- وضعیت
داخلی
سوکت.
- Inode:
- شماره
اینود (inode)
سوکت.
- Path:
- مسیر
متصلشده
(در صورت
وجود) به
سوکت.
سوکتهای
موجود در
فضای نام
انتزاعی (abstract
namespace) نیز در
فهرست
گنجانده
شدهاند و
با یک Path که
با نویسهٔ '@'
آغاز
میشود
نشان داده
میشوند.
- /proc/net/netfilter/nfnetlink_queue
- این پرونده
حاوی
اطلاعاتی
دربارهٔ
صفبندی
فضای
کاربری netfilter
در صورت
استفاده
است. هر خط
بیانگر یک
صف است.
صفهایی که
توسط فضای
کاربری
مشترک
نشدهاند
نمایش داده
نمیشوند.
-
1 4207 0 2 65535 0 0 0 1
(1) (2) (3)(4) (5) (6) (7) (8)
- فیلدهای هر
خط عبارتند
از:
- (1)
- شناسهٔ صف (Queue
ID). این شناسه
با آنچه در
گزینههای
--queue-num یا --queue-balance
برای هدف NFQUEUE
در دستور
iptables(8) مشخص
شده است
مطابقت
دارد. برای
اطلاعات
بیشتر به
iptables-extensions(8)
مراجعه
کنید.
- (2)
- شناسهٔ
پورت netlink که در
این صف
مشترک شده
است.
- (3)
- تعداد
بستههایی
که
هماکنون
در صف قرار
دارند و
منتظر
پردازش
توسط
برنامه
هستند.
- (4)
- حالت کپی
صف. این
مقدار یا 1
است (فقط
فراداده) یا
2 (کپی
دادههای
محموله
بسته به
فضای
کاربری نیز
انجام
میشود).
- (5)
- محدوده
کپی؛ بدین
معنا که
حداکثر چند
بایت از
محموله
بسته باید
به فضای
کاربری کپی
شود.
- (6)
- بستههای
دور
انداختهشده
توسط صف (queue dropped).
تعداد
بستههایی
که هسته به
ناچار دور
انداخته
است زیرا
بستههای
بسیار
زیادی از
پیش در
انتظار
ارسال رأی
نهایی
الزامی accept/drop
از جانب
فضای
کاربری
باقی
ماندهاند.
- (7)
- بستههای
دور
انداختهشده
در صف توسط
کاربر (queue user dropped).
تعداد
بستههایی
که در
زیرسیستم netlink
دور
انداخته
شدهاند.
این اتفاق
معمولاً
هنگامی رخ
میدهد که
بافر سوکت
مربوطه پر
شده باشد؛
یعنی فضای
کاربری
قادر به
خواندن
پیامها با
سرعت کافی
نبوده است.
- (8)
- شماره
ترتیب (sequence number).
به هر بستهٔ
موجود در
صف، یک
شماره
ترتیب
صعودی
یکنواخت (۳۲
بیتی)
اختصاص
مییابد.
این فیلد
شناسهٔ
تازهترین
بستهٔ
قرارگرفته
در صف را
نشان
میدهد.
- آخرین عدد
تنها به
دلایل
سازگاری
وجود دارد و
همیشه 1 است.