IPX/SPX Protocal


    โปรโตคอล IPX / SPX พัฒนาขึ้นมาโดยบริษัท Novell แบ่งออกเป็นโปรโตคอลหลัก 2 โปรโตคอล คือ Internetwork Packet Exchange ( IPX ) และ Sequenced Packet Exchange ( SPX ) โดยโปรโตคอล IPX ทำหน้าที่ในระดับ network layer ตามมาตรฐาน OSI Model มีกลไกในการส่งข้อมูลแบบ connectionless, unreliable หมายความว่า เมื่อมีการส่งข้อมูลโดยไม่ต้องทำการสถาปนาการเชื่อมต่อกันระหว่าง host กับเครื่องคอมพิวเตอร์ที่ติดต่อกันอย่างถาวร และไม่ต้องการรอสัญญาณยืนยันการรับข้อมูลจากปลายทางโดยตัวโปรโตคอลจะพยายามส่งข้อมูลนั้นไปยังปลายทางให้ดีที่สุด สำหรับโปรโตคอล SPX ทำหน้าที่ในระดับ transport layer ตามมาตรฐาน OSI Model โดยส่งผ่านข้อมูลในแบบตรงข้ามกับโปรโตคอล IPX คือ   ต้องมีการทำการสถาปนาการเชื่อมโยงกันก่อน และมีการส่งผ่านข้อมูลที่เชื่อถือได้ ด้วยการตรวจสัญญาณยืนยันการรับส่งข้อมูลจากปลายทาง


NetBIOS Name Resolution Component   
     เครื่องคอมพิวเตอร์จะไม่สามารถติดต่อสื่อสารกันได้โดยใช้ NetBIOS name จะต้องแปลง NetBIOS name เป็นค่า IP address ก่อน จึงจะสามารถติดต่อไปยังเป้าหมายที่แท้จริงได้ ซึ่งเป็นที่มาของกระบวนการ NetBIOS name resolution นี้ ทั้งนี้ผู้ใช้จะไม่สามารถมองเห็นการทำงานของกระบวนการนี้ได้ (transparent to the user) กระบวนการนี้มีประโยชน์เพราะช่วยให้ผู้ใช้ไม่ต้องจำค่า IP address ซึ่งมีความยุ่งยากมากกว่าการจำ NetBIOS name NBT มีกลไกในการหาค่า IP address จาก NetBIOS name หรือ Computer name คือ การส่ง broadcast, ดูจาก LMHOSTS file และขอข้อมูลจาก WINS เครือข่ายส่วนใหญ่จะใช้ค่า default ซึ่งก็คือ ค้นหา IP address โดยการส่ง broadcast packet ถ้าเครือข่ายมีความซับซ้อนมากขึ้น เช่น มี WAN link ซึ่งไม่สามารถส่ง broadcast packet ได้นั้น ก็สามารถใช้ไฟล์ LMHOSTS ได้ อย่างไรก็ตามสำหรับเครือข่ายขององค์กรขนาดใหญ่นั้นจำเป็นต้องมีศูนย์กลางในการจัดการจึงได้มีการนำ WINS server มาใช้บริหารจัดการ NetBIOS name จนกระทั่งในปัจจุบันกลไกการทำงาน NetBIOS name resolution ได้พัฒนาขึ้นอย่างมาก เพื่อให้สามารถค้นหา IP address ได้มีประสิทธิภาพ จึงได้มีการคิดค้นกลไกเพิ่มเติม โดยสามารถค้นหา IP address ได้จาก 5 วิธีคือ
•  NameCache
เมื่อจำเป็นต้องค้นหา IP address จาก NetBIOS name จะมีการค้นหาใน name cache เป็นอันดับแรกเสมอ ซึ่ง name cache ก็คือหน่วยความจำที่ถูกแบ่งไว้สำหรับเก็บข้อมูลเพื่อใช้ในการทำ mapping ไปมาระหว่าง NetBIOS name และ IP address นั่นเอง
ข้อดีของการค้นหา IP address จาก name cache ก็คือลดการส่งข้อมูล request หา IP address ของ NetBIOS name ที่ซ้ำกันลงไป โดยไม่สนใจว่าวิธีการส่งข้อมูลหา IP address นั้นจะเป็น broadcast หรือ WINS server ก็ตาม ซึ่งช่วยให้สามารถทำงานได้เร็วขึ้นหากต้องการดูข้อมูล name cache ของเครื่องคอมพิวเตอร์สามารถใช้คำสั่ง NBTSTAT -c ได้ ซึ่งจะได้ผลคล้ายกับตัวอย่างด้านล่าง
C:\>nbtstat-cLocalAreaConnection:
Node IpAddress: [192.168.97.111] Scope Id: []NetBIOS Remote Cache Name Tabl
โดยคอลัมน์สุดท้ายด้านขวามือแสดงจำนวนเวลาที่ข้อมูลดังกล่าวจะยังคงอยู่ใน name cache ( เป็นวินาที) ทั้งนี้สามารถตั้งค่าจำนวนเวลาที่ต้องการให้ข้อมูลถูกเก็บไว้ใน cache ได้ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\CacheTimeout
ค่า default ของ CacheTimeout เป็น 600,000 milliseconds หรือ 10 นาที ซึ่งสามารถปรับเปลี่ยนให้เพิ่มขึ้นได้หากในเครือข่ายไม่ค่อยมีการเปลี่ยนแปลง IP address เท่าใดนัก
ปัญหาที่จะเกิดขึ้นส่วนใหญ่คือ เมื่อมีการเปลี่ยนแปลง IP address ของเครื่องปลายทาง แต่ข้อมูล IP address ใน name cache ยังคงเป็นค่าเก่าอยู่ก็จะทำให้เกิดปัญหาไม่สามารถสื่อสารกันได้ ซึ่งสามารถแก้ปัญหาได้โดยสั่งให้ NBT ทำการ refresh ข้อมูลใหม่ โดยใช้คำสั่ง NBTSTAT -R
•  Broadcast
เป็นวิธีที่เป็น default ของการค้นหาค่า IP address สำหรับ Windows NT ซึ่งวิธีนี้เหมาะสำหรับเครือข่ายขนาดเล็กเท่านั้น ซึ่งการส่ง broadcast query นี้กระทำผ่าน NetBIOS name service ผ่านทาง UDP port 137
เมื่อส่ง broadcast query ออกไปแล้ว ทุกเครื่องที่อยู่ใน subnet เดียวกันจะได้รับ packet ดังกล่าว ซึ่งต้อง interupt การทำงานของ CPU เพื่อส่งต่อ packet ดังกล่าวไปยัง network protocol โดยทุกเครื่องจะต้องนำ query ดังกล่าวไปตรวจสอบกับ name table ของตนเองว่ามี NetBIOS ตรงกับที่ request มาหรือไม่ หากไม่ตรงก็ไม่ต้องทำอะไร หากตรงเครื่องดังกล่าวจะต้องส่ง response message กลับไปยังผู้ที่ส่ง broadcast query มา
อย่างไรก็ตามการส่ง broadcast query นี้ถือว่าเป็นวิธีที่ดีที่สุดสำหรับเครือข่ายขนาดเล็ก เพราะหากใช้ LHHOSTS file หรือ WINS server แล้ว ผู้ดูแลระบบจะต้องเสียเวลาในการติดตั้งและตั้งค่าค่อนข้างนาน และที่สำคัญการใช้วิธี broadcast นี้ไม่จำเป็นต้องได้รับการดูแลจากผู้ดูแลระบบเลย
โดยปกติจะส่ง broadcast query ออกไปจำนวน 3 ครั้ง หากไม่ได้รับ response message กลับมา โดยมี broadcast query timeout เป็น 750 milliseconds ซึ่งอาจกล่าวได้ว่า ถ้าหากส่ง broadcast query เพื่อหา IP address ของโหนดที่ปิดตัวเองลงไปแล้ว จะต้องใช้เวลาทั้งสิ้นประมาณ 26 วินาที จึงจะรู้ว่าโหนดดังกล่าวไม่ active ซึ่ง ค่า broadcast query timeout ดังกล่าวนี้อาจจะนานหรือเร็วเกินไปสำหรับบางเครือข่าย อย่างไรก็ตาม ผู้ดูแลระบบสามารถตั้งค่าเรจิสทรีย์เพิ่มหรือลดค่า timeout ได้ เช่น หากปรับลดค่า broadcast query timeout เป็น 250 millisecons ก็จะทำให้ ใช้เวลาในการรอลดลงเป็น 26/3 วินาที
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters\BcastQueryTimeout
ค่า default เป็น 750 milliseconds ( สำหรับเครือข่ายขนาดเล็กควรปรับค่านี้ลง จะทำให้สามารถเข้าใช้งาน network neighborhood ได้เร็วขึ้น)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters\BcastNameQueryCount
ค่า default เป็น 3 หมายถึง NBT จะส่ง query ออกไป 3 ครั้ง หากไม่ได้รับ response message
•  LMHOSTSFile
คำว่า LM ย่อมาจาก LAN Manager ซึ่งเป็นซอฟแวร์ที่ใช้ก่อนหน้า Windows NT โดยข้อมูลในไฟล์ lmhosts เป็น text ที่มีรูปแบบแน่นอน ใช้สำหรับกำหนดชื่อเครื่องคอมพิวเตอร์ให้เข้ากับ IP address ที่ต้องการ โดยสามารถ map ได้แม้กับเครื่องที่อยู่คนละ subnet
ไฟล์ lmhosts นี้ถูกเก็บไว้ที่ <systemroot>\drivers\etc\lmhosts ซึ่งไฟล์นี้จะไม่มีอยู่โดย default แต่จะมีไฟล์ lmhosts.sam ซึ่งเป็นไฟล์ตัวอย่างแทน
สำหรับรูปแบบการใช้งานนั้น สามารถดูรายละเอียดเพิ่มเติมได้ที่ ผู้ใช้ Windows สามารถกำหนดได้ว่าให้ resolve NetBIOS name โดยดูจากไฟล์ lmhosts โดยการเลือก checkbox ชื่อ " Enable LMHOSTS Lookup" ซึ่งอยู่ภายใต้ Network Control Panel หรือมีวิธีทำอีกวิธีคือ ตั้งค่าเรจิสทรีย์ของ EnableLMHOSTS ให้มีค่าเป็น 1 ซึ่งคีย์ดังกล่าวอยู่ที่
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters\EnableLMHOSTS
มีคำแนะนำเพิ่มเติมสำหรับการเขียนไฟล์ LMHOSTS เพื่อให้เกิดประสิทธิภาพสูงสุดคือ ให้นำ server name ที่ใช้บ่อยที่สุดวางไว้บรรทัดบนสุด ให้ลบบรรทัดที่เป็น comment ออก และนำบรรทัดที่ระบุ server name ที่ไม่ค่อยได้ใช้งานให้ไปวางไว้ด้านล่างของไฟล์
•  WINSServer
ในช่วงแรกของการนำ TCP/IP มาใช้ใน Unix จะอ้างอิงชื่อเครื่องและ IP address จากไฟล์ HOSTS จนกระทั่งมีการนำระบบ DNS มาใช้อย่างแพร่หลาย เช่นเดียวกัน ระบบปฏิบัติการ Windows ของ Microsoft นั้น จะอ้างอิงข้อมูลชื่อเครื่องและ IP address จากไฟล์ LMHOSTS จนกระทั่งมีการนำ WINS server มาใช้แทน ซึ่ง WINS Server และ DNS มีข้อดีที่เหมือนกันคือเป็นระบบที่สามารถควบคุมข้อมูลจากจุดเดียวได้ ง่ายต่อการดูแลของผู้ดูแลระบบ
WINS server คือ NT server หรือสูงกว่าที่รัน WINS server service ซึ่งเครื่องคอมพิวเตอร์อื่นๆ ในเครือข่ายจะลงทะเบียนชื่อเครื่องคอมพิวเตอร์นั้นๆ กับ WINS server โดยข้อมูลที่จะถูกเก็บไว้ที่ WINS server คือ ชื่อเครื่องและ IP address
ข้อดีของการใช้ WINS server คือทำให้ฐานข้อมูล NetBIOS name, IP address เป็นหนึ่งเดียว สามารถควบคุมดูแลได้ง่าย และยังสามารถใช้งานข้าม subnet ได้อีกด้วย เมื่อ client ต้องการทราบชื่อ IP address ฝั่ง client จะส่ง NetBIOS session service ไปยัง WINS server โดยตรง แทนที่การส่ง NetBIOS name service ซึ่งเป็นการส่ง broadcast query ออกไปทั้งเครือข่าย ซึ่งหมายถึงช่วยให้ลดความคับคั่งของเครือข่ายลงได้
•  HOSTSFileandDNS
ระบบปฏิบัติการรุ่น NT 4.0 และรุ่นต่อๆ มา ได้มีการนำระบบ UNIX hostname มาใช้ร่วมกับการทำ NetBIOS name resolution ด้วย โดยไฟล์ hosts จะถูกเก็บไว้ที่ <systemroot>\drivers\etc\hosts ซึ่งลักษณะข้อมูลที่เก็บในไฟล์นี้มีสองคอลัมน์คือ IP address และ hostname


