تأیید (acknowledgement) چیست؟

در برخی از پروتکل‌های ارتباط دیجیتال، ACK – مخفف تصدیق یا تأیید – به سیگنالی اشاره دارد که دستگاه ارسال می‌کند تا نشان دهد داده‌ها با موفقیت دریافت شده‌اند. سیگنال توسط ایستگاه دریافت کننده (مقصد) به ایستگاه فرستنده (منبع) پس از دریافت بلوک قابل تشخیص داده با اندازه خاص و مورد انتظار ارسال می شود.

تأیید (acknowledgement) چیست

سیگنال ACK در محاسبات (گذرگاه ها)، شبکه های مخابراتی و شبکه های داده مهم است. به عنوان بخشی از یک پروتکل ارتباطی، ACK راهی برای فرآیندها یا دستگاه‌های مقصد است تا تأیید کنند که پیامی را از فرآیندها یا دستگاه‌های مبدأ دریافت کرده‌اند.

کد ارتباطی ACK معمولاً یک کد استاندارد آمریکایی برای کاراکتر تبادل اطلاعات (0000110 یا 6) است که به منظور ارتباط سیگنال بین ایستگاه مقصد و ایستگاه فرستنده رزرو و تعیین می شود. همچنین به عنوان کد تأیید یا کاراکتر تأیید نیز شناخته می شود. کد نشان می دهد که چگونه فرستنده ها و گیرنده های مختلف بلوک های داده را در یک پروتکل ارتباطی خاص مدیریت می کنند.

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

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

ACK در قیاس با NAK

در حالی که ACK دریافت پیام را نشان می دهد، NAK — یا NACK — برای نشان دادن عکس آن ارسال می شود. NAK مشخصاً به معنای تأیید منفی یا عدم تأیید است. این می تواند توسط یک دستگاه یا فرآیند مقصد منتقل شود تا نشان دهد که قادر به دریافت پیام از یک دستگاه یا فرآیند منبع نیست یا شکست خورده است.

همچنین ممکن است NAK ارسال شود تا نشان دهد داده های ارسال شده از طریق شبکه با خطا(های) دریافت شده است. می تواند گزارش دهد که منبع باید یک سیگنال خاص و مورد انتظار را دوباره به مقصد ارسال کند. مانند ACK، NAK نیز یک کاراکتر ASCII است: 0010101 یا 15.

پروتکل های ارتباطی مبتنی بر acknowledgement

TCP یکی از پروتکل های ارتباطی است که برای اطمینان از انتقال موفقیت آمیز داده ها به سیگنال های ACK متکی است. هنگامی که بسته های TCP از طریق شبکه ارسال می شوند، هر بسته حاوی یک شماره یا پرچم ACK است که در سربرگ بسته روی 1 تنظیم می شود. این عدد نشان دهنده شماره توالی بسته بعدی در جریان داده است که ایستگاه مقصد (دستگاه یا فرآیند) باید انتظار دریافت آن را داشته باشد.

بنابراین، در TCP، مقصد با ارسال یک بسته حاوی مجموعه بیت acknowledgement، بسته های دریافتی را تأیید می کند. یکی از ویژگی های TCP ACK را قادر می سازد تا تصدیق کند که یک سری بسته های TCP به جای یک بسته دریافت شده است. این باعث می شود بایت های زیادی از داده ها در پرواز باقی بمانند، در حالی که تاخیرها را به حداقل می رساند. مانند TCP، پروتکل ZMODEM نیز مبتنی بر تایید است، به این معنی که مقصدهایی را شامل می شود که دریافت پیام های ارسال شده توسط منابع را با ارسال کدهای ACK تایید می کنند.

پروتکل‌های دیگر مبتنی بر NAK هستند، به این معنی که دریافت پیام‌ها را تایید نمی‌کنند و فقط در صورت وجود مشکل، مانند خطا، پاسخ می‌دهند. بیشتر پروتکل های چندپخشی مبتنی بر NAK هستند و هنگامی که گیرنده بسته های گم شده را تشخیص می دهد سیگنال های NAK را ارسال می کنند. هنوز پروتکل های دیگر، مانند ارتباطات همزمان باینری (Bisync)، از سیگنال های ACK و NAK استفاده می کنند. در Bisync، ایستگاه گیرنده یک NAK می فرستد تا نشان دهد که یک خطای انتقال را در بلوک دریافتی قبلی تشخیص داده است و آماده پذیرش ارسال مجدد آن توسط فرستنده است.

