در گذشته دسترسی به اطلاعات یک سیستم در شبکه، تنها از طریق IPها امکان پذیر بود. در یک شبکه ارتباط میان کلاینتها و سرورها توسط IPها برقرار میشود. البته به خاطر سپردن IPهای مربوط به هر سایت یا سیستم در شبکه کار آسانی نیست. در عوض، به خاطر سپردن یک نام برای هر IP سادهتر است. بنابراین برای IP مربوط به هر سایت یا سیستم یک نام اختصاصی در نظر گرفتند. به این منظور پروتکلی به نام DNS یا Domain Name System توسعه داده شد. این پروتکل با هدف ترجمه نام سیستمهای ميزبان یا دامنه آنها به IPها استفاده میشود. در ادامه این مطلب با این پروتکل بیشتر آشنا خواهیم شد.
DNS یکی از پرکاربردترین پروتکلهای مورد استفاده در شبکه اینترنت است که در سال 1984 معرفی شد. همانطور که اشاره شد، به منظور ساده کردن فرآیند دسترسی به اطلاعات هر سایت، برای هر یک از آنها یک نام دامنه (Domain Name) در نظر گرفته شد. هر وب سایت در اینترنت دامنه منحصر به فرد خود را دارد و از طریق آن شناخته میشود. برای مثال وب سایت سون لرن را در نظر بگیرید که دسترسی به اطلاعات آن تحت دامنه 7learn.com برای کاربران امکان پذیر است.
البته در یک شبکه ارتباط میان کلاینتها و سرورها از طریق IP برقرار میشود. بنابراین از DNSها برای تبدیل نام دامنهها به IP استفاده شد. DNS پایگاه داده توزیع شده ای است که نام دامنهها و IPهای سایتها در آن ذخیره میشوند. نحوه عملکرد DNS مانند یک دفترچه تلفن است. در دفترچههای تلفن نام هر شخص و شماره تلفن مربوط به آن ذکر شده است. در DNSها نام دامنهها حکم نام اشخاص در دفترچه تلفن دارند و شمارههای تلفن به منزله IPهای سایتها هستند. اگر از این پروتکل در اینترنت برای ترجمه دامنهها استفاده نمیشد، باید برای هر بار دسترسی به سایتهای مختلف IP آنها وارد میشد.
شايد اين سوال در ذهن شما شکل گیرد که DNS دامنهها را چگونه ساماندهی و شناسایی میکند؟ ساختار این پروتکل به صورتی طراحی شده است که ضرورتی به آگاهی از تمامی دامنههای ثبت شده نداشته باشد. به عبارتی ساده تر، این پروتکل دامنه را الزاما حفظ نمیکند بلکه آنها را پردازش و در نهایت شناسایی میکند. به این منظور دامنههای وب سایتها از یک ساختار سلسله مراتبی پیروی میکنند. در این پروتکل به صورت مرحله به مرحله از راست به چپ دامنه سایتها بررسی و در نهایت شناسایی میشوند. ساختار هر دامنه شامل 5 بخش اصلی است که عبارتند از :
Top Level Domain یا دامنههای سطح بالا به 7 دسته عمومی و بیش از 100 منطقه کشوری تقسیم بندی شده اند. البته تاکنون دامنههای بسیار زیادی در اینترنت تعریف شده اند. این دامنهها در انتهای هر آدرس استفاده میشوند و نشان دهنده نوع و ماهیت سایت استفاده کننده هستند. DNSها بر اساس این دامنهها منطقه جستجو را برای یافتن IP معادل با آنها شناسایی میکنند. دامنههای عمومی که سه حرفی هستند، عبارتند از:
هر دامنه می تواند به زیر شاخههای کوچکتری تقسیم شود، که به آن دامنه سطح دوم نیز گفته می شود. به عنوان مثال، دامنههای مربوط به کشور ایران، با مخفف ir. از سایر دامنههای دیگر متمایز میشوند. برخی از دامنههای عمومی در کشور ایران به صورت زیر تقسیم میشوند:
تصور کنید آدرس سایت دانشگاه تهران را (http://eng.ut.ac.ir) در مرورگر خود وارد کنید. پروتکل DNS، این آدرس را از سمت راست به چپ و به ترتیب مورد بررسی قرار میدهد و اطلاعات زیر را برای به دست آوردن IP به دست میآورد. همانطور که اشاره شد آدرس سایتها در اینترنت به صورت متمرکز ذخیره نمی شوند و روی کل شبکه اینترنت توزیع هستند. بنابراین برای ترجمه یک دامنه به IP ممکن است چندین Query ارسال گردد تا آن IP پیدا شود. البته امکان دارد این فرآیند موفقیت آمیز نباشد و یا حتی ممکن است یک دامنه اشتباه باشد و هیچ IP برای آن به دست نیاید.
این فرآیند جزییات زیادی دارد. اما به صورت کلی DNS سرورهای زیادی وجود دارد و معمولا درخواست ها به نزدیک ترین سرورها ارسال می شوند. ولی اینکه این درخواست به صورت همزمان به چند سرور ارسال می شود یا خیز، اطلاعی ندارم.
اما فکر می کنم به این صورت باشد که به نزدیک ترین DNS SERVER درخواست ارسال می شود و در صورت دریافت نکردن پاسخ مناسب، درخواست را به سرورهای دیگر می فرستد.