পাঠ ০৭ · ৫৭-এর মধ্যে · মডিউল ২
Home / Courses / Computer Networks / মাল্টিপ্লেক্সিং

মাল্টিপ্লেক্সিং — FDM, TDM, WDM

Multiplexing — FDM, TDM, WDM
৭ মিনিট পড়া প্রাথমিক · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

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

  • মাল্টিপ্লেক্সিং কী ও কেন এটি নেটওয়ার্কিং-এ অপরিহার্য
  • FDM কীভাবে ফ্রিকোয়েন্সি ব্যান্ড ভাগ করে সিগন্যাল আলাদা রাখে
  • TDM-এর সিনক্রোনাস ও স্ট্যাটিস্টিক্যাল সংস্করণের পার্থক্য ও দক্ষতার তুলনা
  • WDM ফাইবার অপটিক ব্যাকবোনে কীভাবে ব্যবহৃত হয়
  • Python দিয়ে সিনক্রোনাস বনাম স্ট্যাটিস্টিক্যাল TDM-এর স্লট-ব্যবহার সিমুলেশন

১ · মাল্টিপ্লেক্সিং কী ও কেন দরকার

মাল্টিপ্লেক্সিংMultiplexingএকটি একক ফিজিক্যাল মাধ্যম (কেবল, ফাইবার, রেডিও চ্যানেল) দিয়ে একাধিক স্বতন্ত্র সিগন্যাল/ব্যবহারকারীর ডেটা একসাথে পাঠানোর কৌশল। একটি একক তার, ফাইবার বা রেডিও চ্যানেল বসানো ব্যয়বহুল — তাই প্রতিটি ব্যবহারকারীর জন্য আলাদা আলাদা মাধ্যম না বসিয়ে, একটিমাত্র শেয়ার্ড মাধ্যমে একাধিক সিগন্যাল একসাথে পাঠানোর কৌশলই মাল্টিপ্লেক্সিং। M1/L05-এ আমরা দেখেছি ট্রান্সমিশন মিডিয়া ব্যয়বহুল হতে পারে (বিশেষ করে ফাইবার বসানো) — মাল্টিপ্লেক্সিং সেই একই বিনিয়োগ থেকে সর্বোচ্চ মূল্য বের করে আনে।

তিনটি প্রধান কৌশল আছে — FDM (ফ্রিকোয়েন্সি ভাগ করা), TDM (সময় ভাগ করা), আর WDM (ফাইবারে আলোর ওয়েভলেংথ ভাগ করা, মূলত FDM-এরই একটি বিশেষ রূপ)।

২ · FDM — Frequency Division Multiplexing

FDMFrequency Division Multiplexingউপলব্ধ ব্যান্ডউইথকে আলাদা আলাদা ফ্রিকোয়েন্সি ব্যান্ডে ভাগ করা — প্রতিটি সিগন্যাল তার নিজস্ব ব্যান্ডে সার্বক্ষণিকভাবে চলতে থাকে। উপলব্ধ ব্যান্ডউইথকে (M1/L06) একাধিক আলাদা ফ্রিকোয়েন্সি ব্যান্ডে ভাগ করে, প্রতিটি সিগন্যাল/ব্যবহারকারীকে তার নিজস্ব একটি ব্যান্ড দেওয়া হয় — সবগুলো ব্যান্ড একই সময়ে সমান্তরালভাবে সক্রিয় থাকে। এটি প্রথাগত রেডিও/টিভি সম্প্রচারের ভিত্তি — প্রতিটি স্টেশনের নিজস্ব ফ্রিকোয়েন্সি ব্যান্ড থাকে, তাই আপনি ডায়াল ঘুরিয়ে যেকোনো একটি বেছে নিতে পারেন। আধুনিক WiFi-ও একাধিক চ্যানেলে (ফ্রিকোয়েন্সি ব্যান্ডে) কাজ করে একই ধারণা ব্যবহার করে।

৩ · TDM — Time Division Multiplexing