در نهایت، برخی از پروتکل ها، مانند پروتکل User Datagram و RC-5، از ACK و NAK استفاده نمی کنند. در عوض، آنها انتقال کور انجام می دهند و ممکن است یک پیام را چندین بار ارسال کنند به این امید که حداقل یک نسخه به درستی و بدون خطا به ایستگاه گیرنده ارسال شود.

دست دادن سه طرفه در TCP با ACK

بسیاری از انواع پیام ها از طریق شبکه های مبتنی بر TCP ارسال می شوند. به عنوان مثال، SYN (همگام سازی) برای شروع و برقراری یک اتصال و همگام سازی شماره های دنباله بین دستگاه های موجود در شبکه استفاده می شود. ایستگاه دریافت کننده acknowledgement را می فرستد تا به فرستنده تایید کند که SYN را دریافت کرده است. به طور مشابه، SYN-ACK یک پیام SYN از دستگاه محلی و ACK بسته قبلی است.

در TCP، ترافیک با یک دست دادن سه طرفه شروع می شود، فرآیندی که در آن شبکه یک ارتباط بین سرور و مشتری برقرار می کند تا انتقال داده را فعال کند. در این فرآیند، هم سرور و هم سرویس گیرنده، بسته های SYN و ACK را قبل از شروع ارتباط داده، مبادله می کنند.

برای شروع فرآیند دست دادن و شروع مکالمه، مشتری یک جلسه ارتباطی با سرور درخواست می کند. ارتباط را با یک سیگنال SYN برقرار می کند. سپس سرور با یک سیگنال SYN-ACK به درخواست مشتری پاسخ می دهد. در مرحله سه، کلاینت پاسخ سرور را تایید می کند و برای شروع فرآیند انتقال داده، یک ارتباط پایدار بین مشتری و سرور برقرار می شود. هنگامی که انتقال کامل شد، TCP به طور خودکار ارتباط بین سرور و کلاینت را قطع می کند.

حملات DDoS سیل acknowledgement

سیل ACK یک حمله انکار سرویس توزیع شده (DDoS) در لایه 4 (لایه حمل و نقل) است. در این سناریو، یک مهاجم یا عامل تهدید، سعی می‌کند سرور را با بسته‌های TCP ACK یا داده‌های ناخواسته بارگذاری کند تا سرور را از کار بیندازد و سرویس را به کاربران قانونی منع کند. سرور هدف باید هر بسته ACK را پردازش کند، که به قدرت محاسباتی زیادی نیاز دارد و سرعت سرویس را برای کاربران کاهش می دهد.

حملات DDoS سیل acknowledgement معمولاً دستگاه هایی را هدف قرار می دهند که برای پردازش هر بسته دریافتی لازم هستند، مانند فایروال های شبکه و سرورها. دستگاه هایی که هر بسته را پردازش نمی کنند، مانند متعادل کننده های بار، روترها و سوئیچ ها، مستعد این حملات نیستند.

حملات سیل ACK مشکل ساز می شوند زیرا بسته های قانونی و غیرقانونی ACK شبیه به هم به نظر می رسند — اگرچه آنها شامل بخش اصلی بسته داده یا بار نیستند. با این حال، می‌توان آن‌ها را با استفاده از یک شبکه تحویل محتوا که بسته‌های غیرضروری ACK را فیلتر می‌کند و ترافیک اضافی را به سرورهای دیگر ارسال می‌کند، متوقف کرد تا از در دسترس نشدن کامل سرور – یا وب‌سایت جلوگیری کند.

برخی از مهاجمان نیز از حملات SYN-ACK DDoS برای رد سرویس به کاربران استفاده می کنند. ایده اصلی مشابه حملات ACK DDoS است: غرق کردن سرور هدف با بسته‌های بسیار زیاد و غیرقابل دسترس کردن آن. یک حمله SYN-ACK DDoS شامل سیل کردن هدف با بسته های SYN-ACK است که معمولاً توسط یک سرور در پاسخ به بسته SYN از یک دستگاه مشتری به عنوان بخشی از فرآیند دست دادن سه طرفه TCP ارسال می شود. سیل بسته های SYN-ACK بخشی از دست دادن مشروع نیست. تنها هدف آن مختل کردن عملیات عادی هدف است.

علاوه بر ACK و SYN-ACK، برخی از مهاجمان نیز بسته‌های SYN را برای ایجاد و اجرای حملات SYN flood DDoS انجام می‌دهند. جهت اطلاعات بیشتر با ما در تماس باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا