Foundationপ্রথম নীতি থেকে
LEVEL 7লেসন ১/২২কঠিন৪৫ মিনিট

Physical Layer — voltage, light, radio থেকে bit

Physical Layer: Signals, Media, Latency Floors

পুরো internet journey-র ভূগর্ভস্থ তলা — আপনার packet তারে ভোল্টেজ, কাচে আলোর pulse, বাতাসে রেডিও তরঙ্গ হয়ে কীভাবে চলে, আর কোথায় কোথায় পদার্থবিজ্ঞান গতির সিলিং টেনে দেয়।

এই লেসন শেষে আপনি পারবেন

  • copper, fiber, radio — তিন মাধ্যমেই একটা bit কোন ভৌত রাশি হয়ে বাঁচে আর কেন clock recovery-র জন্য Manchester বা 8b/10b-এর মতো encoding দরকার হয়, তা ব্যাখ্যা করতে পারবেন
  • bandwidth, throughput, latency — তিনটাকে আলাদা করে, যেকোনো hop-এর latency-কে propagation, transmission, processing, queuing এই চার উপাদানে ভেঙে হিসাব করতে পারবেন
  • Dhaka থেকে Virginia-র মতো route-এর speed-of-light floor নিজে গণনা করে নিজের measured ping-এর সাথে তুলনা করে, অবশিষ্ট বিলম্বের হিসাব বের করতে পারবেন
  • attenuation কেন repeater বা optical amplifier লাগে, আর cable category বা fiber type কোন দূরত্বে-গতিতে কেন বেছে নেওয়া হয়, তা বলতে পারবেন
  • Shannon capacity সূত্র কী promise দেয় আর কী দেয় না — এক বাক্যে সীমানা টেনে দিতে পারবেন

আগে এটা বুঝি

এই module-এর পুরো গল্প একটা প্রশ্ন ঘিরে: ব্রাউজারে https://example.com লিখে Enter চাপলে ঠিক কী কী ঘটে? আমরা একটা packet-এর চোখ-ধরে পুরো-পথ হাঁটব — NIC → switch → router → ISP → submarine-cable → server, তারপর ফিরে-আসা।

কিন্তু journey-শুরুর আগে একটা অদ্ভুত-সত্য মানতে-হবে: browser-এর packet software-এ bit-pattern — memory-তে transistor-charge। বাইরে বের-হতে ভৌত-রূপ লাগবেই: তারে ভোল্টেজ, কাচে আলোর-ঝলক, বাতাসে রেডিও। এই রূপান্তরই আজকের-বিষয় — protocol-এর-আগে, address-এর-আগে, একেবারে-নিচের-তলা।

আজকের লেসন শেষে এই প্রশ্নগুলোর সংখ্যা-দিয়ে উত্তর দিতে পারবেন: তারে ৫ কোটি টানা 0-এর ধারায় receiver bit-boundary কীভাবে চেনবে? ISP ‘100 Mbps’ বললে ডাউনলোড 12 MB/s হবেই তো? আর Dhaka↔Virginia ping 200 ms-এর নিচে নামানো যেকোনো টাকায় সম্ভব?

উত্তর দুটোটা ‘না’, একটা ‘হ্যাঁ, কিন্তু…’ — আর সেই ‘কিন্তু’-ই CDN-এর জন্মকারণ। চলুন নিচের তলা থেকে উঠি।

মূল ধারণা

একটা bit-এর ভৌত জীবন

bit মানে দুই অবস্থার পার্থক্য — আর প্রতিটা মাধ্যম সেই ‘দুই অবস্থা’ বহন করে নিজের মতো করে:

মাধ্যমbit 1 মানেbit 0 মানেবাহক
Copper (Cat5e/Cat6)উঁচু ভোল্টেজ (+0.85V-ধাঁচের differential)নিচু ভোল্টেজelectron
Single-mode fiberআলোর pulse উপস্থিতpulse অনুপস্থিত/কমphoton (কাচে)
Radio (WiFi)তরঙ্গের নির্দিষ্ট amplitude+phaseভিন্ন amplitude+phaseEM wave

লক্ষ্য করুন তৃতীয় সারিতে প্রতারণা: radio-তে ‘1 = high, 0 = low’ বলে কিছু নেই। একটা symbol-এ একাধিক bit ঢোকানো যায় phase আর amplitude মিলিয়ে — 256-QAM constellation-এর ২৫৬টা বিন্দু মানে এক symbol-এ ৮টা bit। WiFi-র উচ্চ গতির এটাই রহস্য, আর দূরে গেলে constellation ছোট হয়ে গতি কমার এটাই কারণ।

