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 จะเป็นค่าที่กำหนดว่าเครือข่ายหนึ่ง ๆ จะรองรับหมายเลข 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
สมมุติว่ามีหน่วยงานหนึ่ง เป็นเจ้าของ 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 นั่นเอง