ข้อดีของการนำระบบ DNS มาใช้คือ
•  เพิ่มความยืดหยุ่นเรื่องชื่อได้ดีว่า NetBIOS name แบบเดิม เพราะความยาวของ NetBIOS name ถูกจำกัดไว้ที่ 15 ตัวอักษร(สำหรับ Microsotf's OS) ส่วนความยาวของชื่อในระบบ DNS นั้นสามารถใช้งานได้ถึง 25 ตัวอักษร และยังเป็นชื่อที่เป็น hierarchy อีกด้วย เช่น สามารถใช้ชื่อ \\department.company.com\share แทน \\dep_company\share ได้ ซึ่งสามารถจดจำได้ง่ายกว่า
•  ในเครือข่ายขนาดใหญ่ที่ติดตั้งระบบ DNS ไปแล้ว ไม่มีความจำเป็นต้องติดตั้ง WINS server ควบคู่กันไปด้วย เพราะทำให้เสียเวลาและเกิดความซ้ำซ้อนของข้อมูล นอกจากนี้ระบบ DNS ยังมีความสามารถมากกว่า WINS server เช่น สามารถทำ load balancing ได้
•  นอกจากนี้ระบบ DNS ยังสามารถกำหนดชื่อเครื่องได้หลายชื่อสำหรับ 1 IP address ในขณะที่ NetBIOS name สามารถกำหนดชื่อเครื่องคอมพิวเตอร์ได้เพียง 1 ชื่อต่อ 1 เครื่องเท่านั้น และการเปลี่ยนแปลงชื่อเครื่องก็กระทำได้โดยไม่จำเป็นต้องการการแก้ไขใดๆที่ client machine
จากวิธีในการค้นหา IP address ทั้ง 5 วิธีที่กล่าวมา จะเห็นได้ว่าแต่ละวิธีก็มีข้อดีข้อเสียแตกต่างกันไป การนำไปใช้ขึ้นอยู่กับสภาวะหลายๆ อย่าง เช่น ขนาดของเครือข่าย ระบบแจกจ่าย IP หรือนโยบายขององค์กร การนำวิธีใดวิธีหนึ่งไปใช้อย่างเดียวอาจจะไม่เกิดประสิทธิผลสูงสุด จำเป็นต้องมีการประยุกต์ใช้หลายวิธีควบคู่กันไป ซึ่งจะอธิบายในหัวข้อต่อไปนี้


TheMajorNameResolutionMethod
     ดังที่กล่าวมาแล้วว่า การค้นหา IP address จาก NetBIOS name นั้นสามารถทำได้ผ่าน 5 วิธีที่กล่าวมาแล้ว แต่เพื่อประสิทธิภาพสูงสุดจึงได้มีการประยุกต์นำหลายๆ วิธีดังกล่าวมาใช้อย่างเป็นแบบแผน โดย Microsoft ได้กำหนดให้สามารถทำได้ 4 วิธีหลักๆ คือ b-node, p-node, m-node และ h-node ซึ่งแต่ละวิธีก็มีข้อดีข้อเสียแตกต่างกันไป

1. เริ่มต้นด้วยการตรวจสอบจาก LMHOSTS cache หากพบข้อมูลใน cache ก็จะ return IP address ดังกล่าวกลับไป
2.หากไม่พบ NetBIOS name ในข้อ 1 ก็จะส่ง broadcast query ซึ่งหากมีโหนดนั้น active อยู่ ก็จะส่ง IP address กลับมา
3.ท้ายสุดหากยังไม่พบ NetBIOS name ก็จะค้นหาจากไฟล์ LMHOSTS

ข้อเสียของ p-node คือ หาก WINS server ไม่สามารถทำงานได้ จะทำให้ client ไม่สามารถ access ไปยังเครื่องคอมพิวเตอร์อื่นได้เลย ทั้งนี้ p-node เหมาะสำหรับเครือขนาดขนาดกลางเป็นต้นไปที่ต้องการการรวมศูนย์ฐานข้อมูลไว้ที่ WINS server

ก่อนหน้า