Network Protocols
- প্রটোকল হচ্ছে কিছু নিয়ম এর সমষ্টি যা দুইটা বা তার বেশি পক্ষ যখন একে অন্যের সাথে কাজ করে তখন সেই নিয়ম মেনে চলে
- নেটওয়ার্ক প্রটোকল হচ্ছে নেটওয়ার্ক থাকা একাধিক মেশিন কিভাবে একে অন্যের সাথে কমিউনিকেশন করবে তার নিয়ম
- পপুলার নেটওয়ার্ক প্রটোকল হচ্ছে
- IP
- TCP
- HTTP
IP এড্রেস
- IP4 হচ্ছে চারটা নাম্বার দিয়ে তৈরি একটা আইডি, যা কিনা পাবলিক ইন্টারনেটে যুক্ত একটা মেশিনের এড্রেস হিসাবে ব্যাবহার করা হয়
- IP4 এ প্রতিটা নাম্বার 0 থেকে 255 পর্যন্ত হতে পারে
- 127.0.0.1 হচ্ছে একটা মেশিন এর নিজের IP
- প্রাইভেট নেটওার্ক এ IP4 শুরু হয় 192.168 দিয়ে
IP
- পূর্ণরূপ হচ্ছে Internet Protocol
- এর মূল কাজ হচ্ছে IP এড্রেস দিয়ে একটা মেশিনে থেকে আরেকটা মেশিনে ডাটা পাঠানো
IP Packet
- অনেক সময় IP প্যাকেটকে শুধুমাত্র প্যাকেট বলে
- IP প্যাকেট হচ্ছে IP প্রটোকল ব্যবহার করে নেটওয়ার্ক দিয়ে পাঠানো ডাটার ক্ষুদ্রতম অংশ
- IP প্যাকেটে থাকে
- IP header: সোর্স এবং ডেস্টিনেশন এর IP এড্রেস + সাইজ + আরো কিছু ইনফরমেশন
- Payload: ডাটা যা আমরা এক মেশিন থেকে অন্য মেশিনে পাঠাতে চাই
- IP প্যাকেট বাইট আকারে পাঠানো হয়ে থাকে
- IP প্যাকেট ২^১৬ বাইট পর্যন্ত ডাটা ক্যারি করতে পারে
- প্রবলেম হচ্ছে, ডাটার সাইজ ২^১৬ বাইট থেকে বেশি হলে সেটা IP Packet একা ট্রান্সফার করতে পারে না, তার জন্য নতুন প্রটোকল দরকার
TCP
- পূর্ণরূপ হচ্ছে Transmission Control Protocol
- TCP প্রটোকল IP প্রটোকল এর উপর তৈরি করা হয়েছে
- ডাটা ট্রান্সফার এর শুরুতে TCP প্রটোকল ক্লায়েন্ট এবং সার্ভার হ্যান্ডশেক করে কমিউনিকেশন শুরু করে
- TCP প্রটোকল বড় ডাটাকে ভেঙে ছোট ছোট প্যাকেট তৈরী করে
- এক্সট্রা হেডার থাকে, যেখানে প্যাকেটের সিরিয়াল বলা থাকে যেন পুনরায় ছোট ছোট প্যাকেট ডাটা জোড়া দিয়ে আবার অরিজিনাল ডাটা তৈরী করা যায়
- TCP প্রটোকল এ প্যাকেট ডাটা টার্গেট মেশিনে ট্রান্সফার হলে, টার্গেট থেকে সোর্স মেশিনে কনফার্ম করতে পারে যে ডাটা সাক্সেসফুলি ট্রান্সফার হয়েছে
- TCP প্রটোকল এ প্যাকেট ডাটা করাপ্ট হলে বা টার্গেট মেশিনে না পৌছালে সেই ডাটা আবার পাঠাতে পারে
- TCP প্রটোকল টাইম আউট আছে। ফলে একটা কানেকশন শুরু হলে এবং একটা সময় পার হলে সেই কানেকশন বাতিল হয়ে যায়
HTTP
- পূর্ণরূপ হচ্ছে HyperText Transfer Protocol
- এটা TCP প্রটোকল এর উপর তৈরী ক্লায়েন্ট - সার্ভার প্রটোকল
- এখানে ক্লায়েন্ট রিকোয়েস্ট করে এবং সার্ভার রেস্পন্স করে
- একটা HTTP Request মেসেজ এ চারটা ভাগ থাকে
- Start-line or Request Line
- Request Headers
- Blank line
- Request Body (অপশনাল)
- একটা HTTP Response ও চার ভাগে ভাগ করা থাকে
- Status line
- Response Headers
- Blank Line
- and Response body
- একটা HTTP দেখতে অনেকটা নিচের মতো
host: string (example: algoexpert.io) port: integer (example: 80 or 443) method: string (example: GET, PUT, POST, DELETE, OPTIONS or PATCH) headers: pair list (example: "Content-Type" => "application/json") body: opaque sequence of bytes
- একটা HTTP রেস্পন্স দেখতে অনেকটা নিচের মতো
status code: integer (example: 200, 401) headers: pair list (example: "Content-Length" => 1238) body: opaque sequence of bytes