 
                                    Network Protocols
নেটওয়ার্ক প্রটোকল কী?
প্রটোকল হলো কিছু নিয়ম-কানুনের সমষ্টি, যা একাধিক পক্ষ একে অপরের সাথে যোগাযোগ করার সময় অনুসরণ করে।
নেটওয়ার্ক প্রটোকল মানে—নেটওয়ার্কে থাকা মেশিনগুলো কিভাবে তথ্য আদান-প্রদান করবে, তার নিয়ম।
জনপ্রিয় নেটওয়ার্ক প্রটোকলসমূহ:
- 
IP (Internet Protocol) 
- 
TCP (Transmission Control Protocol) 
- 
HTTP (HyperText Transfer Protocol) 
IP এবং IP Address
- 
IP Address হলো ইন্টারনেটে যুক্ত একটি মেশিনের পরিচয়—যেটা চারটি নাম্বারে গঠিত (IPv4)। - 
উদাহরণ: 192.168.0.1
- 
127.0.0.1→ নিজ মেশিনকে বোঝায় (localhost)
 
- 
- 
Private Network: সাধারণত 192.168.x.xদিয়ে শুরু হয়।
IP কী করে?
- 
একটি মেশিন থেকে আরেকটিতে ডাটা পাঠায় IP address ব্যবহার করে। 
IP Packet
- 
IP Packet হলো এমন একটি ইউনিট, যার মাধ্যমে ডাটা এক মেশিন থেকে অন্য মেশিনে যায়। 
- 
এতে থাকে: - 
IP Header: Source & Destination IP, Size ইত্যাদি 
- 
Payload: আসল ডাটা 
 
- 
- 
সর্বোচ্চ সাইজ: 2^16bytes (~64 KB)
- 
যদি ডাটা বড় হয়, তখন সেটা ভাঙতে বা পুনঃপ্রেরণ করতে অন্য প্রটোকল যেমন TCP লাগে। 
TCP (Transmission Control Protocol)
- 
IP এর উপর ভিত্তি করে তৈরি, রিলায়েবল ডাটা ট্রান্সমিশন নিশ্চিত করে। 
- 
TCP কি করে: - 
হ্যান্ডশেকের মাধ্যমে সংযোগ স্থাপন করে (Client ↔ Server) 
- 
বড় ডাটাকে ভেঙে ছোট ছোট প্যাকেট করে 
- 
প্রতিটি প্যাকেটের সিরিয়াল নম্বর থাকে (অর্ডার ঠিক রাখতে) 
- 
ডাটা পৌঁছালে অ্যাকনলেজমেন্ট পাঠায় 
- 
প্যাকেট হারিয়ে গেলে আবার পাঠায় (retransmission) 
- 
নির্দিষ্ট সময় পর সংযোগ টাইমআউট হয়ে যায় 
 
- 
HTTP (HyperText Transfer Protocol)
- 
TCP-এর উপর তৈরি ক্লায়েন্ট-সার্ভার ভিত্তিক প্রটোকল। 
- 
Client → Request করে 
 Server → Response দেয়
HTTP Request এর কাঠামো:
- 
Start Line (উদাঃ: GET /index.html HTTP/1.1)
- 
Headers (উদাঃ: "Content-Type": "application/json")
- 
Blank Line 
- 
Body (Optional) 
HTTP Response এর কাঠামো:
- 
Status Line (উদাঃ: HTTP/1.1 200 OK)
- 
Headers (উদাঃ: "Content-Length": 1238)
- 
Blank Line 
- 
Body (মূল কন্টেন্ট) 
উদাহরণ:
Request:
GET /products HTTP/1.1
Host: example.com
Content-Type: application/json
Response:
HTTP/1.1 200 OK
Content-Length: 1238
Content-Type: application/json
{ "products": [...] }