วันพุธที่ 27 มกราคม พ.ศ. 2559

การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ

การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ
         ไม่ว่าเราจะทำงานใดก็ตาม ปัญหาเป็นสิ่งหลีกเลี่ยงไม่ได้ การแก้ปัญหามีหลายวิธี ขึ้นกับชนิดของาน วิธีการแก้ปัญหาอย่างหนึ่งอาจแก้ปัญหาอีกอย่างหนึ่งไม่ได้ และการแก้ปัญหาอาจจำเป็นต้องใช้เทคโนโลยีสารสนเทศหรือไม่ก็ได้ ดังนั้น จึงควรยึดหลักการแก้ปัญหาอย่างเป็นระบบ เพื่อไม่ให้เสียเวลา หลงทาง และสับสน วิธีการแก้ปัญหาแต่ละวิธีมีความเหมาะสมกับงานแตกต่างกันไป ก่อนที่จะใช้วิธีแก้ปัญหา ด้วยกระบวนการทางเทคโนโลยีสารสนเทศ จะขอยกวิธีการแก้ปัญหาอย่างมีขั้นตอนโดยทั่วไป มาให้พิจารณาดูจำนวนหนึ่ง
การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ การแก้ปัญหาที่ซับซ้อนด้วยวิธีการต่างๆ ที่กล่าวมาแล้ว ส่วนมากจำเป็นต้องใช้เทคโนโลยีสารสนเทศเข้าช่วยเพื่อเพิ่มความรวดเร็ว ถูกต้อง และสามารถทำซ้ำได้ง่ายในกระบวนการทางเทคโนโลยีสารสนเทศเข้าช่วยแก้ปัญหา จำเป็นต้องปรับรูปแบบวิธีการทำงานให้เหมาะสมกับการใช้เทคโนโลยีสารสนเทศ
วิธีการแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เป็นวิธีคล้ายกับการแก้ปัญหาทางวิศวกรรมมาก แต่ในการนำระบบคอมพิวเตอร์ไปใช้ในการแก้ปัญหา หรือเพิ่มประสิทธิภาพในการทำงานใดๆ ก็ตาม จะต้องมีการวิเคราะห์ปัญหาและศึกษาความเป็นไปได้ให้รอบคอบเสียก่อน ทั้งนี้เนื่องจากคอมพิวเตอร์ไม่ใช้เครื่องมือวิเศษที่จะแก้ปัญหาได้ทุกเรื่อง
นอกจากนี้ยังจะต้องมีการศึกษาถึงความคุ้มค่าในการลงทุน เพื่อไม่ให้เป็นการลงทุนที่เสียเปล่า ต้องเลือกวิธีการแก้ปัญหาให้เหมาะสมกับงาน จัดหาเครื่องมือและเทคโนโลยีที่ไม่เกินความจำเป็น
การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เหมาะกับระบบงานที่ต้องทำงานอย่างใดอย่างหนึ่งซึ่งซากและมีปริมาณงานมากหรืองานที่ต้องการความรวดเร็วในการคำนวณเกินกว่าคนธรรมดาจะทำได้ วิธีการโดยทั่วไปคือ ปรับเปลี่ยนวิธีการหรือระบบการทำงานแบบเดิม มาใช้ระบบงานที่มีเครื่องคอมพิวเตอร์ช่วยทำงานเป็นบางส่วน หรือทั้งหมด เท่าที่สามารถจะทำแทนคนได้.

ซึ่งประกอบด้วย 4 ขั้นตอนคือ 
1)  การวิเคราะห์และกำหนดรายละเอียดของปัญหา  (State The Problem) ขั้นตอนนี้เป็นขั้นตอนแรกสุดก่อนที่จะลงมือแก้ปัญหา แต่ผู้แก้ปัญหามักจะมองข้ามไป
จุดประสงค์ของขั้นตอนนี้ คือ การทำความเข้าใจกับปัญหาเพื่อแยกให้ออกว่าข้อมูลที่กำหนดมาในปัญหาหรือ เงื่อนไขของปัญหาคืออะไร อีกทั้งวิธีการที่ใช้ประมวลผล
กล่าวโดยสรุปมีองค์ประกอบในการวิเคราะห์ดังนี้
                การระบุข้อมูลเข้า ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กำหนดมาในปัญหา 
                การระบุข้อมูลออก ได้แก่ การพิจารณาเป้าหมายหรือสิ่งที่ต้องหาคำตอบ
               การกำหนดวิธีประมวลผล ได้แก่ การพิจารณาขั้นตอนวิธีการได้มาซึ่งคำตอบหรือข้อมูลออก  
2) การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools And Algorithm Development) ขั้นตอนนี้เป็นขั้นตอนของการวางแผนในการแก้ปัญหาอย่างละเอียดถี่ถ้วน หลังจากที่เราทำความเข้าใจกับปัญหา พิจารณาเงื่อนไขและข้อมูลที่มีอยู่ และสิ่งที่ต้องการหาในการแก้ปัญหาอย่างละเอียดถี่ถ้วน หลังจากที่เราทำความเข้าใจกับปัญหา พิจารณาเงื่อนไขและข้อมูลที่มีอยู่ และสิ่งที่ต้องการหาในขั้นตอนที่ 1 แล้ว เราสามารถคาดคะเนวิธีการที่จะใช้ในการแก้ปัญหา ขั้นตอนนี้จำเป็นต้องอาศัยประสบการณ์ของผู้แก้ปัญหาเป็นหลัก หากผู้แก้ปัญหาเคยพบกับปัญหาทำนองนี้มาแล้วก็สามารถดำเนินการตามแนวทางที่ เคยปฏิบัติมา ขั้นตอนนี้จะเริ่มจากการเลือกเครื่องมือที่ใช้ในการแก้ปัญหา โดยพิจารณาความเหมาะสมระหว่างเครื่องมือกับเงื่อนไขต่างๆ ของปัญหา ซึ่งหมายรวมถึงความสามารถของเครื่องมือในการแก้ปัญหาดังกล่าว และสิ่งที่สำคัญที่สุดคือความคุ้นเคยในการใช้งานเครื่องมือนั้นๆ ของผู้แก้ปัญหา อีกสิ่งหนึ่งที่ สำคัญในการแก้ปัญหา คือ ยุทธวิธีที่ใช้ในการแก้ปัญหา หรือที่เราเรียกว่า “ขั้นตอนวิธี” (Algorithm) ในการแก้ปัญหา หลังจากที่เราได้เครื่องมือช่วยแก้ปัญหาแล้ว ผู้แก้ปัญหาต้องวางแผนว่าจะใช้เครื่องมือดังกล่าวเพื่อให้ได้ผลลัพธ์ที่ถูกต้องที่สุด การออกแบบขั้นตอนวิธีในการแก้ปัญหา ผู้แก้ปัญหาควรใช้แผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทำงาน เพื่อให้ง่ายต่อความเข้าใจ เช่น ผังงาน (Flowchart) ที่จำลองวิธีขั้นตอนการแก้ปัญหาในรูปแบบสัญลักษณ์ รหัสจำลอง (Pseudo Code) ซึ่งเป็นการจำลองขั้นตอนวิธีการปัญหาในรูปแบบคำบรรยาย การใช้เครื่องมือช่วยออกแบบดังกล่าว นอกจากแสดงกระบวนการที่ชัดเจนแล้วยังช่วยให้ผู้แก้ปัญหาสามารถหาข้อผิดพลาดของวิธีการที่ใช้ได้ง่ายและแก้ไขได้อย่างรวดเร็ว

3) การดำเนินการแก้ปัญหา (Implementation) หลังจากที่ออกแบบขั้นตอนวิธีเรียบร้อยแล้วขั้นตอนนี้เป็นขั้นตอนที่ต้องลงมือแก้ปัญหาโดยใช้เครื่องมือที่เลือกไว้
การแก้ปัญหาดังกล่าวใช้คอมพิวเตอร์เข้ามาช่วยงาน ขั้นตอนนี้ก็เป็นการใช้โปรแกรมสำเร็จหรือใช้ภาษาคอมพิวเตอร์เขียนโปรแกรมแก้ปัญหา ขั้นตอนนี้ต้องอาศัยความรู้เกี่ยวกับเครื่องมือที่เลือกใช้ ซึ่งผู้แก้ปัญหาต้องศึกษาให้เข้าใจและเชี่ยวชาญ ในขณะดำเนินการ
หากพบแนวทางที่ดีกว่าที่ออกแบบไว้ ก็สามารถปรับเปลี่ยนได้
4) การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแก้ปัญหาแล้ว
ต้องตรวจสอบให้แน่ใจว่าวิธีการนี้ให้ผลลัพธ์ที่ถูกต้อง โดยผู้แก้ปัญหาต้องตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอียดของปัญหา ซึ่งได้แก่ ข้อมูลเข้าและข้อมูลออก เพื่อให้มั่นใจว่าสามารถรองรับข้อมูลเข้าได้ทุกกรณีอย่างถูกต้องสมบูรณ์ ในขณะเดียวกันก็ต้องปรับปรุงวิธีการเพื่อให้การแก้ปัญหานี้ได้ผลลัพธ์ที่ดีที่สุด

เรื่องน่ารู้ของ IP address

หมายเลขไอพีแอดเดรสเป็นเครื่องมือที่ใช้ในการระบุแยกแยะความแตกต่างของเครื่องคอมพิวเตอร์ และอุปกรณ์เครือข่ายต่าง ๆ ที่มีการเชื่อมต่อเข้าด้วยกันเป็นเครือข่ายคอมพิวเตอร์ออกจากกัน โดยคอมพิวเตอร์แต่ละเครื่องภายในเครือข่าย จะได้รับการกำหนดจัดสรรหมายเลขไอพีแอดเดรสเป็นของตนเอง หลักการพื้นฐานในการกำหนดหมายเลขไอพีแอดเดรส ให้กับคอมพิวเตอร์แต่ละเครื่องมีอยู่ง่าย ๆ คือ หลีกเลี่ยงมิให้แต่ละเครื่องมีหมายเลขไอพีแอดเดรสซ้ำกัน เพราะจะทำให้เกิดความสับสนในการติดต่อสื่อสารภายในเครือข่าย หากการกำหนดจัดสรรไอพีแอดเดรสเป็นไปตามกติกาดังกล่าวแล้ว ก็จะทำให้คอมพิวเตอร์แต่ละเครื่องสามารถติดต่อสื่อสารถึงกัน เพื่อแลกเปลี่ยนข้อมูล หรือกระจายภาระการทำงานระหว่างกันได้เป็นปกติ คอมพิวเตอร์ภายในเครือข่ายจะทำการติดต่อสื่อสารกันโดยการรับส่งข้อมูลในรูปแบบของแพ็กเกต (Packet) ผ่านเครือข่ายคอมพิวเตอร์ที่มีการเชื่อมต่อโดยอาศัยอุปกรณ์เครือข่ายชนิดต่าง ๆ เช่น บริดจ์ ฮับ สวิทช์ หรือเราเตอร์

อย่างไรก็ตาม นิยามของคำว่า "เครือข่ายคอมพิวเตอร์สามารถเป็นไปได้ในหลาย ๆ ลักษณะ การสร้างเครือข่ายคอมพิวเตอร์ภายในองค์กรธุรกิจโดยไม่มีความจำเป็นที่จะต้องต่อเชื่อมกับเครือข่ายขององค์กรอื่น ๆ ถือเป็นเครือข่ายคอมพิวเตอร์อย่างง่าย ซึ่งผู้ดูแลระบบเครือข่ายสามารถออกแบบสร้างและควบคุมการทำงานของเครือข่ายได้โดยไม่ยากเย็นนัก อย่างไรก็ตามเครือข่ายคอมพิวเตอร์อาจอยู่ในรูปแบบของเครือข่ายขนาดใหญ่ขององค์กร สถานศึกษา หรือหน่วยงานราชการ ซึ่งต้องการเชื่อมต่อข้ามไปยังเครือข่ายอื่น ๆ ที่สำคัญคือมักมีการเชื่อมต่อเข้าสู่เครือข่ายอินเตอร์เน็ต ซึ่งมีจำนวนเครื่องคอมพิวเตอร์เชื่อมต่ออยู่อย่างมหาศาล ความยากลำบากในการกำหนดเลขหมายไอพีแอดเดรสให้กับเครือข่ายของท่าน โดยหลีกเลี่ยงการกำหนดเลขหมายซ้ำกับเครือข่ายอื่นที่ท่านเชื่อมต่ออยู่ จะกลายเป็นสิ่งที่ควบคุมได้ยากลำบากมาก หากไม่มีการกำหนดกฎเกณฑ์และกติกาในการจัดสรรหมายเลขไอพีแอดเดรสเพื่อให้แต่ละองค์กรยึดถือร่วมกัน

เพื่อเป็นการวางมาตรฐานสำหรับปฏิบัติร่วมกัน หน่วยงาน InterNIC (Internet Network Information Center) ซึ่งเป็นหน่วยงานที่ได้รับการจัดตั้งขึ้นโดยรัฐบาลสหรัฐอเมริกา จึงได้ทำหน้าที่เป็นผู้ออกกฎกติกา สำหรับการจัดสรรหมายเลขไอพีแอดเดรส ให้กับเครื่องคอมพิวเตอร์ทั่วโลกที่จะต้องมีการเชื่อมต่อเข้ากับเครือข่ายอินเตอร์เน็ต โดยมีจุดประสงค์เพื่อป้องกันปัญหาการกำหนดไอพีแอดเดรสซ้ำซ้อนกันขึ้น อย่างไรก็ตามในกรณีของการวางเครือข่ายอินทราเน็ตสำหรับองค์กร โดยไม่คิดว่าจะมีการเชื่อมต่อเข้ากับเครือข่ายอินเตอร์เน็ต ผู้ดูแลระบบสามารถเลือกกำหนดไอพีแอดเดรสให้กับคอมพิวเตอร์ภายในเครือข่ายของท่านอย่างไรก็ได้โดยยึดถือเพียงหลักในการจัดสรรไอพีแอดเดรสมาตรฐาน รูปที่ เป็นการเปรียบเทียบการจัดสรรหมายเลขไอพีแอดเดรสระหว่างเครือข่ายอินทราเน็ตอิสระที่ไม่มีการเชื่อมต่อกับอินเตอร์เน็ต กับเครือข่ายอินทราเน็ตขององค์กรอีกแห่งหนึ่งซึ่งจำเป็นต้องเชื่อมต่อเข้ากับเครือข่ายอินเตอร์เน็ต โดยในกรณีหลังนี้นอกจากผู้ดูแลระบบจะปฏิบัติตามหลักการจัดสรรหมายเลข IP พื้นฐานแล้ว ยังต้องยึดถือกฎกติกาของ InterNIC อย่างเคร่งครัดอีกด้วย

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

การกำหนดเลขหมายแอดเดรส
หมายเลขไอพีแอดเดรสซึ่งมีการกำหนดใช้งานในเครือข่ายคอมพิวเตอร์ทั่วโลกในปัจจุบัน มีชื่อเรียกเป็นทางการว่า "IPv4" มีโครงสร้างการอ้างอิงเป็นตัวเลขฐานสองความยาว 32 บิต เพื่อเป็นความสะดวกในการระบุอ้างอิงโดยมนุษย์ จึงมีการแยกอ่านค่าเลขฐานสองดังกล่าวออกเป็น กลุ่ม ๆ ละ บิตเรียงตามลำดับ การอ่านหรืออ้างอิงค่าหมายเลขไอพีแอดเดรสโดยทั่วไปจึงมักอยู่ในรูปแบบเช่น 205.46.15.198 แทนที่จะอ่านเป็น11001101.00101110.00001111.11000110 สำหรับการแปลงค่าตัวเลขฐานสองไปเป็นฐานสิบนั้น สามารถกระทำได้โดยใช้เครื่องคิดเลขหรือเทียบจากตารางที่ ตัวอย่างการอ่านค่าไอพีแอดเดรสตามตัวอย่างข้างต้นนั้นมีแสดงในรูปที่ ทั้งนี้พึงทำความเข้าใจว่าในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ด้วยกันนั้น จะใช้การอ้างอิงตัวเลขฐานสองเป็นพื้นฐาน เนื่องจากเป็นมาตรฐานการอ้างอิงในระดับภาษาเครื่อง ส่วนการอ่านค่าเป็นตัวเลขฐานสิบนั้นเป็นไปเพื่อความสะดวกของมนุษย์เป็นสำคัญ อนึ่งโดยทั่วไปมักนิยมเรียกกลุ่มข้อมูลแต่ละกลุ่มซึ่งมีขนาด บิตว่า "ออกเต็ด" (Octet) สำหรับความหมายของ "คลาส C" ซึ่งแสดงในรูปนั้น จะกล่าวถึงต่อไป

รูปที่ การแปลงค่าไอพีแอดเดรสจากเลขฐานสิบเป็นเลขฐานสอง และการระบุคลาสของไอพีแอดเดรส

ตารางที่ ตัวอย่างการแปลงค่าตัวเลขฐานสองเป็นฐานสิบ

ข้อควรทราบเกี่ยวกับการกำหนดค่าให้กับเลขหมายไอพีแอดเดรสในแต่ละออกเต็ดมีอยู่ ประการ ประการแรกก็คือในแต่ละออกเต็ดจะต้องไม่มีค่าของข้อมูลเป็น "11111111" หรือ "00000000" หรือแทนค่าเป็นเลขฐานสิบได้เท่ากับ255 และ ตามลำดับ นอกจากนั้นยังมีการสำรองไอพีแอดเดรสที่มีค่าเป็น 127.0.0.1 ไว้สำหรับใช้ในการทดสอบเครื่องคอมพิวเตอร์แต่ละเครื่องที่มีการเชื่อมต่อกับเครือข่ายคอมพิวเตอร์ หลักการดังกล่าวนี้ใช้ได้ทั้งกับเครื่องคอมพิวเตอร์ที่มีการเชื่อมต่อภายในเครือข่ายแบบปิด และกับเครื่องคอมพิวเตอร์ในเครือข่ายเปิดซึ่งมีการเชื่อมต่อเข้ากับเครือข่ายอินเตอร์เน็ต

