Subnet Mask และ IP Address ฉบับเข้าใจง่าย

Computer Network 28 กุมภาพันธ์ พ.ศ. 2567 440
Home / Articles / 72

IP Address คืออะไร?

IP Address คือ ข้อมูลขนาด 32 bits สำหรับระบุที่อยู่ของเครือข่ายใน Internet Protocol โดย IP จะมีหลาย Class ได้แก่

Class IP Range Subnet Masking
A 0-126 255.0.0.0
B 128-191 255.255.0.0
C 192-223 255.255.255.0
D 224-239  
E 240-254  

Subnet Mask คือ

Subnet Mask จะเป็นค่าที่กำหนดว่าเครือข่ายหนึ่ง ๆ จะรองรับหมายเลข IP ได้มากเท่าใด เริ่มต้น IP จากค่าไหน และจบที่ค่าใด เราสามารถนำ Subnet Mask มาใช้แบ่งเครือข่ายออกเป็นเครือข่ายย่อย ๆ ได้

ตัวอย่าง เช่น 192.168.10.9 เมื่อเปลี่ยนเป็น Binary จะได้

IP Subnet Mask
11000000.10101000.01100100.00001001 255.255.255.0

IP อยู่ใน Class C ซึ่งจะมี Subnet Mask คือ 255.255.255.0 เมื่อนำมาแปลงเป็น Binary จะได้

Subnet Mask Binary
255.255.255.0 11111111.11111111.11111111.00000000

การประยุกต์ใช้

สมมุติว่าผมต้องการทราบว่า เครือข่ายข้างต้นนี้ สามารถรองรับคอมพิวเตอร์ได้กี่เครื่อง เครื่องแรกที่ใช้ได้คือ IP ไหน และเครื่องสุดท้ายที่ใช้ได้ คือ IP ไหน

ก่อนแรกให้เข้าใจกฏง่าย ๆ ก่อน ว่าหากนำ Subnet Mask มาเทียบกับ IP แล้วส่วนที่เป็น 1 จำนวน 8 bits หรือ ส่วนที่เป็น 255 จะได้ข้อมูลเดิม ส่วนที่เป็น 0 จำนวน 8 bits ก็จะทำให้ส่วนที่นำมาเทียบเป็น 0 ทั้งหมด คือการนำ Binary มา AND กัน (คล้ายกับการคูณ)

Subnet Mask 11111111 11111111 11111111 00000000
IP Address 11000000 10101000 01100100 00001001
Network Address 11000000 10101000 01100100 00000000
Broadcast Address 11000000 10101000 01100100 11111111

เมื่อนำ Network Address มาแปลงเป็นฐานสิบ จะเห็นว่า Network Address หรือ Gateway Address ก็คือ 192.168.100.0

ส่วน Broadcast Address เราจะหาได้จากการนำ Binary ของ Subnet Mask ส่วนที่ไม่ใช่ 255 (ส่วน Host Bits) มากลับบิต 0 เป็น 1 จะได้ตัวเลขมากที่สุดของชุด Binary นั้น ซึ่ง 8 bits จะแทนค่าได้มากถึง 256 ค่า เหตุผลที่ใน Subnet Mask แสดงค่าสูงสุดเป็น 255 คือ มันเป็นการนับเริ่มต้นจาก 0 แทนที่จะเป็น 1 จะได้ว่า Broadcast Address ซึ่งเป็น IP สุดท้าย ก็คือ 192.168.100.255 นั่นเอง

ทีนี้ช่วงระหว่างกลางของ .0 และ .255 ก็จะเป็นส่วนที่ให้ Host หรือ Devices ต่าง ๆ เข้ามาเชื่อมต่อได้ จะได้แก่

 IP แรก IP สุดท้าย
192.168.100.1 192.168.100.254

สำหรับโจทย์ข้อนี้ก็จะสรุปได้ว่า เครือข่ายนี้สามารถรองรับได้ทั้งหมด 254 IP Address

การแบ่ง Subnet Mask

สมมุติว่ามีหน่วยงานหนึ่ง เป็นเจ้าของ IP Address แบบ Class B หมายถึง มี Subnet Mask เป็น 255.255.0.0 หมายความว่า สามารถรองรับ Host ได้ถึง 8 bits + 8 bits = 16 bits ซึ่งก็คือ 2^16 = 65,536 เครื่อง หากต้องการแบ่งเครือข่ายย่อยออกที่สามารถรองรับได้ 4,000 IP (2^12 = 4096) แสดงว่าต้อง เหลือ Host bits ไว้เพียง 12 bits เท่านั้น แสดงว่าจะมี Subnet bits เหลือ 20 bits เราก็จะใส่เครื่องหมาย /20 ไว้หลัง Subnet Mask

Subnet Mask ใหม่ก็ จะเป็น 11111111.11111111.11110000.00000000 = 255.255.240.0/20

หาก IP ปัจจุบันคือ 128.168.0.34

Subnet Mask 11111111 11111111 11110000 00000000
IP Address 10000000 10101000 00000000 00000000
Network Address 10000000 10101000 00000000 00000000
Broadcast Address 11000000 10101000 00001111 11111111

จะได้ว่า

Network Address 128.168.0.0
Broadcast Address 128.168.15.255
IP แรกที่ใช้ได้ 128.168.0.1
IP สุดท้ายที่ใช้ได้ 128.168.15.254

Host ทั้งหมดที่รองรับได้ก็จะเท่ากับ (2^12) - 2= 4096 - 2 = 4094 เครื่อง เหตุผลที่ต้อง -2 คือ IP แรกจะถูกสงวนไว้ให้ Network Address และ IP สุดท้ายจะสงวนไว้ให้ Broadcast Address นั้นก็หมายความว่า 4096 จะมี สอง IP ที่ใช้งานไม่ได้ เป็นเหตุผลที่ต้อง -2 นั่นเอง

Profile Picture.
  • Name (Pen name): Sunny Jirakit (Sunny420x)
  • Study: Bachelor Degree of Computer Science from Chiang Mai Rajabhat University
  • Personality: Architect (INTJ-T)
  • Experience: JavaScript,  Angular.js, React.js, Next.js  Express.js, Unity C#, Socket.io