Networking
TCP

টিসিপি (TCP) কী? – বাংলায় সহজ ব্যাখ্যা

TCP বা Transmission Control Protocol হলো এমন একটি যোগাযোগ প্রোটোকল যা ইন্টারনেটে ডেটা সঠিকভাবে, সুশৃঙ্খলভাবে এবং নির্ভরযোগ্যভাবে আদান-প্রদানে সাহায্য করে। এটি TCP/IP প্রোটোকল স্যুট-এর একটি গুরুত্বপূর্ণ অংশ, যা আজকের ইন্টারনেটের ভিত্তি।

TCP কাজ করে OSI মডেলের চতুর্থ স্তরে, যেটা হলো Transport Layer। এর মাধ্যমে অ্যাপ্লিকেশন লেয়ার (যেমন: ওয়েব ব্রাউজার, ইমেইল) এবং নেটওয়ার্ক লেয়ার (যেখানে IP কাজ করে) একসাথে যুক্ত হয়।


TCP কিভাবে কাজ করে?

TCP মূলত এমনভাবে ডিজাইন করা হয়েছে যাতে যেকোনো নেটওয়ার্কের মাধ্যমে ভুল ছাড়া এবং সঠিক ক্রমে ডেটা পাঠানো যায়। এর জন্য TCP নিচের পদ্ধতিগুলো অনুসরণ করে:


১. ত্রিমুখী হ্যান্ডশেক (Three-Way Handshake)

যখন কোনো ডিভাইস (যেমন কম্পিউটার বা মোবাইল) অন্য একটি ডিভাইসের সাথে TCP সংযোগ করতে চায়, তখন তারা তিনটি ধাপে নিজেদের মধ্যে সংযোগ স্থাপন করে:

  1. SYN – প্রেরক সংযোগ শুরু করার জন্য অনুরোধ পাঠায়।
  2. SYN-ACK – গ্রহীতা সম্মতি জানিয়ে জবাব দেয়।
  3. ACK – প্রেরক নিশ্চিত করে এবং সংযোগ স্থাপন সম্পন্ন হয়।

এই প্রক্রিয়া নিশ্চিত করে যে দুটি ডিভাইস যোগাযোগ শুরু করার জন্য প্রস্তুত।


২. চার-পদক্ষেপ হ্যান্ডশেক (Four-Step Teardown)

ডেটা পাঠানো শেষ হলে TCP সংযোগ বন্ধ করতে নিচের চারটি ধাপ অনুসরণ করে:

  1. FIN – প্রেরক সংযোগ বন্ধ করার অনুরোধ পাঠায়।
  2. ACK – গ্রহীতা সম্মতি জানায়।
  3. FIN - গ্রহীতা সংযোগ বন্ধ করার অনুরোধ পাঠায়।
  4. ACK- প্রেরক সম্মতি জানায়।
ধাপকে পাঠায়কী বোঝায়
FINClient → Server“আমি আর কিছু পাঠাবো না”
ACKServer → Client“তুমি শেষ করেছো, বুঝেছি”
FINServer → Client“আমিও শেষ করলাম”
ACKClient → Server“সব শেষ, বাই বাই”

এর ফলে দুপক্ষ শান্তিপূর্ণভাবে সংযোগ বন্ধ করে, কোনো তথ্য ক্ষতি হয় না।


TCP কীভাবে ডেটা পাঠায়?

  • TCP ডেটা ছোট ছোট অংশে বা "সেগমেন্ট"-এ ভাগ করে ফেলে। প্রতিটি সেগমেন্টকে একটি নির্দিষ্ট ক্রম নম্বর (sequence number) দেওয়া হয়।
  • ডেটা প্রেরণের পরে, TCP নিশ্চিত হয় যে সেগুলো ঠিকমতো গন্তব্যে পৌঁছেছে কিনা — এজন্য ACK (Acknowledgement) ব্যবহৃত হয়।
  • যদি কোনো সেগমেন্ট হারিয়ে যায়, TCP তা আবার পাঠায় — এটাকেই বলে ত্রুটি নিয়ন্ত্রণ (Error Control)

