পাঠ ০১ · ৫৭-এর মধ্যে · মডিউল ১
Home / Courses / Computer Networks / পরিচিতি

কম্পিউটার নেটওয়ার্ক কী ও কেন গুরুত্বপূর্ণ

What is a computer network & why it matters
৯ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • কম্পিউটার নেটওয়ার্কের সংজ্ঞা ও এর মূল উদ্দেশ্য
  • স্কেল অনুযায়ী নেটওয়ার্কের প্রকারভেদ (PAN, LAN, MAN, WAN)
  • ক্লায়েন্ট-সার্ভার ও Peer-to-Peer মডেলের পার্থক্য ও ট্রেড-অফ
  • কেন নেটওয়ার্কিং একটি স্তরভিত্তিক প্রোটোকল স্ট্যাক ব্যবহার করে — Python দিয়ে এনক্যাপসুলেশনের একটি ছোট্ট সিমুলেশন

১ · কম্পিউটার নেটওয়ার্ক কী

কম্পিউটার নেটওয়ার্কComputer Networkপরস্পর সংযুক্ত দুই বা ততোধিক ডিভাইসের একটি সমষ্টি, যারা তারযুক্ত বা তারবিহীন মাধ্যমে ডেটা আদান-প্রদান করতে পারে। মানে দুই বা ততোধিক ডিভাইস যারা একে অপরের সাথে ডেটা আদান-প্রদান করতে পারে। এই সংযোগের তিনটি মূল উদ্দেশ্য —

রিসোর্স শেয়ারিং
একটি প্রিন্টার, ফাইল সার্ভার বা ইন্টারনেট কানেকশন একাধিক ডিভাইস একসাথে ব্যবহার করতে পারে।
যোগাযোগ
ইমেইল, মেসেজিং, ভিডিও কল — মানুষে মানুষে বা প্রোগ্রামে প্রোগ্রামে যোগাযোগ সম্ভব করে।
নির্ভরযোগ্যতা
একাধিক পথ ও ব্যাকআপ সার্ভার থাকলে একটি সংযোগ নষ্ট হলেও সিস্টেম চলতে থাকে।

২ · স্কেল অনুযায়ী নেটওয়ার্কের প্রকারভেদ

নেটওয়ার্ককে সাধারণত তাদের ভৌগোলিক বিস্তৃতি অনুযায়ী শ্রেণিবদ্ধ করা হয় —

  • PAN (Personal Area Network) — কয়েক মিটারের মধ্যে, যেমন আপনার ফোন ও ব্লুটুথ হেডফোনের মধ্যে সংযোগ।
  • LAN (Local Area Network) — একটি বাড়ি, অফিস বা ক্যাম্পাসের মধ্যে, সাধারণত কয়েকশ মিটার পর্যন্ত।
  • MAN (Metropolitan Area Network) — একটি শহর বা বড় ক্যাম্পাস জুড়ে, কয়েক কিলোমিটার পর্যন্ত।
  • WAN (Wide Area Network) — দেশ বা মহাদেশ জুড়ে বিস্তৃত — ইন্টারনেট নিজেই বিশ্বের বৃহত্তম WAN, যা লক্ষ লক্ষ ছোট LAN-কে একত্র করে।
মূল অন্তর্দৃষ্টি

ইন্টারনেট আসলে একটি একক, বিশাল নেটওয়ার্ক নয় — এটি লক্ষ লক্ষ স্বতন্ত্র LAN ও MAN-এর একটি "নেটওয়ার্কদের নেটওয়ার্ক" (network of networks), যারা রাউটার ও দীর্ঘ-দূরত্বের লিংকের মাধ্যমে পরস্পর সংযুক্ত। M4-এ আমরা দেখব কীভাবে রাউটিং এই বিশাল, বিকেন্দ্রীভূত কাঠামোতে একটি প্যাকেটের সঠিক পথ খুঁজে বের করে।

৩ · ক্লায়েন্ট-সার্ভার বনাম Peer-to-Peer (P2P)

