پیگیری وضعیت انتقال داده‌ها در شبکه
چگونه بر فرآیند ارسال و دریافت بسته‌ها در شبکه نظارت دقیقی اعمال کنیم؟
سرپرستان شبکه، کارشناسان حوزه امنیت، گیمرهای حرفه‌ای و به‌طور کلی افرادی که شغل آن‌ها با اینترنت و شبکه عجین شده بدون تردید با اصطلاح و ابزار پینگ (Ping) آشنایی دارند. پینگ سنجه‌ای برای احتساب فاصله‌ زمانی اتصال بین دو دستگاه در شبکه است. با محاسبه میزان پینگ یک سرویس اینترنتی، می‌توان دریافت که چقدر زمان می‌برد تا یک بسته اطلاعاتی از جانب یک دستگاه تحت شبکه به سمت سرور رفته و دوباره از آن مسیر برگردد. به بیان ساده‌تر، پینگ تأخیر زمانی است که در هنگام انجام هر فعالیت برخط اتفاق می‌افتد، از کلیک روی یک لینک تا استریم کردن یک ویدئو. پینگ یکی از ابزارهای پر کاربرد دنیای شبکه است.

چگونه بر فرآیند ارسال و دریافت بسته‌ها در شبکه نظارت دقیقی اعمال کنیم؟

پینگ سنجه‌ای برای احتساب فاصله‌ زمانی اتصال بین دو دستگاه در شبکه است. با محاسبه میزان پینگ یک سرویس اینترنتی، می‌توان دریافت که چقدر زمان می‌برد تا یک بسته اطلاعاتی از جانب یک دستگاه تحت شبکه به سمت سرور رفته و دوباره از آن مسیر برگردد. به بیان ساده‌تر، پینگ تأخیر زمانی است که در هنگام انجام هر فعالیت برخط اتفاق می‌افتد، از کلیک روی یک لینک تا استریم کردن یک ویدئو. پینگ یکی از ابزارهای پر کاربرد دنیای شبکه است. عملکرد ابزار فوق به این صورت است که یک بسته داده‌ای را برای یک آدرس اینترنتی ارسال می‌کند و مدت زمان ارسال و دریافت پاسخ از منبع را نشان می‌دهد. برخی بازی‌های آنلاین در کنار صفحه‌نمایش وضعیت پینگ کاربر را نشان می‌دهند. هرچه رقم نشان داده شده زیاد باشد، بازی با لگ‌ فراوان انجام می‌شود. به‌طور مثال، اگر در یک بازی آنلاین نرخ پینگ روی مقدار 25 تا 50 باشد، سرعت اینترنت در وضعیت مطلوب قرار دارد، اگر این مقدار سه رقمی شد بازی دیگر به شکل روان انجام نخواهد شد. در ارتباط با فعالیت‌های حرفه‌ای هر چه این مقدار زیاد باشد، احتمال از دست رفتن داده‌ها زیاد می‌شود. پینگ بالا به دلایل مختلفی رخ می‌دهد که محدود بودن پهنای باند ارائه شده توسط شرکت ارائه‌دهنده خدمات اینترنتی، اتصال همزمان چند کاربر به اینترنت و انجام فعالیت‌های سنگین، وجود مانع بر سر راه تجهیزات بی‌سیم، خرابی تجهیزات شبکه، وجود باگ در میان‌افزار روتر، عدم اولویت‌بندی ترافیک به تجهیزاتی که نیازمند پهنای باند زیاد هستند، وجود گلوگاه در مسیر ارسال و دریافت اطلاعات تنها چند نمونه رایج از دلایل افزایش پینگ هستند. برای شناسایی و حل مشکلات این چنینی و همچنین بررسی اتفاقاتی که روی شبکه در جریان است باید از ابزارهای  نظارت بر ترافیک شبکه‌ها استفاده کنیم.

Wireshark از جمله ابزارهای مطرح در زمینه نظارت بر داده‌های مبادله شده در شبکه‌ها است. با این حال، برخی ابزارها به دلیل سادگی، تجربه کاربری بهتری ارائه می‌کنند که Microsoft Network Monitor یکی از آن‌ها است. مایکروسافت به سرپرستان شبکه پیشنهاد می‌کند از ابزار قدرتمند Microsoft Network Monitor استفاده کنند. ابزاری که جایگزین Microsoft Message Analyzer شده است. ابزار فوق به شکل دقیقی در سیستم‌عامل ویندوز سرور به دریافت و بازبینی بسته‌های شبکه می‌پردازد. سهولت استفاده، رابط کاربری قدرتمند و طیف گسترده‌ای از قابلیت‌های کاربردی ارائه شده توسط Microsoft Network Monitor فرآیند نظارت بر ترافیک شبکه‌ها را ساده کرده است.

 دریافت بسته‌ها با استفاده از

Microsoft Network Monitor

در اولین گام باید ابزار Microsoft Network Monitor را نصب کنید. برای دانلود به آدرس:

 https://www.microsoft.com/en-us/download/details.aspx?id=4865

مراجعه کنید، نرم‌افزار مذکور را نصب و سیستم را راه‌اندازی مجدد کنید، برنامه را باز کنید و روی گزینه Capture کلیک کنید (شکل زیر).

ممکن است در زمان اجرای نرم‌افزار با پیغام خطایی روبرو شوید مبنی بر این‌که هیچ آداپتور شبکه‌ای وجود ندارد. برای حل این مشکل نرم‌افزار را با مجوز مدیریتی اجرا کنید. در ادامه روی دکمه start کلیک کنید تا فرآیند نظارت بر بسته‌های انتقال یافته در شبکه آغاز شود. در این حالت نرم‌افزارهایی که اقدام به ارسال و دریافت بسته‌ها می‌کنند در پنل سمت چپ به شکل گروه‌بندی شده نشان داده می‌شوند تا امکان مشاهده دقیق‌‌تر فرآیندها فراهم شود (شکل زیر). 

اگر روی هر یک از پردازه‌های نشان داده شده در این پنل کلیک کنید، مجوعه داده‌های در حال انتقال که ضبط شده‌اند نشان داده می‌شوند. همچنین اگر یک پردازه شامل زیرپردازه‌های دیگری باشد که بسته‌های داده‌ای را انتقال می‌دهند، تمامی این اتفاقات در پنل فوق نشان داده می‌شود. 

فیلتر کردن ترافیک

در هنگام استفاده از Network Monitor متوجه می‌شوید که حجم بالای داده‌های دریافتی نیازمند فیلترسازی هستند. Network Monitor فیلترهای قدرتمندی در اختیار کاربران قرار می‌دهد. یکی از این فیلترها DnsAllNameQuery نام دارد که در زیر مجموعه فیلترهای استاندارد سامانه نام دامنه قرار دارد. زمانی که فیلتر فوق انتخاب شود تنها بسته‌های داده‌ای که مرتبط با محاورهای سامانه نام دامنه هستند نشان داده می‌شوند. 

ایجاد فیلتر

ساخت فیلتر یا ویرایش فیلترهای داخلی کار ساده‌ای است. درون فیلد Display Filter چند روش برای ایجاد فیلترها وجود دارد. با وارد کردن نام پروتکل و یک علامت نقطه (.) یک فهرست تکمیل خودکار از مقادیر در دسترس برای مقایسه نشان داده می‌شود. عملگر مقایسه استاندارد (==) اجازه می‌دهد مقادیر برابر با یک مقدار تعیین شده را ارزیابی کنیم. امکان به‌کارگیری سایر عملگرهای منطقی شبیه به AND و OR و برخی گزارهای چند‌عبارتی نیز فراهم است. نمونه‌ای از ساخت فیلتر‌های پیشرفته به شرح زیر است:

DNS.QuestionCount AND

DNS.ARecord.TimeToLive == 15

توابعی شبیه به contains() و UNIT8() نیز وجود دارند. روش به‌کارگیری contains برای فیلتر کردن رکوردهای DNS، شامل آدرس google.com و مقدار TimeToLine برابر با 15، به شرح زیر است:

DNS.QuestionCount AND

DNS.ARecord.TimeToLive == 15 AND

DNS.QRecord.QuestionName.contains(“google.com”)

