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

## **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 নিশ্চিত করে তুমি গন্তব্যে ঠিকভাবে পৌঁছেছো কিনা।