NRZ আর ঘড়ির সমস্যা

সবচেয়ে সরল scheme-এর নাম NRZ (Non-Return-to-Zero): উঁচু লেভেল = 1, নিচু = 0। কিন্তু এখানেই একটা সূক্ষ্ম সমস্যা লুকিয়ে:

Sender-এর clock:   |bit|bit|bit|bit|bit|bit|
Wire-এ NRZ:        ‾‾‾‾‾‾‾‾‾‾‾_______________
                    1 1 1 1 1 1 0 0 0 0 0 0
Receiver-এর প্রশ্ন: লম্বা উঁচু অংশে ঠিক কয়টা bit?

Receiver-এর নিজের ঘড়ি sender-এর ঘড়ির সাথে ১০০% sync-এ থাকে না — কয়েক million-bit পরপর drift জমে। লম্বা একঘেয়ে রান (টানা 0 বা টানা 1)-এ receiver গুনতে গুনতে ভুল করে বসে। সমাধানের দুই পথ:

  1. Manchester encoding (classic 10 Mbps Ethernet): প্রতিটা bit-time-এর মাঝখানে একটা transition থাকেই — 1-এ low→high, 0-তে high→low। Transition নিজেই ঘড়ি — self-clocking। দাম: প্রতি bit-এ দুই signal-level ব্যবহার, অর্থাৎ ৫০% bandwidth খরচ।
  2. Scramble + block code (আধুনিক গতি): লম্বা রান ভাঙার জন্য ডেটাকে ছোট block-এ ভেঙে বড় code-word-এ রূপান্তর। Gigabit Ethernet-এর 8b/10b: প্রতি 8 data bit → 10 bit code, যাতে গ্যারান্টি থাকে — রান-দৈর্ঘ্য সর্বোচ্চ ৫, আর 0/1 গণনা balance-এ থাকে (DC balance)। দাম: ২৫% overhead। 10G-তে দক্ষতর 64b/66b — মাত্র ৩% overhead।

Bandwidth, throughput, latency — তিন ভাই, তিন চরিত্র

  • Bandwidth (capacity): মাধ্যমটা theoretically কত bit/s বহন করতে পারে — পাইপের চওড়াই।
  • Throughput: বাস্তবে যা পাওয়া যায় — পাইপ ভরা পানির প্রবাহ। Protocol overhead, congestion, TCP window সব এখানে কাটে।
  • Latency: প্রথম bit যাত্রা শুরু করে শেষ bit destination- এ পৌঁছাতে কত সময় — পানির এক ফোঁটা মাথা থেকে মুখ পর্যন্ত পৌঁছানোর সময়।

প্রথম দুটো এককে সম্পর্কিত, তৃতীয়টা সম্পূর্ণ আলাদা মাত্রা। Latency-র প্রতিটা hop-এ চারটা উপাদান:

nodal delay=dproc+dqueue+dtrans+dprop\text{nodal delay} = d_{proc} + d_{queue} + d_{trans} + d_{prop}

উপাদানকারআকার
Processing (d_proc)header check, forwarding decision, checksum verifyমাইক্রোসেকেন্ড
Queuing (d_queue)output buffer-এ আগের packet-দের অপেক্ষা0 – যেকোনো কিছু (load-নির্ভর)
Transmission (d_trans)packet-টা link-এ push হতে সময়L/R
Propagation (d_prop)ভৌত মাধ্যমে প্রথম bit ভ্রমণদূরত্ব ÷ মাধ্যমের গতি

Transmission delay-র সূত্রটা মুখস্থ করুন — সব জায়গায় ফিরবে:

dtrans=LR⇒1500×8 bit100 000 000 bit/s=0.12 msd_{trans} = \frac{L}{R} \quad\Rightarrow\quad \frac{1500 \times 8 \text{ bit}}{100\,000\,000 \text{ bit/s}} = 0.12 \text{ ms}

একই 1500-byte packet 1 Gbps link-এ 0.012 ms, পুরনো 10 Mbps link-এ 1.2 ms। আর propagation? পরের অংশে সেটাই মূল নায়ক।

Speed of light — যে সিলিং কেউ ভাঙেনি

