Discussion on Protocols

 

FTP Protocol:

ফাইল ট্রান্সফার এর ক্ষেত্রে এই প্রোটোকল ব্যবহার  করা হয়ে থাকে।

এইখানে   ট্রান্সফার অর্থ - ফাইল আপলোড অথবা ডাউনলোড করাকে বোঝায়। 

যেমন - আমরা ইউটিউব থেকে ভিডিও ডাউনলোড করি বা ইউটিউব এ ভিডিও আপলোড করে থাকি। 

https://www.filehorse.com/

https://filehippo.com/

https://en.softonic.com/

https://getintopc.com/

 

উপরের সাইট গুলো থেকে আমরা যখন কোনো ফাইল বা সফটওয়্যার ডাউনলোড করে থাকি তখন তার

ব্যাকএন্ড এ FTP প্রোটোকল ব্যবহার  করা হয়ে থাকে।

** আমরা ফাইল আপলোড বা ডাউনলোড এর জন্য বিভিন্ন প্রকার টুলস (ftp client) ব্যবহার করতে পারি, তার ভেতর একটা টুল আছে যার নাম - FileZilla (https://filezilla-project.org/)

এই ফাইল টা উপরের লিংক থেকে ডাউনলোড করে ইনস্টল করে ফেলবো সবাই আমরা আমাদের  PC তে।

তারপর ওপেন করলে নিচের মতো একটা উইন্ডো আসবে। 

যেখানে উপরে থাকবে কিছু অপসন - Host Name , Username ,  Password , Port এই ৪ টা অপসন থাকবে।


এখন আমরা চাচ্ছি , আমাদের লোকাল মেশিন থেকে দূরের কোনো FTP সার্ভার এ আমার নিজের PC এর

কিছু ফাইল আপলোড করবো।  সেইক্ষেত্রে  দূরের ওই FTP সার্ভার এর

Host Name , Username ,  Password , Port এসাইন করে লগইন করতে হবে ,

যেমনটা আমরা উপরের ছবিতে দেখতে পাচ্ছি লাল মার্ক করা ঘরটায় । 

ওই ৪ ঘরে নিচের ইনফরমেশন গুলো দিবো।

Host Name = test.rebex.net                     Port = 21

Username = demo                                     Password  = password 

প্রয়োজনীয় ইনফরমেশন দেবার পরে পাশের Quickconnect  অপসন এ ক্লিক করলে আমরা দূরের ওই সার্ভার টাতে লগইন করতে সমর্থ হবো।

উপরের ছবি টা আবার ভালো করে খেয়াল করা যাক।  ছবিতে সবুজ এবং অরেঞ্জ ২ টি কালার  এর বাক্স করা আছে।  বাম পাশের সবুজ বাক্স টা হচ্ছে আমাদের লোকাল মেশিন বা আমার  পিসির ড্রাইভ বা ফোল্ডার, আর ডানের অরেঞ্জ কালার এর বাক্স টা হচ্ছে সেই দূরের সার্ভার  টার লোকেশন।

এখন আমি যদি  ওই দূরের সার্ভার থেকে আমি আমার PC তে কোনো ফাইল ডাউনলোড করতে চাই ,

তাহলে খুব সহজেই সেটা করতে পারবো। আমি ডান পাশে একটা ফাইল দেখতে পাচ্ছি যার নাম readme.txt। এই ফাইল টা আমি আমার PC তে নিয়ে আসবো।  তাহলে ওই ফাইল টা সিলেক্ট করে ডাউনলোড অপসন ক্লিক

করলেই আমার PC তে চলে আসবে।  তবে আমার  পিসির কোন ড্রাইভ এ নামবে সেই file? আমি যে ড্রাইভ সিলেক্ট করে দিবো সেই ড্রাইভেই নামবে।  বাম পাশে দেখুন "E" ড্রাইভ সিলেক্ট করা আছে , তাই ফাইল টা আমি "E" ড্রাইভ এ পাবো।

আরো একটা জনপ্রিয় ftp client আছে , যেমন – WinSCP(https://winscp.net/download/WinSCP-6.1.1-

আমরা এই কাজ গুলো কম্যান্ড দিয়েও করতে পারি।  Win + R  একসাথে প্রেস করে RUN ওপেন করে

লিখবো cmd   একটা ফোল্ডার তৈরী করলাম যার নাম দিলাম টেস্ট (mkdir test)।   এখন ওই টেস্ট ফোল্ডার এ ঢুকলাম (cd  test)।  " dir" কম্যান্ড দিয়ে দেখলাম কোনো ফাইল বা ফোল্ডার সেখানে আছে কিনা। 

যেহেতু নতুন ফোল্ডার তৈরী করেছি স্বাভাবিক ভাবেই কিছু থাকবে না এবং নেই ও সেখানে কিছু।

ডট (. / ..) দিয়ে hidden ফোল্ডার  বোঝাচ্ছে।  যা ইমেজ দেখতে পাচ্ছি আমরা।

এখন ftp সার্ভার এর সাথে কানেক্ট হবো আমরা।  তাই নিচের কম্যান্ড টা দিবো

ftp test.rebex.net

এরপরে ইউজার নাম (demo) ও পাসওয়ার্ড দিবো (password)

দেবার পরে আমি কানেক্ট হয়ে গেলাম।  এখন দেখতে পারি কি ফাইল বা ফোল্ডার আছে ওই সার্ভার এ "dir" কমান্ড টা দিয়ে ।  সেখানে একটা ফাইল আছে readme.txt .এই ফাইল টা আমরা আমাদের পিসি তে ডাউনলোড করবো।  মনে আছে তো - আমরা কোন ড্রাইভ এ ছিলাম? আমরা টেস্ট ফোল্ডার এ ছিলাম।  যেহেতু test ফোল্ডার এ থেকে আমি ftp দিয়ে সার্ভার এর সাথে কানেক্ট হয়েছি ,

তাই ফাইল ডাউনলোড করলে এই test ফোল্ডারেই নামবে।  ডাউনলোড করার কমান্ড হচ্ছে – get  readme.txt

 

FTP  প্রোটোকল - ২০ ও ২১ নম্বর পোর্ট ব্যবহার করে থাকে। 

FTP  প্রোটোকল - বড় বা ছোট উভয় ধরণের ফাইল নিয়ে কাজ করতে পারে।

FTP  প্রোটোকল - কম বা বেশি উভয় দুরুত্বে ফাইল ট্রান্সফার করতে পারে।

FTP  প্রোটোকল - এর মাধ্যমে যে ডাটা ট্রান্সফার হয় সে গুলো প্লেইন টেক্সট আকারে যায়। 

যেকেউ চাইলে ডাটা ক্যাপচার করতে পারবে।

TFTP Protocol: Trivial File Transfer Protocol

এই প্রটোকলটিও ফাইল ট্রান্সফার এর ক্ষেত্রে ব্যবহার করা হয়ে  থাকে। তবে ছোট নেটওয়ার্ক ছোট ফাইল ট্রান্সফার এর ক্ষেত্রেই এই প্রোটোকল টি মূলত ব্যবহার করা হয়।  যেমন - আপনার LAN নেটওয়ার্ক (ছোট নেটওয়ার্ক , বড় নেটওয়ার্ক যেমন WAN বা MAN নেটওয়ার্ক না ) একটি TFTP সার্ভার থাকতে পারে।  সেখানে আপনি আপনার নেটওয়ার্ক এর সিসকো রাউটার বা সুইচ এর ISO ফাইল গুলো TFTP সার্ভার   ব্যাকআপ হিসেবে রাখবেন। কোনো কারণে কোনো সময় যদি আপনার সিসকো রাউটার এর ISO ফাইল প্রব্লেম হয় বা বুট হচ্ছে না মনে হয় তখন TFTP সার্ভার   ব্যাকআপ হিসেবে রাখা ফাইল TFTP সার্ভার থেকে ডাউনলোড করে নিয়ে এসে সিসকো রাউটার রিস্টোর করে নিবেন।  এই যে সিসকো রাউটার বা সুইচ এর ISO ফাইল গুলো TFTP সার্ভার   ব্যাকআপ হিসেবে রাখছেন বা TFTP সার্ভার থেকে ডাউনলোড করে নিয়ে এসে সিসকো রাউটার রিস্টোর করে নিচ্ছেন , এই প্রসেস এর ব্যাকএন্ড TFTP প্রোটোকল ব্যবহার হয়ে থাকে।

TFTP Protocol: পোর্ট নম্বর - ৬৯

TFTP Protocol: ডাটা প্লেইন  টেক্সট আকারে যায়।  এনক্রিপ্টেড ফরমেট নয়।

TFTP Protocol: কোন ধরণের অথেনটিকেশন এর দরকার হয় না।  অর্থাৎ FTP বা SFTP তে যেমন লগইন এর জন্য ইউজার নাম আর পাসওয়ার্ড দরকার পড়তো , এইখানে তেমন টার দরকার হয় না।

TFTP Protocol: কনফিগার কমপ্লেক্সিটি FTP এর তুলনায় এটি সহজ।

TFTP Protocol: FTP তে অনেক কমান্ড ব্যবহার করা হয় কিন্তু TFTP তে ফিক্সড ৫ টি মেসেজ থাকে। সেগুলো যখন আমরা TFTP কনফিগার করবো তখন দেখবো ইনশা আল্লাহ।

TFTP Protocol: FTP ২ টি কানেকশন ব্যবহার করে। TCP ২০ নম্বর পোর্ট ব্যবহার হয় - ডাটা কানেকশন এর জন্য আর TCP  ২১ নম্বর পোর্ট ব্যবহার হয় কানেকশন কন্ট্রোলের জন্য।আর TFTP তে UDP ৬৯ পোর্ট ব্যবহার হয় কানেকশন এর ক্ষেত্রে।  

    


উপরের চিত্রে একটা TFTP সার্ভার দেখতে পাচ্ছি।  আমরা যদি সার্ভার গ্রাফিক্যালি ঢুকে দেখি তাহলে TFTP সার্ভিস তা দেখতে পাবো।  ডান পাশের বক্সে যে ইমেজ গুলো দেখছি , সেইগুলো হচ্ছে  সিস্কোর এক  একটা ISO ফাইল।  এই সার্ভার আমরা ISO ফাইল গুলো রিয়েল ডিভাইস থেকে নিয়ে ব্যাকআপ হিসেবে রাখবো।  পরবর্তীতে দরকার হলে এই খান থেকে IOS আবার সিস্কোর ডিভাইস আপলোড করতে পারবো।  

 

Telnet Protocol: TELNET stands for Teletype Network

এটি ব্যবহার করা হয়ে থাকে রিমোট কোনো সার্ভার বা ডিভাইস কে এক্সেস করার জন্য।

অর্থাৎ ধরুন আমি আছি ঢাকা তে। একটা সিসকো রাউটার আছে চট্টগ্রামে।  আমার বাসার PC থেকে ওই রাউটার

পর্যন্ত যেকোনো ভাবে হোক কানেক্টিভিটি আছে। (এটা কিন্তু প্রধান শর্ত যে কানেক্টিভিটি থাকতে হবে)

এখন ওই সার্ভার এ যদি পূর্ব থেকে রিমোটলি এক্সেস করার জন্য যা যা কনফিগারেশন থাকা দরকার তা থাকে ,

তাহলে আমি ঢাকার আমার বাসা থেকেই চট্টগ্রামের ওই দূরবর্তী রাউটার তাতে ঢুকে কাল করতে পারবো। 

এই যে আমি ঢাকা থেকে চট্টগ্রামের রাউটার এ ঢুকে কাজ করছি সেটা করছি টেলনেট এর মাধ্যমে।

 

সহজে যদি ইংলিশে বলার চেষ্টা করি তাহলে এইভাবে আমরা বলতে পারি -

 Telnet is a network protocol which is used to virtually access a device (Router/Switch/Server)

and to provide a two-way and text-based communication channel between two machines

 

এইখানে virtually access বলতে যে মেশিন এ কাজ করবো আমি ওই মেশিন ফিজিক্যালি বসে কাজ করবো না ,

অন্য কোনো মেশিন থেকে কাজ করবো।  যে মেশিন থেকে আমি অন্য মেশিন এ ঢুকবো সেই মেশিন টা  অনেক

কাছেও থাকতে পারে আবার দূরেও থাকতে পারে।

 

two-way বলতে কি বোঝাচ্ছে তাহলে ? আমি যখন আমার মেশিন থেকে কাছের বা দূরের অন্য কোনো মেশিন

এ লগইন করে এক্সেস করছি তখন আসলে আমার মেশিন থেকে ওই মেশিন এ রিকোয়েস্ট যাচ্ছে , সাথে সাথে

আবার ওই মেশিন থেকেও একটা রেসপন্স আমার মেশিন এ আসতেছে।  এটাকেই two-way কমিউনিকেশন বলছি আমরা।

 

 text-based communication - এটা বোঝার জন্য নিচের অংশটুকু মন দিয়ে পড়ি।

     আমি যে রিমোটলি লগইন করলাম ঢাকা থেকে চট্টগ্রামের রাউটার এ , এই লগইন করার সময় কিন্তু আমাকে

ইউজার নাম আর পাসওয়ার্ড দিয়ে লগইন করতে হয়েছে।  তো এই ইউজার নাম আর পাসওয়ার্ড গুলো কিন্তু আমি

আমার ঢাকার বাসার PC তে বসে দিচ্ছি।  এই লগইন ক্রেডেনশিয়াল গুলো ওভার নেটওয়ার্কের মাধ্যমে দূরের ওই

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

নেটওয়ার্কের মাধ্যমে যাচ্ছে তখন কেউ যদি এই ক্রেডেনশিয়াল ক্যাপচার করে তাজলে কিন্তু সে পরিষ্কার ভাবে

দেখতে পারবে , কারণ এই ইনফরমেশন গুলো সবই প্লেইন টেক্সট আকারে যায়।

শুধু এই ইউজার নাম আর পাসওয়ার্ড না, লগইন করার পরে আমি যা কিছু কম্যান্ড দিবো আমার PC থেকে ওই

রাউটার এ , সবই চাইলে দেখা সম্ভব।  কারণ কি বলেন তো ?

বাহ্! বাহ্! আপনি তো বেশ ভালো ভাবে সহজে বুঝে ফেলেন।  আপনি  ঠিক চিন্তা করেছেন।  কারণ টা হচ্ছে -

যত ডাটাই আমি পাস করাই না কেন ,সবই প্লেইন টেক্সট আকারে যাবে। তাই , যেকেউ ক্যাপচার করলে দেখতে

পাবে।

Telnet প্রোটোকল  == এটি ব্যবহার করে থেকে ২৩ নম্বর পোর্ট।

Telnet প্রোটোকল  == ডাটা সিকিউর ভাবে পাঠাতে পারে না।  প্লেইন টেক্সট আকারে পাঠায়।

Telnet প্রোটোকল  == এটি এপ্লিকেশন লেয়ার এ কাজ করে। 

Telnet প্রোটোকল  ==  এটি একটি client/server application protocol

     Client/Server বলা হচ্ছে কারণ - যে মেশিন থেকে এক্সেস করতে চাচ্ছি অন্য ডিভাইস কে সেই মেশিন টা

Client আর যে মেশিন এ লগইন করা হচ্ছে ওই মেশিন টা হবে Server।

 

কি বোরিং লাগছে? লাগলেও কিছু করার নেই যে !!! শিখতে আমাকে হবেই।  মনকে এটা বোঝাতে হবে। 

মুভি যদি ঘন্টার পর ঘন্টা মানুষ দেখতে পারে (যদিও আপনি দেখেন না , আমি জানি) তাহলে যেটা জানলে

আমার ভবিষ্যৎ সুন্দর হতে পারে সেটা জানতে বোরিং কেন লাগবে ?

      SSH Protocol: Secure Shell

এই প্রটোকলটিও Telnet প্রটোকলের মতোই রিমোটলি এক্সেস এর জন্য ব্যবহার করা হয়ে থাকে।

তবে Telnet প্রটোকলের সাথে SSH প্রটোকলের একটা গুরুত্বপূর্ণ পার্থক্য হচ্ছে -

SSH প্রোটোকল ব্যবহার করে কেউ যদি রিমোটলি এক্সেস করে অন্য কোনো ডিভাইস এ তাহলে যেই ইনফরমেশন

সেন্ড বা রিসিভ হবে সেইগুলো সবই সিকিউর ভাবে সেন্ড বা রিসিভ হবে।  অর্থাৎ , আমার ডাটা এনক্রিপ্টেড ভাবে

পাস হবে নেটওয়ার্কের মধ্যে দিয়ে যাবার সময়।  কেউ চাইলেই আমার ডাটা কে রিড করতে পারবে না। 

ইংলিশে যদি আমরা সহজে বলতে চাই , তাহলে নিচের মতো করে বলতে পারি -

The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating

network services securely over an unsecured network.

cryptographic network protocol বলা হচ্ছে কারণ - ওই যে উপরে বললাম আমার ডাটা প্লেইন টেক্সট আকারে না গিয়ে এনক্রিপ্টেড ফরমেট এ

যাচ্ছে।  আবার রিসিভার পাশে যাবার পরে এই এনক্রিপ্টেড ডাটা পড়ার জন্য ডিক্রিপ্ট হতে হয় , না হলে রিসিভার

তো এনক্রিপ্টেড ডাটা পড়তে পারবে না।এই যে ডাটা এনক্রিপ্ট হচ্ছে - এই জন্য কিন্তু KEY (কী) বা চাবি ব্যবহার

করা হয়। আবার ডাটা ডিক্রিপ্ট হচ্ছে - এই জন্য ও কিন্তু KEY (কী) বা চাবি ব্যবহার করা হয়।   এই এনক্রিপ্ট

ডিক্রিপ্ট প্রসেস তা হচ্ছে একটা ক্রিপ্টোগ্রাফিক প্রসেস।

securely over an unsecured network বলা হচ্ছে কারণ - আমি ইন্টারনেটের মাধ্যমে যখন কোথাও রিমোটলি এক্সেস

করি , তখন আমি পুরোটাই unsecure।  কারণ ইন্টারনেট মানেই সবার জন্যই  ওপেন একটা জায়গা। তাই এই

ওপেন জায়গা দিয়ে ডাটা গেলে সেটা unsecure হবে এটাই স্বাভাবিক।  যতক্ষণ না পর্যন্ত আমি এই unsecure

পরিবেশ টাতে  VPN বা অন্য কোনো টেকনোলজি ব্যবহার করে সেটাকে সিকিউর করছি।  তাই unsecure

নেটওয়ার্ক বলা হচ্ছে। কিন্তু SSH ব্যবহার করে আমি  ডাটা যখন সেন্ড বা রিসিভ হচ্ছে তখন আমার ডাটা এনক্রিপ্ট

হওয়ায় ডাটা টা সিকিউর হয়ে যাচ্ছে। এই কারণে বলা হয়েছে - securely over an unsecured network।

এই চাবি যত বড় বিটের হবে তত সেটা শক্ত হবে।  অর্থাৎ চাবি যদি শক্ত হয় তাহলে ওই চাবি দিয়ে যে ডাটা

এনক্রিপ্ট করা হয়েছে সেটা খুলতেও অনেক বেশি সময় লাগবে। এই চাবির দৈর্ঘ্য -

১ বিটের থেকে শুরু করে ৪০৯৬ বিট পর্যন্তও হতে পারে। 

SSH প্রোটোকল  ==  এটি ব্যবহার করে থেকে ২২  নম্বর পোর্ট। 

SSH প্রোটোকল  ==  ডাটা সিকিউর ভাবে পাঠাতে পারে ।  ডাটা এনক্রিপ্টেড ভাবে যায়। 

SSH প্রোটোকল  ==  এটি এপ্লিকেশন লেয়ার এ কাজ করে। 

SSH প্রোটোকল  ==  এটি একটি client/server application protocol

SSH প্রোটোকল  ==  Wireshark টুল দিয়ে ডাটা ক্যাপচার করলেও রিড করা যাবে না ডাটা।  

SSH প্রোটোকল  ==  ২ টি ভার্সন আছে।  

            Version - 1      (Version 1.5 & Version 1.99 )

             Version - 2 ;     Version - 2 টা বেশি  সিকিউর। 

SSH Version - 1  এ বেশ কিছু দুর্বলতা ছিল, যা  SSH Version - 2 তে অনেকটাই  সল্ভ  করা হয়েছে। 

এনক্রিপশন করতে এলগরিদমের প্রয়োজন হয়। এলগোরিদম বলে দিবে ডাটা কে কিভাবে এনক্রিপ্ট

করা হবে। কারণ  এনক্রিপ্ট বিভিন্ন ভাবে করা হয়।  

SSH Version - 1 এ যেই এলগোরিদম গুলো ব্যবহার করা হয় সেইগুলো হচ্ছে - 

  1. DES                                                                                       (2) Triple DES(3DES)   

      (3) The International Data Encryption Algorithm (IDEA),      (4) Blowfish

SSH Version - 2 উপরের ৪ টার ভেতর ২ টা - DES and IDEA এলগোরিদম বাদ দিয়ে দিয়েছে , কারণ

এই ২ টাতে সফলতার সাথে এটাকার এটাক করতে সক্ষম হয়েছে। সেইজন্য SSH Version - 2 তে

নিচের এলগোরিদম গুলো ব্যবহার করা হয়ে থাকে।  

  1. AES 

  2. Blowfish

  3. 3DES

  4. CAST-128

  5. RC4- also known as Rivest Cipher 4 or ARCFOUR



DNS = Domain  Name System 


এটা বোঝার আগে আমরা আমাদের ফোনবুক এর বিষয়টা একটু বুঝে আসি। 

আমরা যখন আমাদের পরিচিত কারো নম্বর এ কল দেই যেই নম্বর কিনা আমাদের ফোন এ সেভ করা আছে তখন

আসলে কিভাবে কাজ হয় ? আমি টেকনিকাল ইসু টানবো না , সহজে বুঝি একটু। ধরুন আমি একজনকে কল

করবো যার নাম - "আব্দুর রহমান"।  তার নম্বর  টা তাহলে ওই নাম এ সেভ করা আছে আমার মোবাইল এ।  আবার

আমার নম্বর ও আব্দুর রহমান এর মোবাইল "মুশফিকুর রহমান" দিয়ে সেভ করা আছে।  তাহলে আমি কল করার

সময় আব্দুর রহমান এর নম্বর টাইপ করবো না নিশ্চই , কারণ এত মানুষের নম্বর মনে রাখা একজন মানুষের

পক্ষে সম্ভব না , কিন্তু নাম মনে রাখা সম্ভব।  তাই আমি আমার সেভ করা লিস্ট থেকে আব্দুর রহমান নাম টা সার্চ

করে বের করবো এবং এর পরে কল বাটন এ ক্লিক করে কল করবো। কল করলাম ঠিক আছে , কিন্তু ব্যাকএন্ড এ

কি হলো ?আব্দুর রহমান এর  নাম থেকে আসলে তার নাম্বার এ কনভার্ট হয়েছে। 


এতক্ষন  এক সাইড তো একটু বুজলাম , ওপর সাইড বুঝার চেষ্টা করি। আব্দুর রহমান এর মোবাইল এ যখন রিং

বেজে উঠবে তখন যেহেতু আমার নাম্বার তার মোবাইল এ সেভ করা আছে , তাই আমার নাম কিন্তু তার মোবাইল

এর ডিসপ্লে তে দেখাবে , আমার নাম্বার না।  তাই না ? তাহলে এখানে কি হলো ? আব্দুর রহমান এর মোবাইল এ

যখন আমার নাম্বার থেকে কল গিয়েছে তখন আব্দুর রহমান এর নাম্বারেই আসলে প্রথমে হিট করেছে। তারপর

ওই নাম্বার এর জন্য যে নাম সেট করা আছে ওই নাম কনভার্ট হয়েছে। অর্থাৎ নাম্বার থেকে নামে কনভার্ট হয়েছে। 


তাহলে সহজে যদি আরো একবার বলি - যেহেতু অনেক মানুষের  নাম্বার মনে রাখা আমাদের পক্ষে সম্ভব  না ,

তাই যখন আমরা নামে হিট করি তখন আসলে  নাম থেকে নাম্বারে এবং অন্য পাশে গিয়ে নাম্বার থেকে নামে

কনভার্ট হয়। খুবই সিম্পল  ব্যাপার, তাই না ?


এখুন আসুন , আমাদের DNS কনসেপ্ট এ। DNS ইন্টারনেটের ফোনবুক হিসেবে কাজ করে থাকে। আমরা ওয়েব

সাইট ব্রাউস করি কিন্তু, প্রত্যেকটা সাইটেরই একটা বা একধিক IP এড্রেস আছে। ফোনবুক এ যেমন অসংখ্য নাম্বার

মনে রাখা যায় না ঠিক তেমনি অসংখ্য ওয়েব সাইটের অসংখ্য অসংখ্য IP এড্রেস মনে রাখা সম্ভব না। তাই আমরা

যখন কোনো ওয়েব সাইট ব্রাউস করি তখন ওই সাইট এর IP দিয়ে না করে তার নাম দিয়ে আমরা ব্রাউস এ হিট

দেই। এতে ওয়েব সাইট এর নাম টা IP এড্রেস এ কনভার্ট হয়ে যায়, তারপর যখন রিকোয়েস্ট টা সার্ভার এ হিট করে

তখন ওই পাশে প্রথমে IP তাই হিট করে তারপরে নামে কনভার্ট হয়। এই যে নাম থেকে IP তে আবার IP থেকে

নামে কনভার্শন এর কাজ টা করে থাকে DNS সার্ভার। DNS সার্ভার না থাকলে অমরদেরকে  ওয়েব সাইট ব্রাউস

করতে খুবই সমস্যায় পড়তে হতো।  আমাদেরকে প্রত্যেক সাইট এর IP এড্রেস মনে রাখা দরকার হতো। যা আসলে

সম্ভব না আমাদেরও পক্ষে মনে রাখা। 


আমাদের পুরো ইন্টারনেট জগৎ দাঁড়িয়ে আছে এই DNS  এর উপর , কারণ DNS না থাকলে আমরা কেউ

ইন্টারনেট ব্যবহার করতে পারতাম না।  






ইংলিশে যদি বলার চেষ্টা করি তাহলে এইভাবে বলতে পারি আমরা - 

When users type domain names into the URL bar in their browser, DNS servers are

responsible for translating those domain names to numeric IP addresses, leading

them to the correct website.


DNS Protocol == পোর্ট নাম্বার - ৫৩  (TCP & UDP উভয়টাই ব্যবহার করে)

DNS Protocol == ইন্টারনেটের ফোনবুক 


DNS কিভাবে কাজ করে থাকে ? এখন এটা আমরা একটু জানবো ও বোঝার চেষ্টা করবো। 


Image Credit: FoxuTech


ইমেজ দেখে ভয় পাবার কোনো কারণ নেই প্রিয় পাঠক। কারণ বাহির থেকে বড় বা কঠিন দেখালেও অনেক সময়

সেটা কিন্তু সহজ হয়ে থাকে। আর আমরা যা আলোচলা করতে যাচ্ছি , সেটা শুধু সহজই না , মজার ও বটে। 

সো , নো টেনশন।  দরকার হলে একটু বিরতি নিয়ে নিন। কারণ এটা শুরু করলে আবার অন্য কোনো কাজের

জন্য বিরতি নিতে যেন না নিতে হয়। 

 

বিরতি   বিরতি    বিরতি    বিরতি    বিরতি     বিরতি   বিরতি   বিরতি   বিরতি    বিরতি    বিরতি   বিরতি

 

চলুন , বিসমিল্লাহ বলে শুরু করি আবার, 

উপরের ইমেজ টা আবার ভালো করে দেখে নিন।  ইমেজের নম্বর গুলো ধরে আমরা আলোচনা করবো। 


প্রথমে আমরা ক্লায়েন্ট এর দিকে তাকাই। তিনি তার পিসির ব্রাউজারে compsci.googleplex.edu ওয়েবসাইট টার

নাম লিখে কিবোর্ডের "enter" বাটন প্রেস করলেন।  তাহলে এখন কি হবে? ওই সাইট এ যেতে হলে তো এই ভাবে

নাম দিয়ে যেতে পারবে না।  তাঁর দরকার এই সাইট টার IP Address। তাই এখন এই নাম টাকে   IP Address এ

resolve এর কাজ টা করবে মেশিন বা PC নিজেই। আমরা আমাদের নিজের পিসির কম্যান্ড প্রম্প্ট ওপেন করে

" ipconfig /displaydns"  লিখে এন্টার দিলে আপনা DNS cache দেখতে পারবেন।  আপনি যেই যেই ওয়েবসাইট

এ যাচ্ছেন টার সব IP  address এইখানে ষ্টোর থাকবে।


আপনি যেই সাইট টি লিখে এন্টার দিয়েছেন প্রথমে ওই সাইট এ যদি পূর্বে (অনেক দিন হয়ে গেলে,ডিলিট হতে

পারে - আমরা DNS cache ম্যানুয়ালি ডিলেট ও করতে পারি " ipconfig /flushdns " এই কমান্ড এর মাধ্যমে। ) গিয়ে থাকেন  তাহলে এইখান থেকেই IP address resolve করে দিবে। আপনার মেশিন

তাই তখন resolver হিসেবে কাজ করবে। যেটা আমরা 1. Resolution Request এ দেখতে পাচ্ছি। অর্থাৎ এইখানে যদি

পেয়ে গিয়ে থাকে তাহলে তো আর কোনো কাজ নেই। এই খান থেকে resolve হলে অনেক ফাস্ট ব্রাউস হবে সাইট

টা। কারণ রিসলভার তখন   আপনার নিজের মেশিন টাই।

 যেটা ২ নম্বর ইনডিকেটর (2. Check Cache) এর মাধ্যমে বোঝানো হচ্ছে।


এখন আসেন , যদি সেখানে না পেয়ে থাকে তখন কি হবে?  


তখন, যেই সাইট এ যেতে চাচ্ছি ওই সাইট এর IP address resolve করার জন্য একটা রিকোয়েস্ট লোকাল কোনো

DNS সার্ভার এর কাছে যাবে। ৩ নম্বর কোয়েরি (3. Recursive Query) টার দিকে তাকান। Query টা যখন লোকাল

DNS Server এর কাছে যাচ্ছে তখন সে (লোকাল DNS) তার cache চেক করবে যে তার cache এ ওই ডোমেইন

নাম আর টার আইপি এড্রেস আছে কিনা। যদি ঐখান সাইট টার IP Address থেকে থাকে তাহলে ঐখান থেকেই

resolve হবে।  যেটা ৪ নম্বর ইনডিকেটর (4. Check Cache) এর মাধ্যমে বোঝানো হচ্ছে।


 ***নোট : লোকাল DNS এর ক্যাশে তখন থাকবে , যদি ওই সাইট টাতে পূর্বে ব্রাউস করা হয়ে থাকে।যখনি কোনো নতুন

সাইট সে পাবে তখনি সে তার ক্যাশে আপডেট করে নিবে। এই লোকাল DNS সার্ভার টা আপনার ISP  তে থাকতে

পারে বা কোনো কোম্পানির নিজেদের তৈরিকৃত সার্ভার ও হতে পারে।***


আর যদি ক্যাশে না থেকে থাকে , তাহলে লোকাল DNS মেশিন ওই রিকোয়েস্ট টা ROOT সার্ভার বা ROOT Name 

সার্ভার এর কাছে পাঠাবে। যেটা ৫ নাম্বার এর দিকে তাকালে দেখতে পাবেন।

ROOT সার্ভার এর কাছে সমস্ত সাইট এর পরোক্ষ ভাবে ইনফরমেশন আছে।  পরোক্ষ বলছি এই কারণে - ধরুন

একটা ওয়েব সাইট এ আপনি যেটা চাচ্ছেন যার ডোমেইন নাম হচ্ছে - asiaciscocom । Root সার্ভার এর কাছে এই

ডোমেইনের পুরো ইনফরমেশন নেই,  কিন্তু রুট সার্ভার এর কাছে com এর ইনফরমেশন আছে।  ROOT সার্ভার

এর কাছে যখন রিকোয়েস্ট টা আসে তখন ROOT সার্ভার বলবে যে  ভাইয়া - আমার কাছে তুমি যে ডোমেইন এর

IP চাচ্ছ সেই ডোমেইন এর পুরো ইনফরমেশন তো আমার কাছে নেই , কিন্তু আমি   তোমাকে COM এর কাছে

যাবার রাস্তা বলতে পারি।  তুমি দয়া করে COM এর কাছে যাও। এই ব্যাপারে COM তোমাকে হেল্প  করতে পারবে

হয়তো। যেটা আমরা ৬ নাম্বার এ রেসপন্স মেসেজ এ দেখতে পাচ্ছি।  যদিও ছবি তে। edu বলা আছে।  আমরা

বোঝার জন্য  COM ধরে নেই। 


এর পর রিকয়েস্ট COM সার্ভার এর কাছে যাবে। আসলে এইগুলোকে টেকনিকাল ভাষায় TLD (Top Level Domain)

বলে। .COM , .NET , .INFO , .ORG, .INFO ইত্যাদি কে আমরা TLD বলে থাকি। 







                                                                    

Comments

Popular posts from this blog

Some Questions for MTCNA Exam

ডিপ্লোমা লেভেল এর ইন্ডাস্ট্রিয়াল এটাচমেন্ট এ আসার পূর্বে একটু ভেবে আসার অনুরোধ রইলো