قالب یک بسته IP از ، دو قسمت های Header که همان آدرس های بسته و قسمت Data که شامل بسته اطلاعاتی است تشکیل شده مجموعه اطلاعاتی که در سرآیند (header) بسته IP درج می شود توسط مسیریاب مورد استفاده قرار می گیرد

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

فیلد IHL مخفف (IP Header Length) : این فیلد هم چهاربیتی است و طول کل سرآیند بسته را بر مبنای کلمات 32 بیتی مشخص می نماید . به عنوان مثال اگر در این فیلد عدد 10 قرار گرفته باشد بدین معناست که کل سرآیند 320 بیت معادل چهل بایت خواهد بود .

اگر به ساختار یک بسته IP دقت شود به غیر از فیلد options که اختیاری است، وجود تمام فیلدهای سرآیند الزامی می باشد . در حقیقت این فیلد به عنوان یک اش اره گر ، مرز بین سرآیند و داده ها را مشخص می کند

فیلد Version : اولین فیلد در سرآیند یک بسته IP که چهار بیت است نسخه پروتکل IP که این بسته بر اساس آن سازماندهی و ارسال شده است را تعیین می کند . در حال حاضر تمام شبکه ها و مسیریابها از نسخه شماره 4 پروتکل IP پشتیبانی می کنند . اگرچه امروز نسخه شماره 6 پروتکل IP به نام های IPng یا IPV6 معرفی و در حال بررسی و نصب است، ولیکن بسیاری ا ز مسیریابها در شبکه های دنیا هنوز برای پذیرش این پروتکل آمادگی ندارند و به نظر می رسد که تا سال 2005 نگارش جدید ، جهانی نشود . عددی که در حال حاض ر در این فیلد قرار می گیرد 4 می باشد که معادل 0100 ) بیت است.

فیلد Type of service : این فیلد هشت بیتی است و توسط آن ماشین میزبان (یعنی ماشین تولید کننده بسته IP که به آن Source Machin نیز می گویند) از مجموعه زیر شبکه تقاضای سرویس ویژه ای برای ارسال یک دیتاگرام می نماید .

به عنوان مثال ممکن است یک ماشین میزبان بخواهد دیتاگرام صدا یا تصویر برای ماشین مقصد ارسال نما ید؛ در چنین شرایطی از زیر شبکه تقاضای ارسال سریع و به موقع اطلاعات را دارد ، نه قابلیت اطمینان صد در صد، چرا که اگر یک یا چند بیت از داده های ارسالی در مسیر دچار خرابی شود تاثیر چندانی در کیفیت کار نخواهد گذاشت ولی اگر بسته های حاوی اطلاعات صدا یا تصویر به سرعت و سر موقع تحویل نشود اشکال عمده بوجود خواهد آمد (که این مورد را با همه موارد اصطلاحی می توان در خطوط ارتباطی ایران مشاهده کرد ). در چنین مواقعی ماشین میزبان از زیر شبکه تقاضای سرویس سریع (و لاجرم غیر اطمینان ) می نماید .

در برخی از محیط های دیگر مثل ارسا ل نامه الکترونیکی یا مبادله فایل انتظار اطمینان صد درصد از زیر شبکه وجود دارد و سرعت تاثیر چندانی بر کیفیت کار نخواهد داشت . اکثر مسیریابهای تجاری فیلد Type of serviceرا نادیده می گیرند و اهمیتی به محتوای آن نمی دهند. 

فیلد Total Length : در این فیلدِ 16 بیتی عددی قرار می گیرد که طول کل بسته IP را که شامل مجموع اندازه سرآیند و ناحیه داده است، تعیین می کند . مبنای طول بر حسب بایت است و بنابراین حداکثر طول کل بسته IP می تواند 65535 بایت باشد. 

فیلد Identification : همانگونه که قبلا اشاره شد برخی از مواقع مسیریابها یا ماشین های میزبان مجبورند یک دیتاگرام را به قطعات کوچکتر بشکنند و ماشین مقصد مجبور است آنها را بازسازی کند، بنابراین وقتی یک دیتاگرامِ واحد شکسته می شود باید مشخصه ای داشته باشد تا در هنگام بازسازیِ آن در مقصد بتوان قطعه های آن دیتاگرام را از بقیه جدا ک رد کلیه بسته های IP که با این شماره وارد می شوند قطعه های مربوط به یک دیتاگرام بوده و باید پس از گردآوری قطعه ها، آن را مجددا بازسازی کرد .

