Course-এর সূচি

1.5

Network Layer ও Encapsulation (OSI ও TCP/IP)

Networking কেন Layer-এ তৈরি, এবং তোমার Data কীভাবে একের পর এক Header-এ মোড়ানো হয়।

35 মিনিট পড়া + Animation

টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।

এই Lesson শেষে তুমি পারবে

  • Networking কেন Layer-এ ভাগ করা হয়েছে, আর প্রতিটি Layer তার ওপরের Layer-কে কী প্রতিশ্রুতি দেয় তা ব্যাখ্যা করতে।
  • OSI-এর সাতটি Layer-এর নাম, কাজ, একটি উদাহরণ Protocol ও Data-র একক (Bit, Frame, Packet, Segment, Datagram) বলতে, এবং সেগুলো TCP/IP-এর চারটি Layer-এর সঙ্গে মেলাতে।
  • Physical Layer কীভাবে Bit-কে তামার তার, Fibre আর Radio-তে Signal বানায় তা বোঝাতে, আর Switch আসার পর Ethernet-এর Collision (CSMA/CD) কেন ইতিহাস হয়ে গেল তা বলতে।
  • আজকের Internet-এ Session আর Presentation Layer আসলে কী করে তা বলতে: Session, Character Encoding (ASCII, UTF-8), Compression আর TLS আসলে কোথায় ঘটে, আর লেখা কেন Mojibake হয়ে যায়।
  • একটি TCP/IP Packet-এর ভেতরে ঠিক কী থাকে তা বর্ণনা করতে: Ethernet Frame, IP Header, TCP বা UDP Header ও TLS Record, Field ধরে ধরে।
  • Sender-এ Encapsulation, Receiver-এ Decapsulation, এবং প্রতিটি Hop-এ Switch ও Router কী খোলে ও কী বদলায় তা অনুসরণ করতে।
  • Header Overhead হিসাব করতে, MTU, MSS ও Fragmentation ব্যাখ্যা করতে, আর FCS Error, TTL শেষ হওয়া ও MTU Black Hole-এর মতো ব্যর্থতা চিনতে।

#Networking কেন Layer-এ তৈরি

একটি Server থেকে তোমার ফোনে একটি Web Page পাঠাতে ডজনখানেক আলাদা সমস্যার সমাধান করতে হয়: Bit-কে Radio Wave-এ রূপান্তর, Wi-Fi-এর কোন ডিভাইস Frame পাবে তা ঠিক করা, ভিন্ন ভিন্ন কোম্পানির চালানো ১৫টি Network পেরিয়ে পথ খোঁজা, হারানো Data উদ্ধার, Encryption, আর শেষে HTTP-তে কথা বলা। কোনো একটি Program একা এসব সামলাতে পারত না, আর নতুন ধরনের Cable আবিষ্কার হলেই কেউ Browser নতুন করে লিখতে চাইত না।

যেকোনো Network-এর কথোপকথন ভেঙে দেখো, Messenger-এ এক শব্দের একটা “Hello” হলেও, সবসময় পাঁচটা জিনিস পাবে: একজন Sender (তোমার ফোন), একজন Receiver (বন্ধুর ফোন), Message (“Hello”), একটা Medium যা বার্তাটা বয়ে নেয় (প্রথমে Wi-Fi-এর Radio, তারপর Internet জুড়ে Fibre আর তামার তার), আর একটা Protocol: দুই পক্ষের মেনে নেওয়া নিয়ম, অনেকটা একই ভাষায় কথা বলার মতো, যাতে Receiver যা পায় তার মানে বুঝতে পারে। আসল Network-এ ওপরের প্রতিটা সমস্যার জন্য আলাদা Protocol লাগে, সব মিলিয়ে ডজন ডজন। এই Protocol-গুলোকে গুছিয়ে রাখার উপায়ই হলো Layer।

তাই কাজটা Layer-এ ভাগ করা হয়েছে। প্রতিটি Layer:

  • একটি কাজ করে এবং সেটা ওপরের Layer-কে সেবা হিসেবে দেয় (“আমাকে Byte আর একটি Port দাও, আমি ক্রমমতো পৌঁছে দেব”);
  • শুধু ঠিক নিচের Layer ব্যবহার করে, সেই Layer ভেতরে কীভাবে কাজ করে তা না জেনেই;
  • অন্য মেশিনের সমকক্ষ Layer-এর সঙ্গে কথা বলে একটি Header-এর মাধ্যমে, যা শুধু ওই সমকক্ষ Layer পড়ে।

এর বাস্তব সুবিধা:

  • অন্যগুলো না ছুঁয়ে একটি Layer বদলানো যায়। তোমার Browser Wi-Fi, Ethernet বা 5G-তে একইভাবে চলে; HTTP/3 চালু হয়েছে UDP-এর ওপর QUIC বানিয়ে, একটি Router-ও না বদলে।
  • স্বাধীন দল ও Standard। Cable নির্মাতা, Router কোম্পানি, অপারেটিং সিস্টেম ডেভেলপার আর Web ডেভেলপার যার যার Layer নিয়ে কাজ করে।
  • সহজে সমস্যা খোঁজা। “সমস্যা কি Cable-এ (L1), Wi-Fi-তে (L2), Routing-এ (L3), বন্ধ Port-এ (L4), নাকি App-এ (L7)?” এভাবেই Engineer-রা সমস্যার জায়গা ছোট করে আনে।

এর খরচ কিছু Overhead: প্রতিটি Layer একটি Header যোগ করে, আর কিছু কাজ (যেমন Checksum) কয়েকটি Layer-এ বারবার হয়।

#OSI Model: সাতটি Layer

OSI (Open Systems Interconnection) Model হলো ISO-র ১৯৮৪ সালে প্রকাশিত একটি ৭-Layer Reference Model। Internet আসলে OSI-এর Protocol চালায় না, কিন্তু সবাই এর Layer নম্বরকে সাধারণ ভাষা হিসেবে ব্যবহার করে: “এটা L2 সমস্যা”, “একটি L7 Load Balancer”।

OSI Model ও TCP/IP Model

প্রতিটি বাক্স তার ভেতরের বাক্সগুলোকে মুড়ে রাখে: Application-এর Data মাঝখানে, Physical Signal সবচেয়ে বাইরের খোলস।

পরিস্থিতি

Data শুরু হয় ওপরে (Layer 7), আর নিচের প্রতিটি Layer নিজের মোড়ক যোগ করে।

Layer 7 · ApplicationHTTP, DNS, SMTP, SSH · PDU: Data
ধাপ 1 / 8
1

Layer 7, Application: তোমার Program যে Protocol-এ কথা বলে। Browser একটি HTTP Request লেখে: “GET /index.html”। Byte-গুলো কীভাবে যাবে, তা নিয়ে তার মাথাব্যথা নেই।