TDMTime Division Multiplexingপ্রতিটি সিগন্যাল সম্পূর্ণ ব্যান্ডউইথ পায়, কিন্তু শুধু একটি ছোট, ঘূর্ণায়মান সময়-স্লটের জন্য। পদ্ধতিতে প্রতিটি সিগন্যাল পুরো ব্যান্ডউইথ ব্যবহার করতে পারে, কিন্তু শুধুমাত্র একটি সংক্ষিপ্ত সময়-স্লটের জন্য — স্লটগুলো ব্যবহারকারীদের মধ্যে পালাক্রমে ঘোরে। প্রথাগত ডিজিটাল ফোন লাইনগুলো এভাবেই কাজ করত।

  • সিনক্রোনাস TDM — প্রতিটি ব্যবহারকারীকে একটি নির্দিষ্ট, পূর্ব-নির্ধারিত স্লট দেওয়া হয়, প্রতি রাউন্ডে — সেই ব্যবহারকারীর কাছে পাঠানোর মতো কিছু না থাকলেও স্লটটি তার জন্যই সংরক্ষিত থাকে (নষ্ট হয়ে যায়)।
  • স্ট্যাটিস্টিক্যাল (অ্যাসিনক্রোনাস) TDM — স্লট গতিশীলভাবে বরাদ্দ করা হয়, শুধুমাত্র যাদের সত্যিই পাঠানোর ডেটা আছে তাদের — অলস ব্যবহারকারীদের বাদ দিয়ে অনেক বেশি দক্ষ। আধুনিক ইন্টারনেটের প্যাকেট-সুইচিং এই ধারণার সাথেই অনেক বেশি মিলে যায় — কোনো ব্যবহারকারী ডেটা পাঠাতে না চাইলে, তার জন্য কোনো ব্যান্ডউইথ নষ্ট হয় না।
মূল অন্তর্দৃষ্টি

সিনক্রোনাস TDM সহজ ও পূর্বানুমানযোগ্য, কিন্তু ট্রাফিক অসম হলে (কেউ ব্যস্ত, কেউ অলস) ব্যান্ডউইথ নষ্ট করে। স্ট্যাটিস্টিক্যাল TDM জটিল (কার স্লট কখন, তা ট্র্যাক করতে হয়) কিন্তু বাস্তব, অনিয়মিত ট্রাফিক প্যাটার্নে অনেক বেশি কার্যকর — এই কারণেই আধুনিক প্যাকেট-সুইচড নেটওয়ার্ক (M4-M5) এই দর্শন অনুসরণ করে, পুরনো সার্কিট-সুইচড ফোন নেটওয়ার্কের বিপরীতে।

৪ · WDM — Wavelength Division Multiplexing

WDMWavelength Division Multiplexingফাইবার অপটিক-নির্দিষ্ট FDM — একই ফাইবার স্ট্র্যান্ডে একাধিক আলোর ওয়েভলেংথ (রঙ) একসাথে বহন করা। মূলত FDM-এরই একটি ফাইবার-অপটিক-নির্দিষ্ট সংস্করণ — একই ফাইবার স্ট্র্যান্ডে একাধিক আলোর ওয়েভলেংথ (রঙ) একসাথে বহন করা হয়, প্রতিটি ওয়েভলেংথ একটি স্বতন্ত্র "চ্যানেল" হিসেবে কাজ করে। এটি লং-হল ফাইবার ব্যাকবোন লিংকে ব্যবহৃত হয় — নতুন ফাইবার বসানোর বদলে, একই ফাইবারে আরও ওয়েভলেংথ যোগ করে ক্যাপাসিটি বহুগুণ বাড়ানো যায়।

Python
# সিনক্রোনাস TDM বনাম স্ট্যাটিস্টিক্যাল TDM — একটি সিমুলেশন
# ৪টি সোর্স, প্রতিটির ৬ রাউন্ডের ট্রাফিক প্যাটার্ন (None মানে সেই রাউন্ডে পাঠানোর কিছু নেই)
traffic = {
    "A": ["p1", "p2", None, None, "p3", None],
    "B": [None, "p1", "p2", None, None, None],
    "C": ["p1", None, None, "p2", "p3", "p4"],
    "D": [None, None, None, None, None, "p1"],
}
num_rounds = 6
sources = list(traffic.keys())

def synchronous_tdm(traffic, num_rounds, sources):
    """প্রতিটি সোর্স প্রতি রাউন্ডে একটি নির্দিষ্ট স্লট পায় -- ডেটা না থাকলেও স্লট ব্যবহৃত (নষ্ট) হয়।"""
    slots_used = 0
    for r in range(num_rounds):
        for s in sources:
            slots_used += 1
            pkt = traffic[s][r]
            status = "SENT" if pkt else "WASTED (idle)"
            print(f"  রাউন্ড {r}, স্লট -> {s}: {status}")
    return slots_used