روش‌های دیگری نیز برای ترکیب فیلترها وجود دارد تا فرآیند نظارت بر ترافیک شبکه به شکل دقیق‌تر انجام شود. فیلتر بر مبنای شماره پورت یکی از آن‌ها است. در روش فوق به جای آن‌که در میان حجم انبوهی از داده‌ها سردرگم شویم، تنها به سراغ ارزیابی بسته‌هایی می‌رویم که به آن‌ها نیاز داریم. با توجه به این‌که فیلترها نقش کلیدی در ابزارهای نظارت بر ترافیک شبکه بازی می‌کنند بهتر است چند مورد کاربردی را بررسی کنیم.

فیلتر بر مبنای شماره پورت

امکان به‌کارگیری پروتکل HTTP برای فیلتر کردن بسته‌ها فراهم است، اما روش کارآمدتر دیگری نیز وجود دارد که اجازه می‌دهد بر مبنای پورت‌های خاص شبیه به 8080 یا 8443 یک فیلتر دقیق ایجاد کنیم. فیلتری که در زمینه عیب‌یابی مشکلات شبکه کمک فراوانی می‌کند. ترکیب نحوه پیاده‌سازی فیلترهای این چنینی به شرح زیر است:

// Filter by TCP Port Number

tcp.port == 80 OR Payloadheader.LowerProtocol.port == 80

tcp.port == 443 OR Payloadheader.LowerProtocol.port == 443

در فیلتر فوق فریم‌های TCP که به شکل تکه‌تکه هستند، دوباره در کنار یکدیگر قرار می‌گیرند و در فریم جدیدی وارد می‌شوند که شامل سرآیند خاصی به‌نام Payloadheader است. در این حالت با نگاه کردن به بسته‌های رصد شده اطمینان حاصل خواهیم کرد تمامی داده‌هایی را که به دنبال آن‌ها هستیم دریافت کرده‌ایم.

پیدا کردن فریم‌های مرتبط با SSL

در زمان عیب‌یابی شبکه باید اتصال‌های SSL را پیدا کنید که داده‌هایی را ارسال یا دریافت کرده‌اند. این احتمال وجود دارد که موفق نشوید ترافیک داخلی را رمزگشایی کنید، اما فیلتر فوق در پیدا کردن سرورهایی که فرآیندها سعی می‌کنند به آن‌ها متصل شوند کمک می‌کند. 

// Filter by SSL Handshake

TLS.TlsRecLayer.TlsRecordLayer.SSLHandshake.HandShake.HandShakeType == 0x1

پیدا کردن انتقال دوباره TCP  و SYN

برای عیب‌یابی مشکلات بارگذاری و بارگیری فایل باید تعداد انتقال دوباره (Retransmission) را بررسی کنیم و تاثیر این تکرار بر عملکرد شبکه را ارزیابی کنیم. فیلتر فوق اجازه انجام چنین کاری را می‌دهد. 

Property.TCPRetransmit == 1 || Property.TCPSynRetransmit == 1

خواندن فریم‌ها و داده‌های HEX

‌در حالت پیش‌فرض رابط کاربری برنامه از دو بخش تحتانی ساخته شده که جزییات فریم و جزییات HEX را نشان می‌دهد. در بخش جزییات فریم، هر بسته به بخش‌های سازنده‌اش تجزیه می‌شود. در بخش جزییات HEX داده‌ها به شکل بایت‌های خام نشان داده می‌شوند. زمانی که بخشی از جزییات فریم انتخاب شود، همان بخش در کد HEX به شکل انتخاب شده نشان داده می‌شود (شکل زیر). به‌کارگیری مکانیزم‌های رهگیری وضعیت شبکه روند عیب‌یابی مشکلات شبکه را ساده‌ می‌کند. در شرایطی که ابزارهای کارآمدی شبیه به WireShark برای یک چنین فعالیت‌هایی طراحی شده‌اند، اما Microsoft Network Monitor با ارائه یک مکانیزم ساده و کم دردسر اجازه می‌دهد به شکل قدرتمندی بسته‌های داده‌ای را رهگیری کنید.