TCP এবং IP একসাথে কীভাবে কাজ করে?

TCP যখন সেগমেন্ট বানিয়ে ফেলে, তখন সেটাকে IP-এর হাতে তুলে দেয়। IP (Internet Protocol) সেই সেগমেন্টগুলোকে ঠিক গন্তব্যের দিকে রাউট করে।

উদাহরণ:

তুমি যখন ব্রাউজারে google.com টাইপ করো, তখন তোমার কম্পিউটার HTTP প্রোটোকলের মাধ্যমে অনুরোধ পাঠায়। এই HTTP আবার TCP-কে বলে, "ভাই, এই HTML ফাইলটা পাঠাও।" TCP সেটা ছোট ছোট প্যাকেটে ভাগ করে IP-কে দেয়, আর IP সেটা গুগলের সার্ভারে পাঠায়।


TCP-এর গুরুত্বপূর্ণ বৈশিষ্ট্যসমূহ

১. সংযোগমুখী (Connection-Oriented)

  • TCP ডেটা পাঠানোর আগে প্রেরক ও গ্রহীতার মধ্যে একটি স্থায়ী সংযোগ স্থাপন করে।

২. সেগমেন্ট নম্বরিং সিস্টেম

  • প্রতিটি সেগমেন্টকে ক্রমানুসারে নম্বর দেয়। এতে করে গন্তব্যে পৌঁছে ডেটা আবার সঠিকভাবে একত্রিত করা যায়।

৩. ত্রুটি নিয়ন্ত্রণ (Error Control)

  • হারানো, বিকৃত, বা পুনরাবৃত্ত ডেটা শনাক্ত করে এবং পুনরায় পাঠায়।

৪. প্রবাহ নিয়ন্ত্রণ (Flow Control)

  • TCP প্রেরকের ডেটা পাঠানোর গতি সীমিত করে, যাতে রিসিভারের বাফার ওভারফ্লো না হয়। এজন্য Sliding Window প্রযুক্তি ব্যবহৃত হয়।

৫. কনজেশন নিয়ন্ত্রণ (Congestion Control)

  • যদি নেটওয়ার্ক খুব ব্যস্ত থাকে, TCP তখন তার গতিকে কমিয়ে দেয় যাতে সার্ভার বা নেটওয়ার্ক ওভারলোড না হয়।

  • এর জন্য TCP বিভিন্ন অ্যালগরিদম ব্যবহার করে:

    • Slow Start
    • Congestion Avoidance
    • Fast Retransmit
    • Fast Recovery

৬. ফুল-ডুপ্লেক্স কমিউনিকেশন

  • প্রেরক এবং রিসিভার উভয় একসাথে ডেটা পাঠাতে ও গ্রহণ করতে পারে।

TCP এর ব্যবহার কোথায় হয়?

TCP সাধারণত সেসব অ্যাপ্লিকেশনে ব্যবহৃত হয় যেখানে নির্ভরযোগ্যতা ও সঠিক ক্রমে ডেটা পৌঁছানো জরুরি, যেমন:

  • ওয়েব ব্রাউজিং (HTTP/HTTPS)
  • ইমেইল (SMTP, POP3, IMAP)
  • ফাইল ট্রান্সফার (FTP)
  • রিমোট লগইন (SSH, Telnet)

TCP-এর সুবিধাগুলো

  • নির্ভরযোগ্য ডেটা ডেলিভারি
  • ত্রুটি শনাক্তকরণ ও পুনরুদ্ধার
  • প্রবাহ নিয়ন্ত্রণ এবং কনজেশন নিয়ন্ত্রণ
  • সঠিক ক্রমে ডেটা পৌঁছানো নিশ্চিত করে
  • ভালভাবে ডকুমেন্টেড এবং স্ট্যান্ডার্ড প্রোটোকল

