পাঠ ১৪ · ৫৭-এর মধ্যে · মডিউল ৪
Home / Courses / Computer Networks / IPv4 বেসিকস

IP অ্যাড্রেসিং — IPv4 বেসিকস

IP addressing — IPv4 basics
৮ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • IPv4 ঠিকানার বাইনারি ও দশমিক গঠন
  • পুরনো ক্লাস-ভিত্তিক (A/B/C) স্কিম ও কেন এটি প্রতিস্থাপিত হয়েছে
  • পাবলিক বনাম প্রাইভেট IP রেঞ্জ — RFC 1918-এর তিনটি নির্দিষ্ট রেঞ্জ
  • Python দিয়ে IP-কে বাইনারিতে রূপান্তর ও প্রাইভেট রেঞ্জ যাচাই

১ · IPv4 ঠিকানার গঠন

একটি IPv4 ঠিকানাIPv4 Address৩২ বিটের একটি সংখ্যা, নেটওয়ার্ক লেয়ারে একটি ডিভাইসকে শনাক্ত করতে ব্যবহৃত হয় — সাধারণত ৪টি দশমিক অক্টেট আকারে লেখা হয় (যেমন 192.168.1.1)। মোট ৩২ বিট লম্বা, কিন্তু পড়ার সুবিধার জন্য এটিকে ৪টি অক্টেট (৮-বিট অংশ) আকারে ডট দিয়ে আলাদা করে লেখা হয় — যেমন 192.168.1.1। প্রতিটি অক্টেট ৮ বিটের, তাই এর মান $2^8 = 256$ ধরনের হতে পারে — অর্থাৎ প্রতিটি অক্টেট ০ থেকে ২৫৫ পর্যন্ত যেকোনো মান নিতে পারে।

২ · পুরনো ক্লাস-ভিত্তিক স্কিম (ঐতিহাসিক প্রেক্ষাপট)

IPv4-এর প্রথম দিকের ডিজাইনে ঠিকানাগুলোকে কয়েকটি নির্দিষ্ট ক্লাসে ভাগ করা হয়েছিল —

ক্লাস A
প্রথম বিট ০ — বিশাল নেটওয়ার্ক, অল্প সংখ্যক প্রতিষ্ঠানের জন্য কোটি কোটি হোস্ট।
ক্লাস B
মাঝারি আকারের নেটওয়ার্ক — বড় প্রতিষ্ঠানের জন্য।
ক্লাস C
ছোট নেটওয়ার্ক — মাত্র ২৫৬টি ঠিকানা প্রতি ব্লকে।

সমস্যা হলো — এই কঠোর বিভাজন বাস্তব চাহিদার সাথে মানানসই ছিল না। একটি প্রতিষ্ঠানের ৫০০ ডিভাইস দরকার হলে তাকে পুরো একটি ক্লাস B ব্লক (৬৫,৫৩৬টি ঠিকানা) দিতে হতো — বাকি প্রায় সবই অপচয় হতো। এই বিশাল অপচয়ই CIDR (পরবর্তী পাঠ, L15)-এর জন্ম দিয়েছে, যা নমনীয় দৈর্ঘ্যের প্রিফিক্স ব্যবহার করে ঠিক যতটুকু প্রয়োজন ততটুকু ঠিকানা বরাদ্দ করতে দেয়।

৩ · পাবলিক বনাম প্রাইভেট IP

কিছু নির্দিষ্ট IP রেঞ্জ প্রাইভেট নেটওয়ার্কের জন্য সংরক্ষিত — এগুলো কখনো পাবলিক ইন্টারনেটে সরাসরি রাউট হয় না, যেকোনো সংস্থা এগুলো নিজের অভ্যন্তরীণ নেটওয়ার্কে স্বাধীনভাবে পুনর্ব্যবহার করতে পারে। RFC 1918-এ সংজ্ঞায়িত তিনটি প্রাইভেট রেঞ্জ —

  • 10.0.0.0/8 — সবচেয়ে বড় প্রাইভেট ব্লক, বড় প্রতিষ্ঠানে সাধারণ।
  • 172.16.0.0/12 — মাঝারি আকারের ব্লক।
  • 192.168.0.0/16 — সবচেয়ে পরিচিত, বেশিরভাগ হোম রাউটার এই রেঞ্জ ব্যবহার করে (যেমন 192.168.1.1)।