Vacuum-এ আলো c = 299,792 km/s। কিন্তু আমাদের packet vacuum-এ চলে না:

  • Glass fiber: refractive index n ≈ 1.47 → গতি ≈ 204,000 km/s (c-এর প্রায় দুই-তৃতীয়াংশ)
  • Copper: বৈদ্যুতিক signal-এর প্রবেগ ≈ 231,000 km/s (c-এর ~৭৭%) — হ্যাঁ, তামা কাচের চেয়ে দ্রুত, বিপরীত intuition!
  • Air (radio): প্রায় পুরো c

এবার মূল গণনা — Dhaka থেকে Virginia (Ashburn, বিশ্বের সবচেয়ে বড় datacenter hub):

Great-circle দূরত্ব:        ~12,800 km (সোজা রেখা, মাটির নিচ দিয়ে হলে)
Fiber-এ একমুখী propagation: 12,800 ÷ 204,000 km/s ≈ 63 ms
আদর্শ RTT (সোজা পথ):        2 × 63 ≈ 126 ms

কিন্তু সমুদ্রতলের cable সোজা যায় না — landing point, fault-
avoidance, রাজনৈতিক route। বাস্তব পথ ~18–21 হাজার km:
বাস্তব একমুখী propagation:   ~90–100 ms
বাস্তব propagation-only RTT:  ~190–200 ms  ← এটাই প্রায়-অসম্ভব floor

Measured ping Dhaka↔Ashburn সাধারণত 260–320 ms। ফারাকটা = প্রতিটা router-এ processing + queuing + কিছু non-fiber segment + আপনার access network-এর ভিড়। অর্থাৎ ~200 ms হলো পদার্থবিজ্ঞানের floor; ~300 ms হলো প্রকৌশলের বাস্তবতা; মাঝের 100 ms-টা কমানো যায়, প্রথমটা কখনোই নয়।

Attenuation আর regeneration

Signal মাধ্যমে এগোতে এগোতে দুর্বল হয় — attenuation, এক্সপো- নেনশিয়াল decay, decibel-এ মাপা:

dB=10log⁡10(PoutPin)dB = 10 \log_{10}\left(\frac{P_{out}}{P_{in}}\right)

তামায় উচ্চ-frequency দূরত্বের-সাথে-আগে-মরে (skin effect, crosstalk) — Cat5e/Cat6-র 100 m সীমা সেই frequency-তে SNR-হিসাব। Fiber অনেক ভালো (single-mode ~0.2 dB/km), তবু 80–100 km পরপর amplification।

আর এখানে একটা সূক্ষ্ম প্রকৌশল-সিদ্ধান্ত:

Analog amplifier:  দুর্বল signal + জমা noise — দুটোই বাড়িয়ে দেয়  ✗
Digital repeater:  জিরো-ওয়ান ঠিক করে ঝকঝকে নতুন signal তৈরি      ✓
Optical amp (EDFA):আলোক-ডোমেনে amplify — দ্রুত, কিন্তু ASE noise জমে

Submarine cable-এ 50–100 km পরপর EDFA — কোটি-টাকার কাচের-নিচে আলো-জ্বালিয়ে-রাখা।

Cable আর fiber-এর বাজার

  • Cat5e: 1 Gbps @ 100 m; Cat6: 10 Gbps @ ~55 m; Cat6a: 10 Gbps @ 100 m
  • Multimode fiber (OM3/OM4): সস্তা VCSEL, 300–400 m — datacenter-র‍্যাক-থেকে-র‍্যাক
  • Single-mode fiber: laser core ~9 µm, km-scale — metro, সমুদ্রতল

Shannon — capacity-র চূড়ান্ত আইন

১৯৪৮-এ Shannon-এর সূত্র noisy-channel-এ সর্বোচ্চ-নির্ভুল bit/s বলে-দেয়:

C=Blog⁡2(1+SN)C = B \log_2\left(1 + \frac{S}{N}\right)

B = bandwidth (Hz), S/N = signal-to-noise ratio। এর-চেয়ে-দ্রুত চেষ্টা = নিশ্চিত-ভুল। Modern WiFi/5G adaptive-modulation দিয়ে সীমার-গা-ঘেঁষে, channel-খারাপে নেমে-আসে; গভীরে-গেলে information-theory-র-পালা।

ভেতরে কী ঘটছে

100-meter সীমা আর 64-byte minimum-এর যৌথ উৎস

