วันศุกร์ที่ 6 พฤศจิกายน พ.ศ. 2552

IPV4

IPV4
ที่มา : http://courseware.bodin.ac.th/~nantawat/network/subnetmask.htm
เรื่องราวของ IP Address ถูกกล่าวขานกันมาพร้อมกับการขยายตัวของระบบเครือข่ายอินเตอร์เน็ต ที่ใช้ภาษาในการสื่อสารกันที่เรารู้จักกันดีในชื่อ TCP/IP (Transmission Control Protocol/ Internet Protocol) และจากการขยายตัวอย่างต่อเนื่อง ทำจำนวน IP Address ไม่พอต่อความต้องการ จึงมีการพัฒนา IPv6 มาเสริมทัพกับ IPv4 เพื่อให้เพียงพอต่อความต้องการ แต่ถึงอย่างไร IPv4 ยังคงเป็นพื้นฐานสำหรับโลกอินเตอร์เน็ตอยู่ต่อไปอีกนานทีเดียว เรื่องการกำหนดหมายเลข IP (IP Addressing) เป็นพื้นฐานที่ดี ทั้งยังเป็นความรู้เพิ่มเติมสำหรับผู้ที่สนใจ ได้พอสมควร IP Address เปรียบเสมือนกับเลขที่บ้านของเครื่องคอมพิวเตอร์ที่เชื่อมต่อกันเป็นเครือข่ายอินเตอร์เน็ต หรืออินทราเน็ต การส่งข้อมูลบนอินเตอร์เน็ต ก็เหมือนกับการส่งจดหมาย ซึ่งต้องระบุบ้านเลขที่บนซองจดหมายเพื่อให้จดหมายถึงปลายทางได้อย่าถูกต้อง เครื่องคอมพิวเตอร์ หรืออุปกรณ์เน็ตเวิร์ค ก็เช่นเดียวกัน จะต้องมีหมายเลขประจำเครื่อง ซึ่งก็คือ IP Address นั่นเอง ข้อมูลที่ถูกส่งไปยังแต่ละเครื่อง (ต่อไปขอเรียกว่าโฮส) จะมีหมายเลข IP Address เพื่อบอกปลายทางที่จะติดต่อด้วยเสมอ IP Address ที่ใช้กันอยู่ในปัจจุบัน เป็น IP version 4 หรือที่เรียกกันว่า IPv4 มีขนาด 4 byte แต่ละ byte มีขนาด 8 bit ดังนั้น IPv4 จึงมีขนาดเท่ากับ 32 bit เนื่องจากเป็นเลขฐานสอง เราคำนวณจำนวนโฮสได้จาก 2n ดังนั้นสามารถกำหนดหมายเลข IP Addressให้โฮสได้ทั้งหมด 232 = 4,294,967,296 โฮส แต่ก็ยังไม่พอใช้ นักพัฒนาจึงพัฒนา IP เป็น version 6 หรือ IPv6 ที่มีขนาด 128 bit และเริ่มนำมาเสริมกับ IPv4 ได้เป็น 2128 เมื่อ IP Address มีจำนวนมากขนาดนั้น เหตุผลหนึ่งคือเพื่อให้ง่ายต่อการจัดสรร จึงแบ่ง IPv4 ออกเป็น Class ซึ่งมีอยู่ด้วยกันทั้งหมด 5 Class ทำให้ง่ายต่อการจัดสรรขึ้นมาอีกClass IP เริ่มต้น IP สิ้นสุด NetID (bit) HostID (bit)Class A 0.0.0.0 127.255.255.255 8 24 = 16777216Class B 128.0.0.0 191.255.255.255 16 16 = 65536Class C 192.0.0.0 223.255.255.255 24 8 = 256Class D 224.0.0.0 239.255.255.255 - multicast addressClass E 240.0.0.0 247.255.255.255 - Reserveตารางที่ 1 IP Address และจำนวนโฮสในแต่ละ Class" Class A มี NetID = 8 bit จาก IP Address ทั้งหมด 32 bit จึงเหลือ HostID 24 bit ทำให้มีจำนวนaddress ในเน็ตเวิร์คเดียวกันได้ทั้งหมด เท่ากับ 224 = 16777216 address " Class B มี HostID เท่ากับ NetID ดังนั้นมีจำนวน address เท่ากับ 216 = 65536" Class C เป็น Class ที่เล็กที่สุดทีใช้งานกัน มี HostID 8 bit ทำให้มี address ได้เท่ากับ 28 = 256 " Class D นั้นเป็น Multicast Address โดยสงวนไว้ใช้สำหรับอุปกรณ์ที่จะต้องมีการส่งข้อมูลในกลุ่มเดียวกัน" Class E ท้ายสุดของ IPv4 สงวนไว้ใช้ในอนาคต เพื่อการพัฒนาขีดความสามารถของ IPv4 เองรูปแบบการเขียน จะมีหมายเลขเรียนกัน 4 ชุด โดยมีจุดคั่นกลาง มีด้วยกัน 2 ชุดคือ IP Address และ Subnet Maskโดยตัวเลข ชุดแรกเรียกว่า IP Address หรือ Host Address ชุดหลังเรียกว่า Subnet Mask เช่น 192.168.1.1/255.255.255.0 เป็นต้นตารางที่ 2 แสดงหมายเลข IP Address ระหว่างเลขฐานสิบ และ ฐานสอง จากตัวอย่างเมื่อเปลี่ยน 192 เป็นเลข ฐานสองจะมีค่าเท่ากับ 1100 0000 ต้องจะใช้ความสามารถในการเปลี่ยนเลขฐานสิบเป็นฐานสอง ลองเปลี่ยนเลขถัดไปคือ 168.1.1 เป็น ฐานสอง จะได้เท่ากันกับในตาราง มีข้อแม้นิดนึงครับ คือต้องเปลี่ยนที่ละชุดตัวเลขระหว่างจุดIP Addressฐานสิบ ฐานสอง (32 bit)192.168.1.1 1100 0000 . 1010 1000 . 0000 0001 . 0000 0001Subnet Mask255.255.255.0 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000ตารางที่ 2 ตัวอย่างหมายเลข IP Address และ Subnet Maskมาถึงเรื่องต่อไป คือคำว่า Private IP กับ Public IP กันบ้าง คำว่า Private IP หรือบางทีเรียกกันว่า Internal IP ผมให้นิยามไว้ให้หมายถึง IP Address ที่ไม่ใช้บน Internet และไม่สามารถติดต่อกับ Public IP ได้ แต่ไม่ใช่ซะทีเดียว เราสามารถใช้เทคนิค ที่เรียกว่า NAT (Network Address Translation) เข้าช่วยได้ Private IP นี้สามารถกำหนดขึ้นมาใช้ได้เอง โดยทั่วไปแล้วจะใช้กับ Intranet ในหน่วยงาน ในส่วนของ Public IP หรืออีกนัยหนึ่งเรียกว่า Real IP นั้นใช้ในเครือข่าย Internet โดยจะต้องขอไปยังหน่วยงานที่กำกับดูแล IP Address ในแต่ละประเทศ ซึ่งแน่นอนว่าแต่ละหน่วยงานที่ขอ IP Address ต้องได้หมายเลขที่ไม่ซ้ำกับใครเลยในโลกนี้ด้วยครับ ในประเทศไทยหน่วยงานที่กำกับดูแลคือ thnic.netClass IP เริ่มต้น IP สิ้นสุด NetID (bit) HostID (bit)Class A 10.0.0.0 10.255.255.255 24 24 = 16777216Class B 172.16.0.0 172.32.255.255 16 16 = 65536Class C 192.168.0.0 192.168.255.255 8 8 = 256คุ้นๆ กันบ้างกับตัวเลข 192.168.x.x ที่เห็นกันทั่วไปตามร้าน Internet Caf? หรือ Games Caf?' นะครับ นี่แหละ Private IP ทีนี้ลองมาดูส่วนประกอบของ IP Address ที่เขียนๆ กันบ้างว่าประกอบด้วยอะไรบ้าง แล้วมีความหมายอย่างไร ลองดูตัวอย่าง IP Address ประกอบกับคำอธิบายด้านล่างครับตัวอย่าง IP Address = 192.168.1.1/255.255.255.01. IP Address หรือ Host Address คือ 192.168.1.12. Subnet Mask คือหมายเลขหลังเครื่องหมาย "/" คือ 255.255.255.0 โดยมีความหมายว่า มีจำนวนโฮสในเน็ตเวิร์คเท่าไหร่ ใน Class C คำนวณจำนวนได้โดยการนำค่าจำนวน HostID ที่มีขนาดเท่ากับ 8 bit หรือเท่ากับ 28 = 256 ลบด้วยค่าสุดท้ายของ Subnet Mask จากตัวอย่างคือ 256 - 0 = 256 ดังนั้นจึงมีจำนวนโฮสทั้งหมดเท่ากับ 256 โฮส แต่ในหนึ่งเน็ตเวิร์คจะต้องมี Network Address และ Broadcast Address เสมอ จึงมีโฮสเท่ากับ 254 โฮส3. Network Address บอกตำแหน่งเริ่มต้นของ IP Address ใน Class จากตัวอย่าง เป็นเน็ตเวิร์ค Class C ซึ่งมีโฮสทั้งหมดเท่ากับ 256 โฮส โดยมี IP Address เริ่มจาก 192.168.1.0 - 192.168.1.255 ดังนั้น Network Address คือ 192.168.1.0 4. Broadcast Address เป็นช่องทางของการส่งข้อมูลให้กับโฮสอื่นๆ เปรียบเสมือนการตะโกนเข้าไปในห้องที่มีคนอยู่รวมๆ กัน ซึ่งทำให้คนที่อยู่ในห้องได้ยินพร้อมๆ กันทั้งหมด โดย Broadcast Address จะเป็น IP Address สุดท้ายของเน็ตเวิร์คเสมอ จากข้อ 3 Broadcast Address จึงมีค่าเท่ากับ 192.168.1.255 มีการเขียน Subnet Mask อีกอย่างที่เห็นกันบ้างคือเขียนเป็นจำนวน bit เช่น 192.168.1.1/24 โดย 24 นี้ คือ NetID จาก 32 bit ของ IPv4 ทำให้เหลือ HostID เท่ากับ 8 bit (32 - 24) ดังนั้นจึงเขียน Subnet Mask เป็น /24 ซึ่งเท่ากับการเขียนโดยระบุ Subnet Mask 255.255.255.0 ทีนี้มารู้จักคำว่า Classless กัน มันหมายถึงการแบ่ง IP Class ต่างๆ ออกเป็นเน็ตเวิร์คย่อยๆ หรือเรียกได้อีกอย่างว่า แบ่งไม่เต็มคลาส ยกตัวอย่าง Network คลาส C ซึ่งถูกแบ่งเป็นเน็ตเวิร์คละ 128 โฮส เขียนได้เป็น 192.168.1.3/255.255.255.128 นี่แหละ Classless มาดูว่าจะศึกษาจาก IP Address ข้างต้นอย่างไร โดยเราใช้ความรู้เรื่องพื้นฐานก่อนหน้านี้มาใช้กันเลย1. IP Address หรือ Host Address คือ 192.168.1.32. หาว่ามีจำนวนโฮสทั้งหมดกี่โฮส โดยการนำจำนวน 256 ซึ่งเป็นจำนวนโฮสสูงสุดของ Class C ลบด้วย ตัวสุดท้ายของ Subnet Mask คือ 256 - 128 = 128 โฮส 3. หาว่า Network Address มีค่าเท่าไหร่ โดยเอาที่เก็บไว้ในใจในข้อ 2 ออกมาซึ่งเท่ากับ 128 โฮส แล้วมาดู IP Address อย่างใกล้ชิด คอลเกต สังเกตเห็นว่า IP Address ตัวอย่าง มีค่าอยู่ในช่วงของเน็ตเวิร์คแอดเดรส 0-127 ดังนั้น Network Address ของ 192.168.1.3/255.255.255.128 คือ 192.168.1.04. Broadcast Address เท่ากับ Network Address + 128 ซึ่งเป็นจำนวนโฮสสูงสุดที่มีอยู่ใน Classless นี้ สำหรับ Broadcast นี้คือ 192.168.1.127 ถึงตอนนี้มีหลายคนสงสัย ผมบอกว่าให้เอา Network Address + จำนวนโฮส ก็เป็น 0+128 ทำไมได้ 127 (0 -127 มีทั้งหมด 128 ค่า ดังนั้น Address สุดท้ายจึงเป็น 192.168.1.127 )มาถึงการเขียน Subnet Mask เป็น bit กันครับเริ่มโดยหาว่า 2 ยกกำลังเท่าไหร่ ถึงจะได้เท่ากับจำนวนโฮส (128) ? ซึ่งมีค่าเท่ากับ 27 = 128 หลังจากนั้นนำค่า 32 (bit) ลบด้วยค่าที่หาได้ คือ 7 (bit) เหลือ 25 (bit) ดังนั้น จึงเขียน Subnet Mask อีกรูปแบบได้เป็น 192.168.1.1/25 เป็นอันเสร็จ การเขียนแบบนี้จะเจอในผู้ที่เก๋าประสบการณ์ มีกฎอีกนิดสำหรับกฎการแบ่ง Classless คือ ต้องแบ่งเป็นจำนวนเท่ากับ 2n เท่านั้น

ไม่มีความคิดเห็น: