سعید خلیفی
متخصص سرویس های مایکروسافت

چرا DNS روی هر دو پروتکل TCP و UDP کار می کند؟

همه ما از اهمیت DNS و DNS Server در شبکه آگاه هستیم. سرویسی که اسم دستگاه ها را به آدرس IP و برعکس، تبدیل می کند. زمانی که به دنبال کامپیوتر یا دستگاه خاصی در شبکه می گردیم، این DNS است که کار پیدا کردن دستگاه را برای ما انجام می دهد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

وقتی در اینترنت آدرس www.ITPro.ir را وارد می کنیم، پشت پرده پردازش هایی انجام می شود که DNS عهده دار آنها است. ولی آیا تا به حال توجه کرده ایم که DNS هم با پروتکل TCP کار می کند و هم با پروتکل UDP؟ چطور این امر ممکن است؟ چرا DNS با هر دو پروتکل TCP و UDP کار می کند؟ برای فهمیدن پاسخ این پرسش، لطفا تا پایان این مقاله با من همراه باشید.

همه ما از اهمیت DNS و DNS Server در شبکه آگاه هستیم. سرویسی که اسم دستگاه ها را به آدرس IP و برعکس، تبدیل می کند. زمانی که به دنبال کامپیوتر یا دستگاه خاصی در شبکه می گردیم، این  DNS است که کار پیدا کردن دستگاه را برای ما انجام می دهد. وقتی در اینترنت آدرس www.ITPro.ir را وارد می کنیم، پشت پرده پردازش هایی انجام می شود که DNS عهده دار آنها است. ولی آیا تا به حال توجه کرده ایم که DNS هم با پروتکل TCP کار می کند و هم با پروتکل UDP؟ چطور این امر ممکن است؟ چرا DNS با هر دو پروتکل TCP و UDP کار می کند؟ برای فهمیدن پاسخ این پرسش، لطفا تا پایان این مقاله با من همراه باشید.

||http://www.tosinso.com/files/get/4f873314-bb6f-4720-ab38-58350351b05b||

همانطور که میدانید، TCP یک پروتکل اتصال گرا می باشد. TCP الزام می کند که داده در مقصد،سالم و پایدار باشد. برای چک کردن درستی و سالم بودن داده، TCP با میزبان (مبدا) ارتباط برقرار می کند.این در حالی است که UDP، یک پروتکل غیر اتصال گرا بوده و مستلزم پایداری داده در مقصد نیست و هیچ گونه ارتباطی با میزبان برای چک کردن درستی داده، برقرار نمی کند. بسته های UDP از نظر اندازه، کوچک تر از بسته های TCPهستند. هر بسته UDP حداکثر 512 بایت حجم دارد. بنابراین هر نرم افزاری که بخواهد حجم داده بالاتری از 512 بایت منتقل کند، از TCP استفاده می کند. از UDP برای انتقال اطلاعات کوچک استفاده می شود، در حالی که می بایست از TCP برای انتقال اطلاعات بیشتر از 512 بایت استفاده شود. UDP به دلیل حجم کمتر خود و اینکه دارای مکانیزمی برا چک کردن درستی داده نیست، سریعتر از TCP می باشد.

!!! DNS از پروتکل TCP روی پورت 53 برای انجام Zone Transfer استفاده می کند
--
DNS از ساختار Master & Slave (یا ارباب و برده) استفاده می کند که در این ساختار، شما یک Name Server معتبر و مورد تائید (Authoritative) دارید که همان Master بوده و تمامی ورودی ها را در اختیار دارد و بقیه سرور ها که همان Slave ها هستند، با استفاده از Replication (یا یکسان سازی اطلاعات)، فایل های Zone ها را از این سرور معتبر دریافت کرده و به DNS Query ها، رسیدگی می کنند. از آنجایی که می بایست فایل های Zone ها همیشه پایدار و سالم باشند، DNS از TCP به عنوان پروتکل ارتباطی برای انتقال فایل های Zone ها استفاده می کند که از این طریق، از صحت انتقال فایل ها اطمینان حاصل می کند. 

