নেটওয়ার্কের প্রতিটি End Device এর একটি স্বতন্ত্র (ইউনিক) পরিচয় থাকতে হয়। TCP/IP এর Network Layer এ প্যাকেটসমূহকে একটি Source Address এবং একটি Destination Address দ্বারা চিহ্নিত করা হয়। IPv4 এর প্রতিটি Network Layer Packet এ একটি ৩২ বিটের Source Address ও একটি ৩২ বিটের Destination Address থাকে। এই এ্যাড্রেসসমূহ Binary প্যাটার্ণ হিসেবে ব্যবহৃত হয়। একজন মানুষের পক্ষে এই ৩২ বিটের স্ট্রিং মনে রাখা কঠিন, তাই এই এ্যাড্রেসসমূহকে Dotted Decimal ফরম্যাটে রিপ্রেজেন্ট করা হয়।
Binary প্যাটার্ণের প্রতিটি Byte (1 Byte = 8 bit) কেএকটি ডট (.) দ্বারা আলাদা করা হয়। এই আলাদা অংশগুলোর প্রতিটিকে Octet বলা হয়।
যেমনঃ 10101100000100000000010000010100 কে Dotted Decimal এ 172.16.4.20 দ্বারা প্রকাশ করা হয়।
এখানে Binary ৩২ বিটকে প্রতিটি ৮ বিটের চারটি Octet এ বিভক্ত করা হয়েছে। মনে রাখবেন, ডিভাইসসমূহ তাদের অপারেশনের সময় Binary প্যাটার্ণ ব্যবহার করে। Dotted Decimal ফরম্যাট শুধুমাত্র মানুষের বুঝার ও মনে রাখার সুবিধার্থে ব্যবহৃত হয়।
প্রতিটি IPv4 এ্যাড্রেসের ৩২ বিটকে Network Portion ও Host Portion নামে দুইটি অংশে ভাগ করা হয়। এই ৩২ বিটের মধ্যে বাম দিক থেকে কিছু বিট দ্বারা Network Portion কে এবং অবশিষ্ট বিসমূহ দ্বারা Host Portion কে রিপ্রেজেন্ট করা হয়। এই Host Portion এর বিটসংখ্যা দ্বারা নির্ণয় করা হয় ঐ নেটওয়ার্কের Host সংখ্যা কত।
বাইনারী থেকে ডেসিমাল কনভার্সন বুঝতে হলে প্রথমে আমাদের গাণিতিক সংখ্যাত্বত্তের Positional Notation বুঝতে হবে। Positional Notation দ্বারা বুঝায়, কোন একটি ডিজিট (Digit) তার অবস্থানভেদে বিভিন্ন মান প্রকাশ করে।
উদাহরণস্বরূপঃ ডেসিমাল সংখ্যা 245 এর 2 দ্বারা 2*10^2 (2*100) বা 200 প্রকাশ করা হয়। কারণ, 2 এর অবস্থান হলো শতক এর ঘরে। সুতরাং,
245 = (2*10^2)+(4*10^1)+(5*10^0) বা 245 = (2*100)+(4*100)+(5*1)
বাইনারী পদ্ধতিতে ভিত্তি হলো 2 । এর মাত্র দুইটি ডিজিট আছেঃ 0 ও 1 । অবস্থানভেদে বাইনারী প্রতিটি ডিজিটের মান নিম্নরূপঃ
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 128 64 32 16 8 4 2 1
যখন আমরা কোন বাইনরী সংখ্যাকে ডেসিমালে কনভার্ট করি, তখন যে পজিশনের ডিজিটের মান 1 হয় শুধুমাত্র সে পজিশনের মানসমূহ যোগ করি। আর যে পজিশনের ডিজিটের মান 0 হয় সে পজিশনের মান 0 বিবেচনা করি। যেমনঃ
1 1 1 1 1 1 1 1 ( বাইনারী ডিজিট )
128 64 32 16 8 4 2 1 ( বাইনারী ডিজিটের মান )
প্রতিটি পজিশনে 1 দ্বারা বুঝায় ঐ পজিশনের মানকে মোট মানের সাথে যোগ করতে হবে। সে হিসেবে উপরিউক্ত বাইনারী সংখ্যার ডেসিমাল মান হলোঃ 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 আবার,
0 0 0 0 0 0 0 0 ( বাইনারী ডিজিট ) 128 64 32 16 8 4 2 1 ( বাইনারী ডিজিটের মান )
প্রতিটি পজিশনে 0 দ্বারা বুঝায় ঐ পজিশনের মানকে মোট মানের সাথে যোগ করা যাবে না। যেমনঃ 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0 বাইনারী থেকে ডেসিমাল কনভার্সনের জন্য নিচের চিত্রটি ভালভাবে বুঝার চেষ্টা করুন।
মনে রাখবেনঃ ১। ৩২ বিটকে চারটি Octet এ বিভক্ত করতে হবে। ২। প্রতিটি Octet কে ডেসিমালে রূপান্তর করতে হবে। ৩। প্রতিটি Octet এর মধ্যে একটি ডট (.) বসাতে হবে।
IPv4 এ তিন ধরণের এ্যাড্রেস আছে।
১। Network Address : Network Address দ্বারা একটি নেটওয়ার্ককে বুঝানো হয়।
২। Broadcast Address : Broadcast Address হলো একটি বিশেষ এ্যাড্রেস যা দ্বারা একটি নেটওয়ার্কের সকল Host এর সাথে কমিউনিকেট করা যায়। Broadcast Address হিসেবে Network Range এর শেষ এ্যাড্রেসটি ব্যবহৃত হয়।
৩। Host Address : আমি আগেই বলেছি, যদি কোন Host একটি নেটওয়ার্কে কমিউনিকেট করতে চায় তাহলে তার একটি স্বতন্ত্র এ্যাড্রেস থাকা প্রয়োজন। আর সেই এ্যাড্রেসটিকেই Host Address বলে। একটি Network Range এর Network Address ও Broadcast Address এর মধ্যবর্তী সকল এ্যাড্রেসসমূহকে Host Address হিসেবে ব্যবহার করা হয়।
একটি গুরুত্বপূর্ণ প্রশ্নঃ একটি ৩২ বিট এ্যাড্রেসের কতগুলো বিট নেটওয়ার্ক অংশের এবং কতগুলো বিট হোষ্ট অংশের, তা আমরা কিভাবে জানবো?
যখন আমরা IPv4 এ্যাড্রেস নিয়ে কাজ করি, তখন আমরা নেটওয়ার্ক এ্যাড্রেসের সাথে একটি Prefix যুক্ত করি। যেমনঃ 10.0.0.1/24 । এই শেষোক্ত /24 ই হলো Prefix আর এই /24 Prefix দ্বারা বুঝায়, ৩২ বিট এ্যাড্রেসের প্রথম থেকে ২৪টি বিট হলো নেটওয়ার্ক অংশের এবং অবশিষ্ট ৮টি বিট হলো হোষ্ট অংশের।
Dotted Decimal ফরম্যাটে IPv4 এ্যাড্রেস ব্লক/রেঞ্জ হলো 0.0.0.0 থেকে 255.255.255.255 পর্যন্ত। এই এ্যাড্রেস ব্লককে কয়েকটি Class এ বিভক্ত করা হয়।
Class - A (0.0.0.0 - 127.255.255.255) Class - B (128.0.0.0 - 191.255.255.255) Class - C (192.0.0.0 - 223.255.255.255) Class - D (224.0.0.0 - 239.255.255.255) Class - E (240.0.0.0 - 255.255.255.255)
শুধুমাত্র Class - A, Class - B ও Class - C এর এ্যাড্রেসসমূহ Host Address হিসেবে ব্যবহৃত হয়। আর Class – D এর এ্যাড্রেসসমূহ Multicast Address হিসেবে এবং Class – E এর এ্যাড্রেসসমূহ Experimental Address হিসেবে ব্যবহৃত হয়।
IPv4 এ 127.0.0.1 এই এ্যাড্রেসটি Loopback এ্যাড্রেস হিসেবে ব্যবহৃত হয়। এই Loopback এ্যাড্রেস হলো একটি বিশেষ এ্যাড্রেস যা দ্বারা প্রত্যেকটি কম্পিউটার/হোষ্ট তাদের নিজেদেরকেই চিনে থাকে। এই Loopback এ্যাড্রেসকে PING করে কোনো কম্পিউটারের TCP/IP কনফিগারেশন টেষ্ট করা হয়।
IPv4 এ 169.254.0.0 হতে 169.254.255.255 (অর্থাৎ 169.254.0.0/16) এই এ্যাড্রেস ব্লকটি Link-local Address এ্যাড্রেস হিসেবে ব্যবহৃত হয়। Link-local Address এ্যাড্রেস হলো একটি বিশেষ এ্যাড্রেস ব্লক যদি কোন কম্পিউটারে কোন আই.পি কনফিগারেশন করা না থাকে তাহলে কম্পিউটারের অপারেটিং সিস্টেম এই এ্যাড্রেস ব্লকের যেকোন একটি আই.পি কে ঐ কম্পিউটারের আ.পি এ্যাড্রেস হিসেবে অটোমেটিকভাবে এ্যাসাইন করে দেয়।
IPv4 এ্যাড্রেস ব্লকের (0.0.0.0 থেকে 255.255.255.255) যেসকল এ্যাড্রেসসমূহ ইন্টারনেট থেকে এ্যাকসেস করা যায় তাদেরকে Public Address বলে এবং যেসকল এ্যাড্রেসসমূহ ইন্টারনেট থেকে এ্যাকসেস করা যায় না তাদেরকে Private Address বলে। অধিকাংশ IPv4 হোষ্ট এ্যাড্রেসই হলো Public Address । নিম্নে Private Address এর ব্লকসমূহ দেওয়া হলোঃ
১। 10.0.0.0 থেকে 10.255.255.255 (10.0.0.0/8) ২। 172.16.0.0 থেকে 172.31.255.255 (172.16.0.0/12) ৩। 192.168.0.0 থেকে 192.168.255.255 (192.168.0.0/24)
চিত্রে দেখানো হয়েছে, Private এ্যাড্রেসসমূহ সাধারণ Private নেটওয়ার্কের কম্পিউটার সমূহে ব্যবহৃত হয়, যে কম্পিউটারসমূহকে সচরাচর ইন্টারনেটের মাধ্যমে এ্যাকসেস করা যায় না। তবে Private এ্যাড্রেসবিশিষ্ট কোন কম্পিউটার বিশেষ প্রয়োজনে ইন্টারনেটের সাথে যুক্ত হতে পারে। সেজন্য Network Address Translation (NAT) নামক একটি সার্ভিসের প্রয়োজন হয়। NAT সম্পর্কে আমরা অন্য কোন টিউটোরিয়ালে বিস্তারিত শিখবো ইনশা-আল্লাহ্। ধন্যবাদ সবাইকে।