#Layerকাজউদাহরণ Protocol / ডিভাইসData-র একক (PDU)
7ApplicationProgram যে Protocol-এ কথা বলেHTTP, DNS, SMTP, SSHData / Message
6PresentationData-র ধরন: Encoding, Compression, EncryptionUnicode Text, Image Format, gzip, TLS (তাত্ত্বিকভাবে)Data
5Sessionকথোপকথন খোলা, ধরে রাখা ও বন্ধ করাSession Resumption, Login SessionData
4TransportProcess থেকে Process: Port, নির্ভরযোগ্যতা, ক্রমTCP, UDP (QUIC চলে UDP-এর ওপর)Segment (TCP) / Datagram (UDP)
3NetworkNetwork পেরিয়ে Host থেকে Host: Addressing, RoutingIP, ICMP, IPsec · RouterPacket
2Data Linkএকটি Local Link-এ এক Hop: MAC Address, ভুল শনাক্তকরণEthernet, Wi-Fi (802.11) · SwitchFrame
1Physicalমাধ্যমের ওপর Signal হিসেবে Bitতামা, Fibre, Radio, Connector · Hub, RepeaterBit

PDU (Protocol Data Unit) মানে “এই Layer-এ Header-সহ Data-র টুকরো”। সঠিক শব্দ ব্যবহার করলে বোঝা যায় তুমি কোন Layer-এর কথা বলছ: Router Packet পাঠায়, Switch পাঠায় Frame।

মনে রাখার কৌশল: ওপর থেকে নিচে, “All People Seem To Need Data Processing”; নিচ থেকে ওপরে, “Please Do Not Throw Sausage Pizza Away”।

#Layer 1 কাছ থেকে: Bit যখন Signal হয়

ওপরের সব Layer-এর সবকিছু শেষ পর্যন্ত 1 আর 0-এর একটা স্রোত হয়ে যায়। সেই Bit-গুলো আসল তার বা বাতাস পার হবে কীভাবে, সেটা ঠিক করে Physical Layer। Frame বা Address সে চেনে না; তার একটাই প্রতিশ্রুতি: “তুমি যে Bit পাঠিয়েছ, আমি প্রায় সবসময় ঠিক সেগুলোই পৌঁছে দেব।”

Mediumএকটা Bit সেখানে হয়…কোথায় দেখবেConnector
তামার Twisted Pair (Shield ছাড়া UTP, বা Shield-ওয়ালা)পেঁচানো এক জোড়া তারে Voltage-এর একটা মাত্রা বা বদল (পেঁচানোর ফলে বাইরের গোলমাল কাটা যায়)বাসা আর অফিসের Ethernet, এক Cable-এ সর্বোচ্চ ১০০ মিটারRJ45 (RJ11 হলো টেলিফোনের ছোট Plug)
Optical Fibre (Single-mode, Multimode)কাচের সরু Core-এ আলোর একটা ঝলকদূরের পথ, Internet Backbone, Data Centre, বাসা পর্যন্ত Fibre। কিলোমিটারের জন্য Single-mode, বিল্ডিংয়ের ভেতরের ছোট দূরত্বে MultimodeLC, SC, ST
Coaxial CableShield-ঘেরা মাঝের তারে বৈদ্যুতিক Signalক্যাবল টিভি আর Cable Broadband; খুব পুরনো EthernetF-type, BNC
RadioRadio Wave-এর Amplitude, Phase বা Frequency-তে বদলWi-Fi, Bluetooth, 4G/5GAntenna

Physical Layer-কে যা যা ঠিক করে দিতে হয়:

  • Signal Encoding। তারের ওপর 1 আর 0 দেখতে কেমন হবে। সবচেয়ে সহজ পদ্ধতি NRZ (Non-return-to-zero): 1-এর জন্য এক মাত্রা, 0-এর জন্য আরেক মাত্রা। সমস্যা হলো, একই Bit অনেকগুলো পরপর এলে Signal একটা সমান রেখা হয়ে যায়, আর Receiver গুনতে গুনতে হিসাব হারিয়ে ফেলে কয়টা Bit গেল। প্রথম দিকের 10 Mbps Ethernet-এ ব্যবহৃত Manchester Encoding প্রতিটা Bit-এর ঠিক মাঝখানে একটা বদল রাখে (1 হলে নিচ থেকে ওপরে, 0 হলে ওপর থেকে নিচে), ফলে তাল মেলানোর জন্য সবসময় একটা ধার পাওয়া যায়; দাম হলো দ্বিগুণ Signalling Rate। দ্রুততর Ethernet আর Wi-Fi আরও চালাক Code ব্যবহার করে (প্রতি Symbol-এ কয়েকটা Voltage মাত্রা বা Phase), কিন্তু সমস্যা দুটো একই: প্রতি Symbol-এ বেশি Bit ঢোকানো, আর দুই পক্ষকে একই তালে রাখা।
  • Bit Synchronization। Receiver-কে জানতে হবে প্রতিটা Bit কোথায় শুরু। নিচের Frame Table-এ যে Ethernet Preamble দেখবে, সেটা ঠিক এই কাজের জন্যই।
  • Data Rate। 100 Mbps, 1 Gbps, 10 Gbps: Standard ঠিক করে দেয় (Ethernet-এর জন্য IEEE 802.3, Wi-Fi-এর জন্য IEEE 802.11), আর Link চালু হওয়ার সময় দুই প্রান্ত আলোচনা করে মিলিয়ে নেয়।
  • Transmission Mode। Simplex: শুধু একদিকে (টিভি সম্প্রচার)। Half-duplex: দুইদিকেই, কিন্তু একবারে একজন (Walkie-talkie, একটা Wi-Fi Channel, পুরনো Hub)। Full-duplex: দুইদিকে একসঙ্গে (ফোনকল, আর আজকের প্রতিটা Switch-এর Ethernet Link, যেখানে পাঠানো আর পাওয়ার পথ আলাদা)।
  • Topology আর Line Configuration। যন্ত্রগুলো শারীরিকভাবে কীভাবে জোড়া: Bus (সবাই একটা Cable-এ লাগানো, শুরুর দিকের Ethernet), Star (প্রত্যেকের নিজের Cable মাঝের একটা যন্ত্রে, আজকের Ethernet আর Wi-Fi), Ring (প্রত্যেকে দুই প্রতিবেশীর সঙ্গে, পুরনো Token Ring আর কিছু Fibre Ring), Mesh (অনেকগুলো বাড়তি পথ, Internet Backbone আর Data Centre), Tree (Star-এর ভেতরে Star, একটা বিল্ডিংয়ের Network)। একটা Link-এ ঠিক দুটো যন্ত্র থাকলে Point-to-Point (Switch-এর একটা Port আর একটা PC), অনেকে ভাগ করে নিলে Multipoint (Bus, একটা Wi-Fi Channel)।
  • Physical বৈশিষ্ট্য। Voltage, আলোর Wavelength, Radio Frequency, Pin-এর বিন্যাস, সর্বোচ্চ দৈর্ঘ্য। আরও কিছু Physical Standard যা চোখে পড়বে: Bluetooth, USB আর RS-232 (পুরনো Serial Port, যা এখনো Router আর Switch-এর Console Cable-এ চলে)।

শুধু এই Layer-এই থাকে Repeater (দুর্বল Signal নতুন করে তৈরি করে) আর Hub (প্রতিটা Bit সব Port দিয়ে বের করে দেয়)। Network Card, Antenna আর Cable-ও Physical Layer-এর Hardware। Switch-এর Physical Port আছে ঠিকই, কিন্তু তার আসল কাজ Layer 2-এ।