!!! DNS از پروتکل UDP روی پورت 53 برای انجام DNS Query استفاده می کند
--
DNS از پروتکل UDP برای انجام کارهای اولیه، مانند جواب دادن به پرسش های کلاینت ها، استفاده می کند. زمانی که یک کلاینت از DNS برای تبدیل اسم به IP و یا IP به اسم سوال می پرسد، DNS از پروتکل UDP برای جواب دادن به کلاینت استفاده می کند. دلیل استفاده از UDP این است که UDP یک پروتکل غیر اتصال گرا بوده و بنابراین، سبک و سریع می باشد که باعث می شود ارسال جواب  به کلاینت در زمان به مراتب کوتاه تری نسبت به TCP ،انجام شود. اگر کلاینت پاسخی از DNS دریافت نکرد، پس از طی دوره زمانی 3 تا 5 ثانیه می بایست درخواست خود را این بار از طریق TCP مجددا ارسال کند.در عین حال، DNS می تواند در صورت نیاز روی TCP نیز کار کند تا بتواند به پرسش های کلاینت ها، جواب دهد. اما همیشه UDP به خاط سرعت بیشترش، مقدم در نظر گرفته می شود.نکته ای که باید در نظر گرفته شود این است که جواب های (DNS (DNS Answers که حجمشان بیشتر از 512 بایت است، از طریق TCP ارسال می شوند. (منظور جواب هایی است که DNS Server به کلاینت ها ارسال می کند) اگر DNS Server پرسشی دریافت کند که جواب آن بیشتر از 512 بایت باشد، DNS Server از کلاینت درخواست کننده می خواهد که درخواست خود را از طریق TCP ارسال کند. این امر به خاطر محدودیت های حجمی و کیفی پروتکل UDP می باشد.

* نکته: زمانی که حجم بسته UDP از 512 بایت فراتر رود، بسته بریده می شود ( کوتاه می شود که به این امر، Truncate اطلاق می شود). لازم به ذکر است که زمانی که بسته کوتاه می شود، یک Truncated Bit در Header این بسته قرار می گیرد که مشخص می کند بسته بریده شده است. زمانی که کلاینت DNS بسته ای با عنوان Truncated Bit دریافت می کند، متوجه می شود که داده از 512 بایت بیشتر است و دریافت بسته با پروتکل UPD امکان پذیر نیست. بنابراین کلاینت به TCP روی می آورد و همان درخواست را از طریق TCP ارسال می کند.

||http://www.tosinso.com/files/get/0925092f-c2fc-43a0-af9d-9fc405133dcd||
نمونه ای از یک Truncated Bit در یک بسته

پاورقی: EDNS یا مکانیزم توسعه برای (DNS (Extension Mechanism for DNS اجازه می دهد که جواب هایی که حجمشان بیشتر از 512 بایت است، برای ارسال توسط پروتکل UDP مجددا بسته بندی شوند. لازم به ذکر است که EDNS قادر به ارسال بسته ها با حجم بیشتر از 512 بایت روی پروتکل UDP می باشد.

نویسنده: سعید خلیفی
منبع: |جزیره سرویس های مایکروسافت وب سایت توسینسو::https://microsoft.tosinso.com|
هرگونه نشر و کپی برداری بدون ذکر منبع دارای اشکال اخلاقی می باشد

همانطور که میدانید، TCP یک پروتکل اتصال گرا می باشد. TCP الزام می کند که داده در مقصد،سالم و پایدار باشد. برای چک کردن درستی و سالم بودن داده، TCP با میزبان (مبدا) ارتباط برقرار می کند.این در حالی است که UDP، یک پروتکل غیر اتصال گرا بوده و مستلزم پایداری داده در مقصد نیست و هیچ گونه ارتباطی با میزبان برای چک کردن درستی داده، برقرار نمی کند. بسته های UDP از نظر اندازه، کوچک تر از بسته های TCPهستند.

هر بسته UDP حداکثر 512 بایت حجم دارد. بنابراین هر نرم افزاری که بخواهد حجم داده بالاتری از 512 بایت منتقل کند، از TCP استفاده می کند. از UDP برای انتقال اطلاعات کوچک استفاده می شود، در حالی که می بایست از TCP برای انتقال اطلاعات بیشتر از 512 بایت استفاده شود. UDP به دلیل حجم کمتر خود و اینکه دارای مکانیزمی برا چک کردن درستی داده نیست، سریعتر از TCP می باشد.

DNS از پروتکل TCP روی پورت 53 برای انجام Zone Transfer استفاده می کند

DNS از ساختار Master & Slave (یا ارباب و برده) استفاده می کند که در این ساختار، شما یک Name Server معتبر و مورد تائید (Authoritative) دارید که همان Master بوده و تمامی ورودی ها را در اختیار دارد و بقیه سرور ها که همان Slave ها هستند

با استفاده از Replication (یا یکسان سازی اطلاعات)، فایل های Zone ها را از این سرور معتبر دریافت کرده و به DNS Query ها، رسیدگی می کنند. از آنجایی که می بایست فایل های Zone ها همیشه پایدار و سالم باشند، DNS از TCP به عنوان پروتکل ارتباطی برای انتقال فایل های Zone ها استفاده می کند که از این طریق، از صحت انتقال فایل ها اطمینان حاصل می کند.

DNS از پروتکل UDP روی پورت 53 برای انجام DNS Query استفاده می کند

DNS از پروتکل UDP برای انجام کارهای اولیه، مانند جواب دادن به پرسش های کلاینت ها، استفاده می کند. زمانی که یک کلاینت از DNS برای تبدیل اسم به IP و یا IP به اسم سوال می پرسد، DNS از پروتکل UDP برای جواب دادن به کلاینت استفاده می کند.

دلیل استفاده از UDP این است که UDP یک پروتکل غیر اتصال گرا بوده و بنابراین، سبک و سریع می باشد که باعث می شود ارسال جواب به کلاینت در زمان به مراتب کوتاه تری نسبت به TCP ،انجام شود. اگر کلاینت پاسخی از DNS دریافت نکرد، پس از طی دوره زمانی 3 تا 5 ثانیه می بایست درخواست خود را این بار از طریق TCP مجددا ارسال کند.

در عین حال، DNS می تواند در صورت نیاز روی TCP نیز کار کند تا بتواند به پرسش های کلاینت ها، جواب دهد. اما همیشه UDP به خاط سرعت بیشترش، مقدم در نظر گرفته می شود.نکته ای که باید در نظر گرفته شود این است که جواب های (DNS (DNS Answers که حجمشان بیشتر از 512 بایت است، از طریق TCP ارسال می شوند.

(منظور جواب هایی است که DNS Server به کلاینت ها ارسال می کند) اگر DNS Server پرسشی دریافت کند که جواب آن بیشتر از 512 بایت باشد، DNS Server از کلاینت درخواست کننده می خواهد که درخواست خود را از طریق TCP ارسال کند. این امر به خاطر محدودیت های حجمی و کیفی پروتکل UDP می باشد.

  • نکته : زمانی که حجم بسته UDP از 512 بایت فراتر رود، بسته بریده می شود ( کوتاه می شود که به این امر، Truncate اطلاق می شود). لازم به ذکر است که زمانی که بسته کوتاه می شود، یک Truncated Bit در Header این بسته قرار می گیرد که مشخص می کند بسته بریده شده است. زمانی که کلاینت DNS بسته ای با عنوان Truncated Bit دریافت می کند، متوجه می شود که داده از 512 بایت بیشتر است و دریافت بسته با پروتکل UPD امکان پذیر نیست. بنابراین کلاینت به TCP روی می آورد و همان درخواست را از طریق TCP ارسال می کند.
همه ما از اهمیت DNS و DNS Server در شبکه آگاه هستیم. سرویسی که اسم دستگاه ها را به آدرس IP و برعکس، تبدیل می کند. زمانی که به دنبال کامپیوتر یا دستگاه خاصی در شبکه می گردیم، این  DNS است که کار پیدا کردن دستگاه را برای ما انجام می دهد. وقتی در اینترنت آدرس www.ITPro.ir را وارد می کنیم، پشت پرده پردازش هایی انجام می شود که DNS عهده دار آنها است. ولی آیا تا به حال توجه کرده ایم که DNS هم با پروتکل TCP کار می کند و هم با پروتکل UDP؟ چطور این امر ممکن است؟ چرا DNS با هر دو پروتکل TCP و UDP کار می کند؟ برای فهمیدن پاسخ این پرسش، لطفا تا پایان این مقاله با من همراه باشید.

||http://www.tosinso.com/files/get/4f873314-bb6f-4720-ab38-58350351b05b||

همانطور که میدانید، TCP یک پروتکل اتصال گرا می باشد. TCP الزام می کند که داده در مقصد،سالم و پایدار باشد. برای چک کردن درستی و سالم بودن داده، TCP با میزبان (مبدا) ارتباط برقرار می کند.این در حالی است که UDP، یک پروتکل غیر اتصال گرا بوده و مستلزم پایداری داده در مقصد نیست و هیچ گونه ارتباطی با میزبان برای چک کردن درستی داده، برقرار نمی کند. بسته های UDP از نظر اندازه، کوچک تر از بسته های TCPهستند. هر بسته UDP حداکثر 512 بایت حجم دارد. بنابراین هر نرم افزاری که بخواهد حجم داده بالاتری از 512 بایت منتقل کند، از TCP استفاده می کند. از UDP برای انتقال اطلاعات کوچک استفاده می شود، در حالی که می بایست از TCP برای انتقال اطلاعات بیشتر از 512 بایت استفاده شود. UDP به دلیل حجم کمتر خود و اینکه دارای مکانیزمی برا چک کردن درستی داده نیست، سریعتر از TCP می باشد.

!!! DNS از پروتکل TCP روی پورت 53 برای انجام Zone Transfer استفاده می کند
--
DNS از ساختار Master & Slave (یا ارباب و برده) استفاده می کند که در این ساختار، شما یک Name Server معتبر و مورد تائید (Authoritative) دارید که همان Master بوده و تمامی ورودی ها را در اختیار دارد و بقیه سرور ها که همان Slave ها هستند، با استفاده از Replication (یا یکسان سازی اطلاعات)، فایل های Zone ها را از این سرور معتبر دریافت کرده و به DNS Query ها، رسیدگی می کنند. از آنجایی که می بایست فایل های Zone ها همیشه پایدار و سالم باشند، DNS از TCP به عنوان پروتکل ارتباطی برای انتقال فایل های Zone ها استفاده می کند که از این طریق، از صحت انتقال فایل ها اطمینان حاصل می کند. 

!!! DNS از پروتکل UDP روی پورت 53 برای انجام DNS Query استفاده می کند
--
DNS از پروتکل UDP برای انجام کارهای اولیه، مانند جواب دادن به پرسش های کلاینت ها، استفاده می کند. زمانی که یک کلاینت از DNS برای تبدیل اسم به IP و یا IP به اسم سوال می پرسد، DNS از پروتکل UDP برای جواب دادن به کلاینت استفاده می کند. دلیل استفاده از UDP این است که UDP یک پروتکل غیر اتصال گرا بوده و بنابراین، سبک و سریع می باشد که باعث می شود ارسال جواب  به کلاینت در زمان به مراتب کوتاه تری نسبت به TCP ،انجام شود. اگر کلاینت پاسخی از DNS دریافت نکرد، پس از طی دوره زمانی 3 تا 5 ثانیه می بایست درخواست خود را این بار از طریق TCP مجددا ارسال کند.در عین حال، DNS می تواند در صورت نیاز روی TCP نیز کار کند تا بتواند به پرسش های کلاینت ها، جواب دهد. اما همیشه UDP به خاط سرعت بیشترش، مقدم در نظر گرفته می شود.نکته ای که باید در نظر گرفته شود این است که جواب های (DNS (DNS Answers که حجمشان بیشتر از 512 بایت است، از طریق TCP ارسال می شوند. (منظور جواب هایی است که DNS Server به کلاینت ها ارسال می کند) اگر DNS Server پرسشی دریافت کند که جواب آن بیشتر از 512 بایت باشد، DNS Server از کلاینت درخواست کننده می خواهد که درخواست خود را از طریق TCP ارسال کند. این امر به خاطر محدودیت های حجمی و کیفی پروتکل UDP می باشد.

* نکته: زمانی که حجم بسته UDP از 512 بایت فراتر رود، بسته بریده می شود ( کوتاه می شود که به این امر، Truncate اطلاق می شود). لازم به ذکر است که زمانی که بسته کوتاه می شود، یک Truncated Bit در Header این بسته قرار می گیرد که مشخص می کند بسته بریده شده است. زمانی که کلاینت DNS بسته ای با عنوان Truncated Bit دریافت می کند، متوجه می شود که داده از 512 بایت بیشتر است و دریافت بسته با پروتکل UPD امکان پذیر نیست. بنابراین کلاینت به TCP روی می آورد و همان درخواست را از طریق TCP ارسال می کند.

||http://www.tosinso.com/files/get/0925092f-c2fc-43a0-af9d-9fc405133dcd||
نمونه ای از یک Truncated Bit در یک بسته

پاورقی: EDNS یا مکانیزم توسعه برای (DNS (Extension Mechanism for DNS اجازه می دهد که جواب هایی که حجمشان بیشتر از 512 بایت است، برای ارسال توسط پروتکل UDP مجددا بسته بندی شوند. لازم به ذکر است که EDNS قادر به ارسال بسته ها با حجم بیشتر از 512 بایت روی پروتکل UDP می باشد.

نویسنده: سعید خلیفی
منبع: |جزیره سرویس های مایکروسافت وب سایت توسینسو::https://microsoft.tosinso.com|
هرگونه نشر و کپی برداری بدون ذکر منبع دارای اشکال اخلاقی می باشد

نمونه ای از یک Truncated Bit در یک بسته

پاورقی: EDNS یا مکانیزم توسعه برای (DNS (Extension Mechanism for DNS اجازه می دهد که جواب هایی که حجمشان بیشتر از 512 بایت است، برای ارسال توسط پروتکل UDP مجددا بسته بندی شوند. لازم به ذکر است که EDNS قادر به ارسال بسته ها با حجم بیشتر از 512 بایت روی پروتکل UDP می باشد.


نظرات