به عنوان مثال اگر در این فیلد عدد 1652 قرار بگیرد تمام بسته های IP که مشخصه 1652 دارند، قطعه های مربوط به یک دیتاگرا م هستند و پس از دریافت کل قطعه ها باید بازسازی شوند و یک واحد کل را تشکیل دهند . البته برای حفظ ترتیب، هر قطعه گذشته از یک شماره مشخصه (همین مورد ) بایستی دارای شماره ترتیب نیز باشد (Fragment Offset – FO) تا بتوان آنها را طبق این شماره مرتب و بازسازی کرد.

فیلد Fragment Offset : این فیلد در سه بخش سازماندهی شده است (نکته ای که باید به خاطر داشت ، آن است که معمولا در این گونه بحث ها، عدد 1 تقریبا معادل با YES خواهد بود و عدد 0 معادل NO یا No Way می باشد

-1  بیت DF یا Don’t Fragment : همان طور که از معنی انگلیسی آن نیز پیداست، با یک شدن این بیت در یک بسته IP هیچ مسیریابی حق ندارد آن را قطعه قطعه کند، چرا که مقصد قادر به بازسازی دیتاگرام های تکه تکه شده نیست . اگر این بیت به 1 تنظیم شده باشد و مسیریاب نتواند آنرا به دلیل بزرگی اندازه، انتقال بدهد لاجرم حذف خواهد شد

-2  بیت MF یا More Fragment : این بیت مشخص می کند که آیا بسته IP آخرین ق طعه از یک دیتاگرام محسوب می شود یا باز هم قطعه های بعدی وجود دارد . در آخرین قطعه از یک دیتاگرام بیت MF صفر خواهد بود و در بقیه الزاماً 1 می باشد.

3 ) Fragment Offset : این قسمت که سیزده بیتی است در حقیقت شماره ترتیب هر قطعه در یک دیتاگرام شکسته شده محسوب می شود . با توجه به سیزده بیتی بودن این فیلد، یک دیتاگرام حداکثر می تواند به 8192 تکه تقسیم شود . نکته بسیار مهم در مورد این فیلد آن است که اندازه هر قطعه باید ضرایبی از 8 باشد . یعنی به استثنای قطعه آخر، اندازه بقیه قطعه ها بایستی به گونه ای انتخاب شود که ضریبی از 8 بایت باشد مثلا اگر در فیلد OFFSET مقدار 7 قرار بگیرد نشان می دهد که محل قرار گرفتن قطعه جاری در دیتاگرام بازسازی شده در موقعیت بایت پنجاه و ششم خواهد بود به عنو ان مثالی دیگر فرض کنید مسیریابی مجبور است یک دیتاگرام به طول 5000 بایت را قطعه قطعه کند به گونه ای که اندازه هر قطعه زیر 1500 بایت باشد .

در چنین موردی نمی تواند اندازه هر قطعه را 1250 بایت در نظر بگیرد چرا که ضریبی از 8 نیست ولی اندازه 1280 مناسب است. در این حالت مسیریاب، دیتاگرام را به سه بسته 1280 بایتی و یک بسته 1160 (اجبارا بازمانده طول دیتاگرام از تقسیم طول بر 8، در بسته آخر قرار خواهد گرفت که مسلما از طول دیگر بسته کمتر خواهد بود) بایتی می شکند

 نکته اینجاست که : ممکن است یک دیتاگرامِ واحد از یک ماشین میزبان ، روی شبکه تزریق شود و در طول مسیر ، به مسیریابی برسد که به دلیلی مجبور به شکستن آن به قطعات کوچکتر شود. عمل شکستن یک دیتاگرام ممکن است در هر جای زیر شبکه اتفاق بیافتد ولیکن عمل بازسازی فقط در ماشین مقصد انجام خواهد گرفت.
بعدا به مکانیزمی آشنا می شوید که بر اساس آن نفوذگر سعی می کند تلاش خود برای حمله به یک سیستم را مخفی نگه دارد . این مکانیزم مبتنی بر بسته های قطعه قطعه شده IP است . همچنین خواهید دید که نفوذگر با دستکاری عمدی در فیلد Fragment Offset حملاتی را برای اختلال در ماشین گیرنده نهای بسته، تدارک می بیند