#ভাগ করা Medium, Collision আর CSMA/CD

Bus বা Hub-এ সব যন্ত্র একটাই Medium ভাগ করে নেয়। দুজন একই মুহূর্তে পাঠালে দুটো Signal মিশে আবর্জনা হয়ে যায়, দুটো Frame-ই হারায়: এটাই Collision। পুরনো Ethernet এটা সামলাত CSMA/CD (Carrier Sense Multiple Access with Collision Detection) দিয়ে:

  1. Carrier Sense: আগে শোনো; কেউ পাঠাচ্ছে তো অপেক্ষা করো।
  2. Multiple Access: লাইন চুপচাপ হলে যে কেউ শুরু করতে পারে।
  3. Collision Detection: পাঠানোর সময়ও শুনতে থাকো। তারে যা আছে তা যদি তোমার পাঠানোটার সঙ্গে না মেলে, তাহলে দুটো Signal ধাক্কা খেয়েছে; ছোট একটা Jam Signal পাঠাও যাতে সবাই টের পায়।
  4. Backoff: এলোমেলো কয়েকটা Slot অপেক্ষা করে আবার চেষ্টা করো। পরপর n নম্বর Collision-এর পর ০ থেকে 2ⁿ − 1 Slot-এর মধ্যে একটা সংখ্যা বাছা হয় (সর্বোচ্চ ১০২৩), আর ১৬ বার ব্যর্থ হলে Frame-টা বাদ।

দুটো Station দুজনেই নীরবতা শুনে একসঙ্গে শুরু করে ফেলতে পারে, কারণ Signal-এর Cable বেয়ে যেতে সময় লাগে। তাই Collision এড়ানো যায় না, শুধু ধরা যায়। একটা Hub-এ ব্যস্ত যন্ত্র যত বাড়ে, Collision আর অপেক্ষায় তত সময় নষ্ট হয়, আর কাজের Throughput Link-এর গতির অনেক নিচে নেমে যায়।

Switch এসে CSMA/CD-কে ইতিহাস বানিয়ে দিল। Switch-এর প্রতিটা Port নিজেই একটা আলাদা Point-to-Point, Full-duplex Link, পাঠানো আর পাওয়ার পথ আলাদা; ধাক্কা খাওয়ার মতো আর কেউ নেই। Full-duplex Ethernet-এ CSMA/CD পুরোপুরি বন্ধ থাকে, আর 10 Gbps থেকে ওপরের Ethernet-এ Half-duplex-ই নেই। Wi-Fi-এর Radio Channel অবশ্য এখনো ভাগাভাগির, তাই Wi-Fi চালায় এর এক আত্মীয়, CSMA/CA (Collision Avoidance); Hub আর Switch-এর সঙ্গে সেটা আছে Network Devices Lesson-এ।

Layer 1: তারে Bit, Hub-এ Collision, Switch-এ নেই

তিনটা PC, প্রথমে একটা ভাগ করা Hub-এ, তারপর একটা Switch-এ। দেখো Bit কীভাবে Signal হয়, Hub-এ Frame কেন ধাক্কা খায়, আর Switch-এ কেন খায় না।

পরিস্থিতি

একটা Frame-এর এক Byte কীভাবে Signal হয়, আবার Bit-এ ফেরে।

SwitchL2 · Full-duplex Port
PC A
PC B
PC C

Layer 1 যা দেখে

Bit

1 0 1 1 0 0 0 1

ধাপ 1 / 5
1

PC A-র Network Card-এর কাছে PC B-র জন্য একটা Frame আছে। Physical Layer-এর কাছে এটা শুধু এক সারি Bit; প্রথম আটটা: 1 0 1 1 0 0 0 1। এই Layer-এ Frame, MAC বা IP-এর কোনো মানে নেই।

#Layer 1 নষ্ট হলে

Physical সমস্যা দেখতে এমন: Link Light জ্বলে না, “Network Cable Unplugged”, Interface Down হয়ে আছে, 1 Gbps-এর বদলে Link উঠছে 100 Mbps-এ (প্রায়ই একটা তারের জোড়া নষ্ট), খারাপ FCS-ওয়ালা Frame-এর সংখ্যা বাড়ছে (Noise, বাঁকানো Cable, ময়লা Fibre Connector), বা Wi-Fi Signal দুর্বল। যন্ত্রপাতি: Port-এর Link Light, Linux-এ ip link আর ethtool eth0 (Speed, Duplex আর Error Counter), Cable Tester, Multimeter, Fibre-এর জন্য OTDR (ভাঙা জায়গা থেকে ফিরে আসা আলোর সময় মেপে বলে দেয় সমস্যা কত মিটার দূরে), আর Wi-Fi Analyser App। Cloud-এ Layer 1 তুমি কখনো দেখো না: Provider সেটা চালায়।

#Layer 5 আর 6: আজকে আসলে কী করে

OSI Table-এ Session আর Presentation-কে দেখে মনে হয় এরা নিজস্ব Protocol-ওয়ালা দুটো Layer। Internet-এ কিন্তু এরা আলাদা Layer-ই না: TCP/IP Model দুটোকেই Application-এর ভেতরে ঢুকিয়ে দিয়েছে। তবে কাজগুলো সত্যি, প্রতিটা Web Request-এ লাগে; শুধু সেগুলো করে তোমার Program-এর ভেতরের Protocol আর Library (আর TLS)। কোন কাজ আসলে কোথায় হয়, এটা জানলেই তুমি এলোমেলো লেখা, বারবার মেয়াদ ফুরানো Login আর শূন্য থেকে আবার শুরু হওয়া Download-এর সমস্যা ধরতে পারবে।

#Session (L5): কথোপকথন চালু রাখা

Session মানে এমন একটা কথোপকথন যা এক বার্তার চেয়ে লম্বা: অফিসের PC-তে Remote Desktop দিয়ে ঢোকা, বা অনেকগুলো পাতা জুড়ে Banking Site-এ তোমার Login। OSI Session Layer-কে এই কাজগুলো দেয়:

  • Session তৈরি করা, চালু রাখা আর বন্ধ করা।
  • Dialog Control: কে কখন কথা বলবে, পালা করে (Half-duplex Dialog) না একসঙ্গে (Full-duplex Dialog)।
  • Synchronization: লম্বা Transfer-এর মাঝে মাঝে Checkpoint বসানো।
  • Recovery: মাঝপথে থেমে গেলে আবার শুরু থেকে না করে শেষ Checkpoint থেকে চালানো।
  • Token Management: যার হাতে Token, শুধু সে-ই পাঠাতে পারবে বা জরুরি কোনো কাজ করতে পারবে।

বইয়ে Session Layer-এর Protocol হিসেবে NetBIOS Session Service, RPC, SMB Session আর PPTP-র (পুরনো একটা VPN Protocol, এখন অনিরাপদ আর বাতিল) নাম থাকে। আধুনিক TCP/IP-এ Session Layer নেই, তাই প্রতিটা কাজ আজ কোথায় থাকে দেখো:

Session-এর কাজআজকের Internet-এ কে করে
কথোপকথন খোলা আর বন্ধ করাTCP Handshake আর FIN (L4), তারপর TLS Handshake
Request-এর পর Request তুমি কে তা মনে রাখাApplication-এর Cookie, Session ID আর Token (Lesson 1.3)
বিরতির পর দ্রুত আবার শুরুTLS Session Resumption (Ticket), HTTP Keep-alive, QUIC Connection Migration
লম্বা Transfer-এ Checkpoint আর RecoveryResumable Upload, HTTP Range Request, rsync, Download Manager-এর “Resume”
Dialog ControlProtocol-এর নিজের নিয়ম: HTTP/1.1-এ আগে Request, তারপর Response; WebSocket-এ দুই পক্ষ একসঙ্গে কথা বলে

Note-এর Banking উদাহরণটা ধরো। তুমি Login করলে; Server Password মিলিয়ে একটা Session বানাল; তুমি Balance দেখলে, তারপর Statement, তারপর Transfer-এর পাতা, আর প্রতিটা Request-এর সঙ্গে Session Cookie যাচ্ছে বলে Server জানে এটা এখনো তুমিই; Logout করলে Server Session-টা বাতিল করে দিল। এটাই Session Management, কিন্তু বানিয়েছে Application, HTTP-এর ওপরে; Network Stack-এর আলাদা কোনো Layer নয়।

Session Checkpoint: দুর্বল Connection-এ ২ GB Upload

OSI Session Layer-এর “Synchronization আর Recovery”, আসল App যেভাবে করে: Application-এর ভেতরে।

পরিস্থিতি

একটাই লম্বা Request; যেকোনো বিচ্ছেদ মানে আবার শূন্য থেকে।

ফোনের Appভিডিও Upload করছে0%
Upload Serveruploads.example.com
POST /videos (একবারে ২ GB)
ধাপ 1 / 4
1

App পুরো ভিডিওটা একটাই লম্বা Request-এ পাঠায়। কতদূর গেল, তার কোনো চিহ্ন রাখা হয় না।

Session-এ গোলমাল হলে যা দেখবে: Session কেটে যাওয়া (Wi-Fi একটু হোঁচট খেলেই Remote Desktop বিচ্ছিন্ন), Timeout (অনেকক্ষণ কিছু না করায়), Form পূরণের মাঝখানে “তোমার Login-এর মেয়াদ শেষ”, আবার Connect করতে গিয়ে ব্যর্থ, কারণ Server Session ভুলে গেছে (Restart-এ Memory-তে রাখা Session মুছে গেছে), বা Transfer কতদূর গিয়েছিল তা নিয়ে দুই পক্ষের দ্বিমত।

#Presentation (L6): দুই দিকে Byte-এর মানে যেন একই থাকে

Presentation Layer-কে Translation বা Syntax Layer-ও বলে। এর কাজ হলো Sender যে মানে বুঝিয়ে পাঠিয়েছে, Receiver যেন ঠিক সেই মানেই বোঝে। কাজ তিনটা: Translation (Character Encoding আর Data Format), Compression আর Encryption।

Character Encoding: অক্ষর থেকে Byte

Network বহন করে Byte, অক্ষর না। কোন Byte কোন অক্ষর, এ নিয়ে দুই পক্ষকে একমত হতে হয়।

Encodingএটা কীপ্রতি অক্ষরে কত Byte
ASCII (১৯৬৩)১২৮টা অক্ষর: ইংরেজি বর্ণ, অঙ্ক, যতিচিহ্ন, কিছু Control Code। ৳ নেই, ক নেই, é নেই১ (৭ Bit ব্যবহার হয়)
Unicodeএটা Encoding না, একটা বড় তালিকা: পৃথিবীর সব লিপির প্রতিটা অক্ষরের জন্য একটা করে নম্বর, যাকে বলে Code Point। A হলো U+0041, ক হলো U+0995, 😀 হলো U+1F600। দেড় লাখের বেশি অক্ষর(Encoding-এর ওপর নির্ভর করে)
UTF-8Unicode রাখার সবচেয়ে চালু উপায়। ASCII লেখা এমনিতেই বৈধ UTF-8। প্রায় ৯৮% Website এটা ব্যবহার করে, আর Network-এ JSON পাঠাতে হলে UTF-8 বাধ্যতামূলক১ থেকে ৪: ইংরেজি ১, বাংলা ৩, Emoji ৪
UTF-16Unicode-এর আরেকটা Encoding, Windows, Java আর JavaScript-এর String-এর ভেতরে চলে২ বা ৪
EBCDICIBM Mainframe-এর Encoding; ব্যাংক যখন Mainframe-এর সঙ্গে File আদান-প্রদান করে, তখনো দেখা যায়১

Unicode-এর আগে প্রতিটা অঞ্চলের নিজস্ব ৮-Bit “Code Page” ছিল, আর ১২৮–২৫৫ মানগুলো একেকটায় একেক অক্ষর বোঝাত। ফলে একই Byte এক কম্পিউটারে এক অক্ষর, আরেকটায় আরেক অক্ষর দেখাত। আজ বাংলা, আরবি আর Emoji যে প্রায় সব জায়গায় ঠিকঠাক দেখা যায়, সেটা Unicode আর UTF-8-এর কল্যাণে।

Mojibake (জাপানি শব্দ, মানে মোটামুটি “অক্ষরের রূপান্তর”) হলো সেই জিনিস, যখন এক Encoding-এ লেখা Byte আরেক Encoding ধরে পড়া হয়। বাংলা শব্দটায় অক্ষর ৫টা, কিন্তু UTF-8-এ Byte ১৫টা (E0 A6 AC E0 A6 BE …)। এই Byte-গুলোকে Windows-1252 (পশ্চিম ইউরোপের একটা Code Page) ধরে পড়লে প্রতিটা Byte নিজেই একটা ল্যাটিন অক্ষর হয়ে যায়: বাংলা। কিছুই নষ্ট হয়নি: ঠিক Byte-গুলোকে ভুল Table দিয়ে পড়া হচ্ছে, UTF-8 ধরে পড়লেই শব্দটা ফিরে আসে। এর চেয়ে খারাপ দুটো লক্ষণ আছে: ? চিহ্ন বা Replacement Character � মানে কোনো এক ধাপে Convert করার সময় আসল Byte ফেলেই দেওয়া হয়েছে, মূল লেখা আর ফেরত আসবে না।

ঠেকানোর উপায়: Label দাও, সবাই একমত হও। পাঠাও Content-Type: text/html; charset=utf-8 (বা application/json, যা সবসময় UTF-8), HTML-এ রাখো <meta charset="utf-8">, Source File UTF-8-এ Save করো, আর Database-টা দেখে নাও। MySQL-এর পুরনো utf8 Type প্রতি অক্ষরে সর্বোচ্চ ৩ Byte রাখে, তাই একটা Emoji (৪ Byte) Save হয় না বা কেটে যায়; ব্যবহার করো utf8mb4।

