بر خلاف تصورات رایج مدل IP/TCP قبل از مدل OSI ارائه شد و در واقع مدل OSI برگرفته از مدل IP/TCPمی باشد. این مدل یک ساختار چهار لایه ای دارد که لایه های آن به ترتیب زیر می باشد:
Link
Internet یا Ip
Transport
Application
نکته ای که در IP/TCP مهم است مفهوم مدل و پشته IP/TCP می باشد. مدل IP/TCP ساختاری چهار لایه دارد که به آن خواهیم پرداخت.
پشته IP/TCP یا Stack Protocol IP/TCP مجموعه ای شامل بیش از صد پروتکل است که برای سازماندهی کلیه اجزای شبکه اینترنت به کار می رود.
لایه واسط شبکهLink
در این لایه استاندارد های سخت افزاری و نرم افزارهای راه انداز تعریف می شود. این لایه درگیر با مسائل فیزیکی، کانال های انتقال، نوع کارت شبکه، نوع توپولوژی به کار رفته در شبکه است. این لایه معادل لایه های Link Data و Physical در مدل OSI می باشد. لایه شبکه IP یا اینترنت وظیفه این لایه هدایت بسته ها از مبدا به مقصد می باشد. در این لایه چندین پروتکل وظیفه مسیریابی و تحویل بسته های اطلاعاتی را از مبدا به مقصد انجام می دهند. این لایه معادل لایه Network در مدل OSI می باشد. پروتکل های این لایه عبارتند از:
IP
ICMP
IGMP
ARP
RARP
لایه انتقال Transport:
وظیفه این لایه انتقال می باشد که معادل لایه انتقال در مدل OSI است. در این لایه پروتکل های TCP و UDP فعالیت می کنند. اتصال گرا بودن و بدون اتصال بودن نیز در این لایه تعریف می گردد. دو نوع پروتکل در این لایه ارائه می گردد.
اتصال گراoriented connection : در این پروتکل ابتدا ارتباط برقرار می شود بعد داده ارسال می گردد(TCP)
بدون اتصال(less connection) در این پروتکل نیازی به برقراری ارتباط قبل از ارسال داده نیست (UDP)
لایه کاربرد :Application
در این لایه بر اساس خدمات لایه های زیرین، سرویس سطح بالایی برای خلق برنامه های کاربردی ارائه می شود این خدمات در قالب خدمات وب، انتقال صفحه های اینترنتی، مدیریت پست الکترونیکی و... است پروتکل ها این لایه هم عبارتند از:
HTTP
FTP
3POP
TELNET
DNS
DHCP
به علت اهمیت پروتکل IP و به دلیل اینکه در تمام پروتکل و سرویس های ارائه شده در شبکه IP نقش مهمی را ایفا می کند، ابتدا به این پروتکل می پردازیم Internet ProtocolیاIP این پروتکل یکی از مهمترین پروتکل های شبکه بوده و وظایف مهمی را بر عهده دارد که عبارتند از:
کپسوله کردن: روند بسته بندی داده ها
آدرس دهی: تشخیص سیستم های موجود در شبکه بوسیله آدرس IP
مسيریابی: تشخیص بهترین مسیر تا سیستم مقصد
قطعه بندی: بخش کردن داده ها به قطعه هایی با اندازه مناسب برای انتقال در شبکه همانطور که در قسمت کپسوله سازی در مدل OSI توضیح داده شد، در هر لایه یک هدر به بسته اصلی اضافه خواهد شد. این هدر در لایه شبکه و برای پروتکل IP به شکل زیر خواهد بود.
فيلد :Version
اولین فیلد در هدر IP می باشد که 4 بیت است که نسخه پروتکل IP که این بسته بر اساس آن سازماندهی و ارسال شده است را تعیین می کند. امروزه با توجه به ارائه نسخه 6 از این پروتکل ولی هنوز مشاهده می شود که اکثرا در شبکه های اینترنت و داخلی از نسخه 4 این پروتکل استفاده می نمایند. در قسمت های بعد به تفصیل در مورد نسخه های این پروتکل توضیح داده خواهد شد.
فيلد IHL یا :IP Header Length
در این فیلد که 8 بیتی است، طول کل سرآیند بسته را مشخص می نماید.
فيلد Service of Type:
این فیلد 8 بیتی است که توسط آن، ماشین میزبان (ماشین تولید کننده بسته (IP از مجموعه مسیریاب ها تقاضای سرویس ویژه ای برای ارسال یک دیتاگرام را می نماید.
فیلد :Length Total
در این فیلد 16 بیتی عددی قرار می گیرد که طول کل بسته که شامل IP و هدر است. حداکثر و طول کل بسته IP می تواند 65535 بایت باشد.
فيلد :Identification
با توجه به اینکه در برخی مواقع ماشین های میزبان یا مسیریاب ها مجبورند بسته را به قطعات کوچکتری تقسیم کنند، هر قسمت شکسته شده باید دارای مشخصه ای برای شناسایی باشد. عددی که در این فیلد 16 بیتی عددی قرار می گیرد که شماره یک دیتاگرام واحد را مشخص می کند. کلیه بسته های IP که با این شماره وارد می شوند قطعه های مربوط به یک دیتاگرام بوده و باید پس از گردآوری، بازسازی شوند.
فيلد Offset Fragment:
این فیلد خود دارای سه بخش است:
الف) بيت DF یا :Don’t Fragment
با یک شدن این بیت در یک بسته IP هیچ مسیریابی حق قطعه قطعه کردن آن را ندارد، چرا که مقصد قادر به بازسازی دیتاگرام های تکه تکه شده نیست. اگر این بیت به یک تنظیم شده باشد و مسیر یاب نتواند آن را به دلیل بزرگی اندازه، انتقال دهد لاجرم حذف خواهد شد.
ب) بيت MF یا :Fragment More
این بیت مشخص می کند که آیا بسته IP آخرین قطعه از یک دیتاگرام محسوب می شود یا باز هم قطعه بعدی وجود دارد. در آخرین قطعه از یک دیتاگرام بیت MF صفر خواهد بود و در بقیه الزاما یک است.
ج) Offset Fragment:
این قسمت که 13 بیتی است در حقیقت شماره ترتیب هر قطعه در یک دیتاگرام شکسته شده را مشخص می نماید. با توجه به حداکثر 13 بیتی بودن این فیلد، یک دیتاگرام حداکثر می تواند به 8192 تکه تقسیم شود. نکته مهم در این فیلد آن است که اندازه هر قطعه باید ضریبی از 8 باشد. یعنی به استثنای قطعه آخر، اندازه بقیه قطعه ها بایستی به گونه ای انتخاب شود که ضریبی از 8 باشد.
به عنوان مثال فرض کنید مسیریابی مجبور است یک دیتاگرام را به طول 5000 بایت قطعه قطعه کند به گونه ای که اندازه هر قطعه کمتر از 1500 بایت باشد. در این حالت نمی تواند اندازه هر قطعه را 1250 در نظر بگیرد چرا که ضریبی از 8 نیست ولی اندازه 1280 مناسب می باشد. بر این اساس مسیریاب، دیتاگرام را به سه بسته 1280 بایتی و یک بسته 1160 بایتی می شکند. در این مثال فرض کنید مسیریاب عدد 2322 را به عنوان مشخصه دیتاگرام انتخاب کرده است. بنابراین برای هر یک از4 قطعه دیتاگرام، فیلد آفست و مشخصه به صورت زیر است.
فيلد Live To Time:
این فیلد 8 بیتی در نقش یک شمارنده، طول عمر بسته را مشخص می کند. طول عمر یک بسته به زمانی اشاره می کند که بسته IP می تواند بر روی شبکه سرگردان باشد. حداکثر طول عمر یک بسته 255 خواهد بود که به ازای عبور از هر مسیریاب از مقدار این فیلد یک واحد کم می شود. هرگاه یک بسته IP به دلیل بافر شدن در حافظه یک مسیر یاب زمانی را معطل بماند، به ازای هر ثانیه یک واحد از این فیلد کم خواهد شد. حال اگر مقدار این فیلد به صفر برسد بسته IP در هر نقطه از مسیریاب باشد، حذف می گردد. البته پس از حذف یک هشدار به ماشین تولید کننده ارسال خواهد شد.
فيلد :Protocol
دیتاگرامی که در فیلد داده از یک بسته IP حمل می شود با ساختمان داده خاص از لایه بالاتر تحویل پروتکل IP شده تا روی شبکه ارسال شود. به عنوان مثال ممکن است این داده ها را پروتکل TCP در لایه بالاتر ارسال کرده باشد و یا ممکن است این کار توسط پروتکل UDP انجام شده باشد. بنابراین مقداد این فیلد شماره پروتکلی است که در لایه بالاتر تقاضای ارسال یک دیتاگرام کرده است. بسته ها پس از دریافت در مقصد باید به پروتکل تعیین شده تحویل داده شوند.
فيلدChecksum Header :
این فیلد که 16 بیتی است به منظور کشف خطاهای احتمالی در سرآیند هر بسته از IP استفاده می شود. برای محاسبه کد کشف خطا، کل سرآیند به صورت دو بایت، دو بایت با یکدیگر جمع می شود. نهایتا حاصل جمع به روش مکمل منفی می شود و این عدد منفی در این فیلد قرار می گیرد. در هر مسیریاب قبل از پردازش و مسیریابی ابتدا صحت اطلاعات درون سرآیند بررسی می شود. دقت کنید که فیلد Checksum در هر مسیریاب باید از نو محاسبه و مقدار دهی شود زیرا وقتی یک بسته IP وارد یک مسیریاب می شود حداقل فیلد TTL از آن بسته عوض خواهد شد.
فيلدAddress Source :
هر ماشین میزبان در شبکه اینترنت یک آدرس جهانی و یکتای 32 بیتی دارد (البته 32 بیت برای نسخه 4 از IP بوده و نسخه 6 آن 128 بیتی می باشد). بنابراین هر ماشین بابد در هنگام تولید یک بسته IP آدرس خودش را در این فیلد قرار دهد.
فيلد :Address Destination
در این فیلد آدرس مربوط به مقصد که باید بسته IP به آن تحویل داده شود، قرار می گیرد. فيلد اختياری Options :در این فیلد اختیاری می تواند تا حداکثر 21 بایت قرار داد که برای آزمایش، دیباگ، امنیت و سایر پارامترهای مشابه روی شبکه مورد استفاده قرار میگیرد.
فيلدPayload :
در این فیلد داده های دریافتی از لایه بالاتر قرار می گیرد.