কম্পিউটার টিউটোরিয়াল

TCP vs UDP: মূল পার্থক্য ও পারফরম্যান্স ইমপ্লিকেশন বোঝা

আপনি যদি কম্পিউটার নেটওয়ার্কিংয়ে নতুন হন, অথবা কিছু অ্যাপ্লিকেশনের নেটওয়ার্ক সেটিংসে খোঁজা-খুঁজি করেছেন, তবে আপনি নিশ্চিত এই টার্মগুলো দেখেছেন: TCP এবং UDP।

TCP, যার পূর্ণরূপ Transmission Control Protocol, এবং UDP, অর্থাৎ User Datagram Protocol, ইন্টারনেট প্রোটোকল সুটের অংশ। TCP এবং UDP ইন্টারনেট জুড়ে ইনফরমেশন পাঠানোর ভিন্ন পদ্ধতি।

তবুও তাদের পূর্ণরূপ জানলেও, কোন প্রোটোকল ব্যবহার করা উচিত, বা কেন একটি অন্যটির চেয়ে ব্যবহার করা উচিত — সেটি জানা কঠিন।

এই আর্টিকেলে, আমরা কম্পিউটার নেটওয়ার্কিং বেসিক, TCP এবং UDP-এর পার্থক্য, যেগুলো কখন ব্যবহৃত হয়, এবং আরও অনেক কিছু কভার করব।

কম্পিউটার নেটওয়ার্কিং বেসিক

TCP এবং UDP কীভাবে কাজ করে সেটি জানার আগে, ইন্টারনেট কীভাবে কাজ করে সেটি সম্পর্কে বেসিক জানা সহায়ক।

সাধারণভাবে বললে, ইন্টারনেট হলো কানেক্টিং ডিভাইসের একটি নেটওয়ার্ক। প্রতিটি ডিভাইস, সেটি আপনার স্মার্টফোন হোক বা সার্ভার, ইন্টারনেট প্রোটোকল সুটের মাধ্যমে যোগাযোগ করে।

ইন্টারনেট প্রোটোকল সুট হলো বিভিন্ন প্রোটোকল বা পদ্ধতির একটি সংগ্রহ, যেগুলো ডিভাইসগুলোর মধ্যে যোগাযোগের জন্য। TCP এবং UDP উভয়ই ইন্টারনেট প্রোটোকল সুটের प्रमुख প্রোটোকল:

TCP vs UDP: মূল পার্থক্য ও পারফরম্যান্স ইমপ্লিকেশন বোঝা
সোর্স

ইন্টারনেটে কানেক্টেড প্রতিটি ডিভাইসের একটি ইউনিক IP ঠিকানা থাকে। এবং যখন দুটি ডিভাইস ইন্টারনেট জুড়ে যোগাযোগ করে, তবে তারা সম্ভবত TCP বা UDP ব্যবহার করে সেটি করে।

এখানে দুটির একটি সংক্ষিপ্ত তুলনা:

TCP vs UDP: মূল পার্থক্য ও পারফরম্যান্স ইমপ্লিকেশন বোঝা
সোর্স

ইন্টারনেট কীভাবে কাজ করে সেটির আরও হাই-লেভেল ওভারভিউ জানতে এই ৫ মিনিটের ভিডিও দেখুন:

TCP কী?

TCP, বা Transmission Control Protocol, হলো অনলাইনের সবচেয়ে সাধারণ নেটওয়ার্কিং প্রোটোকল। TCP অত্যন্ত विश्वস্ত, এবং এটি সব জায়গায় ব্যবহৃত হয় — ওয়েব সার্ফিং (HTTP), ইমেইল পাঠানো (SMTP), এবং ফাইল ট্রান্সফার (FTP) থেকে শুরু করে।

TCP সেসব পরিস্থিতিতে ব্যবহৃত হয় যেখানে একটি ডিভাইস দ্বারা পাঠানো সকল ডেটা অন্য ডিভাইসে পুরোপুরি ইনট্যাক্ট রিসিভ করা অপরিহার্য।

উদাহরণস্বরূপ, আপনি যখন একটি ওয়েবসাইট ভিজিট করেন, TCP নিশ্চিত করে যে টেক্সট, ইমেজ, এবং পেজ রেন্ডার করার জন্য প্রয়োজনীয় কোড সবকিছু পৌঁছেছে। TCP না থাকলে, ইমেজ বা টেক্সট মিসিং থাকতে পারে, অথবা ভুল ক্রমে আসতে পারে, পেজ ভাঙতে পারে।

TCP একটি কানেকশন-ওরিয়েন্টেড প্রোটোকল, অর্থাৎ এটি দুটি ডিভাইসের মধ্যে ডেটা ট্রান্সফারের আগে একটি কানেকশন স্থাপন করে, এবং ট্রান্সফার প্রসেস 내내 সেই কানেকশন মেইনটেইন করে।

দুটি ডিভাইসের মধ্যে কানেকশন স্থাপন করতে TCP তিন-ধাপের হ্যান্ডশেক নামক একটি পদ্ধতি ব্যবহার করে:

