Blog top image

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