Compression: তারের ওপর কম Byte

  • Lossless Compression মূল প্রতিটা Bit ফেরত দেয়: লেখা আর File-এর জন্য ZIP, gzip, Brotli, zstd; ছবির জন্য PNG; গানের জন্য FLAC। যেখানে প্রতিটা Byte জরুরি (Code, JSON, Document), সেখানে এটাই।
  • Lossy Compression এমন খুঁটিনাটি ফেলে দেয় যা মানুষ টের পায় না, বিনিময়ে অনেক ছোট হয়: JPEG ছবি, MP3 আর AAC গান, প্রায় সব ভিডিও। আসলটা আর ফেরত পাওয়া যায় না।

Note-এর হিসাবটা: ১০০ MB-এর File Compress করে ৬০ MB হলো, বাঁচল ৪০ MB, মানে ৪০% কমল (অনুপাত ১০০ ÷ ৬০ ≈ ১.৬৭ : ১)। Web-এ Browser জানিয়ে দেয় সে কোন কোন পদ্ধতি বোঝে (Accept-Encoding: gzip, br, zstd), আর Server জানায় কোনটা ব্যবহার করল (Content-Encoding: br); HTML, CSS, JavaScript, JSON-এর মতো লেখা প্রায়ই ৭০% বা তার বেশি ছোট হয়। যেগুলো আগেই Compress করা (JPEG, MP4, ZIP), সেগুলো আর তেমন ছোট হয় না, তাই Server ওগুলো বাদ দেয়।

ক্রমটা জরুরি: আগে Compress, তারপর Encrypt। ভালো Encryption Byte-গুলোকে এলোমেলো দেখায়, আর এলোমেলো Byte Compress হয় না। (একই Encrypted Response-এ গোপন তথ্য আর আক্রমণকারীর পাঠানো লেখা একসঙ্গে Compress করলে গোপন তথ্য ফাঁস হতে পারে; সেই আক্রমণ আর তার সমাধান আছে অধ্যায় ২-এ।)

Data Format আর Encryption

Data-র ধরনচালু Format
ছবিJPEG, PNG, GIF, WebP
গান / AudioMP3, WAV, AAC
ভিডিওMP4
লেখাASCII, UTF-8
কাঠামোবদ্ধ DataJSON, XML (Protobuf-এর মতো Binary Format আছে অধ্যায় ২-এ)
Compressed ArchiveZIP, gzip
EncryptionTLS, AES বা ChaCha20-এর মতো Cipher দিয়ে

Web-এ Content-Type Header Receiver-কে বলে দেয় কোন Format আসছে (image/jpeg, application/json)। Note-এর উদাহরণ: তুমি WhatsApp-এ একটা ছবি পাঠালে। ছবিটা JPEG (আগেই Lossy Compress করা), ফোন থেকে বের হওয়ার আগেই Encrypt হয়, আর বন্ধুর ফোন সেটা Decrypt করে, JPEG Decode করে, তারপর পর্দায় আঁকে। Encoding-এর গোলমাল, এলোমেলো অক্ষর, ছবি বা ভিডিও Decode না হওয়া, Decryption ব্যর্থ হওয়া আর “Unsupported File Format”: এগুলো সবই Presentation-এর সমস্যা।

#একটা HTTPS Request-এ সবকিছু কোথায় ঘটে

কাজOSI বলেআসলে করেকোথায় চলে
Character EncodingL6তোমার Code আর Framework (String থেকে UTF-8 Byte)Application
Data FormatL6JSON, HTML, JPEG; Content-Type দিয়ে Label করাApplication
CompressionL6HTTP Content-Encoding (gzip, Brotli, zstd)Web Server বা Application
EncryptionL6TLS Record (বা QUIC)Process-এর ভেতরের TLS Library (যেমন OpenSSL), বা যে Load Balancer TLS Terminate করে
তুমি কেL5Cookie বা TokenApplication
দ্রুত আবার শুরুL5TLS Session Ticket, Keep-aliveTLS Library, HTTP
কথোপকথন খোলা-বন্ধL5TCP Handshake আর FINঅপারেটিং সিস্টেমের Kernel (L4)

তাই পাতায় যখন বাংলা দেখো, তখন Cable না, Header আর Code দেখো; আর User-রা কয়েক মিনিট পরপর Logout হয়ে গেলে কোনো “Session Layer” না, দেখো Cookie, Session কোথায় রাখা হচ্ছে আর Load Balancer-এর Stickiness।

আসল HTTPS Response-এ Layer 5 আর 6

একটা দোকানের API “বাংলা বই” নামের একটা পণ্য ফেরত দেয়। প্রতিটা বাক্স এমন একটা কাজ যা OSI Model Layer 5 বা 6-কে দেয়, সঙ্গে লেখা আসলে কে করে।

পরিস্থিতি

Encode → Compress → Label → Encrypt → TCP। OSI 5 আর 6-এর প্রতিটা কাজ, করছে App, Web Server, TLS আর Kernel।

Memory-তে লেখা · তোমার Code{ name: বাংলা বই, price: 500 }
ধাপ 1 / 7
1

App-এর Memory-তে পণ্যটা লেখা হিসেবে আছে: অক্ষর, এখনো Byte না। Network শুধু Byte বইতে পারে।

#TCP/IP Model: যে চার Layer আসলে Internet চালায়

Internet তৈরি হয়েছে TCP/IP Model-এর (Internet Protocol Suite-ও বলে) ওপর, যার চারটি Layer:

TCP/IP LayerOSI Layerএখানে কী থাকে
Application7, 6, 5HTTP, TLS, DNS, SMTP, SSH: তোমার Program-এর ভেতরের সবকিছু
Transport4TCP, UDP (আর UDP-এর ওপর QUIC)
Internet3IP (IPv4, IPv6), ICMP
Link (Network Access)2, 1Ethernet, Wi-Fi, 4G/5G, Fibre: পরের Hop-এ যা পৌঁছে দেয়

কিছু বইয়ে Link Layer-কে Data Link ও Physical-এ ভাগ করে একে ৫-Layer Model বলা হয়। প্রতিদিনের কাজে মানুষ দুটো মিশিয়ে ফেলে: Protocol ব্যবহার করে TCP/IP-এর, নম্বর বলে OSI-এর।

OSITCP/IP
কে বানিয়েছেISO, প্রকাশ ১৯৮৪১৯৭০-এর দশকে ARPANET-এর জন্য DARPA-র (মার্কিন প্রতিরক্ষা বিভাগ) গবেষণা; Host-এর শর্ত হিসেবে লেখা হয় RFC 1122 আর 1123-এ (১৯৮৯)
এটা কীএকটা Reference Model: যেকোনো Network বর্ণনা করার কাঠামো, কোনো Protocol-এর সঙ্গে বাঁধা নাএকটা Protocol Suite, যা আগে তৈরি হয়েছে; Model পরে বর্ণনা করেছে যা বানানো হয়েছিল
Layer৭৪ (কিছু বইয়ে ৫)
Transport-এর ওপরেতিনটা Layer: Session, Presentation, Applicationএকটাই Application Layer তিনটা কাজ করে
Network-এর নিচেData Link আর Physical আলাদাএকটাই Link Layer
কাজে লাগেপড়ানো, সবার এক ভাষা, Layer ধরে Troubleshootingআসলে Internet চালানো

OSI বেশি খুঁটিনাটি, কারণ এটা কাগজে-কলমে বানানো হয়েছিল সম্ভাব্য সব Network বর্ণনা করতে; TCP/IP ছিপছিপে, কারণ এটা এসেছে আগে থেকেই চলা Protocol থেকে। প্রতিটা Layer-এর নিজের ধরনের Address-ও আছে: Layer 2-এ MAC, Layer 3-এ IP, Layer 4-এ Port। Layer 1-এর কোনো Address নেই: সে শুধু Signal বয়ে নেয়।

Note থেকে একটি গুরুত্বপূর্ণ পার্থক্য: TCP/IP Model-এ IP Layer-এর কাজ হলো Packet গন্তব্যের দিকে পাঠানো, Hop by hop, কোনো প্রতিশ্রুতি ছাড়াই (Packet হারাতে, দুবার আসতে বা ক্রম উল্টে যেতে পারে)। TCP Layer-এর কাজ হলো নির্ভরযোগ্য Transport: তার ওপর দুটি Program-এর মধ্যে ক্রম, Retransmission ও Flow Control।

#কোন ডিভাইস কোন Layer পড়ে

একটি ডিভাইস শুধু সেই Header দেখেই সিদ্ধান্ত নিতে পারে যেটা সে খোলে। ওপরের ডিভাইস পরিস্থিতিটি এটা দেখায়, আর Note-এ প্রথম তিনটির জন্য একটি ক্লাসরুমের ছবি আছে:

ডিভাইসকতদূর খোলেকী দেখে সিদ্ধান্তকী বদলায়
Hub, RepeaterL1কিছুই না (Bit পুনরাবৃত্তি করে)কিছুই না
SwitchL2Destination MACকিছুই না (Source MAC শেখে)
RouterL3Destination IP + Routing TableTTL, IP Checksum, পুরো Frame
NAT Router, L4 Firewall, L4 Load BalancerL4IP ও PortAddress ও Port (NAT)
L7 Load Balancer, Reverse Proxy, WAF, API GatewayL7URL, Header, Cookieযেকোনো কিছু; HTTPS পড়তে TLS Terminate করতে হয়

কিছু বইয়ে L5-এ একটা “Session Gateway” আর L6-এ একটা “SSL/TLS Gateway” দেখানো হয়। বাস্তবে TLS যে যন্ত্রে শেষ হয়, সেটা শেষ সারির ওই L7 Proxy বা Load Balancer; আর বেশিরভাগ আসল যন্ত্র কয়েকটা Layer জুড়ে কাজ করে (বাসার Router একসঙ্গে Switch, Router, NAT Box আর DHCP Server)।

#একটি TCP/IP Packet-এর ভেতরে কী থাকে

এবার সবচেয়ে গুরুত্বপূর্ণ Networking অংশ: তোমার Browser যখন একটি Server-এ HTTPS Request পাঠায়, Data কীভাবে একের পর এক Header-এ মোড়ানো হয়? Note-এর সরলীকৃত কাঠামো, ভেতর থেকে বাইরে:

মোড়কযোগ করেপ্রধান উপাদান
Application DataHTTP Request / ResponseGET /index.html, Host, Cookie…
TLS RecordHTTP Content Encrypt করে৫ B Header + Ciphertext + ১৬ B Authentication Tag
TCP Header + Encrypted Payload = Segment২০–৬০ BSource Port, Destination Port, Sequence Number, Flag…
IP Header + TCP Segment = Packet২০ B (IPv4) / ৪০ B (IPv6)Source IP, Destination IP, TTL…
Ethernet / Wi-Fi Frame১৪ B Header + ৪ B TrailerLocal Link-এর MAC Address ও Frame তথ্য

এই প্রক্রিয়াকে বলে Encapsulation: প্রতিটি Layer ওপর থেকে পাওয়া সবকিছুকে একটি বন্ধ Payload হিসেবে ধরে নিজের Header (কখনো Trailer-ও) যোগ করে। Receiver-এর দিকে Layer-গুলো বিপরীত ক্রমে তথ্য Process করে, যাকে বলে Decapsulation।

Encapsulation: একটি Request, মোড়ানো ও খোলা

192.168.1.10:53000 থেকে 198.51.100.20:443-এ একটি HTTPS Request। প্রতিটি Layer একটি Header যোগ করে; Receiver উল্টো ক্রমে সেগুলো খোলে।

পরিস্থিতি

ওপর থেকে নিচে: Application Data → TLS Record → TCP Segment → IP Packet → Ethernet Frame → Bit।

Application Data: HTTP RequestGET /index.html · Host: example.com · Cookie …
ধাপ 1 / 7
1

Browser Application Data তৈরি করে: সাধারণ Text-এ একটি HTTP Request। এই মুহূর্তে এটা শুধু Memory-তে কিছু Byte।

#Ethernet Frame, Field ধরে ধরে

Fieldআকারউদ্দেশ্য
Preamble + Start Frame Delimiter৭ + ১ Bপর্যায়ক্রমিক Bit, যাতে Receiver ঘড়ি মেলাতে পারে, তারপর “Frame এখন শুরু”
Destination MAC৬ Bএই Link-এর পরের ডিভাইস (প্রায়ই Router, শেষ Server নয়)
Source MAC৬ BSender-এর Network Card
(VLAN Tag, ঐচ্ছিক)৪ BFrame-টি কোন Virtual LAN-এর
EtherType২ Bভেতরে কী: 0x0800 IPv4, 0x86DD IPv6, 0x0806 ARP
Payload৪৬–১৫০০ BIP Packet; ছোট হলে ৪৬ B পর্যন্ত Padding
FCS (Frame Check Sequence)৪ BFrame-এর ওপর একটি CRC-32 Checksum
Inter-frame Gap১২ B নীরবতাপরের Frame-এর আগে বাধ্যতামূলক বিরতি

Noise-এ নষ্ট হওয়া Frame ধরা হয় FCS দিয়ে। Receiver প্রাপ্ত Byte-এর ওপর CRC আবার হিসাব করে; ফল FCS থেকে ভিন্ন হলে Frame নিঃশব্দে বাতিল হয়। কাউকে জানানো হয় না। Ethernet আবার পাঠায় না (Wi-Fi নিজে কয়েকবার চেষ্টা করে), তাই উদ্ধারের দায়িত্ব TCP-এর, যে হারানো ACK লক্ষ করে Retransmit করে। ওপরের নষ্ট Frame পরিস্থিতিটি চালিয়ে দেখো।

সবচেয়ে ছোট Ethernet Frame ৬৪ Byte (Header + Payload + FCS), তাই খুব ছোট Payload-এ Padding যোগ হয়।

#IPv4 Header

Fieldউদ্দেশ্য
Version, Header LengthIPv4-এর জন্য 4; সাধারণত ২০ Byte (বিরল Option থাকলে বেশি)
Traffic Class Bitঅগ্রাধিকার চিহ্ন ও Congestion সংকেত
Total Lengthপুরো Packet-এর আকার
Identification, Flag, Fragment OffsetPacket টুকরো (Fragment) হলে ব্যবহৃত হয়; Flag-এর মধ্যে আছে Don’t Fragment ও More Fragments
TTL (Time To Live)প্রতিটি Router ১ করে কমায়; ০ হলে Packet বাতিল (Loop থামায়)
Protocolভেতরে কী: 6 = TCP, 17 = UDP, 1 = ICMP
Header Checksumশুধু Header রক্ষা করে; প্রতি Hop-এ আবার হিসাব হয়, কারণ TTL বদলায়
Source IP, Destination IPEnd-to-End Address

