System Design শেখো
শেখো / নেটওয়ার্কিং ও প্রোটোকল

OSI ও TCP/IP Model

9 মিনিট Module 4 · Networking & Protocols
এক নজরে
  • OSI model নেটওয়ার্ক যোগাযোগকে ৭টি স্তরে ভাগ করে যাতে প্রতিটি স্তরের দায়িত্ব আলাদা থাকে।
  • বাস্তবে ইন্টারনেট চলে ৪-স্তরের TCP/IP model-এ; HTTP, TCP, IP, Ethernet এখানে নির্দিষ্ট জায়গায় বসে।
  • Data এক স্তর থেকে আরেক স্তরে যাওয়ার সময় header যোগ হয় — এটাকে বলে encapsulation।

সমস্যাটা কী?

ধরো তুমি ব্রাউজারে google.com টাইপ করলে। তোমার computer থেকে data কীভাবে হাজার মাইল দূরের একটা server-এ পৌঁছায়, আবার ফেরত আসে? এর মাঝে আছে Wi-Fi, router, ISP-এর fiber cable, সমুদ্রের নিচের তার, অনেকগুলো server। এই পুরো জটিল কাজটাকে যদি একটা মাত্র বিশাল program দিয়ে সামলাতে চাও, তাহলে কেউ সেটা বানাতে বা debug করতে পারবে না।

সমাধান হলো layering — পুরো কাজটাকে কয়েকটা আলাদা স্তরে ভাগ করে দেওয়া। প্রতিটা স্তরের একটাই নির্দিষ্ট দায়িত্ব, আর সে শুধু তার ঠিক নিচের স্তরের সাথে কথা বলে। এই চিন্তাভাবনার দুটো বিখ্যাত রূপ হলো OSI Model আর TCP/IP Model

মূল ধারণা

OSI Model (Open Systems Interconnection) হলো একটা theoretical reference model যা নেটওয়ার্ক যোগাযোগকে ৭টি স্বাধীন স্তরে ভাগ করে, যেখানে প্রতিটি স্তরের কাজ আলাদা ও সুনির্দিষ্ট।

মূল আইডিয়া সহজ: একটা স্তর জানে না তার নিচের স্তর ঠিক কীভাবে কাজ করছে — সে শুধু একটা service পায়। যেমন HTTP-কে জানতে হয় না data তারে যাচ্ছে নাকি Wi-Fi-তে। এই স্বাধীনতার কারণে এক স্তর বদলালেও বাকিগুলোতে হাত দিতে হয় না। Wi-Fi থেকে cable-এ গেলে HTTP একই থাকে।

বাস্তব ইন্টারনেট কিন্তু OSI মেনে বানানো হয়নি — বানানো হয়েছে TCP/IP Model-এ, যেটা মাত্র ৪টা স্তরে কাজ চালায়। OSI পড়ানো হয় বোঝার সুবিধার জন্য, আর TCP/IP চলে বাস্তবে।

কীভাবে কাজ করে

OSI-এর ৭টি স্তর

উপর থেকে নিচে (Application → Physical):

Layerনামদায়িত্বউদাহরণ
7Applicationব্যবহারকারীর কাছাকাছি, app-level protocolHTTP, FTP, DNS, SMTP
6Presentationdata format, encryption, compressionTLS, JPEG, ASCII
5Sessionconnection শুরু/বজায়/বন্ধ করাsession token, RPC
4Transportreliable delivery, port, segmentationTCP, UDP
3Networklogical address ও routingIP, ICMP
2Data Linkএকই network-এ frame পৌঁছানো, MAC addressEthernet, Wi-Fi (MAC)
1Physicalbit আকারে সংকেত পাঠানোcable, radio, voltage

মনে রাখার একটা সহজ উপায়: উপরের স্তরগুলো (5–7) software-ঘেঁষা, নিচের স্তরগুলো (1–4) hardware ও transport-ঘেঁষা।

TCP/IP-এর ৪টি স্তর

বাস্তবে এই model-ই চলে। OSI-এর স্তরগুলো এখানে একসাথে মিলে যায়:

TCP/IP Layerমেলে OSI-এর সাথেকী থাকে
Application5, 6, 7HTTP, DNS, TLS
Transport4TCP, UDP
Internet3IP, ICMP
Network Access (Link)1, 2Ethernet, Wi-Fi

HTTP, TCP, IP, Ethernet কোথায় বসে

একটা সাধারণ web request-এ:

  • HTTP → Application layer। কী চাও (GET/POST), কোন page — এই অর্থপূর্ণ message।
  • TCP → Transport layer। data ভাগে ভাগে (segment) ভাঙে, port দিয়ে কোন app সেটা ঠিক করে, হারিয়ে গেলে আবার পাঠায়, ঠিক ক্রমে জোড়া লাগায়।
  • IP → Internet layer। source ও destination-এর IP address বসায়, কোন route-এ যাবে ঠিক করে।
  • Ethernet/Wi-Fi → Link layer। পাশের router পর্যন্ত আসল bit/frame পৌঁছে দেয়, MAC address ব্যবহার করে।

