| << NetBIOS คืออะไร?? >> |
| ความเป็นมาของ NetBIOS
NetBIOS ย่อมาจาก Network Basic Input/Output System ถูกพัฒนาขึ้นโดย Sytec NetBIOS ถูกออกแบบมาเพื่อเป็น protocol ที่เป็นตัวเชื่อม (interface) ระหว่างระบบปฏิบัติการกับฮาร์ดแวร์ เพื่อให้ application สามารถสื่อสารกับเครือข่ายได้โดยเป็นอิสระจากฮาร์ดแวร์ ทั้งนี้ application จะสามารถเข้าถึงเลเยอร์สูงสุดของ OSI model ได้เท่านั้น ซึ่งทำให้ application ที่สร้างขึ้นมาสามารถทำงานได้ในเครือข่ายที่มี network environment ไม่เหมือนกัน ทั้งนี้ NetBIOS จะทำหน้าที่ขนส่งข้อมูลไปยัง application ที่อยู่บนเครื่องอื่นในเครือข่ายให้ NetBIOS name การที่โหนดแต่ละโหนดจะสื่อสารกันได้จะต้องมีชื่อ (NetBIOS name) ที่ไม่ซ้ำกันในเครือข่าย ซึ่งโหนดอาจจะหมายถึง เครื่องคอมพิวเตอร์, เราเตอร์, เครื่องพิมพ์ โดย NetBIOS Name จะมีชื่อยาวได้สูงสุด 16 Bytes หรือ 16 ตัวอักษร แต่สำหรับระบบปฏิบัติการของ Microsoft สามารถตั้ง NetBIOS name ได้สูงสุดเพียง 15 ตัวอักษรเท่านั้น เพราะ byte ที่ 16 นั้นถูกนำไปใช้เพื่อบ่งบอกชนิดของ NetBIOS name นั้นๆ เช่น domain name, group name, computer name หรืออื่นๆ NetBIOS name โดยทั่วไป สามารถแบ่งออกได้เป็น 2 ประเภทคือ 1. Unique name คือชื่อที่ไม่สามารถซ้ำกันได้ในเครือข่ายวงเดียวกัน โดยส่วนใหญ่จะเป็น Computer name เช่น MYMACHINE 2. Group name คือชื่อของ domain หรือ workgroup ที่เครื่องนั้นๆ สังกัดอยู่ เช่น MYWORKGROUP วิธีการส่งข้อมูลของ NetBIOS NetBIOS ถูกออกแบบให้ทำงานกับกลุ่มของเครื่องคอมพิวเตอร์ที่ใช้ broadcast medium เดียวกัน ซึ่งมันสามารถทำงานได้ทั้งแบบ connection-oriented , และแบบ connectionless นอกจากนี้ยังสนับสนุนการทำงานแบบ broadcast และ multicast อีกด้วย แบ่งออกเป็น 2 แบบคือ 1. Session mode เป็นการรับส่งข้อมูลที่มีขนาดใหญ่ มีระบบตรวจสอบข้อผิดพลาดและการกู้คืน (recovery) แต่มีข้อเสียที่เป็นการสื่อสารแบบ 1 ต่อ 1 เท่านั้น ขนาดของข้อมูลสามารถขยายได้สูงสุดถึง 64 KByte นอกจากนี้ยังมี NetBIOS session control command และ NetBIOS session data tranfer command ซึ่งช่วยให้สามารถทำการสื่อสารผ่านทาง session ได้ (connection-oriented connection) 2. Datagram mode (รวมถึงการส่งข้อมูลแบบ broadcast) สามารถรับส่งข้อมูลได้เร็วที่สุด แต่ไม่มีการรับประกันว่าข้อมูลจะไปถึงปลายทางหรือไม่ และไม่สามารถส่งข้อมูลซ้ำในกรณีที่ข้อมูลไปไม่ถึงปลายทางได้ โดยปกติจะมีขนาด 512 Byte แต่สามารถสื่อสารกับเครื่องคอมพิวเตอร์อื่นได้หลายเครื่องในเวลาเดียวกัน (connectionless connection) NetBIOS Service over TCP/IP 1. Name Service ให้บริการลงทะเบียนและยกเลิกการใช้งาน NetBIOS name ภายในเครือข่ายที่อยู่ใน segment เดียวกัน โดยใช้โปรโตคอล UDP port 137 (broadcast packet) ทั้งนี้ Name service สามารถใช้ได้ในวง LAN เท่านั้นเนื่องจาก router ส่วนใหญ่จะถูกตั้งค่าให้ไม่อนุญาตให้ UDP broadcast packet ผ่านไปได้ 2. Datagram Service เป็นบริการที่ทำให้สามารถสื่อสารกับโหนดอื่นๆ ได้ โดยสามารถส่งข้อมูลได้ทั้งแบบ connectionless และแบบ broadcast โดยใช้ UDP protocol port 138 ตัวอย่างการนำไปใช้งานที่เห็นได้ชัดเจนคือ browser service ซึ่งจะถูกเรียกใช้เมื่อผู้ใช้รัน network neighborhood จาก Windows Desktop ซึ่ง browser service จะเรียกใช้งาน datagram service โดยการ broadcast ข้อความออกไป ทั้งนี้ Datagram service ซึ่งรันอยู่บน UDP port 3. Session Service เป็นบริการที่ให้การเชื่อมต่อแบบ connection-oriented โดยใช้ TCP protocol port 139 ตัวอย่างการใช้งานที่เห็นได้ชัดเจนคือ file sharing, printer sharing นอกจากนี้ยังมี network application ของ Windows ทำงานโดยอาศัยบริการนี้ เช่น Server Manager, Event Viewer, Register Editor และ Performance Monitor Name table Name tables เป็นตารางที่ใช้เก็บข้อมูล NetBIOS name ของเครื่องตัวเอง โดยภายหลังจากที่บริการพื้นฐานของ NetBIOS ทั้งหมดถูกรันในเครื่องคอมพิวเตอร์นั้นๆ แล้ว มันจะลงทะเบียน (register) ชื่อ (NetBIOS name) ลงใน local NetBIOS name table จากนั้น NetBIOS application ก็จะรอดูว่ามีเครื่องอื่นส่ง query ที่เกี่ยวข้องกับชื่อที่ได้ลงทะเบียนไว้แล้วหรือไม่ (ผ่านทาง TCP หรือ UDP port) Micorsoft ได้ใช้ byte ที่ 16 ของ NetBIOS name ในการเก็บข้อมูลชนิด (type) ของ NetBIOS name นั้นๆ ซึ่งสามารถตรวจสอบได้ เช่น หากพิมพ์คำสั่ง NBTSTAT -n ดูก็จะได้ผลคล้ายๆ ตัวอย่างด้านล่าง Local Area Connection: Node IpAddress: [10.68.7.11] Scope Id: [] NetBIOS Local Name Table Name Type Status Local Area Connection: NetBIOS Remote Cache Name Table Name Type Host Address Life [sec] |