Skip to main content

Command Palette

Search for a command to run...

সিরিজ: কম্পিউটার নেটওয়ার্ক (IP vs TCP)

Published
•3 min read•View as Markdown

IP এবং TCP: ইন্টারনেটের রাস্তা আর ট্রাফিক নিয়ম

আমরা আগের কয়েকটি পর্বে CPU, Thread, Concurrency, Parallelism ইত্যাদি নিয়ে কথা বলেছি—অর্থাৎ, কিভাবে একটি কম্পিউটার অভ্যন্তরীণভাবে অনেক কাজ একসাথে সামলায়।
এবার আমরা সেই কম্পিউটারের দুনিয়া থেকে বের হয়ে নেটওয়ার্কের জগতে ঢুকব—যেখানে হাজার হাজার কম্পিউটার একে অপরের সাথে কথা বলে। আর এই কথোপকথনের দুই প্রধান ভিত্তি হলো IP আর TCP।


প্রথমে আমরা IP দিয়ে শুরু করছি,

IP – Internet Protocol

IP হচ্ছে এক ধরনের প্রোটোকল যা ডেটাকে “প্যাকেট” আকারে ভেঙে তার ঠিকানায় পৌঁছে দেয়। প্রতিটি ডিভাইসের জন্য থাকে একটি ইউনিক IP Address, যেটা ডাকপিয়নের হাতে লেখা ঠিকানার মতো — যেখানে ঠিকানা ভুল হলে চিঠি ভুল জায়গায় চলে যায়।

IP-এর দায়িত্ব শুধু একটাই —

“ডেটা এক স্থান থেকে অন্য স্থানে পৌঁছে দেওয়া

অর্থাৎ IP ডাকপিয়নের মতো — সে শুধু চিঠি তুলে নেয় আর ঠিকানায় পৌঁছে দেয়।

IP-এর প্রধান কাজ হলো

  • Source থেকে Destination-এ data পাঠানো।

  • Data কে ছোট ছোট অংশে (packets) ভাগ করে ফেলা এবং প্রতিটি packet-এ প্রেরক ও প্রাপকের IP address অনুযায়ী তার গন্তব্যে পাঠানো।

IP এর Limitations

  • No guarantee of delivery: IP শুধু প্যাকেট পাঠিয়ে দেয়, কিন্তু পৌঁছেছে কিনা — সেটা সে জানে না।

  • No guarantee of order: প্যাকেটগুলো যে কোন ক্রমে পৌঁছাতে পারে, অর্থাৎ প্যাকেট গুলো ধারাবাহিক ভাবে পৌছাবে কিনা তার কোনো নিশ্চয়তা নেই। আগে পাঠানো প্যাকেট পরেও আসতে পারে।

  • No guarantee of integrity: যদি কোনো Packet corrupt হয় তবে সেটা পুনঃরায় পাঠায় না। বা IP নিজে তা ঠিক করতে পারেনা।

অর্থাৎ, IP এক ধরনের addressing and delivery service, কিন্তু reliability police নয়।


TCP – Transmission Control Protocol

IP হলো রাস্তা, TCP হলো সেই রাস্তায় চলাচলের ট্রাফিক নিয়ম + ডেলিভারি গ্যারান্টি।

TCP, IP-এর উপর কাজ করে (TCP/IP stack)।
যখন আমরা বলি TCP/IP, তখন বোঝাই — IP data পাঠাচ্ছে, TCP নিশ্চিত করছে যে সেটা ঠিকভাবে এবং সঠিক ক্রমে পৌঁছেছে।

TCP-এর কাজ হলো

  • Reliable delivery: কোনো Data হারিয়ে গেলে তাকে আবার পাঠানো।

  • Ordered delivery: Data সঠিক ক্রমে সাজিয়ে দেওয়া।

  • Error detection and correction: কোনো Packet corrupted হলে তাকে পুনরায় পাঠানো।

  • Flow control: Receiver যত দ্রুত নিতে পারবে, তত গতিতেই ডাটা পাঠানো।

  • Connection-oriented: Data পাঠানোর আগে Sender আর Receiver-এর মধ্যে handshake (3-way handshake) ঘটানো।

TCP এর Limitations

  • Overhead বেশি — Reliability বজায় রাখতে বেশি control message লাগে।

  • Real-time applications-এর জন্য latency বাড়তে পারে।


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

ধরো, তুমি এক শহর থেকে আরেক শহরে বন্ধুকে কিছু জিনিস পাঠাচ্ছো।

  • IP হলো:

    • তুমি জিনিসগুলো ট্রাকে তুলে দিচ্ছো।

    • প্রতিটি বাক্সে প্রাপকের ঠিকানা লিখে দিচ্ছো।

    • রাস্তা দিয়ে ড্রাইভার যাবে, কিন্তু সে নিশ্চিত করছে না সব বাক্স পৌঁছাবে কিনা বা ঠিক ক্রমে পৌঁছাবে কিনা।

  • TCP হলো:

    • ডেলিভারি কোম্পানি যেটা নিশ্চিত করছে যে তোমার পাঠানো প্রতিটি বাক্স পৌঁছাবে।

    • যদি কোনো বাক্স হারায়, সেটা আবার পাঠাবে।

    • বাক্সগুলো যেভাবে পাঠানো হয়েছিল, ঠিক সেই ক্রমে সাজিয়ে বন্ধুকে দেবে।

    • আর সবকিছু শুরু হবে তোমার সাথে রিসিভারের যোগাযোগ (handshake) হওয়ার পর।