মূল অন্তর্দৃষ্টি

যেহেতু প্রাইভেট IP পাবলিক ইন্টারনেটে সরাসরি রাউট হয় না, একটি প্রাইভেট-ঠিকানার ডিভাইসের ইন্টারনেটে যেতে হলে একটি মধ্যস্থতাকারী প্রয়োজন যে তার প্যাকেটের সোর্স ঠিকানা একটি পাবলিক IP-তে রূপান্তর করে দেয় — এই কাজটিই করে NAT (Network Address Translation), যা M4/L21-এ বিস্তারিত দেখানো হবে। এটিই সরাসরি ব্যাখ্যা করে কেন প্রায় প্রতিটি হোম রাউটার আসলে একটি NAT ডিভাইস।

Python
# IPv4 ঠিকানাকে বাইনারিতে রূপান্তর, এবং প্রাইভেট রেঞ্জ যাচাই

def ip_to_binary(ip_string):
    octets = ip_string.split(".")
    binary_octets = [format(int(o), "08b") for o in octets]
    return ".".join(binary_octets)

example_ips = ["192.168.1.1", "10.0.0.5", "8.8.8.8", "172.16.5.20"]

print("IPv4 -> বাইনারি রূপান্তর:")
for ip in example_ips:
    print(f"  {ip:15s} -> {ip_to_binary(ip)}")

# প্রাইভেট রেঞ্জ (RFC 1918) যাচাই
def is_private_ip(ip_string):
    octets = [int(o) for o in ip_string.split(".")]
    a, b = octets[0], octets[1]
    if a == 10:
        return True                              # 10.0.0.0/8
    if a == 172 and 16 <= b <= 31:
        return True                              # 172.16.0.0/12
    if a == 192 and b == 168:
        return True                              # 192.168.0.0/16
    return False

print("\nপ্রাইভেট রেঞ্জ যাচাই:")
for ip in example_ips:
    label = "প্রাইভেট" if is_private_ip(ip) else "পাবলিক"
    print(f"  {ip:15s} -> {label}")

    
কোড আউটপুটে লক্ষ্য করুন — 192.168.1.1, 10.0.0.5 ও 172.16.5.20 সবই "প্রাইভেট" হিসেবে চিহ্নিত হয়, কিন্তু 8.8.8.8 (একটি সুপরিচিত পাবলিক DNS সার্ভার) "পাবলিক" হিসেবে চিহ্নিত হয় — কারণ এটি কোনো RFC 1918 রেঞ্জের মধ্যে পড়ে না।
মূল কথা · Key takeaway

IPv4 ঠিকানা আসলে শুধু একটি ৩২-বিট সংখ্যা, দশমিক অক্টেট আকারে সহজপাঠ্য করে লেখা। এর ইতিহাস (ক্লাস-ভিত্তিক স্কিম) ও বর্তমান বাস্তবতা (পাবলিক/প্রাইভেট বিভাজন, CIDR) দুটোই বুঝলে পরবর্তী পাঠ — সাবনেটিং ও CIDR — অনেক সহজ মনে হবে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ কেন দুইটি ভিন্ন বাসার রাউটার উভয়েই 192.168.1.1 ব্যবহার করলেও কোনো সমস্যা হয় না?

