IP, Port ও Subnet
- ●IP address প্রতিটি device-কে network-এ চেনায়; IPv4 ফুরিয়ে যাচ্ছে বলে IPv6 এসেছে।
- ●Port বলে দেয় একই device-এর ভেতরে কোন app data পাবে; localhost মানে নিজের machine।
- ●Private IP ঘরের ভেতরে চলে, NAT সেগুলোকে একটা public IP-তে অনুবাদ করে ইন্টারনেটে পাঠায়।
সমস্যাটা কী?
পৃথিবীতে কোটি কোটি device নেটওয়ার্কে যুক্ত — তোমার ফোন, ল্যাপটপ, server, smart TV। একটা device আরেকটার কাছে data পাঠাতে চাইলে প্রথম প্রশ্ন: "তুমি কোথায়?" ঠিকানা ছাড়া তো চিঠি পাঠানো যায় না।
আবার একটা ফোনেই Facebook, WhatsApp, YouTube একসাথে চলছে। data এলে কোন app সেটা পাবে? শুধু device-এর ঠিকানা যথেষ্ট নয়, ভেতরে কোন "ঘরে" যাবে সেটাও দরকার। এই সমস্যাগুলো সমাধান করে IP address, port, subnet আর NAT।
মূল ধারণা
IP Address হলো একটি network-এ থাকা প্রতিটি device-এর unique পরিচয়, যা দিয়ে data সঠিক গন্তব্যে পৌঁছায়।
আর Port হলো একটা সংখ্যা যা বলে দেয় ঐ device-এর ভেতরে কোন নির্দিষ্ট app বা service data-টা পাবে। সহজ সমীকরণ: IP = কোন বাড়ি, Port = ঐ বাড়ির কোন দরজা/ঘর। দুটো মিলে হয় একটা পূর্ণ ঠিকানা, যাকে বলে socket — যেমন 103.21.244.0:443।
কীভাবে কাজ করে
IPv4 বনাম IPv6
| বিষয় | IPv4 | IPv6 |
|---|---|---|
| দৈর্ঘ্য | ৩২ bit | ১২৮ bit |
| উদাহরণ | 192.168.1.1 | 2001:0db8::1 |
| মোট address | ~৪৩০ কোটি | প্রায় অসীম (৩.৪×১০^৩৮) |
| লেখার ধরন | দশমিক, ডট দিয়ে | hex, কোলন দিয়ে |
| NAT লাগে? | প্রায়ই লাগে | সাধারণত লাগে না |
IPv4-এ মাত্র ~৪৩০ কোটি address — পৃথিবীর device সংখ্যার চেয়ে কম। তাই address প্রায় ফুরিয়ে গেছে। IPv6 এই সংকটের স্থায়ী সমাধান, যদিও পুরোনো IPv4 এখনও বহুল ব্যবহৃত।
Public বনাম Private IP
- Public IP — পুরো ইন্টারনেটে unique, ISP তোমাকে দেয়। বাইরের জগৎ এটাই দেখে।
- Private IP — শুধু তোমার local network (বাসা/অফিস)-এর ভেতরে চলে। ইন্টারনেটে সরাসরি route হয় না।
Private range তিনটি (মনে রাখা জরুরি):
| Range | CIDR | কোথায় |
|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | বড় network |
| 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/16 | বাসার router |
NAT — অনুবাদকের ভূমিকা
তোমার বাসায় ৫টা device, সবার আলাদা private IP (যেমন 192.168.0.x), কিন্তু ISP দিয়েছে মাত্র একটা public IP। তাহলে সবাই কীভাবে একসাথে ইন্টারনেট চালায়?
NAT (Network Address Translation) হলো এমন একটা কৌশল যেখানে router ভেতরের private IP-কে একটামাত্র public IP-তে অনুবাদ করে বাইরে পাঠায়, আর ফেরত আসা data সঠিক device-এ ফিরিয়ে দেয়।
Router প্রতিটি connection-এর জন্য port নম্বর মনে রাখে, যাতে উত্তর এলে বুঝতে পারে এটা কোন device-এর জন্য। এজন্যই বাসার সব device-এর জন্য "What is my IP" সবসময় একই public IP দেখায়।
Localhost
127.0.0.1 (বা localhost) হলো একটা বিশেষ ঠিকানা — এটা মানে "এই machine নিজেই"। তুমি যখন localhost:3000-এ নিজের development server চালাও, data কখনো বাইরের network-এ যায় না, machine-এর ভেতরেই ঘোরে। পুরো 127.0.0.0/8 block এই কাজের জন্য সংরক্ষিত।
ভাবো একটা বড় apartment building। বিল্ডিংয়ের রাস্তার ঠিকানা = public IP (পুরো শহর এটা দিয়ে চেনে)। প্রতিটি ফ্ল্যাট নম্বর = port (ভেতরে কোন ঘরে চিঠি যাবে)। বিল্ডিংয়ের দারোয়ান = NAT — বাইরে থেকে আসা চিঠি দেখে ঠিক ফ্ল্যাটে পৌঁছে দেয়, আবার ভেতর থেকে যাওয়া চিঠিতে বিল্ডিংয়ের ঠিকানা বসিয়ে দেয়। ভেতরের ফ্ল্যাট নম্বর (private IP) বাইরের কেউ জানে না।
প্রকারভেদ
পরিচিত কিছু port (well-known, 0–1023):
| Port | Service |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 22 | SSH |
| 53 | DNS |
| 3306 | MySQL |
Subnet ও CIDR মূল ধারণা: একটা বড় network-কে ছোট অংশে ভাগ করাকে বলে subnetting। CIDR notation (যেমন /24) বলে দেয় IP-র কত bit "network" আর কত bit "host" নির্দেশ করে।
/24→ প্রথম ২৪ bit network, বাকি ৮ bit host → ২৫৬টি address, usable ২৫৪টি (একটা network address, একটা broadcast বাদ)।/16→ ৬৫,৫৩৬টি address।- সংখ্যা যত বড় (
/30), network তত ছোট।
কখন ব্যবহার করবে / করবে না
- Private IP + NAT — বাসা/অফিসের ভেতরের সব device-এ। সাশ্রয়ী ও কিছুটা নিরাপদ (বাইরে থেকে সরাসরি ঢোকা যায় না)।
- Public IP — যে server-এ বাইরের জগৎ সরাসরি আসবে (web server, API)।
- Subnetting — বড় network-কে ভাগ করে নিরাপত্তা ও management সহজ করতে। যেমন database subnet আর web subnet আলাদা।
Private IP-তে চলা একটা service ইন্টারনেট থেকে সরাসরি ধরা যায় না। অনেকেই বাসায় server বানিয়ে অবাক হয় কেন বাইরে থেকে কাজ করছে না — কারণ NAT-এর পেছনে আছে। বাইরে থেকে access দিতে port forwarding বা reverse proxy লাগে। আর কখনো production database-কে public IP-তে খোলা রেখো না।
বাস্তব উদাহরণ
তুমি বাসা থেকে gmail.com খুললে:
- তোমার ল্যাপটপের private IP
192.168.0.105। Request যায় router-এ। - NAT সেটাকে তোমার public IP
103.x.x.x-এ বদলে port সহ Google-এর IP-তে পাঠায় (port 443, HTTPS)। - Google response পাঠায় তোমার public IP-তে; NAT মনে রাখা port দেখে বুঝে এটা তোমার ল্যাপটপের, তাই
192.168.0.105-এ ফেরত দেয়। - একই সময় ফোনেও Gmail চললে port আলাদা হওয়ায় router গুলিয়ে ফেলে না।
Interview-এ যদি জিজ্ঞেস করে "একটা public IP-তে হাজারো device কীভাবে একসাথে ইন্টারনেট চালায়?" — উত্তর হলো NAT (আরও সঠিকভাবে PAT/NAPT), যেখানে port নম্বর দিয়ে প্রতিটি connection আলাদা রাখা হয়। আর private IP range তিনটি (10/8, 172.16/12, 192.168/16) মুখস্থ রাখো, প্রায়ই জিজ্ঞেস করে।
মূল শব্দ (Key Terms)
মিনি কুইজ
1. নিচের কোনটি private IP range?
2. Port নম্বরের কাজ কী?
3. /24 subnet-এ সাধারণত কয়টি usable host address থাকে?