মাল্টিপ্লেক্সিং — FDM, TDM, WDM
এই পাঠে যা শিখবেন
- মাল্টিপ্লেক্সিং কী ও কেন এটি নেটওয়ার্কিং-এ অপরিহার্য
- 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-এরই একটি ফাইবার-অপটিক-নির্দিষ্ট সংস্করণ — একই ফাইবার স্ট্র্যান্ডে একাধিক আলোর ওয়েভলেংথ (রঙ) একসাথে বহন করা হয়, প্রতিটি ওয়েভলেংথ একটি স্বতন্ত্র "চ্যানেল" হিসেবে কাজ করে। এটি লং-হল ফাইবার ব্যাকবোন লিংকে ব্যবহৃত হয় — নতুন ফাইবার বসানোর বদলে, একই ফাইবারে আরও ওয়েভলেংথ যোগ করে ক্যাপাসিটি বহুগুণ বাড়ানো যায়।
# সিনক্রোনাস 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/WDM) হোক বা সময়ে (TDM) — একটি ব্যয়বহুল ফিজিক্যাল মাধ্যম থেকে সর্বোচ্চ মূল্য আদায়ের কৌশল। স্ট্যাটিস্টিক্যাল TDM-এর "শুধু যার দরকার তাকেই দাও" দর্শনই M3 থেকে শুরু হওয়া ফ্রেমিং, প্যাকেট-সুইচিং ও পুরো আধুনিক ইন্টারনেটের ভিত্তি তৈরি করে।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ সিনক্রোনাস TDM কখন স্ট্যাটিস্টিক্যাল TDM-এর চেয়ে ভালো পছন্দ হতে পারে?
যখন প্রতিটি ব্যবহারকারীর ট্রাফিক পূর্বানুমানযোগ্য ও প্রায় ধ্রুবক (যেমন একটি লাইভ ভয়েস কল, যা সবসময় ডেটা পাঠায়) — সেক্ষেত্রে সিনক্রোনাস TDM-এর সরলতা ও নিশ্চিত লেটেন্সি (প্রতিটি ব্যবহারকারী জানে ঠিক কখন তার স্লট আসবে) স্ট্যাটিস্টিক্যাল TDM-এর জটিলতার চেয়ে বেশি মূল্যবান হতে পারে, বিশেষ করে রিয়েল-টাইম যোগাযোগে যেখানে অনির্দিষ্ট বিলম্ব সহ্য করা যায় না।
প্র ০২ WDM-কে কেন "ফাইবার অপটিক-নির্দিষ্ট FDM" বলা হয় — এটি কপার তারে কেন ব্যবহার করা যায় না?
WDM নির্ভর করে একই মাধ্যমে একাধিক আলাদা আলোর ওয়েভলেংথ (রঙ) সমান্তরালভাবে পাঠানোর উপর, যা শুধুমাত্র ফাইবার অপটিকের ক্ষেত্রেই সম্ভব — কারণ ফাইবার আলো বহন করে (M1/L05)। কপার তার বৈদ্যুতিক সিগন্যাল বহন করে, যেখানে "ওয়েভলেংথ" ধারণাটি ভিন্নভাবে কাজ করে — সেখানে সমতুল্য কৌশল হলো সরাসরি ফ্রিকোয়েন্সি-ভিত্তিক FDM, ভিন্ন নামে হলেও একই মূল ধারণা।
প্র ০৩ উপরের কোড সিমুলেশনে যদি সব ৪টি সোর্স প্রতিটি রাউন্ডে সবসময় ব্যস্ত থাকতো (কখনো idle না হতো), তাহলে সিনক্রোনাস ও স্ট্যাটিস্টিক্যাল TDM-এর স্লট সংখ্যায় কী পার্থক্য হতো?
কোনো পার্থক্য থাকতো না — দুটোই ঠিক একই সংখ্যক স্লট (২৪টি) ব্যবহার করতো, কারণ স্ট্যাটিস্টিক্যাল TDM তখনই বাড়তি দক্ষতা দেয় যখন কিছু সোর্স অলস থাকে (বাদ দেওয়ার মতো স্লট থাকে)। সব সোর্স সবসময় ব্যস্ত থাকলে "নষ্ট" হওয়ার মতো কোনো স্লট থাকে না, তাই দুই পদ্ধতিই সমান দক্ষ হয়ে যায় — এটিই দেখায় কেন স্ট্যাটিস্টিক্যাল TDM-এর সুবিধা নির্ভর করে ট্রাফিকের অনিয়মিততার (burstiness) উপর।
অনুশীলন
-
পরীক্ষা করুন: উপরের কোড সেলে
trafficডিকশনারিতে একটি নতুন সোর্স "E" যোগ করুন যেটি সবসময় idle (সবNone) — সিনক্রোনাস ও স্ট্যাটিস্টিক্যাল TDM-এর স্লট সংখ্যা কীভাবে বদলায় দেখুন।সিনক্রোনাস TDM-এর মোট স্লট সংখ্যা বাড়বে (৬টি বাড়তি রাউন্ড × ১ স্লট = ৬টি বাড়তি, সবই নষ্ট), কিন্তু স্ট্যাটিস্টিক্যাল TDM-এর স্লট সংখ্যা একদম অপরিবর্তিত থাকবে — কারণ "E" কখনো ডেটা পাঠায় না, তাই তাকে কোনো স্লট বরাদ্দ করাই হবে না। এটিই স্ট্যাটিস্টিক্যাল TDM-এর মূল সুবিধা প্রমাণ করে।
-
চিন্তা করুন: WhatsApp ভয়েস কল বা ভিডিও স্ট্রিমিং-এর ডেটা আজকের ইন্টারনেটে কীভাবে মাল্টিপ্লেক্স করা হয় — এটি কি FDM, TDM নাকি অন্য কিছুর কাছাকাছি?
আধুনিক ইন্টারনেট প্যাকেট-সুইচিং ব্যবহার করে, যা মূলত স্ট্যাটিস্টিক্যাল TDM-এর ধারণার একটি সম্প্রসারণ — প্রতিটি অ্যাপ্লিকেশনের ডেটা ছোট প্যাকেটে ভাগ হয়ে শেয়ার্ড লিংকে পাঠানো হয়, শুধুমাত্র যখন সেই অ্যাপ্লিকেশনের পাঠানোর মতো ডেটা থাকে। এটি সরাসরি FDM বা প্রথাগত সিনক্রোনাস TDM নয়, বরং একটি অনেক বেশি নমনীয়, চাহিদা-ভিত্তিক ভাগাভাগি — এই কোর্সের M4-M5-এ আমরা এই প্যাকেট-সুইচিং প্রক্রিয়া বিস্তারিত দেখব।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ পরের পাঠে আমরা M3-এ প্রবেশ করবো — ডেটা লিংক লেয়ার ও ফ্রেমিং দিয়ে শুরু।
- Cloud Computing & DevOps কোর্স সঙ্গী কোর্স ক্লাউড নেটওয়ার্কে ব্যান্ডউইথ ও ট্রাফিক শেপিং কীভাবে ব্যবহারিকভাবে পরিচালনা করা হয় তা শিখতে দেখুন।
- Cybersecurity & Ethical Hacking কোর্স সঙ্গী কোর্স শেয়ার্ড মাধ্যমের নিরাপত্তা ঝুঁকি (যেমন সিগন্যাল জ্যামিং) কীভাবে কাজ করে তা শিখতে দেখুন।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, DBMS, Discrete Mathematics, System Design, Cybersecurity, Cloud Computing & DevOps ও Computer Networks — সব এক জায়গায়।