কারণ প্রাইভেট IP রেঞ্জ শুধু নিজ নিজ লোকাল নেটওয়ার্কের মধ্যেই অর্থবহ — এগুলো পাবলিক ইন্টারনেটে কখনো সরাসরি দৃশ্যমান হয় না। প্রতিটি বাসার রাউটার তার নিজস্ব বিচ্ছিন্ন প্রাইভেট নেটওয়ার্ক পরিচালনা করে, তাই একই প্রাইভেট IP লক্ষ লক্ষ ভিন্ন নেটওয়ার্কে একই সাথে পুনর্ব্যবহৃত হতে পারে কোনো সংঘর্ষ ছাড়াই।

প্র ০২ ক্লাস-ভিত্তিক (A/B/C) স্কিমের সবচেয়ে বড় ব্যবহারিক সমস্যা কী ছিল?

বরাদ্দের আকার মাত্র কয়েকটি নির্দিষ্ট আকারে সীমাবদ্ধ ছিল (বিশাল ক্লাস A, মাঝারি B, ছোট C) — কোনো প্রতিষ্ঠানের প্রকৃত চাহিদা এর মাঝামাঝি হলে তাকে পরবর্তী বড় ক্লাস নিতে হতো, ফলে বিপুল সংখ্যক ঠিকানা ব্যবহৃত না হয়েই বরাদ্দ থেকে যেত — একটি সীমিত সম্পদ (৩২-বিট ঠিকানা স্থান) দ্রুত ফুরিয়ে যাওয়ার একটি বড় কারণ।

প্র ০৩ যদি প্রাইভেট IP রেঞ্জই না থাকত, তাহলে ইন্টারনেটে কী সমস্যা হতো?

পৃথিবীর প্রতিটি ডিভাইসকে (প্রতিটি ল্যাপটপ, ফোন, স্মার্ট বাল্ব) একটি অনন্য পাবলিক IPv4 ঠিকানা লাগত — কিন্তু IPv4-এর মোট ঠিকানা সংখ্যা মাত্র প্রায় ৪.৩ বিলিয়ন ($2^{32}$), যা বিশ্বের ডিভাইস সংখ্যার তুলনায় অনেক কম। প্রাইভেট রেঞ্জ ও NAT একসাথে একটি একক পাবলিক IP-র পেছনে অসংখ্য ডিভাইস লুকিয়ে রেখে এই সংকট বহু বছর বিলম্বিত করেছে — যদিও IPv6 (L16) হলো এর প্রকৃত দীর্ঘমেয়াদী সমাধান।

অনুশীলন

  1. চিন্তা করুন: আপনার নিজের কম্পিউটারের IP ঠিকানা বের করুন (উইন্ডোজে ipconfig, লিনাক্স/ম্যাকে ifconfig বা ip addr) — এটি প্রাইভেট নাকি পাবলিক রেঞ্জে পড়ে?

    বাসা বা অফিসের নেটওয়ার্কে সংযুক্ত থাকলে প্রায় নিশ্চিতভাবেই এটি প্রাইভেট রেঞ্জে পড়বে (সাধারণত 192.168.x.x) — কারণ আপনার রাউটারই আসল পাবলিক IP ধরে রাখে এবং NAT-এর মাধ্যমে আপনার ডিভাইসের ট্রাফিক পরিচালনা করে।

  2. পরীক্ষা করুন: উপরের কোড সেলে example_ips তালিকায় 172.32.5.1 যোগ করুন — এটি কি প্রাইভেট হিসেবে চিহ্নিত হয়? কেন হয় বা হয় না, ব্যাখ্যা করুন।

    এটি "পাবলিক" হিসেবে চিহ্নিত হবে — কারণ 172.16.0.0/12 রেঞ্জ শুধু দ্বিতীয় অক্টেট ১৬ থেকে ৩১ পর্যন্ত কভার করে, আর ৩২ এর বাইরে। তাই 172.32.x.x ঠিকানাটি প্রাইভেট রেঞ্জের বাইরে পড়ে যায়, যদিও প্রথম অক্টেট (১৭২) একই।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

পাঠ ১৩
ARP — অ্যাড্রেস রেজোলিউশন প্রোটোকল