تایید / تایید منفی (شبکه‌های کامپیوتری)

در شبکه سازی داده، ارتباط از راه دور و اتوبوس‌های رایانه ای، یک **تأییدیه** (**ACK**) سیگنالی است که بین فرایندهای ارتباطی، رایانه‌ها یا دستگاه‌ها برای تأیید تأیید یا دریافت پیام، به عنوان بخشی از پروتکل ارتباطی منتقل می‌شود. **سیگنال تأیید منفی** (**NAK** یا **NACK**) برای رد یک پیام قبلاً دریافت شده یا نشان دادن نوعی خطا ارسال می‌شود. تاییدیه‌ها و تأییدیه‌های منفی یک فرستنده را از وضعیت گیرنده مطلع می‌کند تا بتواند وضعیت خود را مطابق با آن تنظیم کند.

در اکثر اوقات، پیام‌های داده در ارتباطات از راه دور برای بررسی صحت بار و سرآیند(header) ، دارای سرجمع(checksum) است. سرجمع‌ها به گونه ای کار می‌کنند که اگر یک بیت از داده‌ها خراب شود، این سرجمع‌ها ارزش متفاوتی را به همراه خواهد داشت، بنابراین می‌توانند روشی ارزان برای بررسی یکپارچگی (احتمال) سیگنال ارائه دهند. اگر پیامی با یک سرجمع نامعتبر دریافت شود (یعنی داده‌های دریافت شده بررسی متفاوتی نسبت به پیام داشته باشند)، گیرنده می‌تواند بداند که برخی از اطلاعات خراب شده‌است. غالباً، هنگامی که سرجمع‌ها استفاده می‌شوند، یک پیام فاسد دریافت شده یا به سیگنال ACK منتقل نمی‌شود، یا به سیگنال NAK منتقل می‌شود.

کد ASCII شامل یک کاراکتر تایید(ACK 0000110 2 یا 616) و یک کاراکتر عدم تایید یا تایید منفی(NAK 0010101 2 یا 1516) است که به ترتیب می‌تواند برای نمایش موفق یا ناموفق (یا شکست خورده) دریافت منتقل شود. یونیکد برای این شخصیت‌ها نمادهای قابل رویت، U + 2406 (␆) و U + 2415 (␕) ارائه می‌دهد.

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

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

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

پروتکل‌های دیگر مانند RC-5، پروتکل دیتاگرام کاربر(UDP) و پروتکل X10 , انتقال نابینا(blind transmission) را بدون تأیید انجام می‌دهند، اغلب همان پیام را چندین بار با این امید که حداقل یک نسخه از پیام از بین برود ، انتقال می‌دهند.

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

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

برخی از اتوبوس‌های رایانه ای دارای یک سیم تأیید اختصاصی در اتوبوس کنترل هستند که برای تصدیق عملیات اتوبوس مورد استفاده قرار می‌گیرد: DACK که برای ISA DMA استفاده می‌شود. DATACK مورد استفاده در STEbus، پین تصدیق انتقال داده از موتورولا ۶۸۰۰۰ که الهام بخش عنوان DTACK Grounded و غیره است. بعضی از اتوبوس‌های رایانه ای همیشه نوشتن را تأیید نمی‌کنند. برخی یا همه نوشتن از نوشتن ارسال شده استفاده می‌کنند.

## جستارهای وابسته
* کنترل جریان (داده)

## منابع

رده:آشکارسازی و اصلاح خطا
رده:انتقال داده
رده:پروتکل‌های شبکه
رده:پروتکل‌های لایه پیوند
رده:پروتکل‌های مسیریابی
رده:کنترل جریان (داده)
رده:نویسه کنترلی