TCP vs UDP: মূল পার্থক্য ও পারফরম্যান্স ইমপ্লিকেশন বোঝা
সোর্স

উদাহরণস্বরূপ, এই আর্টিকেলটি আপনার ডিভাইসে পড়তে, আপনার ডিভাইস প্রথমে freeCodeCamp News সার্ভারে একটি মেসেজ পাঠاয় যাকে SYN (Synchronize Sequence Number) বলা হয়।

তারপর freeCodeCamp News সার্ভার একটি একনলেজমেন্ট মেসেজ ফেরত পাঠায় যাকে SYN-ACK বলা হয়।

যখন আপনার ডিভাইস সার্ভার থেকে SYN-ACK পায়, তবে সেটি একটি ACK একনলেজমেন্ট মেসেজ ফেরত পাঠায়, যা কানেকশন স্থাপন করে।

একবার TCP কানেকশন দুটি ডিভাইসের মধ্যে স্থাপন হলে, প্রোটোকল নিশ্চিত করে যে সকল ডেটা ট্রান্সমিট হয়েছে।

আপনার ডিভাইস এবং freeCodeCamp News-এর উদাহরণে ফিরলে, একবার থ্রি-ওয়ে হ্যান্ডশেক কমপ্লিট হলে, News সার্ভার এই আর্টিকেল রেন্ডার করার জন্য আপনার ডিভাইসের ওয়েব ব্রাউজারের প্রয়োজনীয় সকল ডেটা পাঠাতে শুরু করে।

সকল ডিভাইস ডেটাকে ছোট ছোট প্যাকেটে ভাঙে ইন্টারনেট জুড়ে পাঠানোর আগে। সেই প্যাকেটগুলো তারপর অন্য প্রান্তে রি-অ্যাসেম্বল হতে হয়।

তাই যখন freeCodeCamp News সার্ভার এই আর্টিকেলের HTML, CSS, ইমেজ, এবং অন্যান্য কোড পাঠায়, সেটি সবকিছু ছোট ছোট ডেটা প্যাকেটে ভাঙে আপনার ডিভাইসে পাঠায়। আপনার ডিভাইস তারপর সেই প্যাকেটগুলো রি-অ্যাসেম্বল করে ফাইল ও ইমেজে রূপান্তর করে যেগুলো এই আর্টিকেল রেন্ডার করার জন্য প্রয়োজন।

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

একবার আপনার ডিভাইস আর্টিকেল রেন্ডার করার জন্য প্রয়োজনীয় সকল ডেটা পেয়ে যায়, TCP অটোমেটিক্যালি দুটি ডিভাইসের মধ্যে কানেকশন টার্মিনেট করে একটি পদ্ধতির মাধ্যমে যা থ্রি-ওয়ে হ্যান্ডশেকের মতো, কিন্তু এইবার FIN এবং ACK প্যাকেট ব্যবহার করে।

UDP কী?

UDP, বা User Datagram Protocol, ইন্টারনেট প্রোটোকল সুট গঠনকারী অন্য একটি প্রধান প্রোটোকল। UDP TCP-এর চেয়ে কম বিশ্বস্ত, কিন্তু অনেক সিম্পল।

UDP সেসব পরিস্থিতিতে ব্যবহৃত হয় যেখানে কিছু ডেটা লস গ্রহণযোগ্য, যেমন লাইভ ভিডিও/অডিও, বা যেখানে স্পীড একটি ক্রিটিক্যাল ফ্যাক্টর যেমন অনলাইন গেমিং।

UDP TCP-এর সাথে কিছুটা সাদৃশ্য রেখে যেন ডেটা পাঠানো ও গ্রহণের জন্য ব্যবহার হয়, কিন্তু দুটি মূল পার্থক্য রয়েছে।

প্রথমে, UDP একটি কানেকশন-লেস প্রোটোকল, অর্থাৎ এটি TCP-এর মতো থ্রি-ওয়ে হ্যান্ডশেক দিয়ে আগে থেকে কানেকশন স্থাপন করে না।

দ্বিতীয়, UDP গ্যারান্টি দেয় না যে সকল ডেটা সফলভাবে ট্রান্সফার হয়েছে। UDP-তে, ডেটা যেকোনো ডিভাইসে পাঠানো হয় যা শুনছে, কিন্তু সেটি চিন্তা করে না যদি কিছুটা পথে হারিয়ে যায়। এই কারণেই UDP-কে "ফায়ার-অ্যান্ড-ফরগেট" প্রোটোকলও বলা হয়।

এই পার্থক্যগুলো বুঝতে একটি ভালো উপায়: TCP দুজন মানুষের কথোপকথনের মতো। ব্যক্তি A ব্যক্তি B-কে কথা বলার জন্য জিজ্ঞাসা করে। ব্যক্তি B বলে হ্যাঁ, ঠিক আছে। ব্যক্তি A সম্মত হয় এবং উভয় কথা বলতে শুরু করে।