IPv6 Header নির্দিষ্ট ৪০ Byte এবং সরলতর: Version, Traffic Class, Flow Label, Payload Length, Next Header (Protocol-এর মতো), Hop Limit (TTL-এর একই ধারণা), আর ১২৮-Bit Source ও Destination Address। এতে Header Checksum নেই, আর Router কখনো IPv6 Packet Fragment করে না।

#TCP ও UDP Header

TCP (ন্যূনতম ২০ Byte, Option-সহ ৬০ পর্যন্ত): Source Port, Destination Port, Sequence Number, Acknowledgment Number, Header Length, Flag (SYN, ACK, FIN, RST ও আরও কয়েকটি), Window Size (Flow Control), Checksum, Urgent Pointer, আর MSS, Window Scaling, Selective ACK ও Timestamp-এর মতো Option।

UDP (সবসময় ৮ Byte): Source Port, Destination Port, Length, Checksum। ব্যস, এজন্যই UDP দ্রুত ও সরল, আর বাকি সব (ক্রম, পুনরায় চেষ্টা) Application-এর দায়িত্ব। TCP ও UDP-এর আচরণ বিস্তারিত আছে Lesson 1.9-এ।

নিজেকে যাচাই করোপ্রশ্ন

একটি Frame Switch-এ পৌঁছাল। কোথায় পাঠাবে তা ঠিক করতে Switch কোন Field ব্যবহার করে?

#Hop by hop: পথে পথে Decapsulation

Encapsulation শুধু একবার Sender-এ হয়ে একবার Receiver-এ খোলা হয় না। পথের প্রতিটি Router Data আংশিক খোলে ও আবার মোড়ায়:

  1. Switch Destination MAC পড়ে Frame হুবহু পাঠিয়ে দেয়।
  2. Router FCS দেখে, Frame সরায়, IP Header পড়ে, পরের Hop খোঁজে, TTL কমায়, Header Checksum আবার হিসাব করে, আর পরের Link-এর জন্য নতুন Source ও Destination MAC দিয়ে একদম নতুন Frame বানায়।
  3. প্রতিটি Router-এ এটা চলতে থাকে। IP Address ও Port End-to-End একই থাকে (NAT বদলে না দিলে, Lesson 1.7), কিন্তু MAC Address প্রতিটি Link-এ বদলায়।
  4. শুধু গন্তব্য Host Application পর্যন্ত পুরোটা খোলে।

Note-এর এই লাইনের মানে এটাই: MAC Address Local Link-এ ব্যবহৃত হয়, আর IP Address End-to-End গন্তব্য চিহ্নিত করে। Lesson 1.6 এটাকে Addressing-এর দিক থেকে দেখে।

Hop by hop: প্রতিটি ডিভাইস Packet কতটা খোলে

Map-এর নিচের Header Field-গুলো দেখো। হাইলাইট করা Field মাত্রই বদলানো হয়েছে। (এখানে NAT নেই, তাই খাঁটি Routing দেখা যাবে; NAT আছে Lesson 1.7-এ।)

পরিস্থিতি

Laptop203.0.113.10L7 → L1
SwitchL2
অফিস RouterL3
ISP RouterL3
Web Server198.51.100.20

Laptop থেকে বের হওয়ার সময়

Dest MAC (L2)

00:1a:2b:00:00:01 (router)

Source MAC (L2)

3c:22:fb:01:01:01 (laptop)

Source IP (L3)

203.0.113.10

Dest IP (L3)

198.51.100.20

TTL (L3)

64

Port (L4)

53000 → 443

ধাপ 1 / 6
1

Laptop পুরো Stack তৈরি করে। Frame-এর Destination MAC অফিস Router-এর (ARP দিয়ে পাওয়া), কারণ Server অন্য Network-এ।

TTL ০ হলে Router Packet বাতিল করে আর একটি ICMP Time Exceeded বার্তা ফেরত পাঠায়। TTL না থাকলে একটি Routing ভুলে Packet চিরকাল ঘুরত। traceroute Tool এটাকে কাজে লাগায়: TTL 1, 2, 3… দিয়ে Packet পাঠায়, ফলে প্রতিটি Router পালা করে নিজের পরিচয় দেয়।

#MTU, MSS ও Fragmentation

প্রতিটি Link-এর একটি MTU (Maximum Transmission Unit) আছে: একটি Frame-এ সবচেয়ে বড় যে IP Packet সে বইতে পারে। Ethernet ও Wi-Fi-এর জন্য এটা ১৫০০ Byte। আরও কিছু সাধারণ মান: PPPoE Broadband-এ ১৪৯২, VPN Tunnel-এর ভেতরে প্রায় ১৪০০ বা কম (Tunnel নিজের Header যোগ করে), আর Data Centre-এর ভেতরে ৯০০০-এর “Jumbo Frame”।

MTU থেকে TCP তার MSS (Maximum Segment Size) বের করে, অর্থাৎ একটি Segment সর্বোচ্চ কতটা Application Data বইতে পারে:

  • IPv4: ১৫০০ − ২০ (IP) − ২০ (TCP) = ১৪৬০ Byte
  • IPv6: ১৫০০ − ৪০ − ২০ = ১৪৪০ Byte

TCP Handshake-এর সময় দুই পক্ষ নিজেদের MSS জানিয়ে দেয়। তাই ১০ KB-এর একটি Response-কে TCP ৭টি Segment-এ কাটে, প্রতিটি নিজস্ব Packet হিসেবে যায়।

Packet যদি পরের Link-এর MTU-র চেয়ে বড় হয়?

  • IPv4, Don’t Fragment বন্ধ: Router একে Fragment-এ ভাগ করে, প্রতিটিতে IP Header-এর কপি, একই Identification, একটি Offset আর “More Fragments” Flag থাকে। শুধু গন্তব্য এগুলো জোড়া লাগায়। একটি Fragment হারালে পুরো Packet হারায়, আর Firewall Fragment অপছন্দ করে, তাই এটা এড়িয়ে চলা হয়।
  • IPv4, Don’t Fragment চালু (TCP যা করে): Router Packet ফেলে দিয়ে ছোট MTU-সহ ICMP “Fragmentation needed” ফেরত পাঠায়। Sender ওই গন্তব্যের জন্য Packet ছোট করে। একে বলে Path MTU Discovery।
  • IPv6: Router কখনো Fragment করে না; ICMPv6 “Packet Too Big” ফেরত পাঠায় আর Sender মানিয়ে নেয়। প্রতিটি IPv6 Link-কে অন্তত ১২৮০ Byte বইতে হবে।

#সংখ্যায় Overhead

Ethernet-এ পূর্ণ আকারের একটি TCP/IPv4 Packet-এর হিসাব:

অংশByte
Preamble + Delimiter৮
Ethernet Header১৪
IPv4 Header২০
TCP Header২০
তোমার Data (MSS)১৪৬০
FCS৪
Inter-frame Gap১২
তারে মোট সময়১৫৩৮

