আজকের টিউটোরিয়ালে আমরা TCP/IP এর Transport Layer ও এর কয়েকটি প্রটোকল সম্বন্ধে জানবো।
আমরা ইতিমধ্যে জেনেছি যে, TCP/IP মডেলে Application Layer এর কাজ শেষ হলে ডাটা ঐ লেয়ার থেকে পরবর্তী Transport Layer এ যায়। Transport Layer ডাটাকে ভেঙ্গে সেগমেন্ট এ পরিণত করে এবং এর সাথে এমন একটি মেকানিজম যুক্ত করে যাতে গ্রাহক হোস্ট এই সেগমেন্টগুলোকে একত্রিত করে আবার ডাটাতে রূপান্তরিত করতে পারে। এছাড়াও Transport Layer এর আরো কিছু কাজ আছে। যেমনঃ
১। Tracking Application - প্রেরক ও গ্রাহক উভয় হোস্টের এ্যাপ্লিকেশনসমূহের মধ্যকার প্রতিটি কমিউনিকেশনের উপর নজর রাখে।
২। Identifying Each Application - প্রতিটি এ্যাপ্লিকেশনকে আলাদাভাবে চিহ্নিত করে যাতে এক এ্যাপ্লিকেশনের তথ্য অন্য এ্যাপ্লিকেশনে না ঢুকে যায়। এই এ্যাপ্লিকেশনসমূহকে আলাদাভাবে চিহ্নিত করতে প্রতিটি এ্যাপ্লিকেশনের জন্য স্বতন্ত্র পোর্ট নম্বর ব্যবহৃত হয়। এই পোর্ট নম্বর সম্পর্কে আমরা পরবর্তীতে বিস্তারিত জানবো।
৩। Segmentation and Reassembly – বেশিরভাগ নেটওয়ার্কের একটি সীমাবদ্ধতা আছে। যেমনঃ নেটওয়ার্কের মধ্য দিয়ে প্রবাহিত প্যাকেটগুলোর সাইজ বেশি বড় হওয়া যাবে না। এজন্য Transport Layer প্রথমে ডাটাকে ছোট ছোট Segment এ বিভক্ত করে যাতে নেটওয়ার্কের মধ্য দিয়ে তা সহজেই যাতায়াত করতে পারে, এই প্রক্রিয়াকে Segmentation বলে। আবার গ্রাহক হোষ্টের Transport Layer ঠিক বিপরীত কাজটি করে যাকে Reassembly বলে।
Segmentation and Reassembly প্রক্রিয়ার সাথে সাথে Transport Layer নিচের কাজগুলো হয়ে থাকে।
Connection Oriented Conversation – Transport Layer দুইটি হোস্ট এর মধ্যে Connection Oriented যোগাযোগ স্থাপন করে। Connection Oriented যোগাযোগ বলতে বুঝায়, কোন ডাটা যোগাযোগের আগেই দুইটি হোস্টকে সতর্ক করা এবং প্রস্তুত করা। এজন্য Transport Layer একটি সেশন তৈরী করে এবং সে সেশনের সমস্ত যোগাযোগ কঠোরভাবে নিয়ন্ত্রন করে।
Acknowledgement – আমরা কারো কাছে কোন জিনিস পাঠানোর পর ঐ জিনিস পেয়ে প্রাপক জিনিসটি পেয়েছে এই মর্মে যে নিশ্চিতকরণ বার্তা পাঠায় তাকেই Acknowledgement বলে। নেটওয়ার্ক যোগাযোগের ক্ষেত্রে Transport Layer ঠিক এই কাজটিই করে থাকে। এতে করে গ্রাহক হোস্টের নিকট পাঠানো সেগমেন্টগুলো ঠিকভাবে পৌছালো কি পৌছালো না তা নিশ্চিত হওয়া যায়।
Relaible Delivery – যেকোন কারণেই নেটওয়ার্কের মধ্য দিয়ে প্রবাহিত ডাটা প্যাকেটগুলো গ্রাহক হোস্টে পৌছানোর আগেই পথিমধ্যে নষ্ট হয়ে যেতে পারে বা হারিয়ে যেতে পারে। এজন্য প্রেরক ও গ্রাহক এর মধ্যে যোগায়োগের ব্যাঘাত ঘটে এবং যোগাযোগের ক্ষেত্রে সময় বেশি লাগে। এসমস্য থেকে পরিত্রানের জন্য Transport Layer গ্রাহক হোস্টের নিকট কোন প্যাকেট না পৌছালে তা পুনরায় পাঠায়। এতে করে নেটওয়ার্ক যোগাযোগ অনেক রিলায়েবল হয়।
Same Order Delivery – গ্রাহক ও প্রেরক হোস্টের মধ্যে যোগায়োগের জন্য একাধিক নেটওয়ার্ক পাথ থাকতে পারে। এক একটি পাথে সময় কম বা বেশি লাগাটাই স্বাভাবিক। এক্ষেত্রে প্রেরক হোস্ট থেকে পাঠানো সেগমেন্টগুলো ঠিক ক্রমানুসারে না আসলে গ্রাহক হোস্টের রিএ্যাসেম্বল প্রক্রিয়া বিলম্বিত হয়। এজন্য Transport Layer প্রেরিত সেগমেন্টগুলোকে একটি সংখ্যা দ্বারা সিকোয়েন্স করে যাতে যথাযথ ক্রমানুযায়ী সেগমেন্টগুলো গ্রাহক হোস্টের নিকট পৌছায়।
Flow Control – অনেক হোস্টের বিভিন্ন সীমাবদ্ধতা থাকে যেমনঃ মেমরী কম বা ব্যান্ডউইথ কম। একারণে অনেক সময় এমন পরিষ্থিতির উদ্ভব হতে পারে, যেমনঃ প্রেরক হোস্ট যে গতিতে ডাটা পাঠাচ্ছে গ্রাহ হোস্ট সে গতিতে ডাটা গ্রহণ করতে পারছে না। এতে করে নেটওয়ার্ক যোগাযোগ বিঘ্নিত হয়। এজন্য Transport Layer হোস্টদ্বয়ের মধ্যে ডাটা প্রবাহ নিয়ন্ত্রন করে থাকে।
Transport লেয়ার প্রটোকলসমূহের মধ্যে উল্লেখযোগ্য দুইটি প্রটোকল হলোঃ
১। TCP এবং ২। UDP
TCP = Transmission Control Protocol
UDP = User Datagram Protocol
UDP – UDP হলো একটি সাধারণ কানেকশনলেস প্রটোকল। গ্রাহক হোস্টে ডাটা পৌছাবে কি পৌছাবে না তা এই প্রটোকলের মাধ্যমে নিশ্চিত করা যায় না। এর হেডারে সামান্য কিছু তথ্য থাকে তাই এই প্রটোকলের মাধ্যমে যোগাযোগের গতি গতি কিছুটা দ্রুততর হয়ে থাকে। যে সমস্ত এ্যাপ্লিকেশন UDP প্রটোকল ব্যবহার করে সেগুলো হলোঃ
১। Domain Name System (DNS) ২। Vedio Streaming ৩। Voice Over IP (VoIP)
TCP – TCP হলো একটি কানেশন ওরিয়েন্টেড প্রটোকল যা হোস্টদ্বয়ের মধ্যে ডাটার প্রাপ্যতা নিশ্চিত করে। এর জন্য TCP এর হেডারে কিছু অতিরিক্ত তথ্য থাকে। একারণে TCP প্রটোকলের মাধ্যমে যোগাযোগের গতি UDP প্রটোকলের তুলনায় কিছুটা কম হয়ে থাকে। যে সমস্ত এ্যাপ্লিকেশন TCP প্রটোকল ব্যবহার করে সেগুলো হলোঃ
১। Web browser ২। E-mail ৩। File Transfer
ধরুন, আপনার কম্পিউটারে বসে আপনি একই সময়ে বেশ কয়েকটি কাজ করছেন। যেমনঃ অফিসের বস কে মেইল পাঠাচ্ছেন, আরেকটি ব্রাউজারে কোন একটি ওয়েব পেজ ব্রাউজ করছেন, আবার ফেসবুকে আপনার বন্ধুর সাথে চ্যাট করছেন। এই তিনটি এ্যাপ্লিকেশন আপনার কম্পিউটারে একইসাথে চলছে। এখন আপনার কম্পিউটারে আসা সেগমেন্টগুলোর কোনটি কোন এ্যাপ্লিকেশনের মাধ্যমে ওপেন হবে তা নিশ্চিত করার জন্য এ পোর্ট নম্বর ব্যবহৃত হয়, যাতে করে একটি এ্যাপ্লিকেশনের ডাটা আরেকটি এ্যাপ্লিকেশনে চলে না যায়। প্রতিটি এ্যাপ্লিকেশনকে পৃথকভাবে চিহ্নিত করার জন্য আলাদা আলাদা পোর্ট নম্বর থাকে। এই পোর্ট নম্বরসমূহ নির্ধারণ করে দেয় International Assigned Number Authority (IANA) নামের একটি সংগঠন।
পোর্ট নম্বরসমূহকে প্রধানত তিনটি ভাগে ভাগ করা হয়।
১। Well Known Ports (0 – 1023) ২। Registered Ports (1024 – 49151) ৩। Dynamic or Private Ports (49152 – 65535)
বহুল ব্যবহৃত কিছু পোর্ট নম্বরঃ
FTP 20, 21 SSH 22 Telnet 23 SMTP 25 DNS 53 DHCP 67 HTTP 80 POP 110 SNMP 161 ইত্যাদি।
ধন্যবাদ সবাইকে।