فیلد Time To Live یا TTL : این فیلد هشت بیتی در نقش یک شمارنده (counter) طول عمر بسته را مشخص می کند . طول عمر یک بسته بطور ضمنی به زمانی اشاره می کند که یک بسته IP می تواند بر روی شبکه سرگردان باشد .

حداکثر طول عمر یک بسته، 255 خواهد بود که به ازای عبور از هر مسیریاب (در شبکه به عبور بسته از یک مسیریاب یک جهش یا HOP گفته می شود ) از مقدار این فیلد یک واحد کم می شود . هر گاه یک بسته IP به دلیل بافر شدن در حافظه یک مسیریاب زمانی را معطل بماند، به ازای هر ثانیه یک واحد از این فیلد کم خواهد شد .

به محض آنکه مقدار این فیلد به صفر برسد بسته IP در هر نقطه از مسیر باشد حذف شده و از ادامه سیر و حرکت آن به سمت مقصد جلوگیری خواهد شد . البته معمولا یک پیام هشدار به ماشینی که آن بسته را تولید کرده باز پس فرستاده خواهد شد . اگرچه بزرگترین عددی که در فیلد طول عمر بسته قرار می گ یرد عدد 255 است ولی در عمل مقداری که سیستم های عامل در این فیلد قرار می دهند چیزی حدود 64 است (البته می توان مقدار پیش فرض آن را عوض کرد ). می توانید نمونه ای از TTL را هنگام ping کردن یک سرور ببینید

این فیلد برای پاکسازی زیر شبکه از بسته های IP که به هر دلیل در یک مسیر بسته می چرخند بسیار حیاتی است وگرنه پس از مدتی کل زیر شبکه از بسته های آشغال پر خواهد شد . بسته های سرگردان گاها به این دلیل بوجود می آیند که جداول مسیریابی در بعضی از مسیریابها آلوده به اطلاعات نادرست (Corrupt) شده اند . سرگردانی یک بسته در زیر شبکه مسئله غیرممکنی نیست و گاهی اتفاق می افتد

در استفاده از Cheops ،traceroute و FireWalk همگی به نحوی از فیلد TTL در بسته IP استفاده می کنند.

فیلد Protocol : دیتاگرامی که در فیلد داده از یک بسته IP حمل م ی شود ، با ساختمان داده خاص از لایه بالاتر تحویل پروتکل IP شده ، تا روی شبکه ارسال شود . به عنوان مثال ممکن است این داده ها را پروتکل TCP در لایه بالاتر ارسال کرده باشد و یا ممکن است این کار توسط پروتکل UDP انجام شده باشد. بنابراین مقدار این فیلد شماره پروتکل ی است که در لایه بالاتر تقاضای ارسال یک دیتاگرام کرده است؛ بسته ها پس از دریافت در مقصد باید به پروتکل تعیین شده تحویل داده شود 

فیلد Header Checksum : این فیلد که شانزده بیتی است به منظور کشف خطاهای احتمالی در سرآیند هر بسته IP استفاده می شود . برای محاسبه کد کشف خطا، کل سرآیند به صورت دو بایت، دوبایت با یکدیگر جمع می شود . نهایتاً حاصل جمع به روش ”مکمل یک منفی می شود و این عدد منفی در این فیلد از سرآیند و HEADER قرار می گیرد . در هر مسیریاب قبل از پردازش و مسیریابی ابتدا صحت اطلاعات درون سر آیند بررسی می شو ند. دقت کنید که فیلد Checksum در هر مسیریاب باید از نو محاسبه و مقداردهی شود زیرا وقتی یک بسته IP وارد یک مسیریاب می شود حداقل فیلد TTL از آن بسته عوض خواهد شد 

فیلد Source Address :هر ماشین میزبان در شبکه اینترنت یک آدرس جهانی و یکتای 32 بیتی دارد . بنابراین هر ماشین میزبان در هنگام تولید یک بسته IP باید آدرس خودش را در این فیلد قرار بدهد . 

فیلد Destination Address : در این فیلد آدرس 32 بیتی مربوط به ماشین مقصد که باید بسته IP تحویل آن بشود قرار می گیرد

فیلد اختیاری Options : در این فیلد اختیاری ، می توان تا حداکثر 40 بایت قرار داد . 

فیلد Payload : در این فیلد داده های دریافتی از لایه بالاتر قرار می گیرد