پروتکل DHCP یکی دیگر از پروتکل های مدل TCP/IP میباشد که در لایه application مورد استفاده قرار میگیرد و توسط سازمان IETF تحت RFC 2131 و RFC 3396 معرفی شده است.
DHCP که مخفف کلمات Dynamic Host Configuration Protocol میباشد یک پروتکل ارتباطاتی است که مدیران شبکه را قادر به مدیریت مرکزی و اتوماتیک IP address ها در شبکه میکند .
دریک شبکه مبتنی بر IP ، هر دیوایسی که بخواهد به اینترنت متصل شود نیاز به یک IP address منحصر به فرد دارد .
DHCP اجازه میدهد که مدیران یک خدمات شبکه نظارت مستقیمی بر توضیع IP address ها از یک نقطه مرکزی داشته باشند و به طور اتوماتیک هنگامی که کامپیوترهایی از محل های مختلف به شبکه متصل میشوند بتوانند IP address های جدید را به آنها ارسال نمایند.


DHCP از مفهومی به نام lease استفاده میکند که به معنی اجاره کردن میباشد و به عبارتی دیگر مقدار زمانی است که یک IP address اختصاص یافته به یک کامپیوتر معتبر خواهد بود.
زمان این اجاره IP متفاوت خواهد بود و به طور مثال میتواند بسته به مدت زمانی باشد که یک کاربر احتیاج به اتصال اینترنت در یک مکان خاص دارد باشد که این مورد بیشتر در محیط های آموزشی مورد استفاده میباشد و یا سایر محیط هایی که اغلب کاربران آن در حال تغییراند.
این قابلیت یعنی استفاده از مدت زمان کوتاه اجاره یک IP address ، سرویس DHCP را قادر میسازد تا به طور اتوماتیک پیکربندی مجدد را برای شبکه هایی که دارای تعداد زیادی کامپیوتر میباشند و به صورت متغییر در یک روز کاری مورد استفاده قرار میگیرند را برای IP address ها انجام دهد.
البته ناگفته نماند که DHCP امکان پشتیبانی از آدرس های static (آدرسهایی که به صورت دستی تنظیم میشوند) را نیز دارد که این مورد برای کامپیوتر هایی کاربرد دارد که حاوی Web server میباشند و نیاز به یک IP address دائم دارند.


DHCP درواقع جایگزینی برای دیگر پروتکل های مدیریت IP address ها در شبکه های کامپیوتری بود، مانند پروتکل خود راه انداز dhcp
. bootp یک پروتکل پیشرفته تری میباشد به طوری که امکان جمع آوری IP address ها را بعد از ارائه دادن به کامپیوتر ها در اختیار دارد و از بروز هرگونه اختلال جلوگیری میکند
اما به هر حال هر دو پروتکل یعنی DHCP , BOOTP را برای مدیریت و پیکربندی IP address ها میتوان استفاده کرد، برخی از سیستم عامل ها ، از جمله Windows NT/2000 به بعد از DHCP server پشتیبانی میکنند
بنابراین DHCP ویا BOOTP در هر client که باشد برنامه ای است که میتوان پشتیبانی شبکه از آن برای پیکربندی IP address ها استفاده نمود. در ادامه مطلب اینکه پیغام های DHCP در دیتا گرام های UDP حمل میشوند و در سمت server از شماره پورت 67 و در سمت client از پورت 68 استفاده میکند .
پروتکل هایی که در ارتباط با DHCP کار میکنند شامل IP, BOOTP, UDP, TCP, RARP میباشند. در جدول زیر ساختار پروتکل DHCP را مشاهده مینمایید.


Image




OP کد عملیاتی اختصاص یافته به پیام که میتواند BOOTREQUEST و یا BOOTREPLY باشد به عبارتی دیگر مشخص میکند که پیام از server تولید شده است یا client و اندازه این پیام همان طور که در جدول هم مشاهده میشود 8bit که معادل یک بایت است.
Htype نوع آدرس سخت افزاری موجود در فیلد chaddr را مشخص میکند و اندازه آن هم یک بایت است.
Hlen طول آدرس سخت افزاری موجود در فیلد Chaddr را بر حسب بایت نشان میدهد.
Hops تعداد مسیریابهای موجود بین سرور و سرویس گیرنده را مشخص میکند و اندازه آن یک بایت است.
Xid یا transaction ID که حاوی یک شناسه برای نسبت دادن جوابها به درخواستها میباشد و به نوعی کد متعلق به فرایند اختصاص یافته بین server و client میباشد و چهار بایت است.
Secs مدت گذشته از زمان شروع یک تخصیص آدرس یا فرایند تمدید اجاره را مشخص میکند و 2 بایت حجم آن است.
Flags یا بیت پرچم که دو بایت است و مشخص میکند که سرورهای DHCP و واسط های رله کننده باید برای ارتباط با یک سرویس گیرنده بجای انتقال تک پخشی از انتقال با پخش همگانی استفاده کنند یا خیر و 2 بایت است.
Ciaddr آدرس IP کلاینت به عبارت دیگر آدرس IP کامپیوتر زمانی که در وضعیت نصب شبکه باند، تمدید اجاره IP و یا ارتباط مجدد میباشد را دارا است و اندازه آن چهار بایت است.
Yiaddr آدرس IP کلاینت شما به عبارت دیگر آدرس IP که توسط DHCP به یک کامپیوتر واگزار شده است را در بر دارد و اندازه آن چهار بایت است.
Siaddr آدرس IP سرور بعدی را در یک دنباله Bootstrap مشخص میکند از این مقدار فقط زمانی که سرور DHCP یک فایل راه انداز اجرایی به یک client بدون دیسک میدهد استفاده میشود و اندازه آن 4 بایت است.
Giaddr در صورت نیاز، حاوی آدرس IP یک واسط رله کننده DHCP مستقر روی شبکه ای دیگر میباشد و اندازه آن 4 بایت است.
Chaddr آدرس سخت افزاری client یا به عبارتی دیگر، با استفاده از نوع و اندازه ای که در فیلد های htype و hlen مشخص شده است نشان دهنده آدرس سخت افزاری سرویس گیرنده میباشد. و مقدار آن 16 بایت است
Sname که یا حاوی نام DHCP server است یا حاوی داده های سر ریز فیلد option میباشد. و مقدار آن 64 بایت است.
File شامل نام فایل boot ، یک رشته خاتمه دهنده تهی ، نام عمومی یا یک رشته تهی در DHCPDISCOVER ، یک fully qualified directory-path name در DHCPOFFER است و به عبارتی برای client های بدون دیسک حاوی نام و آدرس یک فایل راه انداز اجرایی میباشد و 128 بایت است .
Option فیلد پارامتر های اختیاری و به نوعی حاوی مجموعه ای از گزینه های DHCP میباشد که مشخص کننده پارامتر های پیکربندی کامپیوتر سرویس گیرنده هستند.