নেটওয়ার্কে ডিভাইসগুলো কীভাবে একে অপরের সাথে যোগাযোগ করে তার দুটি মৌলিক মডেল আছে —

  • ক্লায়েন্ট-সার্ভারClient-Server Modelএকটি কেন্দ্রীয় সার্ভার সার্ভিস প্রদান করে, ক্লায়েন্টরা সেই সার্ভিস অনুরোধ করে। বেশিরভাগ ওয়েবসাইট এই মডেলে চলে। মডেল — একটি কেন্দ্রীয় সার্ভার সার্ভিস দেয়, ক্লায়েন্টরা অনুরোধ পাঠায় (যেমন একটি ওয়েবসাইট ব্রাউজ করা)। ব্যবস্থাপনা সহজ, কিন্তু সার্ভার একটি single point of failure ও bottleneck হতে পারে।
  • Peer-to-Peer (P2P)Peer-to-Peerকোনো কেন্দ্রীয় সার্ভার নেই — প্রতিটি নোড (peer) একই সাথে ক্লায়েন্ট ও সার্ভার উভয়ের ভূমিকা পালন করে। উদাহরণ: BitTorrent। মডেল — কোনো কেন্দ্রীয় সার্ভার নেই, প্রতিটি নোড ক্লায়েন্ট ও সার্ভার উভয়ই। বেশি স্কেলেবল ও ফল্ট-টলারেন্ট, কিন্তু কো-অর্ডিনেশন ও নিরাপত্তা নিয়ন্ত্রণ করা কঠিন।

৪ · কেন নেটওয়ার্কিং স্তরভিত্তিক (Layered) — এই কোর্সের কাঠামো

একটি চিঠি পাঠানোর কথা চিন্তা করুন — আপনি চিঠি লেখেন (বিষয়বস্তু), একটি খামে ভরে ঠিকানা লেখেন (ঠিকানা-স্তর), আর ডাকপিয়ন সেটি শারীরিকভাবে পরিবহন করে (পরিবহন-স্তর)। প্রতিটি স্তর তার নিজের কাজ করে, অন্য স্তরের ভেতরের বিষয়বস্তু নিয়ে মাথা ঘামায় না। নেটওয়ার্কিংও ঠিক এভাবেই স্তরভিত্তিক প্রোটোকল স্ট্যাকLayered Protocol Stackনেটওয়ার্কিং ফাংশনকে স্বতন্ত্র স্তরে ভাগ করার নকশা — প্রতিটি স্তর শুধু তার ঠিক উপরের ও নিচের স্তরের সাথে একটি সুনির্দিষ্ট ইন্টারফেসের মাধ্যমে যোগাযোগ করে। OSI (M1/L03) ও TCP/IP (M1/L04) মডেল এই নীতির উপর ভিত্তি করে তৈরি। ব্যবহার করে — ডেটা পাঠানোর সময় প্রতিটি স্তর তার নিজস্ব "হেডার" যোগ করে (একে এনক্যাপসুলেশন বলে), আর গ্রহণের সময় প্রতিটি স্তর ঠিক বিপরীত ক্রমে তার হেডার সরিয়ে নেয় (ডিক্যাপসুলেশন)।

কেন এই মডুলারিটি গুরুত্বপূর্ণ

যেহেতু প্রতিটি স্তর শুধু তার ঠিক পাশের স্তরের সাথে একটি সুনির্দিষ্ট ইন্টারফেসের মাধ্যমে কথা বলে, আপনি একটি স্তর বদলে ফেললেও (যেমন Ethernet-এর বদলে WiFi ব্যবহার করা) উপরের স্তরগুলো (যেমন HTTP) কিছুই টের পায় না — সেগুলোর কোনো পরিবর্তনের দরকার নেই। এই কোর্সের M2-M6 ঠিক এই স্তরগুলোর ক্রম অনুসরণ করে — ফিজিক্যাল থেকে অ্যাপ্লিকেশন পর্যন্ত।

