IPاینترنتپروتکلشبکهمرورگرها

DNS چیست؟

همه ما با آدرس‌ها و دامنه‌های اینترنتی مثل www.google.com و … آشنا هستیم. این عبارات کاربر پسند، در سطوح پایین تر شبکه کاربردی نداشته و همه ارتباطات از طریق آدرس IP سرور وبسایت مورد نظر انجام می‌شود. DNS در این میان، وظیفه دارد تا این عبارات ساده و قابل فهم (دامنه) را به آدرس IP ـشان تبدیل کند.

درواقع کار DNS بسیار شبیه به دفترچه تلفن هوشمند است که کار مطابقت نام دامنه‌ها با آدرس آی پی نظیر آن‌ها را انجام می‌دهد. البته این دفترچه تلفن کمی بزرگتر است 🙂

 

 

DNS چیست؟

DNS مخفف عبارت “Domain Name System” به معنای “سامانه نام دامنه” است. DNS همچنین طبق تصویب فرهنگستان فارسی “ساناد” نیز خوانده می‌شود.

دی ان اس سیستم جهانی است که از یک دیتابیس بسیار بسیار بزرگ به صورت توزیع شده تشکیل شده و وظیفه تطابق دادن آدرس دامنه‌ها (google.com) به آدرس IP آن‌ها را دارد. دلیل این تبدیل این است که در پروتکل TCP/IP که در ارتباطات اینترنت از آن استفاده می‌شود، برای برقراری ارتباط بین دو طرف به آدرس IP آن‌ها نیاز است. درواقع سامانه DNS بسیار شبیه به دفترچه تلفن هوشمند است که نام را به شماره تلفن تبدیل کرده و در مواقعی می‌توان شماره تلفن را به نام تبدیل کرد.

برای مثال، زمانی که به دامنه google.com می‌رویم، ما درواقع به آدرس IP سروری که سایت بر روی آن قرار دارد وصل می‌شویم. یکی از آدرس‌های آی پی گوگل ۲۱۶.۵۸.۲۱۰.۲۰۶ است. درواقع اگر به این آی پی به صورت مستقیم برویم، سایت گوگل را مشاهده خواهیم کرد. اما حفظ کردن کدام یک آسان تر است؟ دامنه یا آی پی؟ قاعدتا پاسخ این سوال نام دامنه است. حفظ کردن این نام‌ها بسیار آسان تر از آدرس‌های آی پی بوده و به اصطلاح User Friendly هستند.

هدف از پیدایش سرویس DNS هم همین است. ما آدرس دامنه را وارد می‌کنیم، مرورگر ما در پشت پرده با یکی از سرورهای DNS تنظیم شده یا پیشفرض ارتباط برقرار کرده و آدرس آی پی نظیر آن دامنه را دریافت می‌کند. پس از آن، مرورگر قادر خواهد بود تا به پورت ۸۰ (پیشفرض) آن آی پی وصل شده و صفحات وب را به کاربر نشان دهد.

 

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

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

مرورگر، بازی‌ها و در کل هر برنامه کاربردی که برای برقراری ارتباط نام دامنه را دریافت می‌کند، از طریق توابع تحلیلگر نام (Name Resolver) ابتدا آن را به سرور DNS مشخص یا سرور DNS پیشفرض شرکت ارائه دهنده خدمات اینترنتی (ISP) می‌فرستد. در سمت سرور DNS دو امکان وجود دارد:

۱- آدرس IP نظیر آن دامنه در پایگاه داده آن سرور DNS وجود دارد.

۲- این آدرس آی پی در آن سرور DNS خاص وجود ندارد.

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

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

بگذارید مثالی واقعی از پروسه انجام شدن این کار را بگوئیم:

قصد داریم به دامنه https://bytegate.io وصل شویم. مرورگر تاحالا آدرس آی پی این دامنه را نشناخته و بنابراین در حافظه کش (Cache) خود ندارد. به همین دلیل به سرور DNS مشخص شده یا سرور DNS شرکت ISP وصل شده و از آن‌ها درخواست می‌کند تا آدرس آی پی دامنه bytegate.io را بازگردانند.

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

حال مرورگر آدرس آی پی دامنه را داشته و اقدام به ذخیره کردن آن می‌کند تا در اتصالات بعدی دوباره نیاز به درخواست از سرور DNS نداشته باشد. اگر دقت کنید ما به پروتکل HTTP وصل می‌شویم (این پرتکل در مرورگرها پیشفرض بوده و حتی اگر اقدام به تایپ کردن آن نکنید، مرورگر این پروتکل را انتخاب خواهد کرد) و پورت پیشفرض پروتکل HTTP مقدار ۸۰ است. پس مرورگر به آدرس آی پی دریافت شده با پورت ۸۰ وصل شده و درخواست صفحات وب را می‌کند.

امیررضا نصیری

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

نوشته های مشابه

۴ دیدگاه

  1. This webpage is not available

    DNS_PROBE_FINISHED_NO_INTERNET
    Check your Internet connection
    Check any cables and reboot any routers, modems, or other network devices you may be using.
    چه طور می تونم این مشکل حل کنم؟ در حالی که با Web-Freer میتونم از اینترنت استفاده کنم…
    با تشکر

    1. سلام. اول DNS آداپتر اینترنت رو به دی ان اس های گوگل تغییر بدید به صورت زیر:
      به مسیر Control Panel > Network and sharing center برید و رو change adapter settings کلیک کنید بعد رو آداپتری که باهاش به اینترنت وصل میشید کلیک راست کنید و پروپرتیز. بعد IPv4 رو انتخاب کنید و بازم رو پروپرتیز کلیک کنید. تیک Use the following DNS server addresses رو بزنید و مقادیر زیر رو وارد کنید:
      ۸.۸.۸.۸
      ۸.۸.۴.۴
      بعد خط فرمان ویندوز رو باز کنید و دستورات زیر رو یکی یکی اجرا کنید:
      ipconfig /flushdns
      ipconfig /renew
      netsh winsock reset

دیدگاهتان را بنویسید

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