একসাথে কাজ করা – TCP/IP

তুমি যদি একটি ওয়েবসাইট ভিজিট করো:

  1. IP তোমার কম্পিউটার থেকে ওয়েব সার্ভারের Address খুঁজে বের করে।

  2. TCP নিশ্চিত করে যে HTML, CSS, JS ফাইলের প্রতিটি bit ঠিকভাবে, সঠিক ক্রমে তোমার ব্রাউজারে পৌঁছেছে।


কেন এগুলো দরকার

  • IP ছাড়া ইন্টারনেটে কে কোথায় আছে তা জানা সম্ভব না।

  • TCP ছাড়া Data loss, ভুল ক্রম, বা corruption এড়ানো যাবে না।

  • একসাথে, এগুলো ইন্টারনেটকে reliable global communication system বানিয়েছে।


সংক্ষিপ্ত তুলনা

  • IP → Addressing + Routing, but unreliable.

  • TCP → Reliability + Ordering + Error correction, built on top of IP.


শেষ কথা

CPU-তে যেমন Thread আর Process মিলে efficient কাজ হয়, নেটওয়ার্কে ঠিক তেমনই IP আর TCP মিলে data communication efficient ও reliable হয়।
IP তোমাকে গন্তব্যের রাস্তা দেখায়, TCP নিশ্চিত করে তুমি গন্তব্যে ঠিকভাবে পৌঁছেছো কিনা।

More from this blog

Redis Data Structure

অনেকেই Redis-কে শুধু একটি key-value ডেটাবেস হিসেবে মনে করেন, কিন্তু এটি তার চেয়ে অনেক বেশি কিছু। Redis আমাদের এমন কিছু শক্তিশালী ডেটা স্ট্রাকচার দেয়, যা দিয়ে অনেক জটিল কাজ খুব সহজে এবং দ্রুত সমাধান করা যায়। চলুন, এক এক করে পরিচিত হওয়া যাক এদের সাথে। ...

Aug 18, 20253 min read4
Redis Data Structure

Redis এর প্রয়োজনীয়তা

Redis: কেন এটি শুধু একটি ডেটাবেস নয়, আপনার অ্যাপ্লিকেশনের সুপারপাওয়ার! আপনি যদি একজন ডেভেলপার হয়ে থাকেন, তাহলে নিশ্চয়ই চাইবেন আপনার অ্যাপ্লিকেশনটি হোক দ্রুত, নির্ভরযোগ্য এবং স্কেলেবল। আগের পর্বে আমরা Redis কী তা জেনেছি। আজকে আমরা দেখব, কেন Redis আধুন...

Aug 17, 20254 min read2
Redis এর প্রয়োজনীয়তা

Redis: A speedy In-memory Database system

আমরা প্রতিদিন অসংখ্য তথ্য নিয়ে কাজ করি, যেমন—মোবাইলে কন্টাক্ট নাম্বার, ই-কমার্স সাইটে কেনাকাটার তালিকা, বা সোশ্যাল মিডিয়ায় বন্ধুদের পোস্ট। এই সব তথ্য কোথাও না কোথাও জমা হয়। কিন্তু সব তথ্যের ধরন বা ব্যবহারের প্রয়োজনীয়তা একরকম নয়। কিছু তথ্য আছে ...

Aug 16, 20253 min read1
Redis: A speedy In-memory Database system

Class "static" Member in OOP

প্রোগ্রামিং-এর জগতে, ডেটা এবং ফাংশনগুলো কীভাবে মেমোরিতে রাখা হবে, তার উপর আমাদের কোডের কার্যকারিতা, speed এবং মেমোরি usage অনেকাংশে নির্ভর করে। এমন অনেক সময় আসে যখন আমরা চাই কিছু ডেটা বা ফাংশন যেনো কোনো নির্দিষ্ট ক্লাসের সব অবজেক্টের জন্য একটাই কপি ...

Aug 15, 20254 min read2
Class "static" Member in OOP

Object Oriented Programming Part -1

আপনি সফটওয়্যার বানানোর সময় প্রায়ই দু’টো বড় চ্যালেঞ্জের সম্মুখীন হবেন— প্রথম হলো complexity আর দ্বিতীয় হলো code changes। কোড যত বড় হয়, কোড বোঝো, চেঞ্জ করা, bug ফিক্স করা তত কঠিন হতে থাকে। Object-Oriented Programming (OOP) এমন এক programming style যেখা...

Aug 13, 20255 min read1
Object Oriented Programming Part -1

Thinking and Doing

22 posts