Python
# একটি সরলীকৃত এনক্যাপসুলেশন/ডিক্যাপসুলেশন সিমুলেশন
app_data = "Hello, ABCL TECH!"

# --- প্রেরক পাশে: প্রতিটি স্তর তার নিজের হেডার যোগ করে ---
transport_segment = f"[TCP:port=443]{app_data}"
network_packet = f"[IP:src=10.0.0.5,dst=93.184.216.34]{transport_segment}"
link_frame = f"[Ethernet:mac=AA:BB:CC:DD:EE:FF]{network_packet}"

print("প্রেরক পাশে এনক্যাপসুলেশন:")
print(" অ্যাপ্লিকেশন ডেটা:  ", app_data)
print(" + ট্রান্সপোর্ট হেডার:", transport_segment)
print(" + নেটওয়ার্ক হেডার:   ", network_packet)
print(" + ডেটা লিংক হেডার:   ", link_frame)

# --- গ্রাহক পাশে: ঠিক বিপরীত ক্রমে প্রতিটি হেডার সরানো হয় ---
after_link = link_frame.split("]", 1)[1]
after_network = after_link.split("]", 1)[1]
after_transport = after_network.split("]", 1)[1]

print("\nগ্রাহক পাশে ডিক্যাপসুলেশন:")
print(" ডেটা লিংক হেডার সরানোর পর:  ", after_link)
print(" নেটওয়ার্ক হেডার সরানোর পর:  ", after_network)
print(" ট্রান্সপোর্ট হেডার সরানোর পর:", after_transport)
print("\nমূল অ্যাপ্লিকেশন ডেটার সাথে মিলছে?", after_transport == app_data)

    
অ্যাপ্লিকেশন ডেটা + TCP হেডার (ট্রান্সপোর্ট) + IP হেডার (নেটওয়ার্ক)
প্রতিটি নিচের স্তর উপরের স্তরের সম্পূর্ণ ডেটাকে তার নিজের হেডারে মুড়ে দেয় — এটিই এনক্যাপসুলেশন।
লক্ষ্য করুন — ডিক্যাপসুলেশনের পর মূল app_data ঠিক অপরিবর্তিত ফিরে এসেছে। বাস্তব নেটওয়ার্কে এই প্রতিটি "হেডার" (TCP, IP, Ethernet) আসলে নির্দিষ্ট বাইনারি ফরম্যাটের বাইট — M3-M5-এ আমরা এই হেডারগুলোর প্রকৃত গঠন বিস্তারিত দেখব।
মূল কথা · Key takeaway

একটি কম্পিউটার নেটওয়ার্ক আসলে একটি বিশাল, সমন্বিত প্রকৌশল কীর্তি — যেখানে প্রতিটি স্তর তার নিজের সংকীর্ণ দায়িত্ব পালন করে, একে অপরের উপর নির্ভর করে, অথচ একে অপরের অভ্যন্তরীণ জটিলতা সম্পর্কে সম্পূর্ণ অজ্ঞ থাকে। এই কোর্স ঠিক এই স্তরগুলো — ফিজিক্যাল থেকে অ্যাপ্লিকেশন পর্যন্ত — একে একে খুলে দেখাবে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ ইন্টারনেটকে "নেটওয়ার্কদের নেটওয়ার্ক" বলা হয় কেন — এটি কি একটিমাত্র বিশাল নেটওয়ার্ক নয়?

ইন্টারনেট হলো লক্ষ লক্ষ স্বতন্ত্রভাবে পরিচালিত LAN, MAN ও ISP নেটওয়ার্কের সমষ্টি, যারা রাউটার ও আন্তর্জাতিক লিংকের মাধ্যমে পরস্পর সংযুক্ত। কোনো একক প্রতিষ্ঠান পুরো ইন্টারনেট মালিকানাধীন বা পরিচালনা করে না — প্রতিটি নেটওয়ার্ক তার নিজের অংশ পরিচালনা করে এবং BGP-এর মতো প্রোটোকলের (M4/L20) মাধ্যমে অন্যদের সাথে কীভাবে ট্রাফিক আদান-প্রদান করবে তা সমন্বয় করে।