Cat6-এর 100 m সীমা = attenuation+NEXT (250 MHz-class frequency-তে crosstalk)। আর CSMA/CD-যুগের timing-shর্তেই minimum frame 512 bit: collision-এর খবর transmit-শেষের আগে ফিরতে-হবে — সেই হিসাব 10 Mbps- এ ~2500 m diameter দিয়েছিল, gigabit-এ 200 m-ঘেঁষা। Collision এখন মৃত, কিন্তু cable-spec-এ সেই যুগের ছাপ বেঁচে-আছে (পরের লেসনে)।

8b/10b-এর ভেতরটা এক ঝলক

8-bit value → (5b→6b + 3b→4b) lookup: running disparity — এখন- পর্যন্ত-1-বেশি জমলে 0-ভারী code-word, উল্টোতে 1-ভারী; গড় DC শূন্য। Comma symbol (K28.5) valid-data-তে কখনো-জুটি-বাঁধে-না — byte-boundary-খোঁজার লাইটহাউস।

Queuing delay কেন এত অদ্ভুত

Router-buffer-ভরলে packet-লাইন — microsecond থেকে হাজার-ms। Bursty traffic-এর ভয়ংকর-ফল bufferbloat: oversized buffer ভরলে latency শতগুণ, throughput-অপরিবর্তিত (congestion-control-lesson-এ ফিরবে)। নিয়ম: load-নির্ভর latency মাপো ব্যস্ত-সময়ে।

উদাহরণ

একটা পূর্ণ latency-budget: Dhaka laptop থেকে Virginia server

ধরুন আপনার laptop Wi-Fi-তে, ISP fiber, তারপর submarine path। 1500-byte packet, সব link 100 Mbps বা তার ঊর্ধ্বে:

Segment                  Medium     Distance   Propagation   Transmission
─────────────────────────────────────────────────────────────────────
laptop → router          air         ~10 m       ~0.03 μs      ~0.12 ms*
router → ONT             Cat6        ~15 m       ~0.07 μs      ~0.12 ms
ONT → ISP metro node     fiber       ~8 km        ~39 μs       ~0.02 ms
metro → IIG              fiber      ~25 km       ~122 μs       ~0.01 ms
IIG → submarine → Ashburn fiber  ~18,500 km   ~90,700 μs    ~0.01 ms
                                     ─────────   ───────────   ──────────
একমুখী যোগফল (processing/queuing বাদে)          ~91 ms        ~0.28 ms

(* Wi-Fi airtime-এ retransmission আর contention যোগ হয় — সেখানে transmission-delay-এর textbook হিসাব সবচেয়ে বেশি ‘theory-তে সীমাবদ্ধ’)

এখান থেকে তিনটা সিদ্ধান্ত:

  1. Propagation-ই রাজা: মোটের ~99.7% propagation — link-speed-upgrade-এ দূরের RTT কমার কোনো জাদু নেই।
  2. RTT floor ≈ 182 ms propagation-only। প্রতি-hop ~0.1–1 ms proc+queue × 12–15 hop → measured 220–280 ms perfectly-ব্যাখ্যাযোগ্য।
  3. কাছের host-এ picture উল্টে যায়: gateway ping 1–3 ms — ছোট-দূরত্বে transmission, airtime আর processing-ই বাদশা।

ছবিতে

Application-এর byte-stream (memory-তে 0/1)
        │  TCP/IP stack frame-এ সাজায় (পরের লেসনগুলোর গল্প)
        ▼
┌─────────────────────────────────────────────────┐
│ NIC-এর PHY chip                                 │
│  bit-pattern → encoding (৮b/১০b ধাঁচের)          │
│  → line symbols                                 │
└────────────────┬────────────────────────────────┘
                 ▼
     ┌───────────────────────────┐
     │ মাধ্যম অনুযায়ী ভৌত রূপ:      │
     │  copper : differential V   │
     │  fiber  : light on/off     │
     │  radio  : modulated RF     │
     └────────────┬──────────────┘
                  ▼
   attenuation (dB/km) ──▶ দুর্বল, noise-ঢাকা signal
                  ▼
   repeater / EDFA ──▶ regenerate / amplify
                  ▼
   পরের hop-এর PHY ──▶ decode ──▶ bit-pattern পুনর্জন্ম
NIC থেকে wire পর্যন্ত একটা bit-এর ভৌত রূপান্তর-চেইন — প্রতিটা স্তরে আগের স্তরের abstraction একটু ভাঙা আর নতুন ভৌত রাশিতে পুনর্জন্ম।

