
TCP/IP یه خانوادهایی از پروتکل هاست (یعنی یه مجموعه قوانین) که اینترنت و شبکههای امروزی رو هدایت میکنه. فرض کن شبکه، یه ادارهی بزرگه! هر پروتکل یه نقش داره، بعضیا بستهها رو میفرستن، بعضیا مسئول پیدا کردن آدرسها هستن، بعضیا هم مسئول اینن که اطلاعات درست و کامل برسن. TCP/IP همون دفترچه قوانین عملیاتیه که برای هماهنگ کردن این نقشها استفاده میشه.
ویدیو مربوط به این مقاله: (کلیک کن)
تاریخچه مختصر:
سال 1969 بخش تحقیقاتی وزارت دفاع آمریکا شبکهای ساخت به اسم ARPANET تا چند دانشگاه و مرکز تحقیقاتی بتونن با هم حرف بزنن.
ARPANET در ابتدا با یک پروتکل قدیمیتر به اسم NCP کار میکرد. اما با بزرگتر شدن شبکه، نیاز به پروتکلی که بتونه بین شبکههای مختلف کار کنه پیش اومد.
Vint Cerf و Bob Kahn طرح اینترنت بینشبکهای رو ارائه دادن. کمکم TCP/IP شکل گرفت و در 1 ژانویه 1983 شبکهها مهاجرت کردن به TCP/IP.
TCP/IP پروتکلهایی هستن که از دلِ تحقیق روی ARPANET اومدن و اینترنت واقعی رو ساختن! یعنی TCP/IP قبل و همزمان با تلاشهای استانداردسازی OSI بود و در عمل استفاده شد.
به این عکس دقت کنید:

OSI یک مدل آموزشی و مفهومی بود (7 لایه) طوری طراحی شد که خیلی دقیق و جزئی همه چیز رو جدا کنه. زیادی ریزریز کرده بود.
TCP/IP از دل عمل اومد (پروتکلهای واقعی اینترنت) برای همین چندتا از لایههای OSI رو با هم ادغام کرد.
دقیقا چیا ادغام شد؟
سه تا لایه بالایی تو OSI یعنی Application و Presentation و Session داخل TCP/IP همه شدن یک لایه: Application.
دو تا لایه پایین تو OSI یعنی Data Link و Physical داخل TCP/IP با هم شدن یک لایه: Link یا Network Access
پس 7 لایه OSI تبدیل شد به 4.
درنهایت، OSI برای آموزش و تئوری طراحی شد، خواست همه چیز دقیق و جدا باشه. از طرفی TCP/IP برای اجرا و پیادهسازی ساخته شد. پس TCP/IP کوچیکتر شد چون از دل نیاز واقعی اومد و فقط همون بخشهایی که واقعا کاربرد داشتن رو نگه داشت.
چرا دو تا شکل برای TCP/IP هست؟
بعضیا TCP/IP رو 4 لایه نشون میدن چون راحت و خلاصت.
بعضیا هم 5 لایه نشون میدن.
فرق اصلی اینه که در 5 لایه، Link به دو بخش Physical و Data Link تقسیم شده تا واضحتر باشه که چی تو سختافزاره و چی تو نرمافزار.
درنهایت هر دو دسته درستن فقط بعضی مواقع برای تحلیل بسته ها یا از 4 لایه استفاده میکنن یا از 5 لایه.
PDU یا Protocol Data Unit چیه؟ PDU همون بسته یا چیزی هست که توی هر لایهی شبکه دست به دست میشه. شبکه مثل یه خط تولیده. داده از Application شروع میشه و میره پایین، لایه به لایه بهش چیز اضافه میشه. هر لایه بستهی خودش رو میسازه و اسمش عوض میشه. برای همین گفتن PDU تا بگن اون چیزی که لایه داره باهاش کار میکنه.
PDU تو هر لایه چه اسمی داره؟
Physical (فیزیکی): بیت.
Data Link: فریم (Frame).
Network: پکت (Packet).
Transport (TCP/UDP): سگمنت (Segment) برای TCP و Datagram برای UDP.
Application: دیتا (Data).
هدر (Header) چیه؟ هدر مثل همون برچسب یا پاکت نامه هست.
خود نامه (داده اصلی) داخلشه، ولی برای اینکه نامه برسه دست دوستت باید روی پاکت بنویسی فرستنده کیه، گیرنده کیه، شماره بسته چندمه و …
در شبکه هم همینطوره. هر لایه میگه: من یه سری اطلاعات اضافه لازم دارم تا کارم رو درست انجام بدم. اون اطلاعات رو جلوی داده میچسبونه. به این اطلاعات اضافه میگیم Header.
دادهی خام از لایه Application شروع میشه. هر لایه این داده رو میگیره، هدر خودش رو میچسبونه، بعد میده به لایه پایینتر. این فرایند رو میگن Encapsulation (کپسوله کردن).
درنهایت، هر وقت یه لایه هدر خودش رو اضافه کرد، اون چیزی که ساخته میشه PDU مخصوص همون لایهست.
وقتی بسته رسید مقصد چی میشه؟
هر لایه Header مربوطه رو از بسته اصلی جدا میکنه تا درنهایت به داده خام برسه. به این کار میگن Decapsulation.
نکته. تمام لایه ها Header رو به بسته اضافه میکنن و فقط لایه Data Link هست که علاوه بر Header یک قسمت دیگه به اسم Trailer هم به انتهای بسته اضافه میکنه.