پروتکل اینترنت که به آن IP گفته میشود یکی از مهمترین پروتکلهای فناوری اطلاعات است که قرار گرفتن آن در کنار پروتکل TCP و ایجاد پروتکل مشترک TCP/IP منجر به شکلگیری پروتکل اینترنت گردیده است. این پروتکل یکی از پرکاربردترین پروتکلها است و به همین خاطر، داشتن دانش کافی در خصوص اجزای تشکیل دهنده آن، امری لازم و حیاتی در امنیت فناوری اطلاعات به شمار میرود چرا که امروزه بسیاری از حملات بزرگ اینترنتی با تغییر در فیلدهای آن صورت میگیرند. در این مقاله ضمن معرفی IP و ساختار آن، تمامی فیلدهای آن نیز به صورت مختصر معرفی میگردند.
پروتکل اینترنت
IP یک آدرس عددی است که به هر سیستم در شبکه، برای ارتباط با سایر اجزای آن شبکه اختصاص داده میشود. منظور از اجزای شبکه، مسیریابها، سوئیچها، مودمها، رایانههای سرویس دهنده و رایانههای سرویس گیرنده هستند. این آدرس عددی میتواند ثابت بوده یعنی به صورت دستی بر روی تکتک اجزای شبکه تنظیم شود یا به صورت متغیر و پویا باشد و توسط سرور DHCP که وظیفه اختصاص IP را دارد، به اجزای شبکه تخصیص داده شود.
پروتکل اینترنت، وظیفه حمل انتقال بستههای حاوی اطلاعات و مسیریابی آنها را در یک شبکه، از مبدأ تا مقصد بر عهده دارد. IP پس از دریافت اطلاعات از TCP ، اقدام به قطعه قطعه نمودن و تبدیل آنها به بستههای کوچکتری به نام FRAGMENT (تکهتکه) نموده سپس برای هر کدام از این FRAGMENTها، یک بسته IP میسازد که حاوی اطلاعات مورد نیاز بسته برای حرکت در طول شبکه است. آنگاه این بستهها را به بسته TCP اضافه نموده و شروع به ارسال آنها میکند. سپس این بستهها بر اساس تنظیمهای قسمت ابتداییشان، از طریق مسیریابهای موجود در شبکه به مقصد خود هدایت میشوند.
با توجه به اینکه IP بر اساس ساختاری استاندارد شکل گرفته است بنابراین با تمام سیستمعاملهای موجود در شبکه به خوبی کار کرده و نیاز به هیچ نوع سختافزاری در شبکه ندارد. نمونههای خاصی از آدرسهای IP وجود دارند که برای هدفهای ویژهای درنظر گرفته شدهاند و برای تعریف اجزای شبکه نمیتوان از آنها استفاده کرد. از نمونه این آدرسها میتوان به آدرس 0.0.0.0 (برای زمانی که سیستم میزبان از IP خود بیاطلاع است که البته اگر از آن به عنوان آدرس فرستنده استفاده شود هیچ جوابی برای فرستنده ارسال نمیشود)، 255.255.255.255 (برای ارسال پیام به صورت عمومی و فراگیر در شبکه)، HostID.0 (برای اطلاع از آدرس خود در شبکه)، NetID.255 (برای ارسال پیامهای فراگیر در دیگر شبکهها از بیرون آنها) و بعضی از آدرسهای خاص دیگر اشاره نمود.
ساختار بستههای IP
بستههای ساخته شده توسط IP ، از تعدادی فیلد مجزا که هر کدام دربردارنده اطلاعات ویژهای هستند تشکیل شده است. این اطلاعات، در زمانهای لازم از فیلدهای قرار داده شده در داخل بستهها استخراج شده و مورد استفاده قرار میگیرند. این اطلاعات شامل مواردی همچون آدرس IP رایانه فرستنده و گیرنده، نوع پروتکل IP و ... هستند که در قسمتهای بعدی، این فیلدها بررسی میشوند.
* فیلد VERSION
این فیلد وظیفه مشخص کردن نوع پروتکل IP را بر عهده دارد. لازم به ذکر است که در حال حاضر، دو نسخه از IP وجود دارد که با نامهای 4 و 6 شناخته میشوند. نسخه 4 IP ، حداکثر 64 کیلوبایت فضا را اشغال میکند که این تعداد در نسخه 6، دو برابر است (هر چند که در حالت عادی حجم بستهها در IP نسخه 4 حدود 1600 بایت است و از آن بیشتر نمیشود!). اندازه فیلد VERSION ، چهار بیت است.
* فیلد IHL
این فیلد وظیفه نگهداری اندازه قسمت بالایی بسته را دارد که از آن برای تعیین مرز بین اطلاعات و محتویات بسته IP استفاده میشود. اندازه این فیلد نیز چهار بیت است.
* فیلد TYPE OF SERVICE
این فیلد وظیفه تعیین نوع سرویس انتقال بستهها را بر عهده دارد که این نوع سرویس، «کم سرعت و مطمئن» (TCP ) و «پر سرعت و نامطمئن» (UDP ) یا ترکیبی از این دو (RTP ) است. اندازه این فیلد، هشت بایت است.
* فیلد TOTAL LENGTH
در این فیلد اندازه کل بسته IP قرار دارد که شامل قسمتهای سرآیند داده است و میتواند 65535 بایت باشد. اندازه این فیلد، شانزده بیت است.
* فیلد FRAGMENT OFFSET
این فیلد به 3 بخش تقسیم میشود که عبارتند از:
- بیت DF (Don’t Fragment) : اگر مقدار این بیت 1 باشد به معنای آن است که هیچ مسیریابی حق شکستن این بسته را ندارد.
- بیت MF (More Fragment) : اگر مقدار این بیت 0 باشد به معنای آن است که این قطعه، آخرین قطعه ارسال شده از اطلاعات است.
- بیت FO (Fragment Offset) : این بیت دربردانده شماره قطعههای شکسته شده است. از آنجا که اندازه این فیلد، سیزده بیت است اطلاعات میتوانند تا 8192 قطعه شکسته شوند که البته اندازه هر قطعه به غیر از قطعه آخر باید ضریبی از 8 باشد.
* فیلد TIME TO LIVE
این فیلد وظیفه تعیین زمان سرگردانی بسته در شبکه را بر عهده دارد. به این معنی که آن بسته برای رسیدن به مقصد میتواند از چند مسیریاب عبور کند، که البته بیشترین مقدار آن 255 است. معمولاً از این فیلد برای از بین بردن بستههای سرگردان در شبکه استفاده میشود.
* فیلد PROTOCOL
این فیلد، وظیفه مشخص نمودن شماره پروتکلی که قرار است بسته به آن برسد را بر عهده دارد.
* فیلد HEADER CHECKSUM
از این فیلد برای کشف خطا استفاده میشود.
* فیلد SOURCE ADDRESS
این فیلد وظیفه نگهداری آدرس IP مبدأ را بر عهده دارد. فایروالها و نرمافزارهای فیلترینگ از این فیلد برای مسدود کردن آدرسهای اینترنتی استفاده میکنند.
* فیلد DESTINATION ADDRESS
در این فیلد، آدرس IP سیستم مقصد وجود دارد.
* فیلد OPTION
این فیلد به صورت خالی بوده و از آن برای نوشتن توضیحات مورد دلخواه استفاده میشود.
* فیلدPAYLOAD
در این فیلد، دادهها بین لایههای مختلف و از لایههای بالایی به سمت لایههای پایینی، رد و بدل میشوند.