একই সংখ্যাগুলোর তুলনামূলক-চিত্র — দূরের route-এ propagation-এর একচ্ছত্রতা বনাম gateway-route-এ proc+airtime-এর প্রাধান্য:

Dhaka→Virginia:  propagation ████████████████████████████  ~91 ms
                 transmission ░                              ~0.3 ms
                 proc+queue  ██░░░░░░░░░░░░░░░░░░░░░░░░░░░  ~10–30 ms

Gateway (10 m):  propagation ░                               ~0.06 μs
                 Wi-Fi airtime ██                            ~0.2–1 ms
                 proc+queue  ████                            ~0.5–2 ms

নিজে চালিয়ে দেখুন

EXPERIMENT

নিজের হাতে latency ভাঙা: propagation অনুমান আর throughput মাপা

Linux / macOS· ২০ মিনিট

ধাপ ১ — তিন দূরত্বে RTT:

# কাছে: নিজের gateway
ping -c 20 192.168.1.1          # নিজের gateway-র IP দিন (ip route | grep default)

# মাঝারি: দেশের ভেতরের কোনো host (আপনার ISP-র DNS ভালো candidate)
ping -c 20 8.8.8.8

# দূরে: অন্য continent
ping -c 20 www.cloudflare.com

প্রতিটার summary লাইন থেকে min/avg/max/stddev নিন; stddev বড় হলে সেটা queuing/jitter — আলাদা কলামে। সতর্কতা: 8.8.8.8/ Cloudflare anycast — কাছের copy-তে যেতে পারে! সত্যি-দূরের host চাইলে bgp.tools/peeringdb থেকে দূরের city-র looking-glass IP নিন।

ধাপ ২ — হিসাব মেলান:

gateway RTT        ~1–3 ms    → propagation প্রায় শূন্য; বাকি = proc+airtime+queue
দূরের host RTT     X ms       → একমুখী ~X/2
অনুমান: দূরত্ব D km হলে fiber-floor = D ÷ 204,000 km/s
measured − floor   = queuing + processing + বাড়তি পথের দৈর্ঘ্য

ধাপ ৩ — iperf ছাড়া throughput (সতর্কতা: ~100 MB download, metered connection হলে ছোট ফাইল নিন):

curl -o /dev/null -w 'speed: %{speed_download} B/s\n' \
  http://speedtest.tele2.net/100MB.zip
# B/s-কে Mbps-এ: ×8÷1,000,000

# তুলনার জন্য ছোট ফাইল:
curl -o /dev/null -w 'speed: %{speed_download} B/s\n' \
  http://speedtest.tele2.net/10MB.zip

দেখুন বিজ্ঞাপিত bandwidth-এর কত % পেলেন। ঘাটতির তিন suspect: TCP slow-start (ছোট transfer-এ প্রবল — congestion-control লেসন), receiver window, weakest-link। 10 MB-বনাম-100 MB পার্থক্যটাই slow-start-এর ছাপ।

এটা কী প্রমাণ করে

RTT দূরত্বের সাথে প্রায়-রৈখিকভাবে বাড়ে ঠিক propagation-এর হারে, আর মাপা throughput বিজ্ঞাপিত bandwidth-এর চেয়ে সবসময় কম — দুটো সংখ্যাই এই লেসনের সূত্র দিয়ে আগে-থেকে-অনুমিত মানের গা ঘেঁষে বসে।

নিজে বানান

BUILD IT

Latency Budget Calculator — দূরত্ব+মাধ্যম দিলে পদার্থবিজ্ঞানের floor বলে দেবে

Python · ●●○○○
  1. তিন মাধ্যমের propagation speed টেবিল রাখুন — km/s-এ
  2. দূরত্ব ও মাধ্যম থেকে one-way propagation হিসাব করুন
  3. চাইলে link speed ও packet size নিয়ে per-hop transmission delay যোগ করুন
  4. measured ping argument হিসেবে নিয়ে floor-এর সাথে তুলনা ছাপুন
  5. কয়েকটা বিখ্যাত route-এর জন্য ready-made টেবিল প্রিন্ট করুন

লক্ষ্য: এই লেসনের প্রতিটা সূত্র একটা ছোট tool-এ বসানো — যাকে দিয়ে যেকোনো নতুন server-region বাছাই বা ‘কেন এত slow’ অভিযোগ সংখ্যায় বিচার করা যায়।

