TCP vs UDP
নেটওয়ার্কিংয়ের ক্ষেত্রে ডেটা এক জায়গা থেকে অন্য জায়গায় পাঠানোর জন্য দুটি প্রধান প্রোটোকল ব্যবহার করা হয়: TCP এবং UDP। সিস্টেম ডিজাইন করার সময় সঠিক প্রোটোকল বেছে নেওয়া খুবই গুরুত্বপূর্ণ।
1. TCP (Transmission Control Protocol)
TCP হলো একটি কানেকশন-ওরিয়েন্টেড (Connection-oriented) প্রোটোকল। এটি নিশ্চিত করে যে ডেটা প্যাকেটগুলো সঠিক ক্রমে এবং অক্ষত অবস্থায় গন্তব্যে পৌঁছেছে।
বৈশিষ্ট্য:
- Reliability: ডেটা পৌঁছানোর গ্যারান্টি দেয়। যদি কোনো প্যাকেট হারিয়ে যায়, তবে তা পুনরায় পাঠানো হয় (Retransmission)।
- Ordered: ডেটা যে ক্রমে পাঠানো হয়েছে, সেই ক্রমেই গন্তব্যে পৌঁছাবে।
- Three-way Handshake: সংযোগ স্থাপনের আগে (SYN, SYN-ACK, ACK) হ্যান্ডশেক সম্পন্ন করে।
- Congestion Control: নেটওয়ার্কের ট্রাফিক বুঝে ডেটা পাঠানোর গতি নিয়ন্ত্রণ করে।
উদাহরণ: HTTP/HTTPS, FTP, SMTP (Email), SSH.
2. UDP (User Datagram Protocol)
UDP হলো একটি কানেকশন-লেস (Connectionless) প্রোটোকল। এটি ডেটা পৌঁছানোর কোনো গ্যারান্টি দেয় না এবং হ্যান্ডশেকিংয়ের ঝামেলা ছাড়াই দ্রুত ডেটা পাঠায়।
বৈশিষ্ট্য:
- Fast: কোনো হ্যান্ডশেক বা রিকভারি প্রসেস নেই, তাই এটি অনেক দ্রুত।
- No Guarantee: ডেটা লস হতে পারে বা ভুল ক্রমে পৌঁছাতে পারে।
- Low Overhead: প্যাকেট হেডার অনেক ছোট হয়, ফলে নেটওয়ার্ক রিসোর্স কম খরচ হয়।
- Broadcast: এটি ব্রডকাস্টিং এবং মাল্টিকাস্টিংয়ের জন্য ভালো।
উদাহরণ: Video Streaming, Online Gaming, VoIP (WhatsApp Call), DNS.
পার্থক্য একনজরে
| বৈশিষ্ট্য | TCP | UDP |
|---|---|---|
| কানেকশন | Connection-oriented | Connectionless |
| নির্ভরযোগ্যতা | ১০০% গ্যারান্টি | কোনো গ্যারান্টি নেই |
| গতি | ধীর (Slow) | অনেক দ্রুত (Fast) |
| অর্ডার | ডেটা অর্ডার ঠিক থাকে | ডেটা অর্ডার ঠিক থাকে না |
| হেডার সাইজ | ২০ বাইট | ৮ বাইট |
কোনটি কখন বেছে নেবেন?
IMPORTANT
- যদি আপনার আর্কিটেকচারে ডেটার নির্ভুলতা সবচেয়ে বেশি জরুরি হয় (যেমন: ফাইল ট্রান্সফার বা ওয়েবসাইট ভিজিট), তবে TCP ব্যবহার করুন।
- যদি আপনার কাছে গতির গুরুত্ব বেশি হয় এবং কিছু ডেটা লস হলেও সমস্যা না থাকে (যেমন: লাইভ স্ট্রিমিং বা গেমিং), তবে UDP সেরা পছন্দ।