def statistical_tdm(traffic, num_rounds, sources):
    """শুধু যেসব সোর্সের কাছে সত্যিই ডেটা আছে, তাদেরই স্লট দেওয়া হয়।"""
    slots_used = 0
    for r in range(num_rounds):
        for s in sources:
            pkt = traffic[s][r]
            if pkt is not None:
                slots_used += 1
                print(f"  রাউন্ড {r}, স্লট -> {s}: SENT")
    return slots_used

print("=== সিনক্রোনাস TDM ===")
sync_slots = synchronous_tdm(traffic, num_rounds, sources)
print("\n=== স্ট্যাটিস্টিক্যাল TDM ===")
stat_slots = statistical_tdm(traffic, num_rounds, sources)

print(f"\nসিনক্রোনাস TDM মোট স্লট ব্যবহার:    {sync_slots}")
print(f"স্ট্যাটিস্টিক্যাল TDM মোট স্লট ব্যবহার: {stat_slots}")
print(f"স্ট্যাটিস্টিক্যাল TDM কতটা কম স্লট ব্যবহার করলো: {sync_slots - stat_slots} স্লট বাঁচলো")

    
FDM — একই সময়ে, আলাদা ফ্রিকোয়েন্সি চ্যানেল ১ / ২ / ৩ — একসাথে সক্রিয় TDM — একই ফ্রিকোয়েন্সি, আলাদা সময়-স্লট স্লট ১ → স্লট ২ → স্লট ৩ (পালাক্রমে) WDM — ফাইবারে একাধিক আলোর ওয়েভলেংথ FDM-এর ফাইবার-অপটিক সংস্করণ, লং-হল ব্যাকবোনে
FDM ফ্রিকোয়েন্সি স্পেসে ভাগ করে, TDM সময়ে ভাগ করে, WDM ফাইবারে একাধিক আলোর রঙ ব্যবহার করে — তিনটিই একই মূল সমস্যার (একটি মাধ্যম, অনেক ব্যবহারকারী) ভিন্ন সমাধান।
লক্ষ্য করুন — উপরের সিমুলেশনে স্ট্যাটিস্টিক্যাল TDM ঠিক ততগুলো স্লট ব্যবহার করেছে যতগুলো প্রকৃত প্যাকেট পাঠানোর ছিল (১০টি), অথচ সিনক্রোনাস TDM ব্যবহার করেছে ২৪টি স্লট (৪ সোর্স × ৬ রাউন্ড) — বাকিগুলো অলস সময়ে নষ্ট হয়েছে। এই পার্থক্যটিই M4-M5-এ প্যাকেট-সুইচিং কেন সার্কিট-সুইচিং-এর চেয়ে বেশি দক্ষ তার মূল কারণ।
মূল কথা · Key takeaway

মাল্টিপ্লেক্সিং — চাই ফ্রিকোয়েন্সিতে (FDM/WDM) হোক বা সময়ে (TDM) — একটি ব্যয়বহুল ফিজিক্যাল মাধ্যম থেকে সর্বোচ্চ মূল্য আদায়ের কৌশল। স্ট্যাটিস্টিক্যাল TDM-এর "শুধু যার দরকার তাকেই দাও" দর্শনই M3 থেকে শুরু হওয়া ফ্রেমিং, প্যাকেট-সুইচিং ও পুরো আধুনিক ইন্টারনেটের ভিত্তি তৈরি করে।

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

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

প্র ০১ সিনক্রোনাস TDM কখন স্ট্যাটিস্টিক্যাল TDM-এর চেয়ে ভালো পছন্দ হতে পারে?

যখন প্রতিটি ব্যবহারকারীর ট্রাফিক পূর্বানুমানযোগ্য ও প্রায় ধ্রুবক (যেমন একটি লাইভ ভয়েস কল, যা সবসময় ডেটা পাঠায়) — সেক্ষেত্রে সিনক্রোনাস TDM-এর সরলতা ও নিশ্চিত লেটেন্সি (প্রতিটি ব্যবহারকারী জানে ঠিক কখন তার স্লট আসবে) স্ট্যাটিস্টিক্যাল TDM-এর জটিলতার চেয়ে বেশি মূল্যবান হতে পারে, বিশেষ করে রিয়েল-টাইম যোগাযোগে যেখানে অনির্দিষ্ট বিলম্ব সহ্য করা যায় না।