#!/usr/bin/env python3
"""latency_budget.py — দূরত্ব+মাধ্যম থেকে speed-of-light RTT floor।
ব্যবহার: python3 latency_budget.py [dist_km medium measured_rtt_ms]
"""
import sys

# মাধ্যম → প্রবেগ (km/s)। বাতাসে radio প্রায় c; তামায় ~0.77c;
# কাচে (n≈1.47) ~0.68c।
MEDIA = {
    "air":   299_792,
    "copper": 231_000,
    "fiber": 204_000,
}

def one_way_ms(distance_km: float, medium: str, detour: float = 1.0) -> float:
    """একমুখী propagation (ms)। detour = বাস্তব পথ ÷ সোজা পথ (≥1)।"""
    speed = MEDIA[medium]
    path = distance_km * detour
    return path / speed * 1000.0        # s → ms

def rtt_floor(distance_km: float, medium: str, detour: float = 1.0,
              link_mbps: float | None = None, pkt_bytes: int = 1500,
              hops: int = 0, proc_per_hop_ms: float = 0.2) -> float:
    """Propagation + (ঐচ্ছিক) transmission + processing — RTT (ms)।"""
    one_way = one_way_ms(distance_km, medium, detour)
    rtt = 2.0 * one_way
    if link_mbps:
        # প্রতি মুখে একবার serialization; RTT-তে দুইবার
        rtt += 2.0 * (pkt_bytes * 8) / (link_mbps * 1e6) * 1000.0
    rtt += 2.0 * hops * proc_per_hop_ms
    return rtt

ROUTES = [
    # (নাম, সোজা দূরত্ব km, বাস্তব পথ-গুণক, measured RTT মোটামুটি)
    ("Dhaka → Singapore",   2900, 1.35, 70),
    ("Dhaka → London",      8000, 1.45, 150),
    ("Dhaka → Ashburn VA", 12800, 1.50, 275),
    ("Sydney → Los Angeles",12000, 1.25, 160),
]

def main():
    if len(sys.argv) >= 3:
        dist, med = float(sys.argv[1]), sys.argv[2]
        measured = float(sys.argv[3]) if len(sys.argv) > 3 else None
        floor = rtt_floor(dist, med, detour=1.0)
        print(f"{dist:.0f} km over {med}: propagation-only RTT floor "
              f"= {floor:.1f} ms")
        if measured is not None:
            gap = measured - floor
            verdict = "স্বাভাবিক" if 0 <= gap <= floor else "সন্দেহজনক!"
            print(f"measured {measured:.1f} ms → বাড়তি {gap:.1f} ms "
                  f"(queuing+processing+detour) — {verdict}")
        return

    print(f"{'route':<22}{'soja-path':>10}{'bastob':>9}"
          f"{'floor RTT':>11}{'typical':>9}")
    for name, dist, detour, typ in ROUTES:
        f_straight = rtt_floor(dist, "fiber")
        f_real = rtt_floor(dist, "fiber", detour=detour)
        print(f"{name:<22}{f_straight:>9.0f}ms{detour:>8.2f}x"
              f"{f_real:>10.0f}ms{typ:>8}ms")
    print("\npadarthabigganer floor keu bhange na — komate hoy "
          "shudhu doorotto.")

main()

প্রত্যাশিত আউটপুর গড়ন (route টেবিল):

route                   soja-path  bastob  floor RTT  typical
Dhaka → Singapore            28ms   1.35x       76ms     70ms
Dhaka → London               78ms   1.45x      227ms    150ms
Dhaka → Ashburn VA          125ms   1.50x      376ms    275ms
Sydney → Los Angeles        118ms   1.25x      294ms    160ms

London/Ashburn-এ floor measured-এর চেয়ে বড় কেন? বাস্তব ট্রাফিক কাচের সব পথ কাটে না — অংশ copper/radio, আর detour-গুণক conservative। মডেলিংয়ের শিক্ষা: floor মানে lower bound, point estimate নয়।

নিজে বাড়ান:

  1. GEO-satellite medium যোগ করুন — 35,786 km altitude = একমুখী ~120 ms, উপরে-উঠে-নামার-আগেই
  2. --plot flag-এ matplotlib distance-vs-RTT রেখা
  3. শহরের-datacenter-IP-র measured-ping থেকে inverse-solve: পথ-কত-km?