দক্ষতা ১৪৬০ ÷ ১৫৩৮ ≈ ৯৫ %। TCP Timestamp (Header-এ আরও ১২ Byte, Linux-এ সাধারণ) আর TLS (প্রতি Record-এ প্রায় ২১ Byte) যোগ করলে কাজের Data নেমে আসে প্রায় ৯৩ %-এ। ১ Byte Payload-এর ক্ষেত্রে ছবিটা উল্টো: ১ Byte পৌঁছাতে তারে ৮৪ Byte। নিজে চালিয়ে দেখো:

Overhead Calculator: মোড়কের খরচ কত

Input বদলাও। Bar-টি একটি Ethernet Link-এ পূর্ণ আকারের একটি Packet, Byte ধরে ধরে দেখায়।

পাঠানোর Application Data: 10,000 Byte

IP VersionTransport
Link MTU

তারে প্রথম Packet: 1,538 Byte

  • Preamble + Delimiter 8
  • Ethernet Header 14
  • IPv4 20
  • TCP 20
  • তোমার Data 1,460
  • FCS 4
  • Inter-frame Gap 12

প্রতি Packet-এ সর্বোচ্চ Data

1,460 B

কয়টি Packet লাগবে

7

তারে মোট Byte

10,546 B

দক্ষতা (Data ÷ মোট)

94.8 %

i

1,460 = 1,500 − 20 (IPv4) − 20 (TCP). TCP-এর ক্ষেত্রে এটাই MSS।

#System Design-এ Layer

  • Load Balancer বাছাই মানে Layer বাছাই। একটি L4 Load Balancer (যেমন AWS Network Load Balancer) IP ও Port দেখে TCP/UDP পাঠায়: খুব দ্রুত, যেকোনো Protocol চলে, কিন্তু URL দেখতে পায় না। একটি L7 Load Balancer (AWS Application Load Balancer, Nginx, Envoy) TLS Terminate করে Path, Header বা Cookie দেখে Route করে, বেশি Processing খরচে।
  • TLS কোথায় Terminate হয় সেটাই ঠিক করে কে Traffic পড়তে পারবে: Load Balancer-এ (তার পেছনে সে সাধারণ HTTP দেখে) নাকি Application-এ (End-to-End Encryption, কিন্তু Load Balancer তখন শুধু L4 করতে পারে)।
  • ছোট বার্তা ব্যয়বহুল। প্রতিটি Request Header-এর খরচ আর একটি Round Trip দেয়। Batching, Connection খোলা রাখা আর HTTP/2 Multiplexing আংশিক এই কারণেই।
  • Cloud-এ MTU গুরুত্বপূর্ণ। AWS VPC-এর ভেতরে Jumbo Frame (৯০০১) চলে, কিন্তু VPN বা Internet দিয়ে বের হওয়া Traffic ১৫০০ বা কমে নেমে আসে। MTU না মিললে ঠিক ওপরের Black Hole লক্ষণ দেখা দেয়।
  • Layer ধরে Debug করো। Link চালু? (L1/L2) Gateway-তে ping যায়? (L3) Port খোলা? (L4) App ঠিক উত্তর দেয়? (L7) Lesson 1.14-এ এটাকে একটি Checklist বানানো হয়েছে।

#নিজে চেষ্টা করো

# তোমার Interface-এর MTU দেখো
ip link show            # Linux: "mtu 1500" খোঁজো
netsh interface ipv4 show subinterfaces   # Windows

# Path MTU বের করো: এমন Packet পাঠাও যা Fragment করা যাবে না
ping -M do -s 1472 example.com    # Linux: 1472 + 8 ICMP + 20 IP = 1500
ping -f -l 1472 example.com       # Windows-এ একই কাজ
# 1472-এ "Frag needed" / "needs to be fragmented" এলে, কাজ না করা পর্যন্ত আকার কমাও।

# TTL দিয়ে Hop খুঁজে বের করা দেখো
traceroute example.com    # macOS / Linux
tracert example.com       # Windows

নিজের চোখে Encapsulation দেখতে Wireshark খোলো, Wi-Fi Interface-এ Capture চালু করো আর যেকোনো Website খোলো। একটি Packet-এ Click করো: মাঝের অংশে Layer-গুলো ঠিক এই Lesson-এর মতো সাজানো, Ethernet → Internet Protocol → Transmission Control Protocol → Transport Layer Security, আর প্রতিটি Header Field খুলে দেখা যায়।

#সারসংক্ষেপ

মূল বিষয়গুলো

  • Networking Layer-এ ভাগ করা, যাতে প্রতিটি Layer একটি কাজ করে, শুধু নিচের Layer ব্যবহার করে আর নিজের Header দিয়ে সমকক্ষের সঙ্গে কথা বলে। Layer আলাদাভাবে বদলানো যায়।
  • OSI (৭ Layer): Physical (Bit), Data Link (Frame, MAC, Switch), Network (Packet, IP, Router), Transport (Segment/Datagram, Port), Session, Presentation, Application। TCP/IP (৪ Layer): Link, Internet, Transport, Application।
  • Encapsulation: Application Data → TLS Record → TCP Segment → IP Packet → Ethernet/Wi-Fi Frame → Bit। Receiver উল্টো ক্রমে Decapsulate করে।
  • IP Layer Packet গন্তব্যের দিকে পাঠায়; TCP Layer Transport নির্ভরযোগ্য করে। MAC Address একটি Local Link-এ কাজ করে আর প্রতিটি Router-এ বদলায়; IP Address End-to-End গন্তব্য চিহ্নিত করে।
  • Switch L2 পড়ে, Router L3 পড়ে আর TTL ও Frame বদলায়, L7 ডিভাইস HTTP পড়ে (এবং TLS Terminate করতে হয়)।
  • Physical Layer: Bit হয়ে যায় তামার তারে Voltage, Fibre-এ আলো বা Radio Wave; এর Encoding (NRZ, Manchester আর দ্রুততর Code) Sender আর Receiver-কে একই তালেও রাখে। ভাগ করা Medium-এ (Bus, Hub) Collision হয়, তাই লাগে CSMA/CD; Switch প্রতিটা Port-কে নিজের Full-duplex Link দেয়, Collision আর থাকে না।
  • Session আর Presentation-এর কাজগুলো সত্যি, কিন্তু আজ থাকে Application-এর ভেতরে: Session থাকে TCP, TLS আর Cookie-তে; Checkpoint থাকে Resumable Upload-এ; Encoding (UTF-8), Compression (gzip, Brotli) আর Format থাকে App আর HTTP-তে; Encryption থাকে TLS-এ। Mojibake মানে ঠিক Byte, ভুল Table দিয়ে পড়া; প্রতিটা লেখার সঙ্গে তার Charset বলে দাও।
  • FCS নষ্ট Frame ধরে, যা নিঃশব্দে বাতিল হয়; TTL ঘুরতে থাকা Packet মেরে ফেলে; MTU (১৫০০) Packet-এর আকার সীমিত করে, MSS (১৪৬০) প্রতি Segment-এ TCP Data সীমিত করে, আর আটকানো ICMP থেকে MTU Black Hole হয়।