در کنار ابزار یاد شده، یک ابزار یا به عبارت دقیق‌تر یک فرمان کاربردی نیز وجود دارد که اجازه می‌دهد گره‌ها و کلاینت‌های مختلف شبکه را آزمایش و مشکلات را شناسایی کنید. این ابزار قدرتمند پینگ (Ping) نام دارد. در ادامه با برخی از قابلیت‌های کاربردی این فرمان جادویی آشنا می‌شویم.

 پینگ چگونه کار می‌کند؟

از فرمان پینگ همراه با آدرس آی‌پی یا نام یک وب‌سایت استفاده می‌شود. زمانی که دستور فوق را فراخوانی کنید، کامپیوتر تعدادی بسته داده‌ای به آدرس مقصد ارسال می‌کند و صبر می‌کند تا پاسخ را دریافت کند. زمانی که پاسخ را دریافت کرد، زمان سپری شده میان رفت و برگشت داده‌ها را نشان می‌دهد. در صورت عدم دریافت پاسخ با نشان دادن عبارت Time Out اعلام می‌کند که پاسخی دریافت نکرده است. ابزار فوق مکانیزمی ساده، اما عملکرد خیلی خوبی دارد. با استفاده از دستور فوق می‌توانید وضعیت دسترسی به گره‌های تحت شبکه محلی (همچون روترها) یا دستگاه‌های موجود در شبکه‌های بزرگ‌تر همچون اینترنت را بررسی کنید. پینگ نشان می‌دهد که آیا مشکل از سمت شبکه شما است یا علت بروز مشکل در مکان دیگری قرار دارد. همچنین با نشان دادن زمان دریافت پاسخ، میزان افت سرعت یا قطعی اینترنت را نشان می‌دهد. کاربران می‌توانند از خط فرمان ویندوز یا پنجره ترمینال سیستم‌عامل‌های مک و لینوکس دستور فوق را اجرا کنند. کاربران دستگاه‌های اندرویدی یا iOS می‌توانند از طریق نرم‌افزارهای جانبی به این ابزار دسترسی داشته باشند.

 نحوه به‌کارگیری فرمان پینگ

در این مطلب قصد داریم از خط فرمان ویندوز برای اجرای محاوره‌های مختلف پینگ استفاده کنیم، با این‌حال امکان اجرای دستورات از طریق پاورشل یا ترمینال نیز فراهم است. در سیستم‌عامل ویندوز کلید‌های Windows +R را فشار دهید تا پنجره run ظاهر شود، در ادامه دستور cmd را تایپ کنید و اینتر را فشار دهید تا پنجره خط فرمان ویندوز را مشاهده کنید. در خط فرمان ویندوز عبارت پینگ را همراه با آدرس وب‌سایت یا یک آدرس آی‌پی وارد کنید و کلید اینتر را فشار دهید. در شکل زیر ما به آدرس www.google.com پینگ کرده‌ایم و مطابق انتظار یک پاسخ عادی را دریافت کردیم. در خط اول این دستور مقادیر زیر را مشاهده می‌کنید:

  • آدرس وب‌سایت مقصد
  • شماره آی‌پی مقصد
  • حجم بسته ارسالی

چهار خط بعدی، پاسخ دریافتی از هر بسته را نشان می‌دهند و شامل موارد زیر هستند:

  • Time: زمان پاسخ‌دهی را بر مبنای میلی‌ثانیه نشان می‌دهد. 
  • TTL: طول عمر بسته (Time to Live) را مشخص می‌کند. فیلد فوق زمانی را مشخص می‌کند که اگر در آن زمان پاسخی دریاف نشود، بسته کنار گذاشته می‌شود. ‌
  • در انتهای دستور، خلاصه وضعیتی از تعداد بسته‌های ارسالی و دریافتی، حداقل، حداکثر و میانگین زمان پاسخ را مشاهده می‌کنید.

شکل زیر نحوه پینگ کردن به روتری در یک شبکه محلی را همراه با آدرس آی‌پی روتر نشان می‌دهد. همان‌گونه که مشاهده کنید مشکل خاصی وجود ندارد و یک پاسخ عادی دریافت می‌کنیم.