বাস্তব সিস্টেমে

Submarine cable — ইন্টারনেটের আসল মেরুদণ্ড

পৃথিবীর ~৯৯% intercontinental traffic স্যাটেলাইটে নয় — সমুদ্রতলের fiber-এ। SEA-ME-WE সিরিজ, AAE-1, 2024-এর 2Africa (~45,000 km, ৪৬ landing point) — cable-cut (anchor থেকে যুদ্ধ) হলে traffic অন্য-cable-reroute, পথ-লম্বা, RTT-বাড়ে; Bangladesh-পাঠকের জন্য 2023-24-এর SMW4/AAE-1 cut এর জীবন্ত-প্রমাণ ছিল।

Latency arbitrage আর LEO — যেখানে microsecond কোটি টাকা

Chicago–New York রুটে HFT firms fiber-কেও হারিয়ে microwave tower-chain বসায় — বাতাসে আলো c-তে, কাচে দুই-তৃতীয়াংশে; একমুখী ~2.5 ms এর পার্থক্য অর্ডারবুকের দৌড়ে বিশাল। আর Starlink-জাতীয় LEO (~550 km) RTT ~25–50 ms বনাম GEO-র ~600 ms — গতির সিলিং ভাঙা যায়নি, দূরত্ব কমানো গেছে; এটাই পুরো lesson-এর শেষ-কথা।

যে ভুলগুলো সবাই করে

“Bandwidth বাড়ালে ping কমবে — তাই 1 Gbps নিলে gaming lag কমবে।”

Ping-এর মূল-ভাগ propagation+queuing — link-speed-ফাংশন-না। Bandwidth শুধু transmission-delay কমায় (1500B @100 Mbps = 0.12 ms)। Lag কমবে শুধু আগের-লাইন congestion-ভরা-থাকলে; খালি-লাইনে 10 Mbps-এর ping-ই 1 Gbps-এর প্রায়-সমান।

“Fiber তামার চেয়ে দ্রুত যায়, কারণ আলো সবচেয়ে দ্রুত।”

Vacuum-এ হ্যাঁ; কাচে আলো c-এর দুই-তৃতীয়াংশে (n≈1.47), তামার signal ~0.77c — একই-দূরত্বে copper-propagation সামান্য-দ্রুত! Fiber-জয় দূরত্বে-না, attenuation-bandwidth-এ: কম-খরচে আরও-দূরে আরও-GHz।

“WiFi-তে 300 Mbps দেখাচ্ছে, তার মানে ডাউনলোড 37.5 MB/s হবেই।”

সেই 300 Mbps PHY-rate ideal-world-এর সংখ্যা। বাস্তবে: half-duplex airtime, beacon/MAC overhead, distance-এ modulation downgrade (256-QAM → QPSK), interference retry — 40–60% throughput ভালো দিন; TCP-overhead-সহ application-level আরও কম।

“Latency = দূরত্ব ÷ আলোর গতি — মান একটাই, হিসাব শেষ।”

দূরত্ব নিজেই অস্পষ্ট: great-circle না বাস্তব cable-path? বাস্তব পথ প্রায়ই সোজার 1.3–1.6 গুণ, আর queuing load-নির্ভর — রাত-৩টা আর সন্ধ্যা-৯টার measurement এক নয়। Latency বলুন: কোন-সময়ে, কোন-পথে, কোন-percentile।

বুঝেছেন কি না দেখুন

1

Latency-র চারটা উপাদানের নাম বলুন, এবং প্রতিটা কার উপর নির্ভর করে এক লাইনে।

স্মরণ

Processing (device-দ্রুততা), queuing (মুহূর্তের traffic-load), transmission (L ÷ R), propagation (দূরত্ব ÷ মাধ্যমের-গতি) — প্রথম দুটো device-নির্ভর, তৃতীয় link+size, চতুর্থ শুধুই-ভৌগোলিক।

2

1500-byte packet 1 Gbps link-এ transmission delay কত? আর 512- byte-এর 64-টা packet টানা পাঠালে মোট?

প্রয়োগ

একটা: 1500×8 ÷ 10⁹ = 0.012 ms। মোট 32 KB ÷ 1 Gbps = 0.262 ms — transmission delay-শুধু মোট bit-এর উপর নির্ভর করে, packet কত খণ্ডে ভাগ হলো তাতে নয়।

3

