Part 1 · নেটওয়ার্কিং 📖 ১০ মিনিট পড়া 📝 ২০টি কুইজ

TCP এবং UDP

নির্ভরযোগ্যতা vs গতি — দুটি আলাদা ফিলোসফির প্রোটোকল।

📝 কুইজে যান

ভাবুন আপনি দুজন বন্ধুকে চিঠি পাঠাবেন। একজন বন্ধু চান চিঠি অবশ্যই পৌঁছাক, পৌঁছালে কনফার্মেশন দিন — তার জন্য আপনি Registered Post ব্যবহার করবেন। আরেকজন বন্ধু চান শুধু দ্রুত পাঠাতে — তার জন্য সাধারণ পোস্ট চলবে।

ইন্টারনেটেও দুটি দর্শন আছে — TCP (নির্ভরযোগ্য কিন্তু একটু ধীর) এবং UDP (দ্রুত কিন্তু গ্যারান্টি নেই)।

TCP — Transmission Control Protocol

TCP হলো একটি connection-orientedreliable প্রোটোকল। এটি নিশ্চিত করে ডেটা সঠিক ক্রমে এবং সম্পূর্ণভাবে গন্তব্যে পৌঁছায়।

TCP-এর বৈশিষ্ট্য

  • Connection-oriented: ডেটা পাঠানোর আগে handshake করে connection স্থাপন করে।
  • Reliable: প্রতিটি প্যাকেট পৌঁছানো নিশ্চিত করে।
  • Ordered delivery: ডেটা সঠিক ক্রমে পৌঁছায়।
  • Error checking: ভুল ডেটা ধরা পড়লে আবার পাঠানো হয়।
  • Flow control: sender ও receiver-এর গতি সমন্বয় করে।
  • Congestion control: নেটওয়ার্কে ভিড় হলে ডেটার গতি কমায়।

3-Way Handshake

TCP connection শুরু হয় ৩ ধাপের একটি handshake দিয়ে:

Client                   Server
  |                         |
  |---- SYN -------------->|   (১) "যোগাযোগ করতে চাই")
  |                         |
  |<---- SYN-ACK ----------|   (২) "ঠিক আছে, আমিও প্রস্তুত")
  |                         |
  |---- ACK -------------->|   (৩) "শুরু করি!")
  |                         |
  |==== Data Transfer ====|

TCP কোথায় ব্যবহৃত হয়?

  • Web browsing (HTTP, HTTPS)
  • ইমেইল (SMTP, IMAP)
  • File transfer (FTP)
  • Remote access (SSH)

UDP — User Datagram Protocol

UDP হলো একটি connectionlessfast প্রোটোকল। এটি ডেটা পাঠায় কিন্তু পৌঁছানোর গ্যারান্টি দেয় না।

UDP-এর বৈশিষ্ট্য

  • Connectionless: handshake নেই, সরাসরি ডেটা পাঠায়।
  • Fast: অনেক কম overhead — দ্রুত।
  • No guarantee: ডেটা হারিয়ে যেতে পারে।
  • No ordering: ডেটা যেকোনো ক্রমে পৌঁছাতে পারে।
  • Lightweight header: মাত্র ৮ বাইট header।

UDP কোথায় ব্যবহৃত হয়?

  • Live streaming: YouTube Live, Twitch — কিছু frame missed হলেও সমস্যা নেই।
  • Video calls: Zoom, WhatsApp call — দ্রুততা সবচেয়ে গুরুত্বপূর্ণ।
  • Online gaming: latency কমানো জরুরি।
  • DNS queries: ছোট, দ্রুত প্রশ্ন-উত্তর।
  • VoIP: voice call।

TCP বনাম UDP — তুলনা

TCP

  • ✓ Reliable — গ্যারান্টিযুক্ত ডেলিভারি
  • ✓ Ordered — সঠিক ক্রম
  • ✓ Error correction
  • ✗ ধীর (handshake + acknowledgement)
  • ✗ বেশি bandwidth লাগে
  • 📌 Use: HTTP, Email, FTP

UDP

  • ✓ দ্রুত — কম overhead
  • ✓ Real-time অ্যাপের জন্য আদর্শ
  • ✓ Low latency
  • ✗ Reliability নেই
  • ✗ ডেটা হারাতে পারে
  • 📌 Use: Video call, Gaming, DNS

বাস্তব উদাহরণ

  • WhatsApp চ্যাট মেসেজ: TCP — মেসেজ অবশ্যই পৌঁছাতে হবে।
  • WhatsApp ভিডিও কল: UDP — কিছু frame হারালেও সমস্যা নেই, latency জরুরি।
  • YouTube ভিডিও: ফাইল ডাউনলোড অংশে TCP, লাইভ স্ট্রিমে UDP।
  • Online গেম: UDP — দ্রুততা সবচেয়ে জরুরি।

সাধারণ ভুল ধারণা

  1. "UDP সবসময় খারাপ": না, real-time কাজে UDP-ই সেরা।
  2. "TCP সবসময় ভালো": না, ভিডিও কলে TCP ব্যবহার করলে অভিজ্ঞতা খারাপ হবে।
  3. "UDP-তে কোনো error checking নেই": আছে (checksum), কিন্তু ভুল ধরা পড়লে retransmit হয় না।

সিস্টেম ডিজাইনে কখন কোনটা ব্যবহার করবেন

  • Reliability জরুরি: TCP (পেমেন্ট, ফাইল ট্রান্সফার)
  • Latency জরুরি: UDP (গেমিং, ভিডিও কল)
  • Broadcast/Multicast: UDP
  • একসাথে অনেক ছোট রিকোয়েস্ট: UDP (DNS)

📌 চ্যাপ্টার সারমর্ম

  • TCP connection-oriented, reliable, ordered — কিন্তু ধীর।
  • UDP connectionless, fast — কিন্তু গ্যারান্টি নেই।
  • TCP 3-way handshake দিয়ে connection শুরু করে।
  • HTTP/HTTPS, Email, FTP → TCP।
  • Video call, Gaming, DNS, Live streaming → UDP।
  • সঠিক প্রোটোকল নির্বাচন application-এর প্রয়োজন অনুযায়ী।