دستور Ping
دستور Ping می تواند نقطه شروع مناسبی برای اشکال زدائی يک شبکه مبتنی بر TCP/IP باشد . از برنامه فوق برای تست وضعيت ارتباط بين دو سيستم موجود در شبکه استفاده می شود . اين برنامه از پروتکل ICMP ( اقتباس شده از Internet Control Message Protocol ) به منظور مبادله بسته های اطلاعاتی با سيستم راه دور استفاده می کند (ICMP از پروتکل UDP برای حمل داده استفاده می نمايد ) .
برنامه Ping در ابتدا توسط Mike Muuss و با عملکردی ساده ، پياده سازی گرديد. اين برنامه از پروتکل ICMP به منظور ارسال پيام های UDP به يک آدرس ( ECHO REQUEST ) استفاده می نمايد و پس از ارسال پيام ، در انتظار دريافت پاسخ ( ECHO REPLY ) می ماند . سيستم راه دور، يک بسته اطلاعاتی از نوع پاسخ ( REPLY ) را برای فرستنده پيام ارسال می نمايد و بر اساس آن Round-trip ( ارسال يک درخواست و دريافت پاسخ ) محاسبه می گردد .
ساختار بسته های اطلاعاتی ECHO REQUEST و ECHO REPLY در جدول زير نشان داده شده است . از فيلد اطلاعاتی "نوع پيام " به منظور مشخص نمودن نوع پيام ، استفاده می شود . در صورتی که مقدار اين فيلد هشت باشد ، بسته اطلاعاتی از نوع ECHO REQUEST و در صورتی که مقدار اين فيلد صفر باشد ، بسته اطلاعاتی از نوع ECHO REPLY خواهد بود .
استفاده از Ping
Ping دارای عملکردی بسيار ساده است . در ابتدا فيلد Sequence number مقدار صفر را خواهد گرفت و به ازای ارسال هر بسته اطلاعاتی، يک واحد به آن اضافه می شود . مقدار فيلد Identifier ، منحصر بفرد بوده تا امکان تشخيص بسته های اطلاعاتی برگردانده شده وجود داشته باشد ( در مواردی که بيش از يک کاربر بطور همزمان از دستور Ping بر روی يک ماشين استفاده می نمايند) . در اکثر نسخه های يونيکس و لينوکس ، مقدار فيلد Identifier معادل Process ID پردازه ای در نظر گرفته می شود که پيام ECHO REQUEST را ارسال نموده است .
پس از دريافت پيام ECHO REQUEST توسط کامپيوتر دريافت کننده ، وی يک پاسخ ( REPLY ) را برای فرستنده ارسال می نمايد که شامل Identifier و Sequence number مشابه بسته اطلاعاتی ارسالی است .
با توجه به پاسخ ارائه شده توسط دريافت کننده بسته های اطلاعاتی می توان به نتايج متفاوتی دست يافت :
تمامی بسته های اطلاعاتی ارسالی ، مجددا" برگردانده می شوند . ( بين سيستم ارسال کننده و دريافت کننده مشکل ارتباطی وجود ندارد ) .
برخی از بسته های اطلاعاتی ارسالی، توسط دريافت کننده برگردانده نمی شوند ( کاهش بسته های اطلاعاتی ارسالی ) و يا با اولويتی که ارسال می گردند با همان اولويت دريافت نمی شوند . اين مسئله می تواند نشاندهنده وجود اشکال در يک شبکه باشد . در اين رابطه احتمال ديگری نيز وجود دارد : سيستم از راه دور ( سيستمی که می بايست به پيام های ارسالی پاسخ دهد ) درگير پردازش های متعددی است و قادر به پاسخگوئی پيام های ECHO REQUEST در مدت زمان مشخص شده نمی باشد .
دستور Ping ، مدت زمان Round-trip بر حسب ميلی ثانيه را محاسبه و نمايش می دهد . برای محاسبه مدت زمان Round-trip ، برنامه ping زمان ارسال بسته اطلاعاتی را در فيلد Optional data قرار داده و پس از برگشت بسته اطلاعاتی، زمان ذخيره شده را با زمان جاری سيستم مقايسه نموده تا در نهايت مدت زمان رفت و برگشت يک بسته اطلاعاتی مشخص گردد . دستور Ping همچنين مقدار TTL ( اقتباس شده از Time To Live ) را در خروجی نمايش خواهد داد .TTL مدت زمان اعتبار يک بسته اطلاعاتی را مشخص نموده و هر host و يا روتر موجود در مسير بسته اطلاعاتی معمولا" به ميزان يک ثانيه آن را کاهش می دهد .
در برخی موارد ممکن است در زمان ارسال درخواست های متوالی ping ، مدت زمان Round-trip کاهش پيدا نمايد . اين موضوع می تواند دلايل متعددی داشته باشد :
ماشين مقصد ( و يا روتر gateway ) در آن مقطع زمانی در جدول محلی ARP نمی باشد و مدت زمانی طول خواهد کشيد ( ميلی ثاينه ) تا arp آدرس سخت افزاری اولين بسته اطللاعاتی را بدست آورد .
در صورتی که به همراه دستور ping در مقابل استفاده از آدرس IP از نام host استفاده شود ، ممکن است يافتن سرويس دهنده DNS که برنامه ping می بايست با آن ارتباط برقرار نمايد( ترجمه نام host به آدرس IP ) ، زمان خاص خود را داشته باشد .
در زمان استفاده از دستور Ping بهتر است که در ابتدا عمليات ping را در ارتباط با اينترفيس محلی و يا آدرس ( Loopback ( IP: 127.0.0.1 شروع نمود . آدرس loopback در پشته TCP/IP استفاده شده و می توان از آن به منظور حصول اطمينان از صحت کارکرد پشته محلی ، استفاده نمود . آدرس فوق ، يک آدرس IP رزو شده است که امکان استفاده از آن در اينترنت وجود ندارد . در صورتی که نمی توان آدرس IP سستم محلی را ping نمود ، ممکن است پيکربندی سيستم دارای مشکل باشد . در صورتی که نمی توان آدرس Loopback را ping نمود ، ممکن است پشته TCP/IP و يا آداپتور شبکه مشکل داشته باشند
منع