DEV Community

Cover image for TCP/IP Model: সফটওয়্যার ইঞ্জিনিয়ারদের জন্য Practical Guide
Ragib Hasan
Ragib Hasan Subscriber

Posted on

TCP/IP Model: সফটওয়্যার ইঞ্জিনিয়ারদের জন্য Practical Guide

নেটওয়ার্কিং শিখতে গেলে আমরা সাধারণত প্রথমে OSI 7-Layer Model-এর কথা শুনি। কিন্তু বাস্তব জীবনে কম্পিউটার নেটওয়ার্ক কীভাবে কাজ করে, সেটা বুঝতে গেলে TCP/IP Model সম্পর্কে পরিষ্কার ধারণা থাকা আরও গুরুত্বপূর্ণ।

এই লেখায় আমরা TCP/IP Model-এর ৫টি layer, OSI Model-এর সঙ্গে এর পার্থক্য, TCP বনাম UDP, data encapsulation এবং TCP/IP-এর ঐতিহাসিক পটভূমি—সবকিছু সহজভাবে বুঝব।


OSI বনাম TCP/IP: Layerগুলো কোথায় গেল?

OSI Model-এ মোট ৭টি layer:

  1. Application
  2. Presentation
  3. Session
  4. Transport
  5. Network
  6. Data Link
  7. Physical

অন্যদিকে, TCP/IP Model-কে সাধারণভাবে ৪ বা ৫টি layer-এ উপস্থাপন করা হয়। এই লেখায় আমরা ৫-layer representation ব্যবহার করছি:

  1. Application
  2. Transport
  3. Network
  4. Data Link
  5. Physical

TCP/IP-এর ক্ষেত্রে Presentation এবং Session-এর কাজ আলাদা standalone layer হিসেবে থাকে না; সেগুলোর দায়িত্ব Application layer-এর বিভিন্ন protocol/application-এর মধ্যে বাস্তবায়িত হয়।

একটি গুরুত্বপূর্ণ বিষয়: L7, L4, L3, L2, L1

Software engineering এবং networking-এর কথাবার্তায় এখনও OSI-এর layer numbering ব্যাপকভাবে ব্যবহার করা হয়।

তাই TCP/IP Model-এর ৫টি layer হলেও আমরা সাধারণত বলি:

  • Application → L7
  • Transport → L4
  • Network → L3
  • Data Link → L2
  • Physical → L1

অর্থাৎ TCP/IP Model-এর Application layer-কে সাধারণত L7 বলেই আলোচনা করা হয়। একইভাবে Transport হলো L4, Network হলো L3 ইত্যাদি।


TCP/IP Model-এর ৫টি Layer

ধরুন, আপনি একটি কম্পিউটার থেকে আরেকটি কম্পিউটারে "Hello" পাঠাতে চান। এই data এক layer থেকে আরেক layer-এ যাওয়ার সময় বিভিন্ন ধরনের information যোগ করে আরও বড় network unit-এ পরিণত হয়।

চলুন layer by layer দেখি।


1. Application Layer — L7

এটাই software engineer-এর জন্য সবচেয়ে কাছের layer।

আপনি browser, Messenger, WhatsApp বা অন্য কোনো application-এ যখন "Hello" লিখে Send চাপেন, তখন application সেই data নিয়ে কাজ শুরু করে।

Application layer-এর কাজের মধ্যে থাকতে পারে:

  • Data format করা
  • JSON/XML-এর মতো format ব্যবহার করা
  • Compression
  • Encryption-এর মতো application-level processing
  • Application-level session/state management
  • HTTP, HTTPS, DNS ইত্যাদি protocol ব্যবহার করা

সহজভাবে:

User Data → Application Processing → Network-এর জন্য প্রস্তুত Data

উদাহরণ হিসেবে, আপনার application "Hello"-কে একটি structured format-এ রূপান্তর করতে পারে, প্রয়োজন অনুযায়ী compress বা encrypt করতে পারে, এবং এরপর Transport layer-এ পাঠাতে পারে।

