'\" t .TH "PING" "8" "" "iputils 20250605" "iputils" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" ping \- ارسال بسته ICMP ECHO_REQUEST به میزبانهای شبکه .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBping\fR\ 'u \fBping\fR [\fB\-aAbBdCDfhHLnOqrRUvV346\fR] [\fB\-c\ \fR\fB\fIcount\fR\fR] [\fB\-e\ \fR\fB\fIidentifier\fR\fR] [\fB\-F\ \fR\fB\fIflowlabel\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-I\ \fR\fB\fIinterface\fR\fR] [\fB\-l\ \fR\fB\fIpreload\fR\fR] [\fB\-m\ \fR\fB\fImark\fR\fR] [\fB\-M\ \fR\fB\fIpmtudisc_option\fR\fR] [\fB\-N\ \fR\fB\fInodeinfo_option\fR\fR] [\fB\-w\ \fR\fB\fIdeadline\fR\fR] [\fB\-W\ \fR\fB\fItimeout\fR\fR] [\fB\-p\ \fR\fB\fIpattern\fR\fR] [\fB\-Q\ \fR\fB\fItos\fR\fR] [\fB\-s\ \fR\fB\fIpacketsize\fR\fR] [\fB\-S\ \fR\fB\fIsndbuf\fR\fR] [\fB\-t\ \fR\fB\fIttl\fR\fR] [\fB\-T\ \fR\fB\fItimestamp\ option\fR\fR] [hop\&.\&.\&.] {destination} .SH "توضیحات (DESCRIPTION)" .PP \fBping\fR از دیتاگرام اجباری ECHO_REQUEST در پروتکل ICMP برای درخواست یک پاسخ ECHO_RESPONSE از یک میزبان یا دروازه (gateway) استفاده می‌کند\&. دیتاگرام‌های ECHO_REQUEST (یا همان \(lqping\(rqها) دارای یک سرآیند IP و ICMP هستند که پس از آن‌ها یک struct timeval و سپس تعداد دلخواهی بایت پرکننده (\(lqpad\(rq) برای تکمیل بسته قرار می‌گیرد\&. .PP \fBping\fR هم با IPv4 و هم با IPv6 کار می‌کند\&. استفاده انحصاری از هر یک از آن‌ها را می‌توان با مشخص کردن \fB\-4\fR یا \fB\-6\fR اجبار کرد\&. .PP \fBping\fR همچنین می‌تواند پرس‌وجوهای اطلاعات گره IPv6 یا همان Node Information Queries (RFC4620) را ارسال کند\&. ممکن است \fIhop\fRهای میانی مجاز نباشند، زیرا مسیریابی مبدا در IPv6 منسوخ شده است (RFC5095)\&. .SH "گزینهها (OPTIONS)" .PP \fB\-3\fR .RS 4 دقت زمان رفت‌وبرگشت RTT (عدم گرد کردن زمان نتیجه به بالا)\&. .RE .PP \fB\-4\fR .RS 4 تنها استفاده از IPv4\&. .RE .PP \fB\-6\fR .RS 4 تنها استفاده از IPv6\&. .RE .PP \fB\-a\fR .RS 4 پینگ صوتی (پخش بوق صوتی هنگام دریافت پاسخ)\&. .RE .PP \fB\-A\fR .RS 4 پینگ تطبیقی\&. فاصله زمانی میان بسته‌ها با زمان رفت‌وبرگشت تطبیق می‌یابد، به طوری که عملاً بیش از یک کاوشگر بدون پاسخ (یا بیشتر، در صورت تنظیم preload) در شبکه وجود نداشته باشد\&. فاصله زمانی پیش‌فرض ۲ میلی‌ثانیه است؛ برای اطلاعات بیشتر گزینه \fB\-i\fR را ببینید\&. در شبکه‌هایی با RTT پایین، این حالت اساساً معادل حالت سیلابی (flood) است\&. .RE .PP \fB\-b\fR .RS 4 اجازه پینگ کردن یک نشانی پخشی (broadcast)\&. .RE .PP \fB\-B\fR .RS 4 اجازه ندادن به \fBping\fR برای تغییر نشانی مبدا کاوشگرها\&. نشانی به همان نشانی انتخاب‌شده هنگام شروع \fBping\fR مقید (bind) می‌شود\&. .RE .PP \fB\-c\fR \fIcount\fR .RS 4 توقف پس از ارسال \fIcount\fR بسته ECHO_REQUEST\&. همراه با گزینه \fIdeadline\fR، دستور \fBping\fR منتظر دریافت \fIcount\fR بسته ECHO_REPLY می‌ماند تا زمانی که مهلت زمانی سپری شود\&. .RE .PP \fB\-C\fR .RS 4 فراخوانی فراخوان سیستمی connect() هنگام ایجاد سوکت\&. .RE .PP \fB\-d\fR .RS 4 تنظیم گزینه SO_DEBUG روی سوکت مورد استفاده\&. در عمل، این گزینه سوکت توسط هسته لینوکس استفاده نمی‌شود\&. .RE .PP \fB\-D\fR .RS 4 چاپ برچسب زمانی (زمان یونیکس + میکروثانیه مشابه gettimeofday) پیش از هر خط\&. .RE .PP \fB\-e\fR \fIidentifier\fR .RS 4 تنظیم فیلد شناسه (identification) در ECHO_REQUEST\&. مقدار 0 به معنای استفاده از \fIraw socket\fR است (روی \fIICMP datagram socket\fR پشتیبانی نمی‌شود)\&. مقدار این فیلد را می‌توان با گزینه \fB\-v\fR چاپ کرد\&. .RE .PP \fB\-f\fR .RS 4 پینگ سیلابی (Flood ping)\&. به ازای هر بسته ECHO_REQUEST ارسالی یک نقطه \(lq\&.\(rq چاپ می‌شود، در حالی که به ازای هر ECHO_REPLY دریافتی یک نویسه پس‌بر (backspace) چاپ می‌شود\&. این کار نمایشی سریع از میزان بسته‌های از دست رفته را فراهم می‌کند\&. اگر فاصله زمانی (interval) داده نشود، آن را صفر قرار می‌دهد و بسته‌ها را با همان سرعتی که بازمی‌گردند یا ۱۰۰ بار در ثانیه (هرکدام که بیشتر باشد) ارسال می‌کند\&. تنها کاربر ارشد (super-user) مجاز است از این گزینه با فاصله زمانی صفر استفاده کند\&. .RE .PP \fB\-F\fR \fIflow label\fR .RS 4 فقط IPv6\&. تخصیص و تنظیم برچسب جریان (flow label) ۲۰ بیتی (در مبنای ۱۶ یا هگز) روی بسته‌های echo request\&. اگر مقدار صفر باشد، هسته یک برچسب جریان تصادفی تخصیص می‌دهد\&. .RE .PP \fB\-h\fR .RS 4 نمایش راهنما\&. .RE .PP \fB\-H\fR .RS 4 اجبار به تحلیل نام DNS برای خروجی\&. برای مقصد عددی یا گزینه \fB\-f\fR (که به طور پیش‌فرض این کار را انجام نمی‌دهند) مفید است\&. همچنین می‌تواند به دور زدن مشکلات تحلیل نام DNS کمک کند\&. گزینه \fB\-n\fR را که پیش‌تر تعریف شده بازنویسی (override) می‌کند\&. همچنین متغیر محیطی \fIIPUTILS_PING_PTR_LOOKUP\fR را ببینید\&. .RE .PP \fB\-i\fR \fIinterval\fR .RS 4 انتظار به مدت \fIinterval\fR ثانیه میان ارسال هر بسته\&. عدد اعشاری با استفاده از نقطه به عنوان ممیز مجاز است (صرف‌نظر از تنظیمات locale)\&. حالت پیش‌فرض، انتظار به مدت یک ثانیه بین هر بسته در شرایط عادی، یا عدم انتظار در حالت سیلابی است\&. فقط کاربر ارشد می‌تواند فاصله زمانی را روی مقادیر کمتر از ۲ میلی‌ثانیه تنظیم کند\&. پینگ پخشی (broadcast) و چندپخشی (multicast) محدودیت حتی بالاتری برای کاربر عادی دارند: حداقل ۱ ثانیه است\&. .RE .PP \fB\-I\fR \fIinterface\fR .RS 4 پارامتر \fIinterface\fR یا یک نشانی، یک نام رابط شبکه، یا یک نام VRF است\&. اگر \fIinterface\fR یک نشانی باشد، نشانی مبدا را روی نشانی رابط مشخص‌شده تنظیم می‌کند\&. اگر \fIinterface\fR یک نام رابط باشد، رابط مبدا را روی رابط مشخص‌شده تنظیم می‌کند\&. اگر \fIinterface\fR یک نام VRF باشد، هر بسته با استفاده از جدول مسیریابی متناظر هدایت می‌شود؛ در این حالت، گزینه \fB\-I\fR می‌تواند برای مشخص کردن نشانی مبدا تکرار شود\&. توجه: برای IPv6، هنگام پینگ به یک نشانی با محدوده محلی پیوند (link-local)، تعیین پیوند (با نماد \*(Aq%\*(Aq در \fIdestination\fR، یا با این گزینه) می‌تواند استفاده شود اما دیگر الزامی نیست\&. .RE .PP \fB\-l\fR \fIpreload\fR .RS 4 اگر \fIpreload\fR مشخص شود، \fBping\fR این تعداد بسته را بدون انتظار برای دریافت پاسخ ارسال می‌کند\&. تنها کاربر ارشد می‌تواند preload بیشتر از ۳ را انتخاب کند\&. .RE .PP \fB\-L\fR .RS 4 جلوگیری از لوپ‌بک بسته‌های چندپخشی (multicast)\&. این فلگ فقط در صورتی اعمال می‌شود که مقصد پینگ یک نشانی چندپخشی باشد\&. .RE .PP \fB\-m\fR \fImark\fR .RS 4 استفاده از \fImark\fR برای نشانه‌گذاری بسته‌های خروجی\&. این برای دلایل گوناگون درون هسته، مانند استفاده از مسیریابی مبتنی بر سیاست (policy routing) برای انتخاب پردازش خروجی خاص مفید است\&. مجوزهای CAP_NET_ADMIN یا CAP_NET_RAW (از نسخه 5.17 لینوکس) مورد نیاز است؛ \fBsocket\fR(7) را ببینید\&. .RE .PP \fB\-M\fR \fIpmtudisc_opt\fR .RS 4 انتخاب راهبرد کشف MTU مسیر (Path MTU Discovery)\&. مقدار \fIpmtudisc_option\fR می‌تواند یکی از این موارد باشد: \fIdo\fR (تنظیم فلگ DF اما مشمول بررسی‌های PMTU توسط هسته، بسته‌های بیش از حد بزرگ رد خواهند شد)، \fIwant\fR (انجام کشف PMTU، قطعه‌بندی محلی هنگام بزرگ بودن اندازه بسته)، \fIprobe\fR (تنظیم فلگ DF و نادیده گرفتن بررسی‌های PMTU، مفید برای کاوش)، یا \fIdont\fR (عدم تنظیم فلگ DF)\&. .RE .PP \fB\-N\fR \fInodeinfo_option\fR .RS 4 فقط IPv6\&. ارسال پرس‌وجوهای اطلاعات گره IPv6 (RFC4620) به جای Echo Request\&. مجوز CAP_NET_RAW مورد نیاز است\&. .PP \fBhelp\fR .RS 4 نمایش راهنما برای پشتیبانی NI\&. .RE .PP \fBname\fR .RS 4 پرس‌وجو برای نام‌های گره (Node Names)\&. .RE .PP \fBipv6\fR .RS 4 پرس‌وجو برای نشانی‌های IPv6\&. چندین فلگ مختص IPv6 وجود دارد\&. .PP \fBipv6\-global\fR .RS 4 درخواست نشانی‌های سراسری (global-scope) در IPv6\&. .RE .PP \fBipv6\-sitelocal\fR .RS 4 درخواست نشانی‌های محلی سایت (site-local) در IPv6\&. .RE .PP \fBipv6\-linklocal\fR .RS 4 درخواست نشانی‌های محلی پیوند (link-local) در IPv6\&. .RE .PP \fBipv6\-all\fR .RS 4 درخواست نشانی‌های IPv6 روی سایر رابط‌ها\&. .RE .RE .PP \fBipv4\fR .RS 4 پرس‌وجو برای نشانی‌های IPv4\&. یک فلگ مختص IPv4 وجود دارد\&. .PP \fBipv4\-all\fR .RS 4 درخواست نشانی‌های IPv4 روی سایر رابط‌ها\&. .RE .RE .PP \fBsubject\-ipv6=\fR\fIipv6addr\fR .RS 4 نشانی سابجکت IPv6\&. .RE .PP \fBsubject\-ipv4=\fR\fIipv4addr\fR .RS 4 نشانی سابجکت IPv4\&. .RE .PP \fBsubject\-name=\fR\fInodename\fR .RS 4 نام سابجکت\&. اگر شامل بیش از یک نقطه باشد، نام دامنه کاملاً واجد شرایط (FQDN) فرض می‌شود\&. .RE .PP \fBsubject\-fqdn=\fR\fInodename\fR .RS 4 نام سابجکت\&. نام دامنه کاملاً واجد شرایط (FQDN) همواره فرض می‌شود\&. .RE .RE .PP \fB\-n\fR .RS 4 تنها خروجی عددی\&. هیچ تلاشی برای جستجوی نام‌های نمادین برای نشانی‌های میزبان انجام نخواهد شد (عدم تحلیل معکوس DNS)\&. این حالت پیش‌فرض برای مقصد عددی یا گزینه \fB\-f\fR است\&. گزینه \fB\-H\fR را که پیش‌تر تعریف شده بازنویسی (override) می‌کند\&. همچنین متغیر محیطی \fIIPUTILS_PING_PTR_LOOKUP\fR را ببینید\&. .RE .PP \fB\-O\fR .RS 4 گزارش پاسخ‌های معلق ICMP ECHO پیش از ارسال بسته بعدی\&. این گزینه همراه با برچسب زمانی \fB\-D\fR برای ثبت خروجی در یک فایل عیب‌یابی و جستجو برای پاسخ‌های مفقود مفید است\&. .RE .PP \fB\-p\fR \fIpattern\fR .RS 4 می‌توانید حداکثر ۱۶ بایت پرکننده (\(lqpad\(rq) برای پر کردن بسته‌ای که ارسال می‌کنید مشخص کنید\&. این گزینه برای عیب‌یابی مشکلات وابسته به داده در شبکه سودمند است\&. برای نمونه، \fB\-p ff\fR باعث می‌شود بسته ارسالی با همه بیت‌های ۱ پر شود\&. .RE .PP \fB\-q\fR .RS 4 خروجی ساکت\&. به جز خطوط خلاصه در زمان شروع و هنگام پایان، چیزی نمایش داده نمی‌شود\&. .RE .PP \fB\-Q\fR \fItos\fR .RS 4 تنظیم بیت‌های مربوط به کیفیت خدمات (Quality of Service) در دیتاگرام‌های ICMP\&. پارامتر \fItos\fR می‌تواند عدد ده‌دهی (فقط در \fBping\fR) یا هگزادسیمال باشد\&. .sp در RFC2474، این فیلدها به عنوان سرویس‌های متمایز (DS) ۸ بیتی تفسیر می‌شوند، متشکل از: بیت‌های ۰\-۱ (۲ بیت کم‌ارزش‌تر) از داده‌های مجزا، و بیت‌های ۲\-۷ (۶ بیت باارزش‌تر) از نقطه کد سرویس‌های متمایز (DSCP)\&. در RFC2481 و RFC3168، بیت‌های ۰\-۱ برای ECN استفاده می‌شوند\&. .sp از دید تاریخی (RFC1349، که توسط RFC2474 منسوخ شده)، این موارد به این صورت تفسیر می‌شدند: بیت ۰ (کم‌ارزش‌ترین بیت) برای رزرو (که در حال حاضر به عنوان کنترل ازدحام بازتعریف شده است)، بیت‌های ۱\-۴ برای نوع سرویس (Type of Service) و بیت‌های ۵\-۷ (باارزش‌ترین بیت‌ها) برای اولویت (Precedence)\&. .RE .PP \fB\-r\fR .RS 4 دور زدن جداول مسیریابی عادی و ارسال مستقیم به میزبانی روی یک رابط متصل‌شده\&. اگر میزبان روی شبکه‌ای که مستقیماً متصل است نباشد، خطایی بازگردانده می‌شود\&. این گزینه را می‌توان برای پینگ یک میزبان محلی از طریق رابطی که مسیری از آن عبور نمی‌کند استفاده کرد، به شرط آنکه گزینه \fB\-I\fR نیز استفاده شده باشد\&. .RE .PP \fB\-R\fR .RS 4 فقط در \fBping\fR\&. ثبت مسیر (Record route)\&. گزینه RECORD_ROUTE را در بسته ECHO_REQUEST قرار می‌دهد و بافر مسیر را روی بسته‌های بازگشتی نمایش می‌دهد\&. توجه داشته باشید که سرآیند IP تنها برای ۹ مسیر از این دست به اندازه کافی بزرگ است\&. بسیاری از میزبان‌ها این گزینه را نادیده می‌گیرند یا دور می‌اندازند\&. .RE .PP \fB\-s\fR \fIpacketsize\fR .RS 4 تعداد بایت‌های داده ارسالی را مشخص می‌کند\&. مقدار پیش‌فرض ۵۶ است که در ترکیب با ۸ بایت داده سرآیند ICMP به ۶۴ بایت داده ICMP تبدیل می‌شود\&. حداکثر مقدار مجاز ۶۵۵۰۷ برای IPv4 است (۶۵۴۶۷ در صورت استفاده از \fB\-R\fR یا \fB\-T\fR یا \fIhop\fRهای میانی) یا ۶۵۵۲۷ برای IPv6، اما بیشتر سیستم‌ها این مقدار را به عدد کوچک‌تر و وابسته به سیستم محدود می‌کنند\&. .RE .PP \fB\-S\fR \fIsndbuf\fR .RS 4 تنظیم sndbuf سوکت\&. اگر مشخص نشود، به گونه‌ای انتخاب می‌شود که بیش از یک بسته را بافر نکند\&. .RE .PP \fB\-t\fR \fIttl\fR .RS 4 فقط در \fBping\fR\&. تنظیم طول عمر (Time to Live) بسته IP\&. .RE .PP \fB\-T\fR \fItimestamp option\fR .RS 4 تنظیم گزینه‌های ویژه برچسب زمانی IP\&. مقدار \fItimestamp option\fR می‌تواند یکی از موارد \fItsonly\fR (فقط برچسب‌های زمانی)، \fItsandaddr\fR (برچسب‌های زمانی و نشانی‌ها) یا \fItsprespec host1 [host2 [host3 [host4]]]\fR (برچسب زمانی برای گام‌های از پیش تعیین‌شده) باشد\&. .RE .PP \fB\-U\fR .RS 4 چاپ تاخیر کامل کاربر به کاربر (رفتار قدیمی)\&. به طور معمول \fBping\fR زمان رفت‌وبرگشت شبکه را چاپ می‌کند، که مثلاً به دلیل خطاهای DNS می‌تواند متفاوت باشد\&. .RE .PP \fB\-v\fR .RS 4 خروجی با جزئیات کامل (Verbose)\&. هنگام پینگ یک نشانی چندپخشی، پاسخ‌های تکراری (DUP) پنهان نمی‌شوند\&. .RE .PP \fB\-V\fR .RS 4 نمایش نسخه و خروج\&. .RE .PP \fB\-w\fR \fIdeadline\fR .RS 4 تعیین یک مهلت زمانی، بر حسب ثانیه، پیش از خروج \fBping\fR، صرف‌نظر از اینکه چه تعداد بسته ارسال یا دریافت شده باشد\&. در این حالت \fBping\fR پس از ارسال \fIcount\fR بسته متوقف نمی‌شود، بلکه یا تا انقضای \fIdeadline\fR یا تا زمانی که به \fIcount\fR کاوشگر پاسخ داده شود یا تا رسیدن نوعی اعلان خطا از شبکه منتظر می‌ماند\&. .RE .PP \fB\-W\fR \fItimeout\fR .RS 4 زمان انتظار برای پاسخ، بر حسب ثانیه\&. این گزینه تنها در غیاب هرگونه پاسخ بر مهلت زمانی اثر می‌گذارد، در غیر این صورت \fBping\fR به مدت دو RTT منتظر می‌ماند\&. عدد اعشاری با استفاده از نقطه به عنوان ممیز مجاز است (صرف‌نظر از تنظیمات locale)\&. مقدار 0 به معنای مهلت زمانی نامحدود است\&. .RE .PP هنگام استفاده از \fBping\fR برای جداسازی خطا و عیب‌یابی، ابتدا باید آن را روی میزبان محلی اجرا کرد تا بررسی شود که رابط شبکه محلی فعال و در حال کار است\&. سپس، میزبان‌ها و دروازه‌ها در فاصله‌های دورتر و دورتر باید \(lqپینگ\(rq شوند\&. زمان‌های رفت‌وبرگشت و آمارهای گم شدن بسته‌ها محاسبه می‌شوند\&. اگر بسته‌های تکراری دریافت شوند، در محاسبه بسته‌های گم‌شده منظور نمی‌شوند، هرچند زمان رفت‌وبرگشت این بسته‌ها در محاسبه مقادیر کمینه/میانگین/بیشینه/mdev برای زمان‌های رفت‌وبرگشت به کار می‌رود\&. .PP انحراف معیار جامعه (mdev)، اساساً میانگینی از میزان فاصله RTT هر پینگ از میانگین RTT است\&. هرچه mdev بالاتر باشد، RTT متغیرتر است (در طول زمان)\&. با متغیر بودن بالای RTT، در انتقال‌های حجیم داده با مشکلات سرعت مواجه خواهید شد (بیشتر از آنچه واقعاً نیاز است زمان می‌برند، زیرا این نوسان در نهایت باعث می‌شود فرستنده منتظر بسته‌های ACK بماند) و کیفیت VoIP شما متوسط تا ضعیف خواهد بود\&. .PP هنگامی که تعداد مشخص‌شده از بسته‌ها ارسال (و دریافت) شد یا اگر برنامه با SIGINT متوقف شود، خلاصه کوتاهی نمایش داده می‌شود\&. با ارسال سیگنال SIGQUIT می‌توان آمارهای کوتاه‌تر جاری را بدون پایان دادن به فرایند به دست آورد\&. .PP این برنامه برای استفاده در آزمون، سنجش و مدیریت شبکه در نظر گرفته شده است\&. به دلیل باری که می‌تواند بر شبکه تحمیل کند، استفاده از \fBping\fR در حین عملیات عادی یا از طریق اسکریپت‌های خودکار عاقلانه نیست\&. .SH "محیط (ENVIRONMENT)" .PP تنظیم متغیر محیطی \fIIPUTILS_PING_PTR_LOOKUP\fR روی 0، تحلیل معکوس DNS (جستجوی PTR) را به طور پیش‌فرض غیرفعال می‌کند\&. این تنظیم توسط گزینه \fB\-H\fR یا \fB\-n\fR بازنویسی (override) خواهد شد\&. .SH "وضعیت خروج (EXIT STATUS)" .PP اگر \fBping\fR هیچ بسته پاسخی دریافت نکند، با کد 1 خارج می‌شود\&. اگر هر دو مقدار \fIcount\fR و \fIdeadline\fR مشخص شده باشند، و تا زمان فرا رسیدن \fIdeadline\fR کمتر از \fIcount\fR بسته دریافت شده باشد، باز هم با کد 1 خارج خواهد شد\&. در صورت بروز خطاهای دیگر، با کد 2 خارج می‌شود\&. در غیر این صورت با کد 0 خارج خواهد شد\&. این امر استفاده از کد خروج را برای بررسی زنده بودن یا نبودن یک میزبان ممکن می‌سازد\&. .SH "مقصدهای محلی پیوند در IPV6 (IPV6 LINK-LOCAL DESTINATIONS)" .PP برای IPv6، هنگامی که نشانی مقصد دارای محدوده محلی پیوند (link-local) است و \fBping\fR از \fIICMP datagram sockets\fR استفاده می‌کند، رابط خروجی باید مشخص شود\&. هنگامی که \fBping\fR از \fIraw sockets\fR استفاده می‌کند، مشخص کردن رابط خروجی اکیداً ضروری نیست اما باید برای جلوگیری از ابهام در صورت وجود چندین رابط خروجی ممکن انجام شود\&. .PP دو راه برای مشخص کردن رابط خروجی وجود دارد: .PP \(bu با استفاده از \fIنشانه‌گذاری %\fR .RS 4 نشانی مقصد با \fI%\fR و نام رابط خروجی یا ifindex پسوند می‌گیرد؛ برای نمونه: .sp \fBping fe80::5054:ff:fe70:67bc%eth0\fR .sp \fBping fe80::5054:ff:fe70:67bc%2\fR .RE .PP \(bu با استفاده از \fIگزینه \-I\fR .RS 4 هنگام استفاده از \fIICMP datagram sockets\fR، این روش از نسخه‌های زیر در هسته لینوکس پشتیبانی می‌شود: 5\&.17، 5\&.15\&.19، 5\&.10\&.96، 5\&.4\&.176، 4\&.19\&.228، 4\&.14\&.265\&. همچنین روی musl libc پشتیبانی نمی‌شود\&. .RE .SH "جزئیات بسته‌های ICMP (ICMP PACKET DETAILS)" .PP یک سرآیند IP بدون گزینه‌ها ۲۰ بایت است\&. یک بسته ICMP ECHO_REQUEST شامل ۸ بایت اضافه سرآیند ICMP است که پس از آن مقدار دلخواهی داده قرار می‌گیرد\&. هنگامی که یک \fIpacketsize\fR داده می‌شود، این نشان‌دهنده اندازه این بخش داده اضافی است (پیش‌فرض ۵۶ است)\&. بنابراین مقدار داده دریافتی در داخل یک بسته IP از نوع ICMP ECHO_REPLY همواره ۸ بایت بیشتر از فضای داده درخواستی (سرآیند ICMP) خواهد بود\&. .PP اگر فضای داده حداقل به اندازه struct timeval باشد، \fBping\fR از بایت‌های ابتدایی این فضا برای گنجاندن یک برچسب زمانی استفاده می‌کند که از آن در محاسبه زمان‌های رفت‌وبرگشت بهره می‌برد\&. اگر فضای داده کوتاه‌تر باشد، هیچ زمان رفت‌وبرگشتی ارائه نمی‌شود\&. .SH "بسته‌های تکراری و آسیب‌دیده (DUPLICATE AND DAMAGED PACKETS)" .PP دستور \fBping\fR بسته‌های تکراری و آسیب‌دیده را گزارش می‌کند\&. بسته‌های تکراری هرگز نباید رخ دهند، و به نظر می‌رسد ناشی از ارسال‌های مجدد نامناسب در سطح پیوند (link-level) باشند\&. بسته‌های تکراری ممکن است در موقعیت‌های مختلفی رخ دهند و به ندرت (در صورت وقوع) نشانه خوبی هستند، اگرچه وجود سطوح پایینی از تکرارها ممکن است همواره دلیلی برای هشدار نباشد\&. .PP بسته‌های آسیب‌دیده آشکارا دلیلی جدی برای هشدار هستند و اغلب نشان‌دهنده سخت‌افزار خراب در جایی در مسیر بسته \fBping\fR هستند (در شبکه یا در میزبان‌ها)\&. .SH "تداخل‌های شناسه (ID COLLISIONS)" .PP برخلاف TCP و UDP که از درگاه (port) برای شناسایی یکتای گیرنده جهت تحویل داده استفاده می‌کنند، ICMP از فیلد شناسه (ID) برای شناسایی بهره می‌برد\&. بنابراین، اگر روی یک دستگاه به طور همزمان دو فرایند پینگ از یک شناسه یکسان استفاده کنند، پاسخ echo ممکن است به گیرنده نادرست تحویل داده شود\&. این یک مشکل شناخته‌شده به دلیل اندازه محدود فیلد ۱۶ بیتی شناسه است\&. این یک محدودیت تاریخی پروتکل است که در حال حاضر قابل رفع نیست، مگر اینکه شناسه‌ای را در بار مفید (payload) بسته پینگ کدگذاری کنیم\&. دستور \fBping\fR خطای \fIDIFFERENT ADDRESS\fR را چاپ می‌کند و درصد بسته‌های گم‌شده منفی می‌شود\&. .PP دستور \fBping\fR از PID برای به دست آوردن یک عدد یکتا استفاده می‌کند\&. مقدار پیش‌فرض \fI/proc/sys/kernel/pid_max\fR برابر ۳۲۷۶۸ است\&. در سیستم‌هایی که استفاده سنگینی از پینگ دارند و مقدار \fIpid_max\fR در آن‌ها بیشتر از ۶۵۵۳۵ باشد، تداخل‌ها حتماً رخ خواهند داد\&. .SH "آزمودن الگوهای مختلف داده (TRYING DIFFERENT DATA PATTERNS)" .PP لایه (بین-)شبکه هرگز نباید با بسته‌ها بر اساس داده‌های موجود در بخش داده رفتار متفاوتی داشته باشد\&. متاسفانه، مشکلات وابسته به داده به درون شبکه‌ها رخنه کرده و برای دوره‌های طولانی ناشناخته باقی مانده‌اند\&. در بسیاری از موارد، الگوی خاصی که دچار مشکل می‌شود، چیزی است که \(lqگذارها\(rq (transitions) کافی ندارد، مانند همه یک‌ها یا همه صفرها، یا الگویی درست در لبه، مانند تقریباً همه صفرها\&. مشخص کردن یک الگوی داده مثلاً از همه صفرها در خط فرمان لزوماً کافی نیست، زیرا الگوی مورد نظر در سطح پیوند داده (data link) قرار دارد و رابطه میان آنچه تایپ می‌کنید و آنچه کنترلرها ارسال می‌کنند می‌تواند پیچیده باشد\&. .PP این بدان معناست که اگر با مشکلی وابسته به داده مواجه شدید، احتمالاً باید آزمایش‌های زیادی برای پیدا کردن آن انجام دهید\&. اگر خوش‌شانس باشید، ممکن است فایلی بیابید که یا از طریق شبکه شما ارسال نمی‌شود یا انتقال آن بسیار طولانی‌تر از سایر فایل‌های با اندازه مشابه طول می‌کشد\&. سپس می‌توانید این فایل را برای الگوهای تکراری بررسی کرده و آن‌ها را با استفاده از گزینه \fB\-p\fR در \fBping\fR بیازمایید\&. .SH "جزئیات TTL (TTL DETAILS)" .PP مقدار TTL در یک بسته IP نشان‌دهنده حداکثر تعداد مسیریاب‌های IP است که بسته می‌تواند پیش از دور انداخته شدن از آن‌ها عبور کند\&. در عملکرد فعلی، می‌توانید انتظار داشته باشید که هر مسیریاب در اینترنت مقدار فیلد TTL را دقیقاً یک واحد کاهش دهد\&. .PP فیلد TTL برای بسته‌های TCP ممکن است مقادیر گوناگونی بگیرد\&. حداکثر مقدار ممکن برای این فیلد ۲۵۵ و مقدار اولیه توصیه‌شده ۶۴ است\&. برای اطلاعات بیشتر، بخش رابط سطح پایین TCP در RFC9293 را ببینید\&. .PP در عملکرد عادی، \fBping\fR مقدار TTL را از بسته‌ای که دریافت می‌کند چاپ می‌کند\&. هنگامی که یک سیستم دوردست بسته پینگ را دریافت می‌کند، می‌تواند در پاسخ خود با فیلد TTL یکی از سه کار زیر را انجام دهد: .PP .RS 4 \(bu آن را تغییر ندهد؛ این کاری است که سیستم‌های یونیکس برکلی پیش از انتشار 4.3BSD Tahoe انجام می‌دادند\&. در این حالت، مقدار TTL در بسته دریافتی برابر ۲۵۵ منهای تعداد مسیریاب‌ها در مسیر رفت‌وبرگشت خواهد بود\&. .RE .PP .RS 4 \(bu آن را روی ۲۵۵ تنظیم کند؛ این کاری است که سیستم‌های فعلی یونیکس برکلی انجام می‌دهند\&. در این حالت، مقدار TTL در بسته دریافتی برابر ۲۵۵ منهای تعداد مسیریاب‌ها در مسیر \fBاز\fR سیستم دوردست \fBبه\fR میزبان \fBping\fRکننده خواهد بود\&. .RE .PP .RS 4 \(bu آن را روی مقدار دیگری تنظیم کند\&. برخی ماشین‌ها از همان مقداری برای بسته‌های ICMP استفاده می‌کنند که برای بسته‌های TCP به کار می‌برند، به عنوان نمونه ۳۰ یا ۶۰\&. ماشین‌های دیگر ممکن است از مقادیر کاملاً نامتعارفی استفاده کنند\&. .RE .SH "ایرادات (BUGS)" .PP .RS 4 \(bu بسیاری از میزبان‌ها و دروازه‌ها گزینه RECORD_ROUTE را نادیده می‌گیرند\&. .RE .PP .RS 4 \(bu حداکثر طول سرآیند IP برای اینکه گزینه‌هایی مانند RECORD_ROUTE کاملاً مفید واقع شوند بسیار کوچک است\&. با این حال، کار زیادی نمی‌توان در این باره انجام داد\&. .RE .PP .RS 4 \(bu پینگ سیلابی (Flood pinging) به طور کلی توصیه نمی‌شود، و پینگ سیلابی به یک نشانی پخشی (broadcast) تنها باید تحت شرایط کاملاً کنترل‌شده انجام گیرد\&. .RE .SH "همچنین ببینید (SEE ALSO)" .PP \fBip\fR(8), \fBss\fR(8)\&. .SH "تاریخچه (HISTORY)" .PP دستور \fBping\fR در 4.3BSD پدیدار شد\&. .PP نسخه‌ای که در اینجا شرح داده شده، نواده مختص لینوکس آن است\&. .PP از نسخه s20150815، باینری \fBping6\fR دیگر وجود ندارد\&. این برنامه درون \fBping\fR ادغام شده است\&. ایجاد یک پیوند نمادین (symlink) با نام \fBping6\fR که به \fBping\fR اشاره دارد، همان عملکرد پیشین را ارائه خواهد داد\&. .SH "امنیت (SECURITY)" .PP دستور \fBping\fR برای اجرا نیاز به مجوز CAP_NET_RAW دارد: ۱) در صورتی که برنامه برای پرس‌وجوهای غیر echo به کار رود (گزینه \fB\-N\fR را ببینید) یا هنگامی که فیلد شناسه برای ECHO_REQUEST روی 0 تنظیم شده باشد (گزینه \fB\-e\fR را ببینید)، یا ۲) اگر هسته از سوکت‌های دیتاگرام ICMP پشتیبانی نکند، یا ۳) اگر کاربر مجاز به ساختن یک سوکت echo در ICMP نباشد\&. برنامه ممکن است به صورت set-uid root به کار رود\&. .SH "در دسترس بودن (AVAILABILITY)" .PP دستور \fBping\fR بخشی از بسته \fIiputils\fR است\&.