“বিসমিল্লাহির রাহমানির রাহীম”
প্রথমেই সবাইকে আমার সালাম ও আন্তরিক শুভেচ্ছা জানাচ্ছি। আশা করি সবাই অনেক ভালো আছেন। ইনশা-আল্লাহ্ আমিও অনেক ভালো আছি। এই টিউনটা অনেক বড় হওয়ায় দিতে একটু দেরী হল। কিছু মনে করবেন না এতো বড় টিউনের জন্য। কথা না বাড়িয়ে চলুন টিউন শুরু করা যাক।
আজকের পর্বে আমরা কম্যুনিকেশন মডেল (OSI Model) নিয়ে আলোচনা করবো। এর মধ্যে থাকবে -
কম্যুনিকেশন বা যোগাযোগ বলতে বোঝানো হয় এক বা একাধিক লোকের সাথে তথ্যের আদান-প্রদান। আমি যা বলতে চাচ্ছি তা যদি অন্য কাউকে বোঝাতে পারি তাহলে তার সাথে আমার যোগাযোগ গড়ে উঠেছে বলা যায়। এখানে আমি যা বলতে চাচ্ছি তা যদি পাঠক বুঝতে পারে তাহলে পাঠকের সাথে আমি কম্যুনিকেট করতে পারছি বলা হবে। পাঠকের সাথে আমার কম্যুনিকেশন কতগুলো নিয়ম মেনে চলবে। যেমন - আমি যে ভাষায় লিখব সে ভাষা পাঠকের জানা থাকতে হবে। আবার আমি যা পাঠককে বলতে চাই সেটি অবশ্যই এখানে প্রকাশ করতে হবে। প্রতিটি কম্যুনিকেশনের জন্যই এ ধরনের কিছু নিয়মকানুন থাকে। নেটওয়ার্কে একটি কম্পিউটার আরেকটি কম্পিউটারের সাথে কীভাবে কম্যুনিকেট করবে তারও আছে কিছু নিয়মকানুন। কম্যুনিকেশন অনেকক্ষেত্রেই দ্বিপাক্ষিক। আমি যা বলতে চাচ্ছি সেটি মুখে প্রকাশ না করার পরও আমার কোনো পাঠক বুঝতে পারলে সেটি স্ট্যান্ডার্ড কম্যুনিকেশন হবে না। এর জন্য আছে সর্বজন স্বীকৃত মডেল।
মানুষের মতো কম্পিউটার কীভাবে একটি আরেকটির সাথে কম্যুনিকেট করবে তার জন্যও নির্দিষ্ট মডেল রয়েছে। এদের জন্য নির্দিষ্ট নিয়মকানুন দরকার পড়ে। নেটওয়ার্কের মধ্যে একটি ডিভাইস আরেকটি ডিভাইসের সাথে কীভাবে যোগাযোগ করবে তার নিয়মকানুন বলে দেয়ার জন্য আছে ওপেন সিস্টেম ইন্টারকানেকশন মডেল বা OSI Model। নেটওয়ার্কের সমস্ত ডিভাইসের কার্যপ্রণালীর নিয়ম সংজ্ঞায়িত করা আছে এই মডেলে।
কম্পিউটার ও অন্যান্য নেটওয়ার্কিং ডিভাইসের মধ্যে যোগাযোগ কীভাবে গড়ে উঠবে তা নির্দেশ করে OSI মডেল। ইন্টারন্যাশনাল অর্গানাইজেশন ফর স্ট্যান্ডার্ডাইজেশন (ISO) ১৯৭৪ সালে এই মডেল তৈরির কাজে হাত দেয়। এর অনেক আগে, ১৯৬৭ সালে তৈরি হয় TCP/IP প্রটোকল স্যুট। এই প্রটোকল স্যুট যে মডেল অনুসরণ করে তাকে বলা হয় ডিপার্টমেন্ট অব ডিফেন্স বা DoD মডেল। বিভিন্ন নেটওয়ার্কিং ডিভাইস প্রস্তুতকারক যাতে একই স্ট্যান্ডার্ড অনুসরণ করে তাদের ডিভাইস প্রস্তত করতে পারে সেজন্যই OSI মডেলের প্রয়োজন অনুভূত হয়। বিভিন্ন মহলে আলোচনা ও বিতর্কের পর ওএসআই মডেল চূড়ান্ত করা হয় ১৯৭৭ সালে। এটি যদিও তাত্ত্বিক একটি বিষয়, তবু এর সম্পর্কে ভাল ধারণা থাকা দরকার। এই ধারণাই আপনাকে বিভিন্ন নেটওয়ার্কিং ডিভাইসের কার্যপ্রণালী বুঝতে সাহায্য করবে।
OSI মডেলকে সাতটি লেয়ার বা স্তরে ভাগ করা হয়। এই স্তরসমূহ হলো -
প্রতিটি স্তরে নির্দিষ্ট ডিভাইস নির্দিষ্ট কাজ করে থাকে। এখানে উল্লেখিত লেয়ার বা স্তরসমূহ অবশ্যই ক্রম মেনে চলবে। OSI মডেলের একটি স্তর আরেকটির চেয়ে স্বতন্ত্র এবং একটি আরেকটির উপর নির্ভরশীল নয়। প্রতিটি স্তর তার নিজের কাজ সারবে এবং এর উপরের কিংবা নিচের স্তরের জন্য ডাটাকে তৈরি করবে। কোনো স্তরের সম্পর্ক থাকতে পারে কেবল এর উপরের বা নিচের স্তরের সাথে।
চিত্র ১.১ - OSI মডেলের বিভিন্ন লেয়ারে যা ঘটে।
কোনো ডিভাইস থেকে ডাটা প্রবাহিত হওয়ার সময় উৎস ডিভাইসে তা উপর থেকে নিচের দিকে প্রবাহিত হতে থাকে। প্রতিটি লেয়ার সেই ডাটাকে নিয়ে কিছু কাজ করতে পারে। কোনো ইউজার যখন কোনো ডাটা পাঠানোর চেষ্টা করে তখন সেটি প্রথমে আসে অ্যাপলিকেশন লেয়ারে। আসলে অ্যাপলিকেশন লেয়ারেই সেই ডাটার জন্ম হয়। তারপর সেটি যায় এর পরবর্তী লেয়ার প্রেজেন্টেশন লেয়ারের কাছে। প্রেজেন্টেশন লেয়ার সেটিকে পরবর্তী লেয়ারের জন্য প্রস্তত করে এবং তার সাথে কিছু হেডার তথ্য যোগ করে। এভাবে ডাটা প্যাকেট একটির পর একটি লেয়ার অতিক্রম করে এবং সবশেষে ফিজিক্যাল লেয়ারে পৌঁছে। ফিজিক্যাল লেয়ার সেটি ফিজিক্যাল মিডিয়ার মাধ্যমে গন্তব্য কম্পিউটারে পাঠায়। গন্তব্য কম্পিউটারের ফিজিক্যাল লেয়ার সেটি গ্রহণ করে এবং উপরের লেয়ারে পাঠায়। এভাবে সেটি অ্যাপলিকেশন লেয়ারের নিকট পৌঁছে (চিত্র - ১.১)।
ডাটার সাথে হেডার তথ্য যোগ করার পদ্ধতিকে বলা হয় এনক্যাপসুলেশন (encapsulation)। একে কখনও কখনও র্যাপিং (wrapping) বলা হয়ে থাকে। টোকেন রিং নেটওয়ার্কে ডাটা পাঠানোর আগে সেটিকে অবশ্যই টোকেন রিং হেডার দিয়ে র্যাপ করে নিতে হবে। এনক্যাপসুলেশন ও র্যাপিং বলতে ডাটার সাথে হেডার বিট ও শেষের বিট উভয়কে বোঝায়। হেডার বিট দিয়ে ডাটার শুরু বোঝানো হয়ে থাকে, এবং প্রটোকল ও লেয়ারের উপর ভিত্তি করে বিভিন্ন অ্যাড্রেসিং তথ্য থাকে এখানে। শেষের বিটগুলি ব্যবহৃত হয় এরর চেকিং বা চেকসামের জন্য। প্রটোকলের বেশিরভাগ ফিচারই হেডার বিটে থাকায় এটি বেশী গুরুত্ব পায়।
OSI রেফারেন্স মডেলের প্রতিটি স্তরে এনক্যাপসুলেশন ঘটতে পারে। ডাটা প্যাকেটের সাথে প্রতিটি স্তরে নির্দিষ্ট হেডার যোগ হতে থাকে। আগের স্তর থেকে প্রাপ্ত ডাটা প্যাকেটকে পরের স্তর হেডার ও ডাটাসহ ক্ষুদ্র অংশে বিভক্ত করে এবং সেই স্তরের হেডার তথ্য যোগ করে নূতন প্যাকেট তৈরি করে। এতে আগের স্তরের যোগ করা হেডারও থাকে। এভাবে নিচের স্তরে যাওয়ার সাথে সাথে ডাটা প্যাকেটের সাইজ ছোট হতে থাকে, কিন্তু তার সাথে যুক্ত হেডার তথ্য বাড়তে থাকে। এর ফলে প্রতিটি ডাটা প্যাকেটের পুরো সাইজ সমান ও পরিবহনযোগ্য হয়।
গ্রহীতা ডিভাইসে সেই ডাটা প্যাকেট পৌঁছার পর প্রতিটি স্তরে হেডার তথ্য বাদ যেতে থাকে। উৎস ডিভাইসের ডাটালিঙ্ক স্তরে যে হেডার যোগ হয়, গ্রহীতা ডিভাইসের ডাটালিঙ্ক স্তর সেই হেডার বাদ দেয় এবং প্যাকেটটি পরবর্তী স্তরে অর্থাৎ নেটওয়ার্ক স্তরে পাঠায়। গ্রহীতা ডিভাইসের নেটওয়ার্ক স্তর উৎস ডিভাইসের নেটওয়ার্ক স্তরের যোগ করা হেডার বাদ দেয় এবং ডাটা প্যাকেটকে পরবর্তী স্তর অর্থাৎ ট্রান্সপোর্ট স্তরে পাঠায়। এভাবে ক্রমাগত তা অ্যাপলিকেশন স্তরে পৌঁছে। উৎস ডিভাইসের অ্যাপলিকেশন স্তরে ডাটা যেরূপ ছিল তেমনটি দেখা যায় গ্রহীতা ডিভাইসের অ্যাপলিকেশন স্তরে।
OSI রেফারেন্স মডেলের ডাটা প্রবাহ দেখানো হয়েছে চিত্র - ১.১ এ এবং এর বিভিন্ন স্তরের কাজ বর্ণনা করা হলো নিচের সারণি ১ এ -
সারণি ১ - OSI মডেলের বিভিন্ন স্তরের কাজ।
OSI মডেলের প্রত্যেকটি স্তরকে একেকটি স্বাধীন মড্যুল হিসেব গণ্য করা হয়। তত্ত্বগতভাবে এক স্তরের প্রটোকলকে সেই স্তরে কাজ করে এমন প্রটোকলের সাথে অদল-বদল করা যেতে পারে। এরকম প্রতিস্থাপন উপরের কিংবা নিচের স্তরকে প্রভাবিত করবে না।
OSI মডেলে সাতটি লেয়ার বা স্তর আছে। এই সাতটি লেয়ার বা স্তরের প্রতিটি কাজ ভিন্ন এবং নেটওয়ার্কে ডাটা ফ্লো বা তথ্য প্রবাহ বুঝতে হলে প্রতিটি লেয়ারের কাজ বোঝা দরকার। সাতটি লেয়ারের কাজ সম্পর্কে নিচে আলোচনা করা হল -
এটি হলো OSI মডেলের সপ্তম লেয়ার। এর কাজ হলো ইউজার ও নেটওয়ার্ক সার্ভিসের মধ্যবর্তী উইন্ডো হিসেবে কাজ করা যাতে ইউজার কোনো অ্যাপলিকেশন থেকে নেটওয়ার্ক সার্ভিস চাইলে সেটিকে OSI মডেলের পরবর্তী লেয়ারে পাঠাতে পারে। যেমন আপনি একটি মেইল ক্লায়েন্টে মেইল কম্পোজ করে পাঠাতে চাইলে সেটি প্রথমেই যাবে অ্যাপলিকেশন লেয়ারে।
অ্যাপলিকেশন লেয়ারের কাজগুলোকে আমরা নিচের মতো করে উল্লেখ করতে পারি -
যখন আপনি কোনো ওয়েবপেজ ব্রাউজ করতে চান এবং কোনো লিঙ্কে ক্লিক করেন তখন ব্রাউজারকে একটি কমান্ড দেন। এই কমান্ড ব্রাউজারকে বলে দিচ্ছে ইন্টারনেটে নির্দিষ্ট কোনো কম্পিউটার থেকে কোনো ফাইল সংগ্রহ করতে। যখন আপনার কম্পিউটার সেই কম্পিউটারের সাথে যোগাযোগ করছে তখন আপনার কম্পিউটার হলো উৎস আর ইন্টারনেটের সেই কম্পিউটার হলো গন্তব্য। অ্যাপলিকেশন লেয়ারের সার্ভিস এক্ষেত্রে প্রথমেই ব্যবহৃত হবে।
এই লেয়ার নেটওয়ার্ক সার্ভিসের জন্য ডাটা ট্রান্সলেটর হিসেবে কাজ করে। প্রেরণকারী কম্পিউটারে এই লেয়ার অ্যাপলিকেশন লেয়ারের কাছ থেকে প্রাপ্ত ডাটাকে এর নিচের লেয়ারসমূহের বোধগম্য ফরম্যাটে রূপান্তর করে। আবার গন্তব্য কম্পিউটারে প্রেজেন্টেশন লেয়ার ডাটাকে অ্যাপলিকেশন লেয়ারের বোধগম্য ফরম্যাটে রূপান্তর করে।
প্রেজেন্টেশন লেয়ার নিচের কাজগুলো করে থাকে -
এসব কাজকে আমরা আরো ভালোভাবে বোঝার চেষ্টা করবো। প্রথমেই আসা যাক ক্যারেক্টার কনভার্সনের ব্যাপারে। আমরা যখন কোনো অ্যাপলিকেশনে কোনো ডাটা, ধরা যাক ই-মেইল মেসেজ তৈরি করি তখন তা সব সার্ভিস বা অ্যাপলিকেশনের বোধগম্য ফরম্যাটে থাকে না। এমনিতে সব কম্পিউটার বুঝতে পারে এরকম একটি ফরম্যাট হলো ASCII বা আমেরিকান স্ট্যান্ডার্ড কোড ফর ইনফরমেশন ইন্টারচেঞ্জ। এতে ৯৬ টি অক্ষর ও ডিজিট রয়েছে, সেইসাথে ৩২ টি নন-প্রিন্টিং ক্যারেক্টার আছে। প্রেজেন্টেশন লেয়ার অ্যাপলিকেশন লেয়ারের কাছ থেকে পাওয়া ডাটাকে সাধারণত এই ASCII ফরম্যাটেই রূপান্তর করে।
আইবিএম মেইনফ্রেম কম্পিউটারের ক্ষেত্রে কমন ফরম্যাট হলো EBCDIC বা এক্সটেন্ডেড বাইনারি কোডেড ডেসিম্যাল ইন্টারচেঞ্জ কোড। এতে আছে ২৫৬ টি বিশেষ ক্যারেক্টার। আইবিএম মেইনফ্রেমের সাথে ডাটা আদান-প্রদানের সময় প্রেজেন্টেশন লেয়ার অ্যাপলিকেশন লেয়ার থেকে প্রাপ্ত ডাটাকে এই ফরম্যাটে রূপান্তর করবে।
ডাটা কম্প্রেশন বলতে বোঝানো হয় বড় ডাটা সাইজকে সংকুচিত করা। এর ফলে নেটওয়ার্কে ডাটা দ্রুত পরিবাহিত হতে পারে। অ্যাপলিকেশন লেয়ারের কাছ থেকে আসা ডাটা প্যাকেটে অনেকসময় বেশ কিছু অপ্রয়োজনীয় ডাটা থাকে, যেমন - স্পেস, লাইন ব্রেক ইত্যাদি। এগুলিকে বাদ দিয়ে সহজেই ডাটা প্যাকেটকে ছোট করা যায়। প্রেজেন্টেশন লেয়ার এসব প্যাকেট থেকে স্পেস বাদ দিয়ে ডাটা প্যাকেটকে ছোট করে। একেই বলা হচ্ছে ডাটা কম্প্রেশন।
চিত্র ১.২ - প্রেজেন্টেশন লেয়ার ডাটাকে কম্প্রেশ করে যাতে নেটওয়ার্কে তা দ্রুত পরিবাহিত হতে পারে।
চিত্র - ১.২ এ দেখা যাচ্ছে কম্পিউটার ১ একটি বাক্য পাঠাচ্ছে কম্পিউটার ২ এর কাছে। অ্যাপলিকেশন লেয়ারে পুরো ডাটা থাকছে স্পেস ও ফরম্যাটিংসহ। এটি প্রেজেন্টেশন লেয়ারে গেলে প্রেজেন্টেশন লেয়ার এখান থেকে স্পেস ও ফরম্যাটিং বাদ দিয়ে প্যাকেট সাইজ ছোট করে দিচ্ছে। তারপর প্যাকেটটি OSI লেয়ারের অন্যান্য লেয়ারের মধ্য দিয়ে পৌঁছাচ্ছে কম্পিউটার ২ এর প্রেজেন্টেশন লেয়ারে। প্রেজেন্টেশন লেয়ার এখানে কম্প্রেশড ডাটা প্যাকেটকে ডিকম্প্রেশ করবে এবং অ্যাপলিকেশন লেয়ারের কাছে পাঠাবে। অ্যাপলিকেশন লেয়ার সেই ফরম্যাটেড ডাটাই পাবে।
প্রেজেন্টেশন লেয়ার ডাটা এনক্রিপশন করে থাকে। এনক্রিপশনকে আমরা তুলনা করতে পারি সাইফার কোডের সাথে। গোপন তথ্য পাঠানোর জন্য যেমন সাইফার কোড ব্যবহার করা হয়, তেমনি গোপন কোনো তথ্য নেটওয়ার্কে পাঠানোর জন্য ব্যবহার করা হয় এনক্রিপশন। এমনিতে সব ডাটা প্যাকেটের সাথে এনক্রিপশন ব্যবহার করা হয় না, দরকারও পড়ে না। বিশেষ বিশেষ ক্ষেত্রে, যেমন পাসওয়ার্ড কিংবা ক্রেডিট কার্ড নম্বর প্রেরণের সময় এটির দরকার হয়। নেটওয়ার্কে বিভিন্ন ধরণের এনক্রিপশন ব্যবহৃত হয়। এর মধ্যে আছে পাবলিক-প্রাইভেট কী (Public-Private key) এনক্রিপশন। এতে যার কাছে কী (key) থাকে সেই কেবল সে ডাটা পড়তে পারে।
সেশন লেয়ারের কাজ হলো উৎস এবং গন্তব্য ডিভাইসের মধ্যে সংযোগ গড়ে তোলা, সেই সংযোগকে বহাল রাখা এবং প্রয়োজন শেষে সংযোগ বিচ্ছিন্ন করা। এটি মেসেজ-মোড ডাটা ট্রান্সফারের কাজও করে থাকে।
সেশন লেয়ারের কাজগুলো নিম্নরুপ -
সেশন লেয়ারের কাজগুলিকে আমরা প্রধান তিনটি ভাগে বিভক্ত করতে পারি। এ কাজগুলিকে বোঝার জন্য আমরা কিছু উদাহরণের আশ্রয় নেব।
আপনি আপনার বন্ধুর সাথে কথা বলতে চান। তাহলে কী করবেন ? তার টেলিফোন নম্বরে ডায়াল করবেন। ওদিকে রিং হওয়ার পর তিনি ধরবেন এবং হ্যালো বলবেন। উত্তরে আপনিও হ্যালো বলবেন। দু’জনে হ্যালো বলার পরই নিশ্চিত হবেন যে আপনাদের মাঝে সংযোগ গড়ে উঠেছে, তখন আপনারা কথা বলতে পারেন। আপনি কথা বলে যাচ্ছেন, আপনার বন্ধু শুনছে। মাঝে মাঝে আপনি হ্যালো বলে উঠছেন। এর উদ্দেশ্য হলো সে এখনও আপনার কথা শুনতে পাচ্ছে কি না সে সম্পর্কে নিশ্চিত হওয়া। সে যখন হ্যালো বলছে আপনি তখন নিশ্চিত হয়ে আপনার মনের কথা বলছেন। তারপর যখন কথা শেষ হবে তখন আপনি খোদা হাফেজ বলে সংযোগ বিচ্ছিন্ন করবেন। যে রিং করে সেই সাধারণত সংযোগ বিচ্ছিন্ন করে। অপর প্রান্ত থেকে করা হলে তা হবে বেয়াদবি।
টেলিফোনে আপনি যেভাবে সংযোগ গড়ছেন সেভাবেই সংযোগ গড়ে নেটওয়ার্কের দুটো ডিভাইস। এজন্য উৎস ডিভাইসের সেশন লেয়ার গ্রহীতা ডিভাইসের উদ্দেশ্যে একটি SYN (সিনক্রোনাইজেশন) মেসেজ পাঠায়। উত্তরে গ্রহীতা ডিভাইসের সেশন লেয়ার পাঠায় (ACK) প্রাপ্তিস্বীকার মেসেজ। এটি পাওয়ার পর দু'জনের মাঝে একটি সেশন প্রতিষ্ঠিত হয়েছে বলে ধরে নেয়া যায়।
গ্রহীতা ডিভাইসের সেশন লেয়ার প্রেরণকারী ডিভাইসের সেশন লেয়ারের সাথে সমঝোতায় এসে দু’জনের মধ্যে কম্যুনিকেশনের নিয়মকানুন প্রতিষ্ঠা করে। উভয় ডিভাইসের সামর্থ্যের উপর ভিত্তি করে এই নিয়মকানুন গড়ে ওঠে। এ নিয়মকানুনের মধ্যে থাকে একসঙ্গে কী পরিমাণ ডাটা পাঠানো হবে, কতক্ষণ পর পর পাঠানো হবে, ইত্যাদি।
একবার সেশন এবং কম্যুনিকেশনের নিয়মকানুন প্রতিষ্ঠিত হওয়ার পর দুই ডিভাইসের মধ্যে ডাটা আদান-প্রদান চলতে পারে। ডাটা পাঠানো শেষ না হওয়া পর্যন্ত অবশ্যই সেই সেশন রক্ষা করা দরকার। সেশন লেয়ার এটি করে নির্দিষ্ট সময় অন্তর keep-alive মেসেজ পাঠিয়ে (কিছুক্ষণ পর পর হ্যালো বলা)। দুটি ডিভাইসের মধ্যে ডাটা আদান-প্রদান শেষে অবশ্যই সেশন লেয়ারকে সেই সেশন বা সংযোগ বিচ্ছিন্ন করতে হবে। এটি না করা হলে কোনো একটি ডিভাইস অপরপ্রান্তে ডাটা পাঠানোর বৃথা চেষ্টা করতে পারে। ব্যাপারটি এমন আপনার বন্ধু ফোন রেখে দিয়েছে কিন্তু আপনি কথা বলেই যাচ্ছেন।
যখন কোনো ডিভাইস সংযোগ গড়তে চায় তখন সেশন লেয়ার জেনে নেয় কোন ডিভাইস এই কম্যুনিকেশনে অংশ নেবে এবং কী পরিমাণ ডাটা একসাথে পাঠাবে, কতক্ষণ পর পর পাঠাবে। একে বলা হয় ডায়ালগ কন্ট্রোল (dialogue control)।
তিন ধরণের ডায়ালগ কন্ট্রোল ব্যবহৃত হতে পারে -
সিম্পলেক্স ডায়ালগ কন্ট্রোলে ডাটা কেবল একদিকে প্রবাহিত হতে পারে। হাফ ডুপ্লেক্স পদ্ধতিতে একদিকের ডাটা প্রবাহিত শেষ হলে অন্যদিকের ডাটা প্রবাহিত হতে পারে। আর ফুল ডুপ্লেক্স ডায়ালগ কন্ট্রোলে একইসাথে উভয়দিকে ডাটা প্রবাহিত হতে পারে।
মেসেজ পাঠানোর সাথে সাথে সেশন লেয়ার তার সাথে মার্কারও যোগ করে। এর ফলে কোনো মেসেজ ঠিকমতো গ্রহীতা ডিভাইসে না পৌঁছালে উৎস ডিভাইস বুঝতে পারে কোনখান থেকে রিট্রান্সমিট করতে হবে। মেসেজের সাথে মার্কার যোগ করা ও রিট্রান্সমিট করার এই পদ্ধতিকে বলা হয় ডায়ালগ সেপারেশন (dialogue separation)।
OSI মডেলের চতুর্থ লেয়ার হলো ট্রান্সপোর্ট লেয়ার। এর কাজ হলো সেশন লেয়ারের কাছ থেকে পাওয়া ডাটা নির্ভরযোগ্যভাবে অন্য ডিভাইসে পৌঁছানো নিশ্চিত করা। এটি করার জন্য ট্রান্সপোর্ট লেয়ার সেশন লেয়ারের কাছ থেকে পাওয়া ডাটাকে ক্ষুদ্রতম অংশে বিভক্ত করে যাতে তা পরবর্তী লেয়ারগুলি অন্য নেটওয়ার্কে পাঠাতে পারে।
এক ডিভাইস থেকে অন্য ডিভাইসে ডাটা পৌঁছানো নিশ্চিত করার জন্য ট্রান্সপোর্ট লেয়ার দু’ধরনের ট্রান্সমিশন ব্যবহার করে -
দুটো ডিভাইসের মধ্যে কম্যুনিকেশন স্পীড কী হবে তাও নির্ধারণ করে এই ট্রান্সপোর্ট লেয়ার। একে বলা হয় ফ্লো কন্ট্রোল (flow control)। যে ধরনের ট্রান্সমিশনই ব্যবহার করা হোক না কেন ট্রান্সপোর্ট লেয়ার দেখবে সর্বোচ্চ কোন সাইজের ডাটা প্যাকেট উভয় ডিভাইসই গ্রহণ করতে পারে। এর উপর ভিত্তি করে ডাটা প্যাকেটকে ভাগ করা হয় এবং পাঠানো হয়। ধরা যাক কম্পিউটার ১ পাঠাতে পারে ৫ বাইট ডাটা প্যাকেট, আর কম্পিউটার ২ পারে ১০ বাইট ডাটা প্যাকেট। এখন কম্পিউটার ২ যদি কম্পিউটার ১ এর নিকট ১০ বাইটের প্যাকেট পাঠায় তাহলে কম্পিউটার ১ সেটি গ্রহণ করতে পারবে না। তাই ট্রান্সপোর্ট লেয়ার ফ্লো কন্ট্রোলের মাধ্যমে নির্ধারণ করে দেবে যে উভয় কম্পিউটার পরস্পরের সাথে কম্যুনিকেশনে কেবল ৫ বাইট ডাটা প্যাকেট পাঠাবে।
এ ধরনের ট্রান্সপোর্ট ব্যবহার করতে হলে দুই ডিভাইসকে আগেই একটি সেশন প্রতিষ্ঠা করতে হবে এবং পুরো ডাটা ট্রান্সমিশন শেষ না হওয়া পর্যন্ত সেই সংযোগ অবিচ্ছিন্ন রাখতে হবে। এখানে প্রতিটি প্যাকেট বা বেশ কিছু প্যাকেট পাওয়ার পর গ্রহীতা ডিভাইস উৎস ডিভাইসকে ACK মেসেজ পাঠিয়ে প্রাপ্তিস্বীকার করে। তাই একে নির্ভরযোগ্য বা রিলায়েবল ট্রান্সপোর্ট মেথড বলা হয়। এতে ডাটা প্যাকেট এবং ACK মেসেজ পাঠাতে হয় বলে এর গতি কিছুটা ধীর হয়ে থাকে।
কানেকশন ওরিয়েন্টেড ট্রান্সপোর্টের বৈশিষ্ট্য হলো -
কোনো ডাটা প্যাকেট গ্রহীতা ডিভাইসের নিকট না পোঁছালে সে তার জন্য ACK মেসেজ পাঠাবে না। তা দেখে উৎস ডিভাইস বুঝতে পারবে কোন প্যাকেট পুনরায় পাঠাতে হবে। প্রতিটি ডাটা প্যাকেট পাঠানোর সময় ট্রান্সপোর্ট লেয়ার তাতে সিকোয়েন্স নম্বর দিয়ে থাকে যা থেকে গ্রহীতা ডিভাইসের ট্রান্সপোর্ট লেয়ার সেসব প্যাকেটকে ক্রমানুসারে সাজিয়ে পুরো ডাটা পেতে পারে।
কানেকশন ওরিয়েন্টেড ট্রান্সপোর্টকে আমরা তুলনা করতে পারি টেলিফোনের সাথে। টেলিফোনে আপনি যখন কথা বলছেন তখন নিশ্চিত হতে পারছেন যে আপনি আসল প্রাপকের কাছেই আপনার মেসেজ পৌঁছাচ্ছেন। কিন্তু এজন্য অবশ্যই আপনাকে আগে ডায়াল করে তার সাথে সংযোগ গড়তে হবে, এবং আপনার মেসেজ দেয়া শেষ না হওয়া পর্যন্ত সেই সংযোগ অবিচ্ছিন্ন রাখতে হবে। এর মধ্যে আপনি যা যা বলবেন সেটি অপরপ্রান্তের শ্রোতা ঠিকমতো শুনতে ও বুঝতে পারছে সে সম্পর্কে নিশ্চিত হতে পারছেন তার হ্যালো, হ্যাঁ ইত্যাদি উত্তরে। তবে এর অসুবিধা হলো এতে ওভারহেড কস্ট বেশি। অর্থাৎ আপনার এবং অপরপ্রান্তের শ্রোতার উভয়েরই একটি টেলিফোন সেট থাকা দরকার। তাছাড়া ফোনে কথা বলার সময় বিলও হবে বেশি। তাই নেটওয়ার্কিং জগতে কানেকশন ওরিয়েন্টেড ট্রান্সপোর্টকে বলা হয় ধীরগতির, উচ্চ ওভারহেড কস্টের এবং নির্ভরযোগ্য ট্রান্সপোর্ট।
কানেকশনলেস ট্রান্সপোর্টে আগেই গ্রহীতা ডিভাইসের সাথে সংযোগ গড়ার দরকার পড়ে না এবং ডাটা পাঠানোর সময় ডাটা প্যাকেট গ্রহণ করে গ্রহীতা ডিভাইস কোন ACK মেসেজ পাঠিয়ে উৎসের নিকট প্রাপ্তিস্বীকার করে না। এ কারণে একে অনির্ভরযোগ্য ট্রান্সপোর্ট মেথড বলা হয়ে থাকে। এখানে গ্রহীতাকে ACK মেসেজ পাঠাতে হয় না বলে নেটওয়ার্ক কম্যুনিকেশন দ্রুতগতির হতে পারে।
কানেকশনলেস ট্রান্সপোর্টের বৈশিষ্ট্য হলো -
কানেকশনলেস ট্রান্সপোর্টকে আমরা তুলনা করতে পারি চিঠির সাথে। আপনার বন্ধুর নিকট কোনো মেসেজ পাঠাতে চাইলে সেটি একটি কাগজে লিখুন, চিঠিটি খামে ভরুন, এবার খামের গায়ে ঠিকানা লিখে ফেলে দিন নিকটস্থ টিউন বক্সে। তারপর ডাক বিভাগের বদৌলতে সেটি পৌঁছে যাবে আপনার বন্ধুর হাতে। আপনার বন্ধু সেই চিঠি পেল কি না, পেলে কখন পেল তা আপনি জানতে পারবেন না। বাংলাদেশ ডাক বিভাগের মহিমায় সেটি নাও পৌঁছাতে পারে (চিটির প্রথমে ‘আল্লাহ ভরসা’ লিখেছেন তো ?)। তবে হ্যাঁ চিঠির সুবিধাও আছে। এটি পাঠাতে হলে আগেই আপনার বন্ধুর সাথে সংযোগ গড়ে বলে দিতে হবে না যে বন্ধু তুমি এখন বাসায় থাকো, তোমার নামে চিঠি পাঠাচ্ছি। খরচ হবে খুবই কম, আপনার বন্ধুর কিংবা আপনার কারোরই ফোন বিল এবং নিজের কাছে ফোন রাখার মতো খরচ বহন করতে হবে না।
নেটওয়ার্ক লেয়ারের কাজ হলো অ্যাড্রেসিং ও প্যাকেট ডেলিভারি। এ স্তরে ডাটা প্যাকেটকে বলা হয় ডাটাগ্রাম (datagram)। ডাটাগ্রামে যোগ হয় কোন নেটওয়ার্কে সেই প্যাকেট যাবে। নেটওয়ার্ক লেয়ারে যে অ্যাড্রেস ব্যবহৃত হয় তাকে বলে নেটওয়ার্ক অ্যাড্রেস। এটি একটি লজিক্যাল অ্যাড্রেস এবং ডিভাইসের হার্ডওয়্যার কিংবা ভৌগলিক অবস্থানের উপর নির্ভরশীল নয়।
এর কাজ সমাধার জন্য নেটওয়ার্ক লেয়ার যা করে তাহলো -
যখন একটি ডাটা প্যাকেট নেটওয়ার্ক লেয়ারে আসে তখন উৎস এবং গন্তব্যের নেটওয়ার্ক অ্যাড্রেস সেই ডাটা প্যাকেটে যোগ করা হয় এনক্যাপসুলেশনের মাধ্যমে। উভয় অ্যাড্রেসই লজিক্যাল অ্যাড্রেস। ডাটাগ্রামে প্রথমে উৎস ডিভাইসের নেটওয়ার্ক অ্যাড্রেস যোগ করা হয়। তারপর যোগ করা হয় গন্তব্য কম্পিউটারের নেটওয়ার্ক অ্যাড্রেস। এ দুই অ্যাড্রেস না থাকলে ডাটাগ্রাম গন্তব্য কম্পিউটারে পৌঁছাবে না। গন্তব্য কম্পিউটার আপনার লোকাল নেটওয়ার্কে থাকতে পারে অথবা দূরবর্তী কোনো নেটওয়ার্কে থাকতে পারে।
গন্তব্য কম্পিউটার যদি দূরবর্তী কোনো নেটওয়ার্কে থাকে তাহলে ডাটা প্যাকেটকে ওই নেটওয়ার্কে পৌঁছে দেয়ার দায়িত্বও নেটওয়ার্ক লেয়ারের। এক নেটওয়ার্ক থেকে আরেক নেটওয়ার্কে ডাটা প্যাকেট পৌঁছানোর পদ্ধতিকে বলা হয় রাউটিং (routing)। এর জন্য অবশ্যই ডাটা প্যাকেটে সেই গন্তব্য নেটওয়ার্কের নেটওয়ার্ক অ্যাড্রেস থাকতে হবে। এক নেটওয়ার্ক থেকে অন্য নেটওয়ার্কে ডাটা প্যাকেটকে পৌঁছানোর জন্য নেটওয়ার্ক লেয়ার প্রথমে সেই নেটওয়ার্কে পৌঁছানোর একটি পথ খুঁজে বের করে এবং সে অনুসারে ডাটা প্যাকেটকে সুইচ করে।
কোন পথ বেছে নেয়া হবে তা নির্ভর করে বিভিন্ন মেট্রিক বা নিয়ামকের উপর। নেটওয়ার্ক লেয়ার সবসময় সংক্ষিপ্ততম পথকে প্রাধান্য দেয়। আরও বেশ কিছু নিয়ামক এ ক্ষেত্রে কাজ করে, তবে সেসব নির্ভর করে কোন ধরনের রাউটিং প্রটোকল ব্যবহার করছেন তার উপর।
রাউটিং ফাংশন যে ডিভাইস দিয়ে থাকে তাকে বলা হয় রাউটার (router)। এটি কাজ করে নেটওয়ার্ক লেয়ারে। একাধিক নেটওয়ার্ককে যুক্ত করার জন্য এটি ব্যবহৃত হয়। এক নেটওয়ার্ক থেকে আরেক নেটওয়ার্কে ডাটা প্যাকেট পৌঁছাতে রাউটার ও অন্যান্য যেসব ডিভাইসের মধ্য দিয়ে যেতে হয় সেসব ডিভাইসকে বলা হয় ইন্টারমিডিয়েট সিস্টেমস। এসব ইন্টারমিডিয়েট সিস্টেমস কেবল OSI মডেলের নেটওয়ার্ক লেয়ারে কাজ করে এবং অন্যান্য লেয়ার সম্পর্কে এদের কোনো ধারণা না থাকলেও চলে।
রাউটার একটি ভিন্ন হার্ডওয়্যার হতে পারে অথবা কোনো কম্পিউটারকে রাউটার হিসেবে ব্যবহার করা যেতে পারে। সিসকো সিস্টেমস একটি প্রসিদ্ধ রাউটার প্রস্ততকারক প্রতিষ্ঠান। আপনি এ ধরনের হার্ডওয়্যার রাউটার অথবা কোনো কম্পিউটারকে রাউটার হিসেবে ব্যবহার করতে পারেন। উইন্ডোজ এনটি/২০০০/২০০৩/২০০৮ কিংবা লিনাক্স সার্ভারের সাথে একাধিক নেটওয়ার্ক অ্যাডাপ্টার থাকলে তাকেও রাউটার হিসেবে ব্যবহার করা যায়।
ডাটালিঙ্ক লেয়ারের কাজ হলো ফিজিক্যাল লেয়ারের মাধ্যমে এক ডিভাইস থেকে আরেক ডিভাইসে ডাটাগ্রামকে ত্রুটিমুক্তভাবে প্রেরণ করা। এর উপরের লেয়ারগুলো ধরে নিতে পারে যে ডাটালিঙ্ক লেয়ারের কাছ থেকে যে ডাটাগ্রাম তারা পাচ্ছে তা ত্রুটিমুক্ত।
ডাটালিঙ্ক লেয়ারের কাজগুলি হলো -
ডাটা লিঙ্ক লেয়ারের আছে দু’টি সাবলেয়ার -
লজিক্যাল লিঙ্ক কন্ট্রোল বা LLC মিডিয়া অ্যাক্সেস মেথড ও নেটওয়ার্ক লেয়ার প্রটোকল, যেমন টিসিপি/আইপি’র অধীন ইন্টারনেট প্রটোকল এর মাঝে একটি ইন্টারফেস হিসেবে কাজ করে। অন্যদিকে মিডিয়া অ্যাক্সেস কন্ট্রোল বা MAC সাবলেয়ার ফিজিক্যাল মিডিয়া, যেমন নেটওয়ার্ক অ্যাডাপ্টার এর সাথে একটি সংযোগ গড়ার জন্য ব্যবহৃত হয়। ডাটালিঙ্ক লেয়ারের কাজের একটি হলো ডাটাগ্রামের সাথে ফিজিক্যাল অ্যাড্রেস বা MAC অ্যাড্রেস যোগ করা এবং ডাটাগ্রামকে ক্ষুদ্রতর ইউনিট ফ্রেমে ভাগ করা যাতে তা নেটওয়ার্ক মিডিয়ায় প্রবাহিত হতে পারে।
LLC সাবলেয়ার আবার দু’ধরনের কানেকশন সার্ভিস ব্যবহার করে যা MAC সাবলেয়ার ও উপরের লেয়ারগুলোর সাথে সেতুবন্ধন তৈরি করে।
এ দু’ধরনের কানেকশন সার্ভিস হলো -
কানেকশনলেস সার্ভিস ব্যবহৃত হলে এলএলসি সাবলেয়ার মনে করে যে ডাটা ত্রুটিমুক্তভাবে গন্তব্যে পৌঁছেছে। অন্যদিকে কানেকশন ওরিয়েন্টেড সার্ভিস ব্যবহৃত হলে LLC সাবলেয়ার যাচাই করে দেখে ডাটা ত্রুটিমুক্ত পৌঁছেছে কি না। কোনো ডাটা প্যাকেট সঠিকভাবে পৌঁছালে গ্রহীতা ডিভাইস উৎসের নিকট প্রাপ্তিস্বীকার মেসেজ পাঠায়। এটি অনেক নির্ভরযোগ্য মনে হলেও এটি নেটওয়ার্কের পারফরম্যান্স ধীর করে দেয়। তাই ট্রান্সপোর্ট লেয়ারে যদি কানেকশন ওরিয়েন্টেড সার্ভিস ব্যবহৃত হয় তাহলে এলএলসি টাইপ - ২ ব্যবহারের দরকার পড়ে না। বাস্তবে বেশিরভাগ নেটওয়ার্ক ডিভাইসে এলএলসি টাইপ - ১ ব্যবহৃত হয়।
ডাটালিঙ্ক লেয়ারের MAC সাবলেয়ারে এসে ডাটা প্যাকেটের সাথে ডিভাইসের ফিজিক্যাল বা হার্ডওয়্যার অ্যাড্রেস যোগ করা হয়। এই হার্ডওয়্যার অ্যাড্রেস বা MAC অ্যাড্রেস যোগ করার পরই সে প্যাকেটকে বলা হয় ফ্রেম। এই ফ্রেমে থাকে উৎস থেকে গন্তব্যে যাওয়ার জন্য সব ধরনের অ্যাড্রেস। নেটওয়ার্ক লেয়ারে লজিক্যাল অ্যাড্রেস এবং ডাটালিঙ্ক লেয়ারে ফিজিক্যাল অ্যাড্রেস না দেয়া হলে সেই ফ্রেম গন্তব্যে পৌঁছাতে পারে না।
কোনো ডিভাইসের ফিজিক্যাল অ্যাড্রেস বা MAC অ্যাড্রেস নেটওয়ার্ক ইন্টারফেস কার্ড বা LAN কার্ডের মাঝে লেখা থাকে। এটি একটি অপরিবর্তনীয় অ্যাড্রেস এবং প্রতিটি কার্ডের জন্য সেই অ্যাড্রেস ইউনিক বা ভিন্ন হবে। প্রস্ততকারক প্রতিষ্ঠান এই MAC অ্যাড্রেস দেয় এবং এটিকে ইউজার পরিবর্তন করতে পারে না। এই অ্যাড্রেস দেয়া থাকে হেক্সাডেসিম্যাল হিসেবে যাতে বারোটি ডিজিট থাকে। এর মধ্যে প্রথম ছয় ডিজিট দিয়ে প্রস্ততকারককে বোঝানো হয়, আর শেষ ছয় ডিজিট দিয়ে সেই কার্ডের নম্বর বোঝানো হয়। একই প্রস্ততকারকের তৈরিকৃত সকল কার্ডের প্রথম ছয় ডিজিট একই হবে, কিন্তু পরের ছয় ডিজিট ভিন্ন হবে।
উইন্ডোজ মেশিনে আপনার নেটওয়ার্ক কার্ডের MAC অ্যাড্রেস দেখার জন্য কমান্ড প্রম্পটে ipconfig /all কমান্ড চালাতে পারেন। এছাড়াও উইন্ডোজ মেশিনে getmac /v কমান্ড চালিয়ে MAC অ্যাড্রেস দেখা যায়। তাহলে চিত্র - ১.৩ এর মতো ডায়ালগ বক্সে অন্যান্য তথ্যের সাথে MAC অ্যাড্রেসও দেখা যাবে। লিনাক্স ও ইউনিক্স সিস্টেমে ifconfig কমান্ড ব্যবহার করা যেতে পারে।
চিত্র ১.৩ - উইন্ডোজ মেশিনে ipconfig /all অথবা getmac /v কমান্ড চালিয়ে অ্যাডাপ্টারের হার্ডওয়্যার বা MAC অ্যাড্রেস দেখা যায়।
OSI মডেলের সর্বনিম্নের লেয়ার হলো ফিজিক্যাল লেয়ার। এটিই আসলে একটি ডিভাইসের সাথে আরেকটি ডিভাইসের সংযোগ ঘটায়। এই লেয়ার ঠিক করে কোন পদ্ধতিতে এক ডিভাইস থেকে আরেক ডিভাইসে সিগন্যাল ট্রান্সমিট হবে, ইলেকট্রিক সিগন্যাল বা ডাটা বিট ফরম্যাট কী হবে, ইত্যাদি। ফিজিক্যাল লেয়ার এর উপরের লেয়ারের জন্য সিগন্যাল বহন করে।
এই লেয়ার নিম্নোক্ত ফিজিক্যাল উপাদানসমূহ নিয়ে ফিজিক্যাল কানেকশন গড়ে তোলে -
ফিজিক্যাল লেয়ার ফিজিক্যাল মিডিয়ার বৈশিষ্ট্য, ফ্রেম সিনক্রোনাইজেশন, ডাটা এনকোডিং, সিগন্যালিং প্যাটার্ন, ইত্যাদি নিয়ন্ত্রণ করে।
ডাটা এনকোডিং নির্দেশ করে -
ফিজিক্যাল লেয়ারে বিভিন্ন ফিজিক্যাল কম্পোনেন্ট যেমন ক্যাবল, কানেক্টর, পিন, ইত্যাদির বৈশিষ্ট্য, যেমন কোন পিন দিয়ে কোন সিগন্যাল যাবে, কোন ধরনের সিগন্যালিং ব্যবহৃত হবে ইত্যাদি নিয়ন্ত্রিত হয়।
নেটওয়ার্ক ইন্টারফেস কার্ড বা নেটওয়ার্ক অ্যাডাপ্টারের কাজ হলো ডাটা বা বিটকে ট্রান্সমিশন সিগন্যালে পরিণত করা। উৎস কম্পিউটারের নেটওয়ার্ক অ্যাডাপ্টার ডাটা ফ্রেমকে সিগন্যালে পরিণত করবে এবং ক্যাবল বা অন্য কোন মিডিয়ার মধ্য দিয়ে সেই সিগন্যাল পরিবাহিত হবে। অপরপ্রান্তে গ্রহীতা কম্পিউটারের নেটওয়ার্ক কার্ড সেই সিগন্যালকে গ্রহণ করে পুনরায় ডাটা ফ্রেমে রূপান্তর করবে। নেটওয়ার্ক অ্যাডাপ্টার যে সিগন্যাল তৈরি করে তা বিভিন্ন রকমের হতে পারে - অ্যানালগ বা ডিজিট্যাল, তবে দুটিই বাইনারি সিগন্যাল। এই সিগন্যাল ট্রান্সমিশনের গতি কী হবে তাও নিয়ন্ত্রণ করে ফিজিক্যাল লেয়ার।
একটি নেটওয়ার্ক মিডিয়ার সাথে কোনো ডিভাইস কীভাবে সংযুক্ত হবে তাও নিয়ন্ত্রণ করে এই ফিজিক্যাল লেয়ার। যেমন কোনো নেটওয়ার্ক অ্যাডাপ্টার যদি কোএক্সিয়াল ক্যাবলের সাথে সংযুক্ত হয় তাহলে ফিজিক্যাল লেয়ারে কাজ করে এমন ডিভাইস অবশ্যই সেই নেটওয়ার্কের জন্য ডিজাইনকৃত হতে হবে। বিভিন্ন ধরনের নেটওয়ার্ক মিডিয়ার সাথে নেটওয়ার্ক অ্যাডাপ্টারকে সংযুক্ত করার জন্য ভিন্ন ভিন্ন ডিভাইস বা কানেক্টর, যেমন RJ-45, IBM Token Ring, BNC Connector, Fiber Optic SC Connector, ইত্যাদি ব্যবহৃত হয়।
ফিজিক্যাল লেয়ারে কাজ করে এমন অনেক ডিভাইস নেটওয়ার্কে ব্যবহৃত হয়। এর মধ্যে আছে নেটওয়ার্ক অ্যাডাপ্টার, রিপিটার (repeater), হাব (hub), ইত্যাদি। এসব ডিভাইসের কোনো কোনোটি সিগন্যালকে অ্যামপ্লিফাই করতে পারে যাতে এটি অনেকদূর পর্যন্ত অগ্রসর হতে পারে। এক ধরনের মিডিয়া বা নেটওয়ার্ক টাইপ থেকে অন্য নেটওয়ার্ক টাইপে সেই সিগন্যাল পরিবাহিত হওয়ার দরকার হলে এসব ডিভাইস সিগন্যালকে পরিবর্তনও করতে পারে।
একটু আগেই আমরা জেনেছি যে OSI মডেলের বিভিন্ন স্তর দিয়ে ডাটা প্রবাহিত হওয়ার সময় তার সাথে কিছু তথ্য যোগ হয়, যাকে বলা হয় এনক্যাপসুলেশন। যেমন নেটওয়ার্ক লেয়ারে গিয়ে ডাটার সাথে নেটওয়ার্ক হেডার যুক্ত হয়, আবার ডাটালিঙ্ক লেয়ারে গিয়ে যুক্ত হয় ফ্রেম হেডার।
চিত্র ১.৪ - এনক্যাপসুলেশন পদ্ধতি।
চিত্র ১.৫ - এনক্যাপসুলেশন পদ্ধতি।
চিত্র ১.৬ - এনক্যাপসুলেশন পদ্ধতি।
চিত্র ১.৭ - এনক্যাপসুলেশন পদ্ধতি।
এনক্যাপসুলেশনের প্রতিটি স্তরে ডাটাকে ভিন্ন ভিন্ন নামে অভিহিত করা হয়। নিচের চিত্রগুলোতে প্রতিটি স্তরে ডাটার নাম, যেমন - ডাটা, সেগমেন্ট, প্যাকেট, ফ্রেম, বিট, ইত্যাদি দেখানো হলো -
চিত্র ১.৮ - OSI মডেলের বিভিন্ন স্তরে ডাটার নাম।
চিত্র ১.৯ - OSI মডেলের বিভিন্ন স্তরে ডাটার নাম।
চিত্র ১.১০ - OSI মডেলের বিভিন্ন স্তরে ডাটার নাম।
তাহলে দেখা যাচ্ছে সবার আগে অ্যাপলিকেশন, প্রেজেন্টেশন ও সেশন লেয়ারে থাকা অবস্থায় ডাটাকে বলা হচ্ছে ডাটা, কারণ এই তিন স্তরে এনক্যাপসুলেশন ঘটে না। এরপর ট্রান্সপোর্ট লেয়ারে তাকে বলা হচ্ছে সেগমেন্ট, নেটওয়ার্ক লেয়ারে প্যাকেট, ডাটা লিঙ্ক লেয়ারে ফ্রেম এবং ফিজিক্যাল লেয়ারে বিট।
এতক্ষণ আমরা OSI রেফারেন্স মডেলের কার্যপদ্ধতি সম্পর্কে জেনেছি। নেটওয়ার্কের কার্যপদ্ধতি বোঝার জন্য এটি একটি তাত্ত্বিক মডেল। বাস্তবে প্রটোকলসমূহের কার্যপদ্ধতি বোঝার জন্য আমরা অনেক সময়ই OSI মডেলের সাথে তুলনা করি। OSI মডেল জন্মের পর থেকে যেসব নেটওয়ার্ক ডিভাইস ও প্রটোকল তৈরি হচ্ছে সেসবের নির্মাতারা OSI মডেলকে একটি আদর্শ ধরে নিয়েই করছে। মনে রাখা দরকার OSI মডেল কোনো প্রটোকল নয়। এই মডেলের উপর ভিত্তি করে গড়ে ওঠা প্রটোকল আমরা যে কোনো কম্পিউটারে ব্যবহার করতে পারি, কিন্তু কখনই OSI মডেল ব্যবহার করতে পারব না।
বেশ পুরাতন এবং বহুল প্রচলিত একটি প্রটোকল হলো TCP/IP। আসলে এটি কোনো সিঙ্গল প্রটোকল নয়, এতে আছে অনেকগুলি প্রটোকল। তাই একে বলা হয় TCP/IP প্রটোকল স্যুট। এর অর্থ হলো ট্রান্সমিশন কন্ট্রোল প্রটোকল/ইন্টারনেট প্রটোকল। ইন্টারনেটে এই প্রটোকলই ব্যবহৃত হয়। এই TCP/IP তৈরি করা হয় আমেরিকান ডিপার্টমেন্ট অব ডিফেন্স (DoD) এর অধীনে ARPANet এর অংশ হিসেবে। তখনও OSI মডেলের জন্ম হয়নি, তাই OSI মডেলকে অনুসরণ করে TCP/IP তৈরি করা অসম্ভব। বর্তমানে বহুল প্রচলিত এই প্রটোকলকে বোঝার জন্য আমরা তুলনা করি OSI মডেলের সাথে। TCP/IP মডেলকে বলা হয় ডিওডি (DoD) মডেল। OSI মডেলে সাতটি লেয়ার, কিন্ত টিসিপি/আইপি (TCP/IP) ডিওডি মডেলে লেয়ার হলো চারটি। এই চারটি লেয়ারকে তুলনা করা হয় OSI মডেলের সাতটি লেয়ারের সাথে (চিত্র - ১.১১)।
চিত্র ১.১১ - OSI বনাম TCP/IP মডেল।
TCP/IP মডেলের অ্যাপলিকেশন লেয়ারকে অনেক সময় প্রসেস লেয়ারও বলা হয়ে থাকে। এ লেয়ারে বিভিন্ন অ্যাপলিকেশন লেভেল সার্ভিস, যেমন হাইপার টেক্সট ট্রান্সফার প্রোটকল (HTTP), সিম্পল মেইল ট্রান্সফার প্রটোকল (SMTP), ফাইল ট্রান্সফার প্রটোকল (FTP), ইত্যাদি চলে। TCP/IP মডেলের অ্যাপলিকেশন বা প্রসেস লেয়ার OSI মডেলের অ্যাপলিকেশন, প্রেজেন্টেশন ও সেশন লেয়ারের সমতুল্য।
OSI মডেলের ট্রান্সপোর্ট লেয়ারের মতোই কাজ করে TCP/IP মডেলের ট্রান্সপোর্ট লেয়ার। এতে দুটি প্রটোকল কাজ করে -
কানেকশন ওরিয়েন্টেড সার্ভিস, যেমন এফটিপি'র জন্য ব্যবহৃত হয় নির্ভরযোগ্য কানেকশন ওরিয়েন্টেড TCP। আর কানেকশনলেস সার্ভিস, যেমন ইমেইল এর জন্য ব্যবহৃত হয় কানেকশনলেস UDP।
OSI মডেলের নেটওয়ার্ক লেয়ারকে TCP/IP মডেলে বলা হয় ইন্টারনেট লেয়ার। OSI মডেলের নেটওয়ার্ক লেয়ারের মতো এর কাজ হলো আইপি অ্যাড্রেসিং ও রাউটিং। এই লেয়ার ইন্টারনেটের প্রতিটি কম্পিউটারকে চিহ্নিত করার জন্য লজিক্যাল আইপি অ্যাড্রেসিং স্কীম ব্যবহার করে থাকে। এসব আইপি অ্যাড্রেসের উপর ভিত্তি করে এই লেয়ার কোনো আইপি প্যাকেটকে অন্য নেটওয়ার্কে পাঠাতে পারে, যাকে বলা হয় আইপি রাউটিং।
TCP/IP মডেলের এই লেয়ারে কাজ করে অ্যাড্রেস রেজুলেশন প্রটোকল (ARP), ইন্টারনেট প্রটোকল (IP), ইন্টারনেট কন্ট্রোল মেসেজিং প্রটোকল (ICMP), রিভার্স অ্যাড্রেস রেজুলেশন প্রটোকল (RARP) ইত্যাদি।
OSI মডেলের ডাটা লিঙ্ক লেয়ার ও ফিজিক্যাল লেয়ার মিলে TCP/IP মডেলে নেটওয়ার্ক ইন্টারফেস লেয়ার। এর কাজ হলো নেটওয়ার্কে ডাটা ট্রান্সমিট করা। ইন্টারনেট লেয়ার ডাটা ঠিকমতো রাউট করার পর এই লেয়ারের দায়িত্ব হলো সেটিকে সঠিক ডিভাইসের কাছে পৌঁছে দেয়া।
কোথাও কোথাও (বইয়ে ও ইন্টারনেটে) TCP/IP’র বর্ণনায় ফিজিক্যাল লেয়ার দেখা যায়। আসলে ডাটা লিঙ্ক লেয়ার এবং ফিজিক্যাল লেয়ার মিলে যে নেটওয়ার্ক ইন্টারফেস লেয়ার তার কাজ হলো মিডিয়ার সাথে কানেকশন তৈরি করা। এখানে ডাটালিঙ্ক এবং ফিজিক্যাল লেয়ার ভিন্নভাবে থাকতে পারে না। তাই এই বিষয়ে একটু খেয়াল রাখতে হবে।
নেটওয়ার্কের একটি ডিভাইস আরেকটির সাথে কীভাবে কম্যুনিকেট করে তা বোঝার জন্য তৈরি করা হয়েছে ওপেন সিস্টেমস ইন্টারকানেকশন বা OSI মডেল। বিভিন্ন নেটওয়ার্ক ডিভাইস প্রস্ততকারক যাতে একই স্ট্যান্ডার্ড অনুসরণ করে তা নিশ্চিত করার জন্য OSI রেফারেন্স মডেলের জন্ম।
OSI রেফারেন্স মডেলে আছে সাতটি স্তর বা লেয়ার। এগুলির প্রত্যেকটির আছে ভিন্ন ভিন্ন কাজ। লেয়ারগুলি হলো - অ্যাপলিকেশন, প্রেজেন্টেশন, সেশন, ট্রান্সপোর্ট, নেটওয়ার্ক, ডাটা লিঙ্ক এবং ফিজিক্যাল। ডাটা এক লেয়ার থেকে আরেক লেয়ারে প্রবাহিত হয়। ডাটা প্যাকেট কখনই মাঝখানের কোনো লেয়ারকে বাদ দিয়ে অন্য লেয়ারে যেতে পারবে না। একেকটি লেয়ার অতিক্রমের সময় ডাটা প্যাকেটের সাথে সেসব লেয়ারের হেডার তথ্য যোগ হওয়ার প্রক্রিয়াকে বলা হয় এনক্যাপসুলেশন বা wrapping।
টিসিপি/আইপি প্রটোকল স্যুট OSI মডেল তৈরি হওয়ার অনেক আগের তৈরি বিধায় টিসিপি/আইপিকে বোঝার জন্য OSI মডেলের সাথে তুলনা করা হয়। TCP/IP মডেলে আছে চারটি লেয়ার। এই চারটি লেয়ারকে OSI মডেলের সাতটি লেয়ারের সাথে তুলনা করা যেতে পারে, যেখানে OSI মডেলের অ্যাপলিকেশন, প্রেজেন্টেশন, সেশন এ তিনটি লেয়ার নিয়ে TCP/IP মডেলের অ্যাপলিকেশন/প্রসেস লেয়ার। ট্রান্সপোর্ট লেয়ার উভয়টিতে আছে। OSI মডেলের নেটওয়ার্ক লেয়ারের সমতুল্য হলো ইন্টারনেট লেয়ার এবং OSI মডেলের ডাটা লিঙ্ক ও ফিজিক্যাল লেয়ার নিয়ে TCP/IP মডেলের নেটওয়ার্ক ইন্টারফেস লেয়ার গঠিত।
আজকে এখানেই শেষ করছি। কোন প্রকার ভুল ত্রুটি ধরা পড়লে বা মনে হলে ক্ষমাসুন্দর দৃষ্টিতে দেখবেন এবং অবশ্যই অবশ্যই টিউমেন্টে আমাকে জানাবেন প্লিজ। আমি যথাসাধ্য চেষ্টা করবো সংশোধন করতে। আগামী পর্বে ইনশা-আল্লাহ্ আবার দেখা হবে। সে পর্যন্ত সবাই ভাল থাকবেন, সুস্থ থাকবেন। ধন্যবাদ সবাইকে।
[ বিঃদ্রঃ ] আপনাদের কাছে বিনীত অনুরোধ থাকবে যে, আমার এই লিখাগুলো/টিউনগুলো কপি পেস্ট করে অন্য কোথাও (নিজের বা অন্যের ব্লগ/ওয়েবসাইট/ফোরাম) নিজের নামে চালিয়ে দেবেন না প্লিজ। যে একবার লিখে সেই বুঝে লিখার মর্ম আসলে কি এবং সেই জানে যে লিখতে আর একটা টিউন পুরোপুরি বানাতে কি পরিমাণ কষ্ট হয়। তারা কখনও কপি পেস্ট করে নিজের নামে চালিয়ে দেয় না যারা একবার একটা সম্পূর্ণ টিউন তৈরি করে। কোনো লিখা/টিউন কপি পেস্ট করে লেখকের নাম বা আসল সোর্স উল্লেখ না করে নিজের নামে চালিয়ে দিলে মূল লেখকের পুরো লিখাটাই ব্যর্থ হয় এবং সে পরবর্তীতে লিখার মন মানসিকতা হারিয়ে ফেলে। তাই আমরা প্লেজারিজম থেকে সবসময় বিরত থাকার চেষ্টা করবো এবং মূল লেখককে সবসময় ম্যানশন করার চেষ্টা করবো যাতে সে বেশী বেশী অনুপ্রেরণা পায়। আপনারা লিখাগুলো শুধুমাত্র নিজেদের সংগ্রহে রাখতে পারেন কিন্তু কপি পেস্ট করে অন্য কোথাও চালিয়ে দিতে পারেন না। এই লিখাগুলো একান্তই আমার লিখা তাই আমার অনুমতি ছাড়া টেকটিউনস এ লিখা আমার এ টিউনগুলো অন্য কোথাও কপি পেস্ট করে হুবহু দিয়ে দিবেন না প্লিজ। আর যদি একান্তই দিতে চান তাহলে অবশ্যই অবশ্যই আমার নাম এবং টেকটিউনস এর সোর্স বা টেকটিউনসে পূর্বে প্রকাশিত উল্লেখ করে দিয়ে দিবেন প্লিজ।
আমি মোঃ কামরুজ্জামান কামরুল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 21 টি টিউন ও 145 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 2 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
Studying B. Sc in Computer Science and Engineering at Daffodil International University. I Want to Buildup My Career as an Expert and Professional Network Engineer. Please Everyone Pray for Me. Thanks.
ধন্যবাদ আপনাকে সুন্দর টিউনের জন্য। আত্নস্থ করার চেষ্টা করছি।