Software Engineer হিসেবে কেন L7 গুরুত্বপূর্ণ?

কারণ আমরা যে web application, API, mobile application বা distributed system তৈরি করি, সেগুলোর communication-এর বড় অংশ Application layer-এর protocol-এর ওপর নির্ভর করে।


2. Transport Layer — L4

Application layer-এর data এবার Transport layer-এ আসে।

এখানে সবচেয়ে গুরুত্বপূর্ণ দুটি protocol হলো:

  • TCP — Transmission Control Protocol
  • UDP — User Datagram Protocol

এখানেই একটি গুরুত্বপূর্ণ decision আসে:

Data কি reliable delivery চাইছে, নাকি speed এবং low overhead বেশি গুরুত্বপূর্ণ?


TCP: Reliable এবং Controlled Communication

TCP connection-oriented এবং reliable transport প্রদান করে।

ধরুন আপনি একটি গুরুত্বপূর্ণ text message বা API request পাঠাচ্ছেন। Data-এর কোনো অংশ হারিয়ে গেলে বা ভুলভাবে পৌঁছালে সমস্যা হতে পারে।

TCP এই ধরনের communication-এর জন্য sequence, acknowledgement, retransmission, flow control এবং congestion control-এর মতো mechanism ব্যবহার করে reliable byte-stream delivery দেয়।

TCP ব্যবহার করার সাধারণ উদাহরণ:

  • Web traffic (HTTP/HTTPS, যখন TCP ব্যবহৃত হয়)
  • API communication
  • File transfer
  • Database connection
  • অন্যান্য reliable application communication

TCP-তে Transport-layer data unit-কে সাধারণত Segment বলা হয়।


UDP: Fast এবং Low-Overhead Communication

UDP-এর design TCP-এর তুলনায় অনেক lightweight।

UDP connection establish করে TCP-এর মতো reliable byte stream তৈরি করে না এবং retransmission-এর মতো reliability mechanism নিজে থেকে প্রদান করে না।

ফলে application-এর জন্য speed, low latency এবং control বেশি গুরুত্বপূর্ণ হলে UDP উপযোগী হতে পারে।

উদাহরণ:

  • Live streaming-এর কিছু use case
  • Online gaming
  • Real-time communication
  • DNS query
  • এমন application যেখানে কিছু packet হারানো acceptable এবং application নিজেই প্রয়োজনীয় logic handle করতে পারে

UDP-এর Transport-layer data unit-কে সাধারণত Datagram বলা হয়।

TCP বনাম UDP — দ্রুত মনে রাখার উপায়

বিষয় TCP UDP
Reliability Reliable delivery Delivery guarantee নেই
Connection Connection-oriented Connectionless
Ordering Ordered byte stream Ordering guarantee নেই
Retransmission আছে নেই
Overhead বেশি কম
Data Unit Segment Datagram
ব্যবহার Reliable communication Low-latency/low-overhead communication

Interview Tip: শুধু “TCP 100% guarantee দেয়” বললে বিষয়টি oversimplified হয়। ভালো উত্তর হবে—TCP reliable, ordered byte-stream delivery এবং retransmission/acknowledgement-এর মতো mechanism প্রদান করে।


3. Network Layer — L3

Transport layer-এর Segment বা Datagram এবার Network layer-এ আসে।

এখানে মূল বিষয় হলো IP addressing এবং routing

Network layer source এবং destination-এর IP address ব্যবহার করে data-কে network-এর মধ্যে কোথায় যেতে হবে সেটা নির্ধারণে সাহায্য করে।

এ পর্যায়ে:

Transport Data + IP Header → IP Packet

এখানে গুরুত্বপূর্ণ protocol হলো:

  • IPv4
  • IPv6

সহজভাবে:

IP address বলে data কোন host/network-এর দিকে যাবে।


4. Data Link Layer — L2

এখন আমাদের Packet local network-এর মধ্যে কীভাবে পৌঁছাবে, সেটা গুরুত্বপূর্ণ।