UDP হলো একটি মেগাফোন लिये বাইরে একটি প্রতিবাদীর মতো। যে কেউ প্রতিবাদীর দিকে মনোযোগ দিচ্ছে তারা অধিকাংশ শুনতে পারবে। কিন্তু কোনো গ্যারান্টি নেই যে এলাকার সবাই শুনবেই, অথবা তারা শুনছেই কিনা।

TCP vs UDP: মূল পার্থক্য ও পারফরম্যান্স ইমপ্লিকেশন বোঝা
UDP vs TCP — সোর্স

কোনটি দ্রুত — TCP নাকি UDP?

সাধারণভাবে, UDP দ্রুত প্রোটোকল।

UDP অনেক সিম্পল, এবং ডেটা পাঠানোর আগে ডিভাইসগুলোর মধ্যে কানেকশন স্থাপন করার চেষ্টা করে না, বা সকল ডেটা পৌঁছেছে কিনা ভেরিফাই করে না। সেটি সিম্পলি ডেটা পাঠায় যেকোনো ডিভাইস যেটি রিকোয়েস্ট করে, এবং সেটি চালিয়ে যায় যতক্ষণ না অন্য ডিভাইস ডিসকানেক্ট হয় বা আর কোনো ডেটা পাঠাতে থাকে না।

বোতল থেকে ঘুটঘুটে পান করার চেয়ে হোজ থেকে পান করা চিন্তা করুন। দুভাবেই তৃষ্ণা মিটবে, কিন্তু পুরনো পদ্ধতিতে আপনার শার্ট ঝাল আর হওয়া সম্ভব।

TCP vs UDP: মূল পার্থক্য ও পারফরম্যান্স ইমপ্লিকেশন বোঝা
হজ নয়, কিন্তু বেশ সঠিক। আরো কল্পনা করুন TCP বোতল আপনি পান করার সময় বারবার জিজ্ঞাসা করছে পেয়েছে কিনা। সোর্স

তবে দ্রুত হওয়া মানে UDP সার্বোত্তম প্রোটোকল নয়। এটিমাত্র বোঝায় নির্দিষ্ট পরিস্থিতিতে এটি ভালো।

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

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

TCP বাফারিংও অনুমতি দেয়, তাই আপনার ব্রাউজার আপনি দেখার সময় আরও ডেটা রিকোয়েস্ট ও লোড করতে পারে, যাতে স্মুথ প্লেব্যাক এবং আপনি ভিডিওর অন্যান্য অংশে স্কিপ করতে পারেন।

UDP লাইভ ভিডিও এবং অডিও বা অনলাইন গেমের জন্য বেটার চয়েস যেখানে স্পীড সম্ভাব্য ডেটা লসের চেয়ে বেশি গুরুত্বপূর্ণ।

আপনি যখন Google Meet বা Zoom-এ কল করেন, আপনার ভিডিও এবং অডিও UDP-ওভার ট্রান্সমিট হয়। যদি কিছু প্যাকেট পথে হারায়, তবে সেটি কেবল ল্যাগ বা ক্লিপড ভিডিও/অডিও হিসেবে দেখাবে।

আপনি যদি ভিডিও গেম খেলেন, তবে আপনি ভাবতে পারেন TCP যেভাবে নিশ্চিত করে সকল ডেটা প্যাকেট অন্য ডিভাইসে পৌঁছায় সেটি আইডিয়াল চয়েস করবে। কিন্তু বাস্তবে, TCP যা সকল চেকিং এবং রিসেন্ডিং করে সেটি শুধু লেটেন্সি যোগ করে।

গেম ডেভেলপাররা প্লেয়ার ইনপুট এবং স্টেট যতটা সম্ভব এক্যুরেট রাখার অন্য চতুর পদ্ধতি খুঁজে পেয়েছে। আপনি যদি অনলাইন গেমিং-এ UDP কেন প্রিয় তার ব্যাপারে আরও জানতে চান, এই আর্টিকেলটি দেখুন।

FIN

আশা করি এই আর্টিকেল আপনাকে TCP এবং UDP-এর মধ্যে কিছু সূক্ষ্ম পার্থক্য বুঝতে সাহায্য করল। এবং কেউ যদি জিজ্ঞাসে কোনটি দ্রুত, তাদের বলুন যা আপনি এখানে পড়েছেন: "UDP দ্রুত, কিন্তু..."

এবং আপনি যদি যা পড়েছেন তা পছন্দ করেন, টুইটারে আমাকে জানান।

  1. MBR বনাম GPT: আপনার PC-র জন্য সঠিক পার্টিশন স্কিম বেছে নেওয়ার গাইড

  2. Sleep, Hibernate, অথবা Shutdown: আপনার পিসির জন্য কোন পাওয়ার মোড সঠিক?

  3. OneDrive বনাম OneDrive for Business: মূল পার্থক্য ব্যাখ্যা

  4. উইন্ডোজ ১০ হোম বনাম প্রো: মূল পার্থক্য ব্যাখ্যা