ট্রান্সমিশন কন্ট্রোল প্রোটোকল

ট্রান্সমিশন কন্ট্রোল প্রোটোকল বা সংক্ষেপে টিসিপি, ইন্টারনেট প্রোটোকল সুইটের একটি গুরুত্বপূর্ণ প্রোটোকল। টিসিপি নির্ভরতার সাথে বাইট স্ট্রিম পরিবহন করতে পারে, যেকারণে এটি ফাইল ট্রান্সফার ও ই-মেইলের মত কাজে বিশেষভাবে উপযোগী। এটি ইন্টারনেট প্রোটোকল স্যুটের এতই গুরুত্বপূর্ণ অংশ যে, পুরো সুইট-টিকেই একত্রে "TCP/IP" বলা হয়। TCP লোকাল এরিয়া নেটওয়ার্ক, ইন্ট্রানেট অথবা পাবলিক ইন্টারনেট এর মধ্যে যুক্ত থাকা প্রোগ্রামের মধ্যে অক্টেট সমূহের ধারা নির্ভরযোগ্য, শৃঙ্খলাবদ্ধ ও ত্রুটি পরিমাপযোগ্য পদ্ধতিতে সরবরাহ করে। এটি ট্রান্সপোর্ট লেয়ার এ থাকে।
ওয়েব ব্রাউজার গুলো ওয়ার্ল্ড ওয়াইড ওয়েব এর সার্ভার গুলোর সাথে সংযোগ স্থাপনের সময় TCP ব্যবহার করে। এবং এটি ই-মেইল পাঠাতে এবং এক স্থান হতে অন্য স্থানে ফাইল স্থানান্তর করার সময় ব্যবহার করা হয়। এছাড়া সার্ভার ও ক্লায়েন্টের মধ্যে কত আকারের মেসেজ বাইট যাবে এবং কী হারে যাবে তাও এই প্রটোকল নির্ধারণ করে। যেসব অ্যাপ্লিকেশনের TCP এর মত নিরাপদ সংযোগের প্রয়োজন হয়না, সেসব অ্যাপ্লিকেশন TCP এর বদলে সংযোগ বিহীন ইউজার ডাটাগ্রাম প্রোটোকল বা UDP ব্যবহার করে। যা ত্রুটি পরীক্ষণ ও সরবরাহ নিশ্চিতকরণের উপর জোর না দিয়ে, লো-ওভারহেড অপারেশন ও সঙ্কুচিত ল্যাটেন্সি এর উপর জোর দেয়।
১৯৭৪ সালের মে মাসে ইনস্টিটিউট অব ইলেক্ট্রিকাল আ্যন্ড ইলেক্ট্রনিক ইঞ্জিনিয়ার্স (আইইইই) "অ্যা প্রোটোকল ফর প্যাকেট নেটওয়ার্ক ইন্টারকানেকশন" নামে একটি পেপার প্রকাশ করে। পেপারটির লেখক ভিন্ট সার্ফ ও বব কান প্যাকেট সুইচিং ব্যবহার করে একাধিক নোডের মধ্যে তথ্য শেয়ার করার একটি আন্তঃনেটওয়ার্কিং প্রোটোকল বর্ণনা করেন। এই মডেলের একটি কেন্দ্রীয় বিষয় ছিল ট্রান্সমিশন কন্ট্রোল প্রোগ্রাম, যা কানেকশনভিত্তিক লিংক ও একাধিক হোস্টের মধ্যে ডাটাগ্রাম সার্ভিস সংযোজিত। ট্রান্সমিশন কন্ট্রোল প্রোগ্রামকে পরবর্তিতে একটি মডিউলার আর্কিটেকচারে ভাগ করা হয়: সংযোগ বা কানেকশনভিত্তিক লেয়ারের জন্য ট্রান্সমিশন কন্ট্রোল প্রোটোকল এবং আন্তঃনেটওয়ার্কিং (ডাটাগ্রাম) লেয়ারের জন্য ইন্টারনেট প্রোটোকল। মডেলটি অনানুষ্ঠানিকভাবে টিসিপি/আইপি এবং আনুষ্ঠানিকভাবে ইন্টারনেট প্রোটোকল সুইট নামে পরিচিত হয়।
এই প্রোটোকল TCP/IP সুইটের পরিবহন স্তরের সাথে সম্পর্কযুক্ত। একটি অ্যাপ্লিকেশন প্রোগ্রাম ও ইন্টারনেট প্রোটোকল (IP) এর মধ্যে TCP অন্তর্বর্তী যোগাযোগ সেবা প্রদান করে। যখন একটি অ্যাপ্লিকেশন প্রোগ্রাম IP ব্যবহার করে ইন্টারনেটের মধ্যে দিয়ে একটি বড় ডাটা পাঠাতে চায়, তখন এটি তথ্যটিকে IP এর আকার অনুযায়ী টুকরো না করে এবং অনেকগুলো IP রিকোয়েস্ট না করে, সফটওয়্যারটি একটি একক রিকোয়েস্ট পাঠায়। এরপর IP এর বিস্তারিত তথ্য TCP কে সামলাতে দেয়।
IP তথ্যের কিছু টুকরো বিনিময়ের মাধ্যমে কাজ করে, যা প্যাকেট নামে পরিচিত। একটি প্যাকেট হচ্ছে অক্টেট এর ক্রম এবং এর মধ্যে পর্যায়ক্রমে একটি "হেডার" ও একটি "বডি" থাকে। হেডারের মধ্যে প্যাকেটের উৎস, গন্তব্য এবং নিয়ন্ত্রণের তথ্য বলা থাকে। বডির মধ্যে IP যে তথ্য পাঠাচ্ছে, সেটা থাকে।
নেটওয়ার্কের মধ্যে অত্যধিক চাপ/ভীড় থাকা, চলাচলের ভারসাম্য রক্ষা করা, অথবা নেটওয়ার্কের কোন অনির্দিষ্ট চালচলনের কারণে, IP প্যাকেট হারিয়ে যেতে পারে, নকল হতে পারে অথবা বিতরনের ক্ষেত্রে অকার্যকর হতে পারে। TCP এসব সমস্যা চিহ্নিত করে, হারানো তথ্য পুনরায় প্রেরণ করতে অনুরোধ করে, যেসব তথ্য বিতরনের ক্ষেত্রে অকার্যকর সেগুলোর পুনর্বিন্যাস করে; এমনকি নেটওয়ার্কের চাপ সামলাতে ও অন্যান্য দুর্ঘটনার পরিমাণ কমাতেও সাহায্য করে। একবার যখন TCP গ্রাহক আসল প্রেরণকৃত অক্টেট এর ক্রম পুনঃসংযোজন করে ফেলে, এটা তখন অক্টেট বা প্যাকেটগুলোকে গ্রাহক অ্যাপ্লিকেশনে পাঠিয়ে দেয়। এটাই অ্যাপ্লিকেশনের যোগাযোগ, মূলগত নেটওয়ার্কিং বিবরণ থেকে TCP আলাদা করে।