TCP-এর কিছু সীমাবদ্ধতা

  • বড় ও ভারী প্রোটোকল, ছোট ডিভাইস বা সংবেদনশীল রিয়েল-টাইম অ্যাপের জন্য আদর্শ নয়
  • অনেকগুলো ধাপ থাকায় তুলনামূলক ধীরে কাজ করে
  • শুধু TCP/IP স্ট্যাকে চলে — অন্যান্য প্রোটোকলের (যেমন Bluetooth) সাথে চলে না
  • প্রায় ৩০ বছর ধরে খুব একটা আপডেট হয়নি — অনেক আধুনিক প্রয়োজন মেটাতে পারে না

সংক্ষেপে:

বিষয়TCP সম্পর্কে
প্রোটোকল টাইপসংযোগমুখী (Connection-oriented)
OSI স্তরTransport Layer (Layer 4)
মূল বৈশিষ্ট্যনির্ভরযোগ্যতা, সিকোয়েন্সিং, ত্রুটি ও প্রবাহ নিয়ন্ত্রণ
প্রোটোকলের জুটিTCP + IP
ব্যবহৃত হয়HTTP, Email, FTP, SSH ইত্যাদিতে
উদাহরণওয়েব ব্রাউজ করা, ইমেইল পাঠানো

চল, এবার টিসিপি (TCP)-এর কথা এমনভাবে বলি, যেন এটা শুধু একটা প্রযুক্তিগত ব্যাপার না, বরং একটা জীবন্ত গল্প, একটা ভ্রমণ, যেটা ঘটে প্রতিদিন তোমার ফোন বা কম্পিউটারে, তুমি বুঝতেই পারো না!


TCP – এক ভরসার বন্ধু, ডেটার সুরক্ষিত যাত্রা

একটা গল্প, ইন্টারনেটের ভেতরের সত্য কাহিনি


ধরো, তুমি একটা ওয়েবসাইট খুলতে গেলে — ধরো, YouTube-এ একটা মিউজিক ভিডিও চালাতে চাইলে — তুমি শুধু স্ক্রিনে ট্যাপ করো, আর গানটা ভেসে আসে। কিন্তু জানো, সেই একটা ট্যাপের পেছনে ঘটে যায় এক বিশাল সফর — তথ্যের যাত্রা, আর সেই যাত্রার গাইড, দারোয়ান, দোভাষী, সবই হলো — TCP


যাত্রার শুরু – যখন তুমি ট্যাপ করো

তুমি যখন ব্রাউজারে লিখো: www.youtube.com, তখন তোমার ফোন বা কম্পিউটার বলে: “ভাই TCP, আমি YouTube থেকে কিছু ডেটা নিতে চাই, একটা ভিডিও দেখতে চাই।”

TCP তখন বলে: “ঠিক আছে, আমি আগে ইউটিউবের সার্ভারটার সাথে ভালো করে আলাপ করি, তারপর সবকিছু নিরাপদভাবে নিয়ে আসি।”


TCP-র প্রথম কাজ — বন্ধুত্ব পাতানো (তিন ধাপে)

TCP কারো সাথে কথা বলার আগে হুট করে মেসেজ পাঠিয়ে দেয় না। সে আগে ভালোভাবে পরিচয় করে, আলাপ করে, নিশ্চিত হয় — সামনে যে আছে, সে আসলেই প্রস্তুত কিনা।

এই আলাপ তিন ধাপে হয়:

  1. SYN: TCP বলে, “আমি আসতে পারি?”
  2. SYN-ACK: সার্ভার বলে, “হ্যাঁ, আসো।”
  3. ACK: TCP বলে, “ঠিক আছে, চল শুরু করি!”

এটাকেই বলে three-way handshake — যেন পরিচয় পাকা, বিশ্বাস পাকা।


এখন শুরু হলো ডেটা পাঠানো

ইউটিউব তখন তোমার জন্য ভিডিওর ডেটা পাঠাতে শুরু করে। কিন্তু সেটাকে একসাথে একটা বিশাল ফাইল হিসেবে পাঠালে সমস্যা হতে পারে — তাই TCP বলে:

“চলো ডেটাটাকে ছোট ছোট টুকরো করি — প্রতিটা টুকরোর নাম দেই, সিরিয়াল নম্বর দেই, যাতে কোনোটা হারিয়ে গেলেও খুঁজে পাওয়া যায়।”

তাই ভিডিওর ফাইলটা ভাগ হয়ে যায় ছোট ছোট সেগমেন্টে। TCP প্রতিটা সেগমেন্টে সিরিয়াল নম্বর বসিয়ে এক এক করে পাঠাতে শুরু করে।


মাঝপথে বিপদ হলে?

মাঝখানে যদি কোনো সেগমেন্ট হারিয়ে যায়? TCP বলে: “চিন্তা করো না। আমি জানি কোন কোন টুকরো এখনো এসে পৌঁছায়নি। আমি সেই টুকরোগুলো আবার পাঠাবো।”

তুমি ভিডিও দেখতে বসে গেছো, অথচ TCP নীরবে তার দায়িত্ব পালন করে যাচ্ছে — ঠিকমতো সব টুকরো পৌঁছেছে কিনা, ঠিকমতো সাজানো হয়েছে কিনা — সব খেয়াল রাখছে সে।


যাত্রার শেষ — বিদায়ও ভদ্রভাবে

ভিডিও দেখা শেষ হলে TCP বলে: “চলো, এবার বিদায় নিই — তবে গুছিয়ে, সম্মানের সাথে।”

এজন্য TCP আবার চার ধাপে স্নিগ্ধভাবে সংযোগ বন্ধ করে (FIN → ACK → FIN → ACK)। যেন কেউ হুট করে ফোন কেটে দেয় না — বরং বলে, “আচ্ছা ভাই, আমি রাখছি”, “ঠিক আছে, আমিও রাখছি।”


TCP শুধু একজন প্রোটোকল না — সে একজন দায়িত্ববান কর্মী

TCP:

  • সবকিছুর নিয়ম-নীতি মেনে চলে
  • কথা বলার আগে আলাপ করে
  • কাজ শেষ হলে সুন্দর করে বিদায় নেয়
  • মাঝপথে সমস্যা হলেও চিন্তায় না পড়ে দায়িত্ব পালন করে
  • সঠিকভাবে সবকিছু সাজায়, হিসেব রাখে
  • তথ্য হারিয়ে যাওয়া মানে তার কাছে কিছু নয় — সে সবকিছু ঠিকঠাক পৌঁছে দেয় TCP আছে বলেই ইন্টারনেট নির্ভরযোগ্য। সে না থাকলে হয়তো তোমার মেসেজ অর্ধেক এসে পৌঁছাত, ইমেইলের অ্যাটাচমেন্ট হারিয়ে যেত, কিংবা ওয়েবসাইট খোলার পর অর্ধেক পেইজ আসতো না।

TCP যেন সেই বন্ধু, যে তোমার মেসেজ হাতে নিয়ে গন্তব্যে পৌঁছায়, দরজা খুলে দেয়, ভেতরে ঢুকিয়ে দেয়, আবার ফেরত এসে বলে — "ভাই, মেসেজটা ভালোভাবে পৌঁছে দিয়েছি!"


শেষের কিছু টিপস — মনে রাখার মতো:

  • TCP তিন ধাপে শুরু করে, চার ধাপে শেষ করে

  • ডেটাকে ছোট ছোট প্যাকেটে ভাগ করে

  • ত্রুটি ধরতে পারে, আবার ঠিক করতে পারে

  • ক্রম রক্ষা করে, কিছু হারালে পুনরায় পাঠায়

  • সে একা না, তার পাশে থাকে IP, আর ওপর থেকে আসে HTTP, FTP, ইত্যাদি

  • TCP ছাড়া ইন্টারনেটের নির্ভরযোগ্যতা সম্ভব নয়