প্র ০২ BitTorrent-এর মতো একটি P2P সিস্টেম কেন ক্লায়েন্ট-সার্ভার মডেলের চেয়ে বেশি স্কেলেবল হতে পারে?

ক্লায়েন্ট-সার্ভার মডেলে, ফাইল ডাউনলোড করা প্রতিটি ক্লায়েন্ট একটি একক সার্ভারের ব্যান্ডউইথ ব্যবহার করে — যত বেশি ক্লায়েন্ট, সার্ভারের উপর তত বেশি চাপ। P2P-তে, প্রতিটি ডাউনলোডকারী নোড একই সাথে অন্যদের কাছে সেই ফাইলের অংশ আপলোডও করে — তাই যত বেশি ব্যবহারকারী যোগ দেয়, সিস্টেমের মোট আপলোড ক্যাপাসিটিও তত বাড়ে, কোনো একক কেন্দ্রীয় বটলনেক ছাড়াই।

প্র ০৩ এনক্যাপসুলেশনের "মডুলারিটি" সুবিধা — একটি বাস্তব উদাহরণ দিন যেখানে এটি ব্যবহারিকভাবে কাজে লাগে।

আপনি যখন WiFi থেকে মোবাইল ডেটা (4G/5G)-তে স্যুইচ করেন (ফিজিক্যাল ও ডেটা লিংক স্তর সম্পূর্ণ বদলে যায়), তখন আপনার ব্রাউজারের HTTP সেশন (অ্যাপ্লিকেশন স্তর) কোনো পরিবর্তন ছাড়াই চলতে থাকে — কারণ HTTP শুধু জানে যে নিচে TCP/IP আছে, নিচে ঠিক কোন ফিজিক্যাল মাধ্যম ব্যবহৃত হচ্ছে তা নিয়ে এটি সম্পূর্ণ অজ্ঞ। এই মডুলারিটিই আধুনিক নেটওয়ার্কিংকে এত নমনীয় করে তুলেছে।

অনুশীলন

  1. চিন্তা করুন: আপনার বাসা বা অফিসের নেটওয়ার্ক সেটআপ পর্যবেক্ষণ করুন এবং চিহ্নিত করুন এতে কোন কোন স্কেলের নেটওয়ার্ক (PAN/LAN/WAN) জড়িত।

    উদাহরণ: আপনার ফোন ও স্মার্টওয়াচের মধ্যে ব্লুটুথ সংযোগ (PAN), বাসার রাউটারের সাথে সংযুক্ত সব ডিভাইস (LAN), এবং সেই রাউটার ইন্টারনেট সার্ভিস প্রোভাইডারের মাধ্যমে বিশ্বব্যাপী ইন্টারনেটের (WAN) সাথে সংযুক্ত — একটি সাধারণ বাসাতেই সাধারণত তিনটি স্কেলই একসাথে উপস্থিত থাকে।

  2. পরীক্ষা করুন: উপরের কোড সেলে app_data-এর মান পরিবর্তন করে অন্য কোনো বার্তা বসান এবং Run চেপে দেখুন এনক্যাপসুলেশন/ডিক্যাপসুলেশন এখনও সঠিকভাবে কাজ করে কি না।

    যেকোনো টেক্সট বসালেও শেষ লাইনে True আসা উচিত, কারণ ডিক্যাপসুলেশন প্রক্রিয়াটি ঠিক এনক্যাপসুলেশনের বিপরীত ক্রমে হেডার সরায় — যত হেডার যোগ হয়েছিল, ঠিক ততগুলোই সরানো হয়, মূল ডেটা অপরিবর্তিত রেখে। এটিই এনক্যাপসুলেশনের নির্ভরযোগ্যতার মূল নিশ্চয়তা।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোর্সে ফিরে যান
Computer Networks — সব পাঠ