เมื่อพิจารณาเฉพาะเจาะจงไปถึงการเชื่อมต่อเครื่องคอมพิวเตอร์เข้ากับเครือข่ายอินเตอร์เน็ต ผู้ดูแลระบบจะต้องปฏิบัติตามข้อกำหนดของ InterNIC ในการกำหนดเลขหมายไอพีแอดเดรสเพื่อให้เกิดความมั่นใจว่าเลขหมายไอพีแอดเดรสที่มีการจัดสรรให้กับคอมพิวเตอร์แต่ละเครื่องภายในเครือข่ายอินทราเน็ตของตน จะไม่เกิดซ้ำกันขึ้นกับไอพีแอดเดรสของคอมพิวเตอร์เครื่องอื่น ๆ ที่เชื่อมต่ออยู่กับเครือข่ายอินเตอร์เน็ต เริ่มจากการที่ผู้ดูแลระบบจะต้องทราบว่าInterNIC มีการกำหนดแบ่งกลุ่มของไอพีแอดเดรสที่มีการใช้งานทั่วโลกออกเป็น กลุ่ม หรือ คลาส (Class) ซึ่งในการกำหนดใช้งานทางปฏิบัติจะมีอยู่เพียง คลาสเท่านั้น คือ คลาส คลาส และ คลาส กติกาที่ใช้ในการกำหนดแบ่งคลาสของไอพีแอดเดรสนั้น กระทำโดยแบ่งตามค่าตัวเลขฐานสองของออกเต็ดแรก ดังแสดงรายละเอียดในตารางที่ และเนื่องจาก InterNIC มีการประกาศห้ามใช้งานแอดเดรสในคลาส และ จึงจะไม่ขอกล่าวถึงแอดเดรสในกลุ่มนี้อีก ต่อไป

ตารางที่ การแบ่งคลาสของเลขหมายไอพีแอดเดรสตามข้อกำหนด InterNIC

ที่มาของแนวคิดในการแบ่งกลุ่มไอพีแอดเดรสออกเป็นคลาส ก็เนื่องมาจากที่ InterNIC มองว่าเครือข่ายคอมพิวเตอร์ย่อย ๆ ที่มีการเชื่อมต่อเข้ากับเครือข่ายอินเตอร์เน็ตนั้น มีขนาดเล็กใหญ่ไม่เท่ากัน เครือข่ายของบางองค์กรอาจมีขนาดใหญ่โตและต้องการหมายเลขไอพีแอดเดรสเป็นจำนวนมาก ในขณะที่เครือข่ายขององค์กรบางกลุ่มกลับมีเครื่องคอมพิวเตอร์อยู่เพียงไม่กี่เครื่อง จำนวนเครือข่ายคอมพิวเตอร์ที่แต่ละคลาสสามารถรองรับได้มีแสดงในตารางที่ พร้อมกับการระบุจำนวนของโฮสหรือเครื่องคอมพิวเตอร์ที่สามารถเชื่อมต่อใช้งานในแต่ละเครือข่ายซึ่งอยู่ในคลาสต่าง ๆ กัน รายละเอียดและแนวทางในการคำนวณจำนวนเครือข่ายและจำนวนโฮสที่รองรับในแต่ละคลาสดังนี้

คลาส A : สังเกตจากค่าบิตแรกของออกเต็ดที่ ในไอพีแอดเดรสมีค่าเป็น ในคลาสนี้มีการแบ่งกลุ่มเครือข่ายออกได้เป็น 126 เครือข่าย โดยที่แต่ละเครือข่ายสามารถมีเครื่องคอมพิวเตอร์ต่อเชื่อมได้ทั้งสิ้นเครือข่ายละ 16,777,214เครื่อง ในปัจจุบันไอพีแอดเดรสที่จัดว่าอยู่ในคลาส แทบจะไม่ได้มีการจัดสรรให้กับหน่วยงานใดมากนัก แอดเดรสในคลาส นี้ได้รับการกำหนดขึ้นเพื่อใช้จัดสรรให้กับองค์กรขนาดใหญ่มากที่มีเครื่องคอมพิวเตอร์เชื่อมต่อภายในองค์กรเป็นจำนวนมาก รูปแบบของการจัดวางไอพีแอดเดรสสำหรับคลาส นี้มีการกำหนดให้ออกเต็ดแรกใช้แทนแอดเดรสของเครือข่าย และอีก ออกเต็ดที่เหลือใช้แทนแอดเดรสเครื่องคอมพิวเตอร์ภายในเครือข่ายนั้น ๆ

                คลาส เหมาะสำหรับการกำหนดใช้งานให้กับองค์กรขนาดกลาง โดยมีหลักกำหนดให้ ออกเต็ดใช้แทนแอดเดรสของเครือข่าย และอีก ออกเต็ดที่เหลือใช้แทนแอดเดรสของเครื่องคอมพิวเตอร์ ในคลาสนี้สามารถจัดแบ่งจำนวนเครือข่ายออกได้ทั้งสิ้น 16,384 เครือข่าย โดยที่แต่ละเครือข่ายรองรับจำนวนคอมพิวเตอร์ได้ 65,534 เครื่อง

คลาส เป็นคลาสที่มักมีการกำหนดใช้งานกับเครื่องคอมพิวเตอร์ส่วนใหญ่ภายในเครือข่ายอินเตอร์เน็ต โดยกำหนดว่าข้อมูล ออกเต็ดแรกของไอพีแอดเดรสใช้แทนแอดเดรสของเครือข่าย ส่วนออกเต็ดสุดท้ายใช้แทนแอดเดรสของเครื่องคอมพิวเตอร์ ซึ่งหมายความว่าคลาส นี้สามารถแบ่งเครือข่ายออกได้เป็นทั้งสิ้น 2,097,152 เครือข่าย โดยแต่ละเครือข่ายมีจำนวนเครื่องคอมพิวเตอร์ได้ทั้งสิ้น 254 เครื่อง

สำหรับการคำนวณจำนวนแอดเดรสของเครือข่าย และแอดเดรสของเครื่องคอมพิวเตอร์ดังแสดงในตารางที่ สามารถทำได้โดยการคำนวณเลขฐานสอง โดยต้องมีการหักแอดเดรสที่ไม่อนุญาตให้ใช้ได้ ชุด คือ แอดเดรสออกเต็ดที่มีค่าเป็น และ 255 ดังที่ได้กล่าวไว้ข้างต้น

ตารางที่ ขีดความสามารถในการรองรับจำนวนเครือข่ายและจำนวนโฮสของแต่ละคลาส


เพื่อเป็นการทบทวนความเข้าใจเกี่ยวกับการจัดคลาสและไอพีแอดเดรสของเครือข่าย ขอยกตัวอย่างหมายเลขไอพีแอดเดรสของ www.htc.ac.th ซึ่งมีค่าเป็น 203.172.177.196 จะพบว่าแอดเดรสดังกล่าวเป็นแอด    เดรสคลาส Cเนื่องจากค่าออกเต็ดแรกของหมายเลข IP มีค่าเป็น 203 ซึ่งมากกว่า 191 และกล่าวได้ว่าเครื่องคอมพิวเตอร์ซึ่งทำหน้าที่เป็นเว็บเซอร์ฟเวอร์ของบริษัทวิทยาลัยเทคนิคหาดใหญ่ มีหมายเลขเครือข่ายเป็น 203.172.177.0 และมีหมายเลขโฮสเป็น0.0.0.196

เรื่องของ Subnet
จากที่ได้กล่าวมาข้างต้น อาจมีข้อสงสัยว่า หลักเกณฑ์ในการกำหนดจัดสรรหมายเลขไอพีแอดเดรสของ InterNIC น่าจะก่อให้เกิดความสิ้นเปลือง โดยเฉพาะอย่างยิ่งในกรณีของการจัดสรรหมายเลขไอพีแอดเดรสคลาส ซึ่งมีการใช้งานกันทั่วไป ตัวอย่างเช่น นาย กเป็นผู้ดูแลระบบเครือข่ายคอมพิวเตอร์ของบริษัทแห่งหนึ่ง ต้องการสร้างเครือข่ายอินทราเน็ตและเชื่อมต่อเข้ากับอินเตอร์เน็ต จำนวนเครื่องคอมพิวเตอร์ภายในเครือข่ายของบริษัทมีอยู่ทั้งสิ้น 40 เครื่อง นาย กได้รับการอนุญาตจาก InterNIC ให้ใช้แอดเดรสในกลุ่ม 203.150.1.000 ซึ่งเป็นไอพีแอดเดรสในคลาส คำถามคือแอดเดรสจำนวน 254-40 = 214 แอดเดรสที่เหลือจากการใช้งานจะต้องกลายเป็นแอดเดรสสูญเหล่าหรือไม่