Data Link layer-এ Ethernet বা Wi-Fi-এর মতো technologies কাজ করে এবং local network delivery-এর জন্য MAC address গুরুত্বপূর্ণ ভূমিকা পালন করে।

এখানে Packet-এর সঙ্গে Data Link header/trailer যুক্ত হয়ে সাধারণত একটি Frame তৈরি হয়।

সহজভাবে:

Packet → Data Link Frame

এখানে source এবং destination MAC address-এর মতো information থাকতে পারে।

IP বনাম MAC

সহজভাবে মনে রাখুন:

  • IP Address → Logical addressing / routing
  • MAC Address → Local link-level addressing

একটি router সাধারণত IP routing-এর ভিত্তিতে packet forward করে, আর একটি Ethernet switch local network-এ MAC address table ব্যবহার করে frame forward করতে পারে।


5. Physical Layer — L1

সবশেষে data বাস্তব transmission medium-এর মধ্য দিয়ে যেতে হবে।

Physical layer bits-কে physical signals হিসেবে transmit করার বিষয়টি handle করে।

Medium হতে পারে:

  • Copper cable
  • Fiber optic cable
  • Radio waves / Wi-Fi

Software engineer হিসেবে Physical layer-এর electrical বা signaling details সবসময় গভীরভাবে জানা জরুরি নয়। তবে layerটির basic purpose বোঝা গুরুত্বপূর্ণ।


পুরো Data Flow এক নজরে

ধরুন Application থেকে "Hello" পাঠানো হলো।

Conceptually data নিচের মতো layer থেকে layer-এ যায়:

Application Data
      ↓
TCP → Segment
      ↓
IP → Packet
      ↓
Ethernet/Wi-Fi → Frame
      ↓
Physical → Bits / Signals
Enter fullscreen mode Exit fullscreen mode

অন্যদিকে receiving computer-এ processটি বিপরীত দিকে চলে:

Bits / Signals
      ↓
Frame
      ↓
Packet
      ↓
Segment / Datagram
      ↓
Application Data
Enter fullscreen mode Exit fullscreen mode

এই process-কে networking-এর ভাষায় encapsulation এবং receiving side-এ decapsulation বলা হয়।


TCP/IP-এর ঐতিহাসিক পটভূমি

TCP/IP Model হঠাৎ করে কোনো একদিন একটি complete master plan হিসেবে তৈরি হয়নি। Internet networking-এর বিভিন্ন protocol ধাপে ধাপে বিকশিত হয়েছে।

1969 — ARPANET

1969 সালে ARPANET (Advanced Research Projects Agency Network) চালু হয়। এটি পরবর্তীতে আধুনিক Internet-এর বিকাশে গুরুত্বপূর্ণ ভূমিকা রাখে।

1970s — TCP/IP-এর বিকাশ

এই সময় বিভিন্ন network-কে interconnect করার জন্য নতুন networking protocol নিয়ে গবেষণা চলতে থাকে।

TCP এবং IP একই সময়ে একইভাবে তৈরি হয়নি। এগুলোর development এবং standardization ধাপে ধাপে হয়েছে।

1983 — TCP/IP এবং ARPANET

1983 সালে ARPANET-এর host communication-এ TCP/IP ব্যবহারের transition একটি গুরুত্বপূর্ণ milestone হয়ে ওঠে।

1984 — OSI Model

OSI Model পরে একটি standardized reference framework হিসেবে আসে।

তাই networking শেখার সময় আমরা অনেক ক্ষেত্রে OSI Model দিয়ে fundamental concepts বুঝি, কিন্তু real-world networking-এ TCP/IP protocol suite-ই কেন্দ্রীয়।


Software Engineer হিসেবে কোন Layerগুলো সবচেয়ে গুরুত্বপূর্ণ?

Software engineer হিসেবে আপনার জন্য সবচেয়ে গুরুত্বপূর্ণ:

L7 — Application

HTTP, HTTPS, DNS, APIs, application protocols

