DNS
Протокол DNS (Domain Name Service - служба доменних імен) забезпечує пошук імен хостыв, використовуючи розподілену по мережних серверах імен базу даних.
Протокол DNS виконує дві основні функції. Він дозволяє клієнтським комп'ютерам запитувати DNS-сервер про IP-адресу або ім'я якого-небудь хоста в мережі, а також дозволяє робити обмін інформацією між базами даних серверів DNS. У цьому протоколі використовується стандартний формат типу "запит-відповідь", де клієнт посилає пакет запиту, і сервер відповідає або пакетом з інформацією, отриманоюз бази даних, або повідомленням про помилку, у якому вказується причина відмови в обробці запиту. У своїй роботі цей протокол використовує порт 53 і добре відомі протоколи — TCP або UDP. Причому останнім часом UDP став більш розповсюдженим методом транспортування пакетів по мережі Internet. Пакет DNS складається з п'яти полів: заголовка, питання, відповіді, повноважень і поля додаткової інформації.
Формат повідомлень DNS показаний на малюнку.
Ідентифікатор - 16-бітове поле для позначення відповідності між запитами і відгуками.
Q - 1-бітовий прапор запиту (query).
Запит - 4-бітовий опис типу повідомлення:
0 стандартний запит (адреса по імені). 1 зворотний запит (ім'я за адресою). 2 запит стану сервера.
A (Authoritative Answer) - 1-бітовий прапор, що показує відгук від уповноваженого (authoritative) сервера імен.
T (Truncation) - відкидання. 1-бітовий прапор, що говорить про відкидання повідомлення.
R - 1-бітовий прапор, який встановлюэться для дозволу запиту рекурсивним шляхом.
V - 1-бітовий прапор підтримки рекурсивного сервісу.
B - 3-бітове поле, зарезервоване для використання в майбутньому (0).
Rcode -
Код відгуку - 4-бітове поле, що встановлюэться сервером імен для позначення стану запиту: 0 немає помилок. 1 неможливо інтерпретувати запит через формальну помилку. 2 обробка неможлива через збій на сервері. 3 запитане ім'я не існує. 4 непідтримуваний тип запиту. 5 відмова від виконання запиту.
Лічильник питань - 16-бітове поле, що містить число записів у розділі питань.
Лічильник відповідей - 16-бітове поле, що містить число записів про ресурси в розділі відповідей.
Лічильник Authority - 16-бітове поле, що визначає число записів про ресурси сервера імен у розділі authority (повноваження).
Лічильник доповнень - 16-бітове поле, що визначає число записів про ресурси сервера імен у додатковому розділі.