اگر زمانی که به آدرسی پینگ می‌کنیم پاسخی توسط سیستم دریافت نشوند پیغام‌های مختلفی بر مبنای واکنش سیستم مقصد نشان داده می‌شود. به‌طور مثال، در شکل زیر دسترسی به مقصد فراهم نیست. این مشکل ممکن است به دلیل مسدود شدن پروتکل ICMP یا وجود یک دیوارآتش باشد. استفاده از فرمان پینگ پیچیدگی خاصی ندارد، البته همانند سایر دستورات شبکه برخی حالت‌های پیشرفته نیز برای آن در نظر گرفته شده است. به‌طور مثال، می‌توان پینگ را به گونه‌ای پیکربندی کرد تا به جای ارسال چهار بسته، مادامی که اجرای پینگ توسط کاربر متوقف نشده فرآیند ارسال بسته به سمت مقصد را تکرار کند یا در یک چرخه مشخص این فرآیند را تکرار کند. این امکان نیز وجود دارد تا فاصله زمانی مشخصی برای هر پینگ تعیین کرد.

پینگ چه کاربردی دارد؟

پینگ برای انجام کارهای مختلفی استفاده می‌شود که از مهم‌ترین آن‌ها به موارد زیر می‌توان اشاره کرد: 

  •       می‌توانید به یک وب‌سایت یا آدرس آی‌پی پینگ کنید تا وضعیت دسترسی به مقصد را بررسی کنید. اگر پاسخ معتبری دریافت کردید نشان می‌دهد که تمامی تجهیزات شبکه در دو مسیر (مسیر مقصد و مبدا) به درستی کار می‌کنند. این تجهیزات کارت شبکه، روتر، پیکربندی پروتکل‌های ارتباطی در مقصد، تجهیزات شرکت ارائه‌دهنده خدمات اینترنتی و تجهیزات مقصد است. همچنین، اگر تمایل دارید وضعیت سایر دستگاه‌های میان خود و آدرس مقصد را بررسی کنید باید از فرمان tracert استفاده کنید. 
  •     اگر آدرس وب‌سایتی را همراه با فرمان پینگ وارد کنید آدرس آی‌پی آن سایت را مشاهده می‌کنید. اگر در نظر دارید آدرس آی‌پی سایت خاصی را مشاهده کنید، فرمان پینگ یکی از گزینه‌های در دسترس است. در این حالت پینگ آدرس آی‌پی مقصد را نشان می‌دهد. 
  •     اگر به روتر خود پینگ بزنید، وضعیت برقراری یا عدم برقراری ارتباط را مشاهده می‌کنید. اگر در باز کردن آدرس‌های خاصی در اینترنت با مشکل روبرو هستید، ابتدا باید به روتر خود پینگ بزنید. اگر پاسخ معتبری دریافت کردید، نشان می‌دهد شبکه محلی بدون مشکل کار می‌کند و عدم دسترسی به سایت مشکل دیگری دارد. 
  •     اگر در نظر دارید وضعیت سالم بودن کارت شبکه و نرم‌افزارهای مربوطه روی سیستم‌تان را بررسی کنید، کافی است روتر را روشن کنید و به آدرس 127.0.0.1 پینگ بزنید تا وضعیت سالم یا خراب بودن تجهیزات را بررسی کنید.

کلام پایانی

همان‌گونه که اشاره شد، کاربرد ابزار پینگ، بیشتر آزمایش وصل بودن یا نبودن کامپیوتر میزبان است. همچنین، اگر شبکه ارتباطی به درستی پیاده‌سازی شده باشد زمان تأخیر بین دو کامپیوتر را نشان می‌دهد. پینگ، گزینه‌های خط فرمانی مختلفی دارد که در هر سیستم‌عاملی متفاوت است و می‌تواند بنا به نیاز ما حالت‌های خاص عملیاتی را فعال کند. این گزینه‌ها می‌توانند اندازه بسته آزمایشی را تغییر دهند یا انجام پینگ به صورت تکراری برای دفعات محدود را پایه‌ریزی کنند. با این‌حال به این نکته مهم دقت کنید که اگر سعی کنید بدون دانش قبلی از پینگ به شکل سفارشی استفاده کنید ممکن است ناخواست یک حمله سیلابی انکار سرویس از نوع ping flood را به وجود آورید و آدرس آی‌پی شما در فهرست سیاه آن سایت قرار گیرد.

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