อีกตัวอย่างหนึ่ง ซึ่งเกี่ยวข้องกับการจัดเครือข่ายคอมพิวเตอร์ภายในองค์กรออกเป็นเซ็กเมนต์ โดยใช้อุปกรณ์บริดจ์ สวิทช์ หรือเราเตอร์ องค์กรแห่งหนึ่งมีเครื่องคอมพิวเตอร์อยู่ทั้งสิ้น 180 เครื่อง เชื่อมต่อกันเป็นเครือข่ายอินทราเน็ต มีการแบ่งกลุ่มการเชื่อมต่อเครื่องคอมพิวเตอร์ออกเป็นเซ็กเมนต์ทั้งสิ้น เซ็กเมนต์ ๆ ละ 30 เครื่อง ผู้ดูแลระบบคอมพิวเตอร์ขององค์กรแห่งนี้ จะคิดว่าจะต้องขอเลขหมายไอพีแอดเดรสในคลาส จำนวน ชุด เพื่อจัดสรรแอดเดรสให้กับเครื่องคอมพิวเตอร์ในแต่ละเซ็กเมนต์หรือไม่ การทำเช่นนั้นจะก่อให้เกิดความสิ้นเปลืองไอพีแอดเดรสเป็นจำนวนมาก พิจารณาเพียงหนึ่งเซ็กเมนต์จะเห็นว่าต้องทิ้งเลขหมายไอพีแอดเดรสไปถึงเซ็กเมนต์ละ 254-30 = 214 แอดเดรส ซึ่งไม่สามารถจัดสรรให้กับองค์กรอื่นใดได้ ทั้งนี้พึงควรตระหนักว่าหมายเลขไอพีแอดเดรสแม้จะมีอยู่เป็นจำนวนมหาศาล แต่ก็มีแนวโน้มว่าจะไม่เพียงพอต่อความต้องการใช้งาน เนื่องจากจำนวนเครื่องคอมพิวเตอร์ที่มีการเชื่อมต่อกับเครือข่ายอินเตอร์เน็ตทวีจำนวนมากขึ้นเป็นทวีคูณตลอดเวลา