প্র ০২ WDM-কে কেন "ফাইবার অপটিক-নির্দিষ্ট FDM" বলা হয় — এটি কপার তারে কেন ব্যবহার করা যায় না?

WDM নির্ভর করে একই মাধ্যমে একাধিক আলাদা আলোর ওয়েভলেংথ (রঙ) সমান্তরালভাবে পাঠানোর উপর, যা শুধুমাত্র ফাইবার অপটিকের ক্ষেত্রেই সম্ভব — কারণ ফাইবার আলো বহন করে (M1/L05)। কপার তার বৈদ্যুতিক সিগন্যাল বহন করে, যেখানে "ওয়েভলেংথ" ধারণাটি ভিন্নভাবে কাজ করে — সেখানে সমতুল্য কৌশল হলো সরাসরি ফ্রিকোয়েন্সি-ভিত্তিক FDM, ভিন্ন নামে হলেও একই মূল ধারণা।

প্র ০৩ উপরের কোড সিমুলেশনে যদি সব ৪টি সোর্স প্রতিটি রাউন্ডে সবসময় ব্যস্ত থাকতো (কখনো idle না হতো), তাহলে সিনক্রোনাস ও স্ট্যাটিস্টিক্যাল TDM-এর স্লট সংখ্যায় কী পার্থক্য হতো?

কোনো পার্থক্য থাকতো না — দুটোই ঠিক একই সংখ্যক স্লট (২৪টি) ব্যবহার করতো, কারণ স্ট্যাটিস্টিক্যাল TDM তখনই বাড়তি দক্ষতা দেয় যখন কিছু সোর্স অলস থাকে (বাদ দেওয়ার মতো স্লট থাকে)। সব সোর্স সবসময় ব্যস্ত থাকলে "নষ্ট" হওয়ার মতো কোনো স্লট থাকে না, তাই দুই পদ্ধতিই সমান দক্ষ হয়ে যায় — এটিই দেখায় কেন স্ট্যাটিস্টিক্যাল TDM-এর সুবিধা নির্ভর করে ট্রাফিকের অনিয়মিততার (burstiness) উপর।

অনুশীলন

  1. পরীক্ষা করুন: উপরের কোড সেলে traffic ডিকশনারিতে একটি নতুন সোর্স "E" যোগ করুন যেটি সবসময় idle (সব None) — সিনক্রোনাস ও স্ট্যাটিস্টিক্যাল TDM-এর স্লট সংখ্যা কীভাবে বদলায় দেখুন।

    সিনক্রোনাস TDM-এর মোট স্লট সংখ্যা বাড়বে (৬টি বাড়তি রাউন্ড × ১ স্লট = ৬টি বাড়তি, সবই নষ্ট), কিন্তু স্ট্যাটিস্টিক্যাল TDM-এর স্লট সংখ্যা একদম অপরিবর্তিত থাকবে — কারণ "E" কখনো ডেটা পাঠায় না, তাই তাকে কোনো স্লট বরাদ্দ করাই হবে না। এটিই স্ট্যাটিস্টিক্যাল TDM-এর মূল সুবিধা প্রমাণ করে।

  2. চিন্তা করুন: WhatsApp ভয়েস কল বা ভিডিও স্ট্রিমিং-এর ডেটা আজকের ইন্টারনেটে কীভাবে মাল্টিপ্লেক্স করা হয় — এটি কি FDM, TDM নাকি অন্য কিছুর কাছাকাছি?

    আধুনিক ইন্টারনেট প্যাকেট-সুইচিং ব্যবহার করে, যা মূলত স্ট্যাটিস্টিক্যাল TDM-এর ধারণার একটি সম্প্রসারণ — প্রতিটি অ্যাপ্লিকেশনের ডেটা ছোট প্যাকেটে ভাগ হয়ে শেয়ার্ড লিংকে পাঠানো হয়, শুধুমাত্র যখন সেই অ্যাপ্লিকেশনের পাঠানোর মতো ডেটা থাকে। এটি সরাসরি FDM বা প্রথাগত সিনক্রোনাস TDM নয়, বরং একটি অনেক বেশি নমনীয়, চাহিদা-ভিত্তিক ভাগাভাগি — এই কোর্সের M4-M5-এ আমরা এই প্যাকেট-সুইচিং প্রক্রিয়া বিস্তারিত দেখব।

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

আগের পাঠ
সিগন্যাল, ব্যান্ডউইথ ও ডেটা রেট