Dynamic Host Configuration Protocol یا به صورت ساده تر DHCP پروتکل کلاینت/سرور می باشد که به صورت اتوماتیک و مشخص شده به دستگاه های درخواست کننده، IP و تنظیمات دیگری مانند Subnet Mask و Default Gateway اختصاص می دهد.
DHCP پروتکلی می باشد که توسط دستگاه های تحت شبکه بکار می رود تا تنظیمات و پارامتر های مختلف را برای عملکرد دستگاه در بستر شبکه فراهم کند. با استفاده از این پروتکل حجم فعالیت مدیریت شبکه کاهش می یابد و دستگاه ها می توانند بدون تنظیمات دستی به شبکه متصل شوند.
هدف DHCP اختصاص اتوماتیک آدرس های IP برای یک دستگاه (برای مثال: کامپیوتر های شخصی، موبایل و ...) در بستر شبکه می باشد؛ این پروتکل دارای پایگاه داده ای شامل طیف وسیعی از آدرس های اختصاصی داده شده است که به دستگاه هایی که درخواست یک IP آدرس می کنند، IP جدید اختصاص می دهد. یک IP آدرس، برای یک بازه زمانی مشخص به یک دستگاه اختصاص داده می شود، و پس از آن زمان دستگاه باید IP آدرس جدیدی را مجدد از سرور DHCP دریافت و یا IP قبلی خود را تمدید کند.
DHCP به دستگاه هایی که قابلیت اتصال به شبکه را دارند اجازه می دهد تا تنظیماتی را از سرور دریافت کنند که در شبکه های مدرن بسیار رایج است. همچنین در شبکه های خانگی نیز استفاده می شود به طوری که در شبکه های خانگی، ارائه دهنده خدمات اینترنت یا همان ISP ممکن است یک IP آدرس اینترنتی (IP Public) منحصر به فردی را به یک روتر و یا مودم اختصاص دهد که این IP برای ارتباطات اینترنتی استفاده شود. همچنین ممکن است روتر یا مودم از DHCP جهت فراهم کردن یک IP آدرس غیر اینترنتی (IP Private) قابل استفاده برای دستگاه های متصل شده به شبکه خانگی استفاده کند تا به دستگاه های متصل شده اجازه ارتباط با اینترنت را بدهد.
بسته به نوع تنظیمات، سرور DHCP برای تخصیص IP آدرس ها از یکی از سه روش زیر استفاده می کند:
Dynamic allocation: سرور DHCP به طور پویا (Dynamic) یک IP آدرس را برای مدت زمانی مشخص به دستگاهی که درخواست کننده می باشد، اختصاص می دهد و پس از زمان تعریف شده می تواند مجدد آن IP را برای همان دستگاه تمدید کند.
Automatic allocation: سرور DHCP به طور اتوماتیک یک IP آدرس آزاد را برای مدت زمانی مشخص به دستگاه درخواست کننده اختصاص می دهد. این همانند Dynamic allocation است با این تفاوت که سرور DHCP در حالت Automatic یک جدول از IP های اختصاص داده شده را نگه می دارد، به طوری که می تواند به یک دستگاه IP آدرسی را اختصاص دهد که قبلاً آن را داشته است.
Manual allocation: در این حالت تنها دستگاه هایی که MAC آدرس آنها در جدول سرور DHCP موجود است می توانند از آن سرور درخواست تخصیص IP کنند. این حالت دارای امنیت بیشتری نسب به دو حالت قبلی می باشد.
عملکرد DHCP به چهار قسمت تقسیم می گردد:
DHCP Discovery: دستگاه هایی که قابلیت استفاده از DHCP را دارند و یا تنظیمات شبکه ای آنها به صورت DHCP پیکر بندی شود به منظور شناسایی سرورهای DHCP موجود اقدام به فرستادن پیامی در شبکه می کنند که به این درخواست DHCP Discovery گفته می شود.
DHCP Offer: هنگامی که سرور DHCP یک درخواست شناسایی (DHCP Discovery) را از دستگاهی در شبکه دریافت می کند، یک IP آدرس را برای آن دستگاه رزرو می کند و آن را به عنوان DHCP Offer برای درخواست کننده ارسال می کند.
DHCP Request: دستگاه درخواست کننده بعد از دریافت DHCP Offer از سمت سرور به منظور پذیرفتن IP رزرو شده و درخواست برای تخصیص آن IP، پیغامی با نام DHCP Request را به سرور ارسال می کند.
DHCP Acknowledgement: هنگامی که سرور DHCP پیغام درخواست IP را دریافت می کند، مرحله DHCP Acknowledgement آغاز می شود. در این مرحله سرور یک بسته شامل IP آدرس، Subnet Mask و هر گونه اطلاعات مورد نیاز دیگری را برای درخواست کننده ارسال می کند.
در شبکه های کوچک معمولا از یک Subnet برای تمامی شبکه استفاده می شود و یک DHCP سرور به طور مستقیم درخواست های دستگاه های داخل شبکه را دریافت و آنها را پاسخ می دهد. اما در شبکه های بزرگ و گسترده معمولا از چندین Subnet استفاده می شود که به منظور یکپارچه سازی و ارتباط بین Subnet های مختلف از Router استفاده می گردد. در حالت پیش فرض به دلیل Broadcast بودن درخواست های DHCP و عدم وجود Rout مناسب، چنین درخواست هایی توسط Router عبور داده نمی شود به عبارتی در صورتی که دستگاه درخواست کننده در یک Subnet غیر از Subnet سرور DHCP قرار گرفته باشد، نمی تواند از سرویس DHCP آن سرور استفاده کند. برای رفع این موضوع از ویژگی DHCP relaying استفاده می شود، این ویژگی این امکان را فراهم می سازد تا درخواست های DHCP به واسطه DHCP relay agents در بین Subnet های مختلف عبور کرده و تمامی دستگاه ها موجود در شبکه از سرویس DHCP استفاده کنند.