แนวทางในการบริหารเลขหมายไอพีแอดเดรสในทางปฏิบัติ มิได้เกี่ยวข้องเฉพาะกับการกำหนดจัดสรรไอพีแอดเดรสตามที่ได้กล่าวถึงไว้ข้างต้นเท่านั้น แท้จริงแล้วทุกครั้งที่ต้องทำการกำหนดไอพีแอดเดรสให้กับเครือข่ายภายในองค์กร จำเป็นต้องทำความเข้าใจกับเรื่อง Subnet (ซับเน็ทซึ่งมาคู่กับเลขหมายไอพีแอดเดรสตลอดเวลา การกำหนดค่าไอพีแอดเดรสควบคู่กับ Subnet จะทำให้ผู้ดูแลเครือข่ายสามารถจัดสรรจำนวนไอพีแอดเดรสที่เหมาะสมให้กับเครื่องคอมพิวเตอร์ในแต่ละเซ็กเมนต์ โดยถือเป็นการขยายขีดความสามารถของมาตรฐานการแบ่งคลาสของ InterNIC ให้เหมาะสมกับการใช้งานในทางปฏิบัติ

เพื่อเป็นการสร้างความเข้าใจของการจัดการไอพีแอดเดรสร่วมกับ Subnet ขอให้ลองพิจารณาถึงการจัดสรรไอพีแอดเดรสในกลุ่มคลาส ซึ่งข้อมูลภายใน ออกเต็ดแรก ใช้แทนแอดเดรสของเครือข่าย และออกเต็ดสุดท้ายใช้แทนแอดเดรสของเครื่องคอมพิวเตอร์ที่เชื่อมต่อภายในเครือข่ายนั้น เมื่อทดลองเขียนแทนค่าข้อมูลในแต่ละออกเต็ดด้วยตัวเลขฐาน โดยกำหนดให้ข้อมูลใน ออกเต็ดแรกมีค่าเป็น "1" ทั้งหมดเพื่อใช้แทนเครือข่าย และกำหนดค่า "0" ให้กับทุกบิตในออกเต็ดสุดท้ายเพื่อแทนเครื่องคอมพิวเตอร์หรือโฮสภายในเครือข่าย ข้อมูลดังกล่าวมีชื่อเรียก Subnet Mask
สิ่งที่ปรากฏข้างต้นก็คือค่าพื้นฐาน Subnet Mask ของกลุ่มไอพีแอดเดรสในคลาส ซึ่งแทนค่าเป็นเลขฐานสิบได้ 255.255.255.0 สำหรับค่าพื้นฐาน Subnet ในคลาส จะมีค่าเป็น 255.0.0.0 และคลาส เป็น 255.255.0.0

ดังที่ทราบกันแล้วว่าในแต่ละเครือข่ายตามข้อกำหนดไอพีแอดเดรสคลาส จะรองรับจำนวนเครื่องคอมพิวเตอร์มากถึง 254 เครื่อง เทคนิคที่จะใช้ในการแบ่งย่อยจำนวนเครือข่ายจากกลุ่มไอพีแอดเดรสคลาส ที่ผู้ดูแลระบบได้รับสิทธิในการใช้งาน สามารถทำได้โดยการกำหนดค่าเฉพาะเจาะจงตามความเป็นจริงของเครือข่ายอินทราเน็ตภายในองค์กร โดยเปรียบเสมือนกับการเพิ่มจำนวนบิตข้อมูลที่ใช้ในการแยกแยะเครือข่ายเพิ่มเติมจากข้อมูล ออกเต็ดแรกของไอพีแอดเดรส ซึ่งผู้ดูแลระบบสามารถ "ขโมยจำนวนบิตข้อมูลของออกเต็ดสุดท้ายเพื่อใช้กำหนดแยกแยะเครือข่ายได้ตั้งแต่ บิตไปจนถึง บิต

หากทดลองเปลี่ยนค่า Subnet จากค่าพื้นฐาน (ในกรณีนี้คือคลาส C) 11111111.11111111.11111111.00000000 ไปเป็น 11111111.11111111.11111111.11110000 ซึ่งคำนวณค่า Subnet Mask ใหม่เป็นเลขฐานสิบได้เท่ากับ255.255.255.240 ซึ่งเมื่อใช้หลักการคำนวณจำนวน Subnet หรือเครือข่ายที่ย่อยลงมาจากคลาส ที่สามารถมีได้จะมีค่าเท่ากับ 24-2=14 เครือข่ายย่อย โดยค่าไอพีแอดเดรสที่มีการกำหนดใช้งานภายในเครือข่ายสำหรับ บิตแรกในออกเต็ดสุดท้ายซึ่งมีค่าได้ตั้งแต่ "0001" จนถึง "1110" ในฐานสิบจะถูกใช้ในการแบ่งแยกเครือข่ายคลาส ที่ได้รับการจัดสรรมาจาก InterNIC ออกเป็นเครือข่ายย่อย ๆ 14 เครือข่าย สำหรับข้อมูล บิตที่เหลือของออกเต็ดสุดท้ายนั้นจึงจะใช้สำหรับกำหนดเป็นแอดเดรสให้กับเครื่องคอมพิวเตอร์ภายในเครือข่ายย่อย หรือ Subnet แต่ละเครือข่าย

กล่าวโดยสรุปเพื่อให้เกิดความเข้าใจที่ชัดเจนขึ้น หมายเลขแอดเดรสที่ต้องเกี่ยวข้องกับการจัดสรรให้กับเครือข่ายคอมพิวเตอร์นั้น ประกอบไปด้วยไอพีแอดเดรสซึ่งได้รับการกำหนดจาก InterNIC โดยทั่วไปมักเป็นแอดเดรสคลาส Cที่มีอยู่ทั้งสิ้น 2,097,152 ชุด แต่ละชุดถูกกำหนดให้แต่ละองค์กรหรือบริษัท โดยในแอดเดรสคลาส แต่ละชุดสามารถนำไปใช้กำหนดให้กับเครื่องคอมพิวเตอร์ภายในองค์กรได้ 254 เครื่อง สำหรับข้อมูล Subnet Mask ซึ่งมีรูปแบบเป็นข้อมูล32 บิตเช่นเดียวกับไอพีแอดเดรสจะเป็นข้อมูลอีกชนิดหนึ่งที่ต้องใช้กำกับให้กับเครื่องคอมพิวเตอร์ภายในเครือข่ายขององค์กรด้วย ข้อมูลภายใน Subnet Mask ในกรณีของการใช้ไอพีแอดเดรสคลาส นั้นจะอยู่ในรูปแบบเลขฐานสองเป็น11111111.11111111.11111111.XXXXXXXX โดยผู้ดูแลระบบมีสิทธิในการแบ่งกลุ่มเครือข่ายย่อย ๆ ออกได้ตามสภาพการใช้งานภายในองค์กร การกำหนดค่า "1" ให้กับบิต ใด ๆ จะหมายความว่าให้บิตดังกล่าวเป็นส่วนขยายของแอดเดรสเครือข่าย ในทำนองกลับกันการกำหนดค่า "0" ให้กับบิตใด ๆ ก็จะเป็นการแจ้งให้เครื่องคอมพิวเตอร์และเครือข่ายภายในองค์กรทราบว่าบิตนั้น ๆ ถูกใช้ในการกำหนดค่าแอดเดรสให้กับเครื่องคอมพิวเตอร์แต่ละเครื่องภายในเครือข่ายย่อยนั้น ๆ

ตารางที่ สรุปการจัดสรร Subnet Mask ในกรณีของไอพีแอดเดรสคลาส C


กติกาในการกำหนดค่า Subnet Mask สำหรับการใช้งานร่วมกับเครือข่ายคลาส มีสรุปอยู่ในตารางที่ โดยผู้ดูแลระบบจะต้องพิจารณาให้ถ่องแท้ก่อนว่าจะมีการแบ่งเซ็กเมนต์กลุ่มเครื่องคอมพิวเตอร์ภายในเครือข่ายขององค์กรออกเป็นกี่กลุ่ม และกลุ่มที่มีจำนวนเครื่องคอมพิวเตอร์เชื่อมต่ออยู่มากที่สุดนั้นมีอยู่กี่เครื่อง ตารางที่ เป็นการสรุปแนวทางในการกำหนดค่า Subnet Mask ให้กับเครือข่ายคลาส สำหรับเครือข่ายคอมพิวเตอร์ที่มีการแบ่งกลุ่มเครื่องคอมพิวเตอร์ออกเป็น เซ็กเมนต์โดยแยกออกจากกันผ่านการเชื่อมต่อเราเตอร์ แต่ละเซ็กเมนต์มีจำนวนเครื่องคอมพิวเตอร์เชื่อมต่ออยู่ไม่เกิน 25 เครื่อง จากตารางที่ จะพบว่าสามารถกำหนดค่า Subnet Mask ให้กับเครื่องคอมพิวเตอร์แต่ละเครื่องในแต่ละเซ็กเมนต์ได้ โดยกำหนดค่า "1" ให้กับ บิตของออกเต็ดสุดท้ายของ Subnet Mask ก็น่าจะเพียงพอ เนื่องจากการกำหนด Subnet Mask ให้มีค่าดังกล่าวจะช่วยให้ผู้ดูแลเครือข่ายสามารถแบ่งไอพีแอดเดรสของเครือข่ายทั้งหมดออกได้สูงสุด เครือข่ายย่อย แต่ละกลุ่มสามารถรองรับเครื่องคอมพิวเตอร์ได้ไม่เกิน 30 เครื่อง โดยข้อมูลไอพีแอดเดรสที่ใช้แทนแอดเดรสของเครื่องคอมพิวเตอร์จะเหลืออยู่เพียง บิตสุดท้ายในออกเต็ดที่ 4
รูปที่ การแบ่งย่อยเครือข่ายโดยกำหนดค่า Subnet Mask เพื่อความสะดวกในการแบ่งไอพีแอดเดรสให้กับเครือข่ายคอมพิวเตอร์ที่มีได้รับการออกแบบเป็นเซ็กเมนต์ ตัวอย่างเป็นกรณีของไอพีแอดเดรสคลาส C

รูปที่ เป็นการแสดงตัวอย่างการกำหนดค่า Subnet Mask ให้กับแต่ละเซ็กเมนต์ (เซ็กเมนต์ กจนถึงเซ็กเมนต์ ง.) โดยข้อมูลที่แสดงใต้รูปเครือข่ายคอมพิวเตอร์แต่ละเซ็กเมนต์จะเป็นค่าไอพีแอดเดรสที่สามารถกำหนดให้ได้กับเครื่องคอมพิวเตอร์แต่ละเครื่องที่เชื่อมต่อภายในเซ็กเมนต์นั้น ๆ เช่น เซ็กเมนต์ คมีย่านหมายเลขไอพีแอดเดรสสำหรับกำหนดใช้งานตั้งแต่ 203.150.1.97 ถึง 203.150.1.126 ทั้งนี้ต้องไม่ลืมว่าเราไม่สามารถใช้ค่า 203.150.1.96 และ 203.150.1.127ตามเงื่อนไขพื้นฐานที่เคยกล่าวถึงไว้ตั้งแต่ต้น (แอดเดรสที่แทนเครื่องคอมพิวเตอร์ บิตในออกเต็ดสุดท้ายมีค่าเท่ากับ 00000 และ 11111 ตามลำดับ)

โดยทั่วไปผู้ดูแลระบบมักจะต้องป้อนค่าหมายเลขไอพีแอดเดรสและ Subnet Mask ให้กับเครื่องคอมพิวเตอร์แต่ละเครื่องที่เชื่อมต่ออยู่ภายในเครือข่ายขององค์กร แนวทางในการวางแผนกำหนดค่าไอพีแอด  เดรสและ Subnet Maskย่อมต้องขึ้นอยู่กับโทโพโลยี (Topology) หรือการวางแผนเชื่อมต่อภายในเครือข่ายเป็นสำคัญ แนวทางในการกำหนดค่าไอพีแอดเดรสและ Subnet Mask ไม่ว่าเครือข่ายโครงสร้างภายในเครือข่ายจะเป็นเช่นไร ก็ย่อมเป็นไปตามตัวอย่างที่ได้กล่าวถึงไว้ข้างต้นทั้งสิ้น ก่อนจะกล่าวถึงเทคโนโลยี DHCP ในหัวข้อต่อไป ขอทดสอบความเข้าใจในเรื่องของการจัดสรรหมายเลขไอพีแอดเดรสและ Subnet Mask ด้วยกัน โดยพิจารณาตัวอย่างในรูปที่ เครื่องคอมพิวเตอร์เครื่องหนึ่งซึ่งเชื่อมต่ออยู่กับเครือข่ายภายในองค์กรมีหมายเลขไอพีแอดเดรสเป็น 205.46.15.198 และตรวจสอบค่า Subnet Mask ที่ได้รับการกำหนดไว้ในเครื่องมีค่าเป็น 255.255.255.224 อยากทราบว่าค่าแอดเดรสของเครือข่ายและค่าแอดเดรสของเครื่องคอมพิวเตอร์ดังกล่าวในเครือข่ายย่อยที่เชื่อมต่ออยู่ด้วยนั้นมีค่าเป็นเท่าไร
รูปที่ การคำนวณหาค่าแอดเดรสเครือข่ายและแอดเดรสเครื่องคอมพิวเตอร์จากค่าไอพีแอดเดรสและค่า Subnet Mask

เมื่อพิจารณาข้อมูลในตารางที่ จะเห็นว่าค่า Subnet Mask 255.255.255.224 เป็นการขอยืมใช้ข้อมูล บิตแรกในออกเต็ดสุดท้ายของไอพีแอดเดรสในการกำหนดแบ่งย่อยเครือข่าย เมื่อเขียนค่าของข้อมูลในออกเต็ดที่ ของไอพีแอดเดรสเป็นตัวเลขฐานสองจะมีค่าเท่ากับ "11000110" ซึ่งพิจารณา บิตแล้วมีค่าเท่ากับ "110" เมื่อเทียบกับค่าของ Subnet Mask ซึ่งมีค่าเป็น "11111111.11111111.11111111.11100000" ก็จะพบว่าค่าแอด   เดรสของเครือข่ายย่อยที่เครื่องคอมพิวเตอร์ดังกล่าวเชื่อมต่ออยู่นั้นมีค่าเท่ากับ "11001101.00101110.00001111.11000000" (มอง บิตสุดท้ายของออกเต็ดที่ มีค่าเป็น "0") หรือเขียนให้อยู่ในรูปของเลขฐานสิบได้เท่ากับ 205.46.15.192 สำหรับค่าแอดเดรสของเครื่องคอมพิวเตอร์เมื่อมีการอ้างอิงกันเองภายในเครือข่ายย่อยนั้น คำนวณหาได้จากการกำหนดค่าให้ข้อมูลในออกเต็ดที่หนึ่งถึงสาม และ บิตแรกของออกเต็ดที่ มีค่าเป็น อ่านค่าแอดเดรสท้องถิ่นของเครื่องคอมพิวเตอร์ได้เป็น"00000000.00000000.00000000.00000110" หรือ 0.0.0.6 นั่นเอง

การกำหนดไอพีแอดเดรสของเครื่องคอมพิวเตอร์ในระบบเครือข่าย

การกำหนดเองไอพีแอดเดรสของเครื่องลูกข่ายนั้น สามารถกำหนดเองได้ สองวิธี คือ
·       กำหนดให้เป็นไอพีแอดเดรสจริง
·       กำหนดให้ใช้ไอพีสำรอง

ไอพีแอดเดรสจริง

ไอพีแอดเดรสจริง คือ ไอพีแอดเดรสที่มีอยู่ในตารางเราติ้งเทเบิลของระบบอินเทอร์เน็ต ซึ่งจะถูกกำหนดให้เฉพาะแต่ละระบบเครือข่ายโดยที่ไม่ซ้ำเพื่อให้เครื่องคอมพิวเตอร์ต่าง ๆ สามารถติดต่อถึงกันได้

การกำหนดให้เป็นไอพีแอดเดรสจริงนั้นมีขอสังเกตุที่ควรพิจารณาการใช้งานดังนี้
·       สะดวกในการใช้งานเนื่องจากไอพีแอดเดรสจริงสามารถติดต่อระบบอินเทอร์เน็ตได้โดยตรง
·       เป็นอันตรายต่อการบุกรุกเนื่องจากเชื่อมต่ออินเทอร์เนตโดยตรง
·       ไอพีแอดเดรสจริงในปัจจุบันไม่เพียงพอต่อการแจกจ่าย

ไอพีแอดเดรสสำรอง

"ไอพีแอดเดรสสำรองบางคนจะเรียกว่า "ไอพีปลอมมาจากคำว่า "Private IP Address" อาจจะเรียกว่า ไอพีส่วนตัว

เนื่องจากไอพีแอดเดรสจริงไม่พอแจกจ่าย ศูนย์บริการอินเทอร์เน็ตจึงมีวิธีหลีกเลี่ยงโดยการให้ผู้ที่เชื่อมต่อกับระบบอินเทอร์เน็ตใช้หมายเลขไอพีสำรองแทนหมายเลขจริง หมายเลขไอพีสำรองนี้ไม่มีใครเป็นเจ้าของ ทุกคนสามารถนำไปใช้ภายในองค์กรตัวเองเหมือนกันว่าเป็นหมายเลขทะเบียนป้ายแดงของรถใหม่ที่ยังไม่มีป้ายทะเบียนจริง ซึ่งใช้งานได้ภายใต้ขอบเขตจำกัด หมายเลยไอพีแอดเดรสสำรองนี้ก็จะเป็นหมายเลขไอพีแอดเดรสที่สามารถใช้งานได้ภายในขอบเขตจำกัด คือ จะใช้ได้ภายในระบบเครือข่ายขององค์กรเท่านั้นไม่สามารถใช้กับระบบอินเทอร์เน็ตได้ ถ้าจะกล่าวในทางเทคนิคก็คือ
ไอพีแอดเดรสสำรองก็คือ ไอพีแอดเดรสที่ไม่มีเราติ้งเทเบิลอยู่ในระบบอินเทอร์เน็ต

รูปที่ การใช้ไอพีแอดเดรสสำรอง

หมายเลขไอพีแอดเดรสสำรอง จะมีทั้งหมด 273 ชุดประกอบไปด้วย

·       คลาส A 10.0.0.0 - 10.255.255.255 (1 ชุด)
·       คลาส B 172.168.0.0 - 172.31.255.255 (16 ชุด)
·       คลาส C 192.168.0.0 - 192.168.255.255 (256 ชุด)

ด้วยการใช้ไอพีแอดเดรสสำรองนี้ทำให้เราสามารถกำหนดไอพีแอดเดรสให้เครื่องคอมพิวเตอร์และอุปกรณ์เครือข่ายได้เป็นจำนวนมากโดยที่ไม่ต้องขอจากศูนย์บริการฯ สมมุติว่าเราเลือกใช้ไอพีสำรองในคลาส ก็จะมีหมายเลขไอพีแอดเดรสถึง 16 ล้านกว่าเลขหมาย และเมื่อเราใช้ไอพีแอดเดรสสำรองเหล่านี้แล้วเราก็ไม่จำเป็นต้องมีหมายเลขไอพีแอดเดรสจริงสำหรับเครื่องคอมพิวเตอร์ทุกเครื่อง เราใช้ไอพีแอดเดรสจริงกับเครื่องเซิร์ฟเวอร์ที่ทำหน้าที่ติดต่อกับระบบอินเทอร์เน็ตโดยตรง ซึ่งก็จะใช้เพียงไม่กี่ไอพีแอดเดรส เช่นเครื่อง เมล์เซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์ เท่านั้น ส่วนเครื่องคอมพิวเตอร์เครื่องอื่นภายในองค์กรก็ใช้ไอพีแอดเดรสสำรอง บางเครือข่ายจะใช้ไอพีแอดเดรสจริงเพียงไอพีเดียวเท่านั้นสำหรับเครื่องที่ทำหน้าที่เป็นเกตเวย์ อย่างเช่นร้านอินเทอร์เน็ตคาเฟ่จะใช้ไอพีแอดเดรสจริงเพียงไอพีแอดเดรสเดียวเท่านั้นในการเชื่อมต่อระบบเครือข่าย ส่วนเครื่องคอมพิวเตอร์ที่เหลือก็จะใช้ไอพีแอดเดรสสำรอง

กลไกในการจัดสรรไอพีแอดเดรสและเรื่องของ DHCP
การกำหนดค่าไอพีแอดเดรสให้กับคอมพิวเตอร์แต่ละเครื่องที่เชื่อมต่ออยู่ภายในเครือข่าย ทำได้ วิธีด้วยกัน แนวทางแรกคือการกำหนดไอพีแอดเดรสแบบกำหนดตายตัว (Static Addressing Assignment) ซึ่งเครื่องคอมพิวเตอร์ที่ได้รับการกำหนดค่าดังกล่าวจะใช้เลขหมายไอพีแอดเดรสดังกล่าวในการอ้างถึงตนเองกับการสื่อสารในทุกรูปแบบตลอดเวลา ซึ่งถือว่าเป็นวิธีการพื้นฐานที่ตรงไปตรงมา อย่างไรก็ตามในกรณีที่ผู้ดูแลระบบเครือข่ายประสบกับปัญหาว่าไอพีแอดเดรสที่ได้รับการอนุญาตให้ใช้งานมีอยู่ไม่เพียงพอกับจำนวนเครื่องคอมพิวเตอร์ที่เชื่อมต่ออยู่กับเครือข่ายภายในองค์กร และเห็นว่ามีเครื่องคอมพิวเตอร์กลุ่มทำการติดต่อสื่อสารไม่บ่อยมากนัก สามารถที่จะทำการจัดสรรเลขหมายไอพีแอดเดรสแบบเป็นครั้งคราวหรือที่นิยมเรียกกันเป็นทางการว่า จัดสรรแบบพลวัต (Dynamic Addressing Assignment) ในกรณีที่เครื่องคอมพิวเตอร์ดังกล่าวต้องการหมายเลขไอพีแอดเดรสสำหรับใช้ในการติดต่อสื่อสาร วิธีการแบบหลังนี้เองที่ทำให้เกิดเทคโนโลยี DHCP ขึ้น
รูปที่ 5 แนวทางในการแบ่งกลุ่มไอพีแอดเดรสและการทำงานของเครื่องคอมพิวเตอร์เซิร์ฟเวอร์ DHCP

DHCP หรือ Dynamic Host Control Protocol เป็นทั้งโปรโตคอลและมาตรฐานเครื่องคอมพิวเตอร์เซอร์ฟเวอร์ที่เกี่ยวข้องกับการถือครองกลุ่มเลขหมายไอพีแอดเดรสพร้อมทั้งจัดสรรและขอคืนมาจากเครื่องคอมพิวเตอร์เครื่องใดเครื่องหนึ่ง หรือกลุ่มใดกลุ่มหนึ่งที่มีการเชื่อมต่ออยู่กับเครือข่ายภายในองค์กร หลักการง่ายของกระบวนการดังกล่าวก็คือ ผู้ดูแลระบบเครือข่ายทำการกันเลขหมายไอพีแอดเดรสกลุ่มหนึ่งไว้เป็นแอด เดรสส่วนกลางพร้อมกับเก็บรวบรวมไว้ในเครื่องคอมพิวเตอร์เซอร์ฟเวอร์ DHCP เมื่อใดก็ตามที่มีเครื่องคอมพิวเตอร์เครื่องใดเครื่องหนึ่งซึ่งถูกจัดกลุ่มให้ใช้ไอพีแอดเดรสแบบพลวัต ต้องการขอหมายเลขไอพีแอด    เดรส เครื่องเซอร์ฟเวอร์ DHCP ก็จะทำการจัดสรรไอพีแอดเดรสชั่วคราวจากกลุ่มเลขหมายที่บันทึกเก็บไว้ พร้อมทั้งเรียกคืนเมื่อสิ้นสุดการใช้งาน เป็นที่แน่นอนว่าเครื่องคอมพิวเตอร์แต่ละเครื่องย่อมจะได้รับการกำหนดหมายเลขไอพีแอดเดรสต่างค่ากันในช่วงเวลาเดียวกัน และหมายเลขไอพีแอดเดรสที่เครื่องคอมพิวเตอร์แต่ละเครื่องได้รับในแต่ละครั้งมีโอกาสไม่ตรงกัน รูปที่ เป็นการขยายความการทำงานของเซอร์ฟเวอร์แบบ DHCP

ข้อคิดในการใช้เทคนิค DHCP ก็คือ ผู้ดูแลระบบเครือข่ายต้องแน่ใจว่าเครื่องโฮสคอมพิวเตอร์ที่ได้รับการจัดสรรไอพีแอดเดรสแบบพลวัต จะไม่ก่อให้เกิดปัญหาในการใช้งานของบุคลากรภายในองค์กร ไม่ควรกำหนดไอพีแอดเดรสแบบพลวัตให้กับเครื่องคอมพิวเตอร์ที่ทำหน้าที่เป็นเมล์เซอร์ฟเวอร์ หรือเว็บเซิร์ฟเวอร์ เนื่องจากเครื่องคอมพิวเตอร์ในกลุ่มนี้ต้องการเลขหมายไอพีแอดเดรสที่ได้รับการกำหนดตายตัวสำหรับการติดต่อสื่อสารกับทั้งเครือข่ายภายในองค์กรและเครือข่ายอินเตอร์เน็ตอยู่ตลอดเวลา

ในกรณีของเครือข่ายคอมพิวเตอร์ภายในองค์กรที่มีการจัดวางโครงสร้างโดยแบ่งออกเป็นเซ็กเมนต์ย่อย ๆ แต่ละเซ็กเมนต์ถูกแยกออกจากกันโดยเชื่อมต่อผ่านอุปกรณ์เราเตอร์ การติดตั้งเซอร์ฟเวอร์ DHCP เพื่อทำหน้าที่จัดสรรหมายเลขไอพีแอดเดรสให้กับคอมพิวเตอร์แต่ละเครื่องภายในเครือข่าย ผู้ดูแลระบบจะต้องทำการตรวจสอบให้มั่นใจว่าเราเตอร์ที่มีการติดตั้งใช้งานรองรับมาตรฐาน Request for Comment (RFC)1542 ซึ่งเป็นข้อกำหนดมาตรฐานในการติดต่อสื่อสารระหว่างเครื่องเซอร์ฟเวอร์ DHCP กับเครื่องโฮสคอมพิวเตอร์ โดยใช้โปรโตคอล DHCP หรือไม่ หากพบว่าเราเตอร์ภายในเครือข่ายของท่านไม่สนับสนุนมาตรฐานดังกล่าว ก็จำเป็นที่จะต้องตัดสินใจ จะลงทุนซื้อเราเตอร์ตัวใหม่ที่รองรับมาตรฐาน RFC1542 หรือแยกติดตั้งเซอร์ฟเวอร์ DHCP สำหรับให้บริการจัดสรรไอพีแอดเดรสให้กับเครื่องคอมพิวเตอร์ในแต่ละเซ็กเมนต์ ซึ่งคำตอบในเรื่องนี้น่าจะเกี่ยวข้องกับเงินลงทุนและความสะดวกในการติดตั้งเป็นสำคัญ

เมื่อผู้ดูแลระบบได้ทำการติดตั้งเครื่องคอมพิวเตอร์เซอร์ฟเวอร์ DHCP และทำการปรับแต่งค่าซอฟท์แวร์ภายในเครื่องโฮสคอมพิวเตอร์ที่เกี่ยวข้องให้เลือกใช้ไอพีแอดเดรสแบบพลวัตแล้ว เมื่อเริ่มเปิดสวิทช์เครื่องคอมพิวเตอร์เซอร์ฟเวอร์ DHCP เครื่องเซอร์ฟเวอร์จะเริ่มทำการส่งแพ็กเกตข้อมูลที่มีชื่อเรียกว่า DHCPDISCOVER เป็นลักษณะกระจายข่าวเป็นบนเครือข่ายคอมพิวเตอร์ภายในองค์กร หรือเฉพาะในเซ็กเมนต์หนึ่ง ๆ ซึ่งขึ้นอยู่กับการติดตั้งดังได้กล่าวถึงในย่อหน้าที่แล้ว การส่งข้อมูล DHCPDISCOVER มีจุดประสงค์เพื่อให้ข้อมูลที่จำเป็นสำหรับเครื่องโฮสคอมพิวเตอร์แต่ละเครื่อง สำหรับใช้อ้างอิงเมื่อมีความต้องการจะขอหมายเลขไอพีแอดเดรสชั่วคราว หากไม่มีการตอบรับกลับมาจากบรรดาเครื่องโฮสคอมพิวเตอร์ เครื่องเซอร์ฟเวอร์ก็จะทำการส่งแพ็กเกต DHCPDISCOVER ซ้ำอีก ครั้ง โดยทิ้งระยะห่างจากครั้งแรกและจากครั้งถัด ๆ ไปเป็นเวลา วินาที, 13 วินาที 16 วินาทีและครั้งสุดท้ายเป็นช่วงเวลาที่กำหนดขึ้นแบบสุ่ม หลังจากนั้นหากยังไม่มีการตอบรับกลับมาอีก เครื่อเซอร์ฟเวอร์ DHCP ก็จะทำการส่งแพ็กเกตดังกล่าวขึ้นใหม่ทุก ๆ ช่วงเวลา นาที

ในกรณีที่มีเครื่องโฮสคอมพิวเตอร์เครื่องใดเครื่องหนึ่งภายในเครือข่าย เกิดต้องการใช้ไอพีแอดเดรสแบบชั่วคราวขึ้น เครื่องโฮสคอมพิวเตอร์นั้นจะทำการส่งแพ็กเกตข้อมูลชื่อ DHCPLEASE กลับมายังเครื่องเซอร์ฟเวอร์ DHCP ซึ่งเครื่องเซอร์ฟเวอร์จะตอบรับด้วยการส่งข้อมูล DHCPOFFER ซึ่งยังมีลักษณะเป็นการกระจายข่าวสาร เนื่องจากเซอร์ฟเวอร์ยังไม่สามารถระบุถึงเครื่องโฮสคอมพิวเตอร์ปลายทางได้ อันเป็นผลมาจากการที่เครื่องดังกล่าวยังไม่ได้รับการกำหนดไอพีแอดเดรสให้นั่นเอง ข้อมูลที่ถูกส่งมาภายใน DHCPOFFER ประกอบไปด้วยค่าไอพีแอดเดรสค่า Subnet Mask ที่จะกำหนดให้ และแอดเดรสฮาร์ดแวร์ของเครื่องโฮสคอมพิวเตอร์นั้น รวมถึงไอพีแอดเดรสของเครื่องเซอร์ฟเวอร์DHCP ที่ทำหน้าที่กำหนดไอพีแอดเดรสแบบชั่วคราว (เพื่อป้องกันการสับสนในกรณีที่มีการติดตั้งเซอร์ฟเวอร์ DHCP มากกว่า เครื่องและช่วงระยะเวลาที่จะให้ยืมใช้ไอพีแอดเดรสชั่วคราวนั้น รายละเอียดดังแสดงในรูปที่ 6

รูปที่ 6 กลไกในการร้องขอและจัดสรรไอพีแอดเดรสแบบพลวัตจากเครื่องเซอร์ฟเวอร์ DHCP

การระบุแอดเดรสฮาร์ดแวร์ของเครื่องโฮสคอมพิวเตอร์ปลายทาง ซึ่งมักจะใช้แอดเดรสอีเธอร์เน็ตของแผงวงจร LAN เป็นการสร้างความมั่นใจว่าได้มีการกำหนดไอพีแอดเดรสให้กับเครื่องคอมพิวเตอร์ถูกเครื่องอย่างแน่นอน ซึ่งเมื่อเครื่องโฮสคอมพิวเตอร์ได้รับข้อมูลต่าง ๆ ที่จำเป็นแล้ว ก็จะทำการส่งแพ็กเกตที่มีชื่อว่า DHCPREQUEST เป็นการยืนยันการใช้ไอพีแอดเดรสกลับไปยังเครื่องเซอร์ฟเวอร์ DHCP ซึ่งในขั้นตอนสุดท้ายนี้เครื่องเซอร์ฟเวอร์ DHCP ก็จะทำการยืนยันกลับเป็นครั้งสุดท้ายไปนังเครื่องโฮสคอมพิวเตอร์ด้วยแพ็กเกตที่มีชื่อว่า DHCPACK โดยในทันทีที่เครื่องโฮสคอมพิวเตอร์ได้รับแพ็กเกตข้อมูลดังกล่าว ก็ถือว่าพร้อมที่จะใช้หมายเลขไอพีแอดเดรสที่ได้รับการจัดสรรให้นั้นในกระบวนการสื่อสารตามที่ต้องการต่อไป

วันพุธที่ 2 ธันวาคม พ.ศ. 2558


ชนิดข้อมูลใน MySQL (Datatype)


VARCHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะ
สำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะ สามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่ หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก

CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่ สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูล
แบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR

TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัด
แค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูล ได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่
จริงๆ มันต่างกันตรงที่ มันทำFULL TEXT SEARCH ได้

TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ 

MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร

LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร

TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติม ในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมี ความแตกต่างดังนี้
      - UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำใหสามารถเก็บค่าได้ ตั้งแต่ 0 - 255
      - UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก "แอ ตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำ ให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น

SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย)
ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บ ข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215
(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น
UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT 

BIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ - 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT 

FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูล ที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์ เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E- 38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38

DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ
2.2250738585072014E-308 ถึง 1.7976931348623157E+308

DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)

DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD

DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น
(query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS 

TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037 

TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 ข้อสังเกต ค่าที่เก็บในข้อมูลประเภท TIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูล น้อยกว่า... ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือ จะต้องอยู่ในระหว่าง 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้ ฟิลด์ชนิด YEAR ก็เช่นกันครับ... ใช้เนื้อที่แค่ 1 ไบต์เท่านั้นในการ เก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ. 1970 ถึง 2069 ในกรณี 2 หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999 เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อ ความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน 3 ไบต์ ต่อ 1 ระเบียน มีข้อมูล 4 ล้านระเบียน ก็เพิ่ง ต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล 4 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)

TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้น
จะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์

BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB

MEDIUMBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB

LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB ข้อสังเกต ข้อมูลประเภท BLOB นั้น แม้จะมีประโยชน์ในเรื่องของการเก็บข้อมูลประเภท BINARY ให้อยู่กับตัวฐานข้อมูล ทำให้สะดวกเวลาสืบค้นก็ตาม แต่มันก็ทำให้ฐานข้อมูลมีขนาดใหญ่ เกินความจำเป็นด้วย ทำให้เกิดความไม่สะดวกในการสำรองฐานข้อมูลในกรณีที่ มีข้อมูลอัพโหลดไป เก็บมากๆ โดยปกติแล้ว จะใช้วิธีการอัพโหลดไปเก็บไว้ในโฟลเดอร์ แล้วเก็บลิงก์ไปยังไฟล์เหล่านั้น เป็นฟิลด์ชนิด VARCHAR มากกว่า


วันพุธที่ 1 กรกฎาคม พ.ศ. 2558

ค่านิยม 12 ประการ

1 มีความรักชาติ ศาสน์ กษัตริย์

          1.1 เป็นพลเมืองดีของชาติ เช่น ยืนตรงเคารพธงชาติ  ร้องเพลงชาติ
          1.2 ธำรงไว้ซึ่งความเป็นไทย เช่น เข้าร่วม ส่งเสริม สนับสนุนกิจกรรมที่สร้างความสามัคคี ปรองดองที่เป็นประโยชน์ต่อ โรงเรียน ชุมชนและสังคม
        1.3ศรัทธา ยึดมั่น ปฏิบัติตนตามหลักของศาสนา เช่น เข้าร่วมกิจกรรมทางศาสนาที่ตนเองนับถือ และปฏิบัติตนตามหลักของศาสนาที่ตนนับถือ
          1.4 เคารพเทิดทูนสถาบันพระมหากษัตริย์ เช่น มีส่วนร่วมหรือจัด                                                          กิจกรรมที่เกี่ยวกับสถาบันพระมหากษัตริย์ 
 2 มีความซื่อสัตย์สุจริต
        


  2.1 ประพฤติตรงตามความเป็นจริงต่อตนเองทั้งทายกาย วาจา ใจ เช่น ให้ข้อมูลที่ถูกต้องและเป็นจริงปราศจากความลำเอียง  และปฏิบัติตนโดยคำนึงถึงความถูกต้องละอายและเกรงกลัวต่อการกระทำผิดและปฏิบัติตามคำมั่นสัญญา

           2.2  ประพฤติตรงตามความเป็นจริงต่อผู้อื่นทั้งทายกาย วาจา ใจ เช่น ไม่ถือเอาสิ่งของหรือผลงานของผู้อืนมาเป็นของตนเอง  ปฏิบัติตนต่อผู้อื่นด้วยความซื่อตรงและไม่หาประโยชน์ในทางที่ไม่ถูกต้อง


 3 กตัญญูต่อพ่อแม่ ผู้ปกครอง ครูบาอาจารย์
          3.1  ปฏิบัติตามข้อตกลง  กฎเกณฑ์  ระเบียบข้อบังคับของครอบครัว  โรงเรียน  และสังคม เช่น ปฏิบัติตามข้อตกลง  กฎเกณฑ์ ระเบียบข้อบังคับของครอบครัว  โรงเรียน และสังคม ไม่ละเมิดสิทธิของผู้อื่น  และตรงต่อเวลาในการปฏิบัติกิจกรรมต่างๆในชีวิตประจำวันและรับผิดชอบในการทำงาน


4 ใฝหาความรู้่ หมั่นศึกษาเล่าเรียนทั้งทางตรงและทางอ้อม
          4.1   ตั้งใจเพียรพยายามในการเรียน และเข้าร่วมกิจกรรมการเรียนรู้ เช่น ตั้งใจเรียน  เอาใจใส่และมีความเพียรพยายามในการเรียนรู้  และสนใจเข้าร่วมกิจกรรมการเรียนรู้ต่างๆ
          4.2   แสวงหาความรู้จากแหล่งเรียนรู้ต่างๆทั้งภายในและภายนอกโรงเรียน  ด้วยการเลือกใช้สื่ออย่างเหม่ะสม  บันทึกความรู้ วิเคราะห์สรุปเป็นองค์ความรู้  และสามารถนำไปใช้ในชีวิตประจำวันได้ เช่น  ศึกษาค้นคว้าหาความรู้จากหนังสือ  เอกสาร  สิ่งพิมพ์  สื่อ  เทคโนโลยีต่างๆ  แหล่งเรียนรู้ทั้งภายในและภายนอกโรงเรียน และเลือกใช้สื่อได้อย่างเหมาะสม  บันทึกความรู้  วิเคราะห์  ตรวจสอบจากสิ่งที่เรียนรู้  สรุปเป็นองค์ความรู้  และแลกเปลี่ยนความรู้ด้วยวิธีการต่างๆเพื่อนำไปใช้ในชีวิตประจำวัน


 5.รักษาวัฒนธรรมประเพณีไทย
        
 5.1 ภาคภูมิใจในขนบธรรมเนียม ประเพณี  ศิลปะ  วัฒนธรรมไทยและมีความกตัญญูกตเวที เช่น แต่งกายและมีมารยาทงดงามแบบไทย  มีสัมมาคารวะ   กตัญญูกตเวทีต่อผู้มีพระคุณ  ร่วมกิจกรรมที่เกี่ยวข้องกับประเพณี ศิลปะ และวัฒนธรรมไทย  และชักชวน แนะนำให้ผู้อื่นตามขนบธรรมเนียมประเพณี ศิลปะ และวัฒนธรรมไทย
          5.2 เห็นคุณค่าและใช้ภาษาไทยในการสื่อสารได้อย่างถูกต้องเหมาะสม เช่น ใช้ภาษาไทยและเลขไทยในการสื่อสารได้อย่างถูกต้อง เหมาะสมและชักชวน แนะนำให้ผู้อื่นเห็นคุณค่าของการใช้ภาษาไทยที่ถูกต้อง
          5.3 อนุรักษ์และสืบทอดภูมิปัญญาไทย เช่น  นำภูมิปัญญาไทยมาใช้ให้เหมาะสมในวิถีชีวิต ร่วมกิจกรรมที่เกี่ยวข้องกับภูมิปัญญาไทยและแนะนำ มีส่วนร่วมในการสืบทอดภูมิปัญญาไทย



  6.มีศีลธรรม รักษาความสัตย์
          


7. เข้าใจเรียนรู้การเป็นประชาธิปไตย



 8. มีระเบียบวินัย รักษากฎหมาย ผู้น้อยรู้จักเคารพผู้ใหญ่


9. มีสติรู้ตัว รู้คิด รู้ทำ

                9.1  ตั้งใจและรับผิดชอบ มีสติ คิดรอบคอบ ทำในสิ่งที่เป็นประโยชน์ ในการปฏิบัติหน้าที่การงาน เช่น  เอาใจใส่ต่อการปฏิบัติหน้าที่ที่ได้รับมอบหมาย  ตั้งใจและรับผิดชอบในการทำงานให้สำเร็จ  และปรับปรุงและพัฒนาการทำงานด้วยตนเอง
              9.2   ทำงานด้วยความเพียรพยายามและอดทนเพื่อให้งานสำเร็จตามเป้าหมาย เช่น  ทุ่มเททำงาน  อดทน ไม่ย่อท้อต่อปัญหาและอุปสรรคในการทำงาน พยายามแก้ปัญหาและอุปสรรคในการทำงานให้สำเร็จ และชื่นชมผลงานด้วยความภาคภูมิใจ


10. รู้จักดำรงตนโดยใช้หลักปรัชญาเศรษฐกิจพอเพียง
              10.1  ดำเนินชีวิตอย่างพอประมาณ  มีเหตุผล  รอบคอบ  มีคุณธรรม เช่น ใช้ทรัพย์สินของตนเอง เช่น  เงิน  สิ่งของ เครื่องใช้  ฯลฯ  อย่างประหยัด คุ้มค่า และเก็บรักษาดูแลอย่างดี รวมทั้งการใช้เวลาอย่างเหมาะสม  ใช้ทรัพยากรของส่วนรวมอย่างประหยัด  คุ้มค่า และเก็บรักษาดูแลอย่างดี  ปฏิบัติตนและตัดสินใจด้วยความรอบคอบ มีเหตุผลและไม่เอาเปรียบผู้อื่นและไม่ทำให้ผู้อื่นเดือดร้อน  พร้อมให้อภัยเมื่อผู้อื่นกระทำผิด
              10.2 มีภูมิคุ้มกันในตัวที่ดี ปรับตัวเพื่ออยู่ในสังคมได้อย่างมีความสุข เช่น วางแผนการเรียน การทำงานและการใช้ชีวิตประจำวันบนพื้นฐานของความรู้  ข้อมูล ข่าวสารและรู้เท่าทันการเปลี่ยนแปลงของสังคมและสภาพแวดล้อม ยอมรับและปรับตัวเพื่ออยู่ร่วมกับผู้อื่นได้อย่างมีความสุข


 11. มีความเข้มแข็งทั้งร่ายกายและจิตใจ ไม่ยอมแพ้ต่ออำนาจใฝ่ต่ำ


                                     

   12. คำนึงถึงผลประโยชน์ของส่วนรวมมากกว่าผลประโยชน์ของตนเอง

                12.1 ช่วยเหลือผู้อื่นด้วยความเต็มใจและพึงพอใจโดยไม่หวังผลตอบแทน เช่น ช่วยพ่อแม่ ผู้ปกครอง ครูทำงานด้วยความเต็มใจ  อาสาทำงานให้ผู้อื่นด้วยกำลังกาย กำลังใจ และกำลังสติปัญญาโดยไม่หวังผลตอบแทนและแบ่งปันสิ่งของ  ทรัพย์สิน และอื่นๆและช่วยแก้ปัญหาหรือสร้างความสุขให้กับผู้อื่น
                12.2 เข้าร่วมกิจกรรมที่เป็นประโยชน์ต่อโรงเรียน ชุมชนและสังคม เช่น ดูแลรักษาสาธารณสมบัติและสิ่งแวดล้อมด้วยความเต็มใจ  เข้าร่วมกิจกรรมที่เป็นประโยชน์ต่อโรงเรียน ชุมชนและสังคม และเข้าร่วมกิจกรรมเพื่อแก้ปัญหาหรือร่วมสร้างสิ่งที่ดีงามของส่วนรวมตามสถานการณ์ที่เกิดขึ้นด้วยความกระตือรือร้น