Dhaka↔Ashburn-এর RTT floor ~200 ms হলে Netflix-জাতীয় company কেন পৃথিবীজুড়ে datacenter বানায় অথচ ‘আরও দ্রুত cable’ বানায় না?

যুক্তি

Floor ভাঙার একমাত্র চলক দূরত্ব। Content user-এর 20–50 ms ব্যাসার্ধে এলে ওই floor-ই নেমে আসে — CDN-এর পুরো অর্থনীতি এক লাইনে। Cable যত উন্নতই হোক, গতি c-এর ভগ্নাংশে সীমিত; ভৌগোলিক বিতরণ নিয়ম-ভেঙে নয়, নিয়মের ভেতরেই জেতে।

4

Manchester encoding-এ usable bit-rate কেন PHY-rate-এর অর্ধেক? আধুনিক গতিতে 8b/10b কেন বেশি বাস্তবসম্মত সমঝোতা?

প্রয়োগ

Manchester-এ প্রতিটা bit দুই signal-interval দখল করে (mid-transition আবশ্যিক) — 10 Mbps Ethernet তাই 20 Mbaud চালাত। 8b/10b মাত্র ২৫% overhead-এ clock-recovery+DC-balance, উচ্চ-gতিতে electronics-সস্তা হওয়ায় সেটা-ই সমঝোতা; 64b/66b (৩%) scrambler-ভরসা আরও-এক-ধাপ।

5

আপনি রাত ২টায় মেপেছেন: দূরের host-এ RTT ঠিক propagation-হিসাবের সমান। সন্ধ্যা ৯টায় একই host-এ 3× বেশি। কোন উপাদান বেড়েছে এবং কেন bandwidth-test তখনও ভালো দেখাতে পারে?

যুক্তি

Queuing delay। Peak-hour-এ পথের কোনো link oversubscribed — buffer-লাইন। Throughput তবু ভালো: buffer-ভরা = pipe-পূর্ণ, TCP সব-জায়গা ব্যবহার করছে; খরচ বিলম্বে, ব্যান্ডউইথে না — bufferbloat-এর signature।

6

আপনার নতুন multiplayer-game-এর জন্য server-region বাছতে হবে: Dhaka-user-দের জন্য Singapore (70 ms) না Mumbai (25 ms)? Decision-এ physical-layer-এর কোন কোন হিসাব ব্যবহার করবেন?

ডিজাইন

দুই-শহরের সোজা-দূরত্ব × fiber-speed → floor, তারপর detour-গুণক (landing-point geography)। Mumbai কাছে-হয়েও traffic Dhaka→Singapore→Mumbai ঘুরলে RTT উল্টে-যেতে-পারে — মাপুন, অনুমান-নয়। Game-এ গড়-নয় p99-tail-latency দেখুন; শেষ-চলক failover (এক-cable-cut-এ region-হারানি)।

এরপর কী

এরপর কী

আজ দেখলাম bit কীভাবে ভোল্টেজ-আলো-রেডিও হয়। কিন্তু কাঁচা bit- এর ধারা দিয়ে কেউ কথা বলতে পারে না — দরকার একটা বাক্য-গঠন: কোথা থেকে শুরু, কার ঠিকানা, কোথায় শেষ, ভুল ধরার চেক।

পরের লেসনে:

  • Ethernet frame — preamble থেকে FCS CRC32 byte-by-byte dissection
  • MAC address — OUI, burned-in বনাম spoofable
  • CSMA/CD-এর অতীত — collision-যুগ → switched full-duplex
  • MTU, jumbo frame, VLAN tag — আর ARP-এর ঝলক

আজ আমরা জানলাম তারে কী যায়; পরের লেসনে জানব তারে যা যায় সেটা ঠিক কেমন দেখতে।

আরও পড়ুন

  • Computer Networking: A Top-Down Approach — Chapter 1 (delay, loss, throughput) ও Chapter 6 (link layer, physical media) — Kurose & Ross · চার delay component-এর ভাঙানো আর media taxonomy-র পাঠ্যপুস্তক ভিত্তি
  • Computer Networks: A Systems Approach — Chapter 2: Getting Connected — Larry Peterson, Bruce Davie · Encoding (NRZ, Manchester, 4B/5B) আর link-এর ভৌত বাস্তবতার systems-view আলোচনা
  • A Mathematical Theory of Communication — Claude E. Shannon · Channel capacity-র মূল ১৯৪৮-এর paper — এই লেসনের Shannon section-এর উৎস