Encapsulation: header যোগ হওয়ার গল্প

Data যখন উপরের স্তর থেকে নিচের স্তরে নামে, প্রতিটি স্তর তার নিজের header (আর Link layer-এ trailer-ও) যোগ করে। একে বলে Encapsulation

Application:  [ HTTP Data ]
Transport:    [ TCP header | HTTP Data ]        → Segment
Internet:     [ IP header | TCP header | Data ] → Packet
Link:         [ Eth header | IP | TCP | Data | Eth trailer ] → Frame

ও পাশের computer ঠিক উল্টোটা করে — প্রতিটা স্তর তার header খুলে নেয় (de-encapsulation), শেষে আসল HTTP data বের হয়ে আসে। প্রতিটি স্তর শুধু নিজের header পড়ে, বাকিটা তার নিচের/উপরের স্তরের জন্য "payload" মাত্র।

সহজ উদাহরণ

ভাবো তুমি ঢাকা থেকে চট্টগ্রামে একটা চিঠি কুরিয়ার করছ। তুমি চিঠি লেখো (HTTP data)। সেটা একটা খামে ভরো ঠিকানা লিখে (TCP — কোন port/ঘর)। খামটা কুরিয়ার কোম্পানির বড় প্যাকেটে ঢোকে যাতে এলাকার নাম থাকে (IP — কোন শহর)। সেই প্যাকেট আবার নির্দিষ্ট গাড়িতে ওঠে (Ethernet — পরবর্তী হাব পর্যন্ত)। প্রতিটি স্তর একটা মোড়ক যোগ করছে — এটাই encapsulation। চট্টগ্রামে পৌঁছে এক এক করে মোড়ক খুলে শেষে আসল চিঠি বের হয়।

প্রকারভেদ

দুটো model-কে গুলিয়ে ফেলো না:

  • OSI Model — academic, ৭ স্তর, কোনো একটা protocol-এর সাথে বাঁধা নয়। শেখার ও troubleshooting-এর জন্য চমৎকার ("সমস্যাটা কোন layer-এ?")।
  • TCP/IP Model — practical, ৪ স্তর, আসল protocol (TCP, IP) ঘিরে তৈরি। আজকের ইন্টারনেট এতেই চলে।

আরও একটা ব্যাপার: protocol-গুলো একসাথে যে গুচ্ছ তৈরি করে তাকে বলে Protocol Stack — যেমন "HTTP over TCP over IP"।

কখন ব্যবহার করবে / করবে না

এটা তো বেছে নেওয়ার জিনিস নয়, বরং বোঝার framework। তবে ব্যবহারিকভাবে:

  • Troubleshooting-এ OSI দারুণ। "Ping যাচ্ছে কিন্তু website খুলছে না" — মানে Layer 3 (IP) ঠিক আছে, সমস্যা উপরের কোনো layer-এ (DNS/HTTP)।
  • Design ও interview-এ TCP/IP model দিয়ে কথা বলো, কারণ এটাই বাস্তব।
সাবধান

OSI আর TCP/IP-এর layer সংখ্যা মিলিয়ে ফেলো না। OSI = ৭, TCP/IP = ৪। আর "TLS Layer 6-এ" বলা OSI অনুযায়ী ঠিক, কিন্তু TCP/IP-তে TLS-কে Application layer-এর অংশ ধরা হয় — context বুঝে উত্তর দাও।

বাস্তব উদাহরণ

তুমি বাসায় বসে YouTube ভিডিও দেখছ:

  1. Application — ব্রাউজার HTTP request বানায়: "এই ভিডিওর পরের chunk দাও"।
  2. Transport — TCP সেটাকে segment-এ ভাঙে, port 443 ব্যবহার করে, কোনো segment হারালে আবার চায়।
  3. Internet — IP প্রতিটা packet-এ YouTube-এর CDN server-এর IP বসায়, router-গুলো route ঠিক করে।
  4. Link — তোমার Wi-Fi router পর্যন্ত data Wi-Fi (Layer 2 + 1) দিয়ে যায়, তারপর ISP-এর fiber-এ।

ভিডিও আটকে গেলে কোথায় সমস্যা? Wi-Fi দুর্বল হলে Layer 1/2, ISP route খারাপ হলে Layer 3, server slow হলে Layer 7 — এই layered চিন্তাই তোমাকে দ্রুত সমস্যা খুঁজে দেয়।

টিপস

Interview-এ "What happens when you type a URL and press Enter?" জিজ্ঞেস করলে layer ধরে ধরে বলো: DNS (Application) → TCP handshake (Transport) → IP routing (Internet) → frames over Ethernet/Wi-Fi (Link) → তারপর HTTP request/response। Layered উত্তর দিলে interviewer বোঝে তুমি model-টা সত্যিই বোঝো।

মূল শব্দ (Key Terms)

মিনি কুইজ

1. OSI model-এ HTTP কোন স্তরে কাজ করে?

2. Reliable, ordered delivery এবং port নম্বর কোন স্তরের দায়িত্ব?

3. Encapsulation বলতে কী বোঝায়?