L4 — Transport

TCP, UDP, ports, reliability, connection, latency

L3 — Network

IP, routing, subnetting, IPv4/IPv6

L2 — Data Link

MAC address, Ethernet, Wi-Fi, switching

L1 — Physical

Basic ধারণা থাকা ভালো, তবে hardware/electrical details আপনার role অনুযায়ী প্রয়োজন হতে পারে।


একটি বাস্তব উদাহরণ: Browser থেকে Website Open করা

আপনি browser-এ একটি website-এর address লিখলেন এবং Enter চাপলেন।

Conceptually:

Application (L7)

Browser HTTP/HTTPS request তৈরি করে।

Transport (L4)

Communication-এর জন্য TCP বা appropriate transport protocol ব্যবহৃত হয়।

Network (L3)

IP addressing এবং routing-এর মাধ্যমে destination-এর দিকে packet এগোয়।

Data Link (L2)

Local network-এর মধ্যে frame delivery-এর জন্য MAC address এবং link-layer technology কাজ করে।

Physical (L1)

শেষ পর্যন্ত bits/signals network medium-এর মধ্য দিয়ে travel করে।

Destination machine-এ আবার একই process reverse order-এ চলে এবং application শেষ পর্যন্ত response পায়।


Interview-এ কীভাবে TCP বনাম UDP বলবেন?

যদি interviewer জিজ্ঞেস করে:

“TCP এবং UDP-এর মধ্যে পার্থক্য কী?”

তাহলে সংক্ষেপে বলতে পারেন:

TCP হলো connection-oriented এবং reliable transport protocol, যা ordered delivery, acknowledgement এবং retransmission-এর মতো mechanism ব্যবহার করে। UDP হলো connectionless এবং lightweight protocol, যেখানে delivery, ordering বা retransmission-এর built-in guarantee নেই। তাই reliability গুরুত্বপূর্ণ হলে TCP এবং low latency/low overhead গুরুত্বপূর্ণ হলে UDP উপযোগী হতে পারে।

এই উত্তরটি শুধু “TCP fast/UDP slow” ধরনের ভুল ধারণার চেয়ে অনেক বেশি accurate।


শেষ কথা

TCP/IP Model মুখস্থ করার বিষয় নয়—data কীভাবে এক application থেকে অন্য machine-এর application-এ যায়, সেটা বুঝে নেওয়াই আসল বিষয়।

একটি সহজ mental model রাখুন:

Application → Transport → Network → Data Link → Physical

আর data unit মনে রাখুন:

Data → Segment/Datagram → Packet → Frame → Bits

Software engineer হিসেবে অন্তত L7, L4, L3 এবং L2 সম্পর্কে শক্ত ধারণা থাকা অত্যন্ত গুরুত্বপূর্ণ। কারণ backend, distributed systems, cloud, DevOps, SRE, cybersecurity—প্রায় সব ক্ষেত্রেই networking fundamentals বারবার ফিরে আসে।

সবচেয়ে ভালো শেখার পদ্ধতি হলো শুধু পড়া নয়—নিজে লিখুন, diagram আঁকুন, বন্ধুদের সঙ্গে আলোচনা করুন, এবং real-world networking problem দিয়ে conceptগুলো প্রয়োগ করুন।

Networking যত গভীরভাবে বুঝবেন, software systems কীভাবে বাস্তবে communicate করে সেটাও তত পরিষ্কার হবে।


Quick Revision

L7 → Application → HTTP/HTTPS, DNS, APIs
L4 → Transport   → TCP / UDP → Segment / Datagram
L3 → Network     → IP         → Packet
L2 → Data Link   → MAC        → Frame
L1 → Physical    → Signals    → Bits
Enter fullscreen mode Exit fullscreen mode

TCP/IP Model বুঝুন → TCP/UDP বুঝুন → IP ও routing বুঝুন → MAC ও switching বুঝুন → তারপর networking-এর আরও গভীরে যান।

Top comments (0)