TCP/IP มีจุดประสงค์ของการสื่อสารตามมาตรฐาน สามประการคือ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TCP/IP (Transmission Control Protocol/Internet Protocol)TCP/IP (Transmission Control Protocol/Internet Protocol) เป็นระบบโปรโตคอล การสื่อสารพื้นฐานของระบบอินเตอร์เน็ต มันสามารถใช้เป็น โปรโตคอลในการสื่อสารภายใน เครือข่ายส่วนบุคคล เรียกว่า intranet และ extranet เมื่อมีการติดต่อโดยตรงกับ internet เครื่องคอมพิวเตอร์จะได้รับการคัดลอกโปรแกรม TCP/IP เช่นเดียวกับคอมพิวเตอร์อื่น ๆ เพื่อทำให้ส่งข้อ ผู้ใช้ระบบเครือข่ายคอมพิวเตอร์ส่วนใหญ่คงเคยได้ยินเรื่องราวของ NetBIOS กันมาบ้าง หลายคนอาจจะเกิดความสับสน ไม่เว้นแม้แต่ผู้ดูแลระบบเครือข่ายขององค์กรเอง เหตุผลหนึ่งอาจจะเป็นเพราะมีศัพท์ที่เกี่ยวข้องมากมาย เช่น NetBIOS, NetBEUI, CIFS, SMB เหล่านี้ล้วนแต่สร้างความสับสนตั้งแต่ยังไม่เริ่มศึกษา และอีกเหตุผลหนึ่งอาจจะเป็นเพราะว่า มีการนำ NetBIOS ไปใช้อย่างหลากหลายแต่ขาดมาตรฐานควบคุมที่ดี อย่างไรก็ตาม หากกล่าวถึงเรื่องความปลอดภัยบนเครือข่ายอินเทอร์เน็ตในปัจจุบัน ก็จำเป็นต้องอ้างถึงเรื่องของ NetBIOS อย่างแน่นอนความเป็นมาของ NetBIOS NetBIOS ย่อมาจาก Network Basic Input/Output System ถูกพัฒนาขึ้นโดย Sytec สำหรับ IBM เมื่อปี 1983 ถูกออกแบบมาให้ทำงานกับเครือข่ายที่มีขนาดเล็กเท่านั้น ในปี 1985 IBM ได้นำเทคโนโลยี Token-Ring ออกมาใช้งาน ซึ่งได้นำ NetBIOS และ NetBEUI (NetBIOS Extened User Interface) มาใช้ใน Token-Ring ด้วย ปี 1986 Novell ได้แนะนำ Advanced Netware 2.0 ซึ่งได้รวมแพ็กเก็จ NetBIOS ลงไปด้วย ปี 1987 IBM ได้แนะนำ PC LAN Support Program สำหรับเครื่อง Personal System (PS/2) ซึ่งได้รวม NetBIOS เข้าไปด้วยเช่นกัน เดือนมีนาคม ปี 1987 RFC 1001 Protocol Standard for a NetBIOS Service on a TCP/UDP Transport ได้ถูกเผยแพร่ เช่นเดียวกัน ในปี 1987 Microsoft แนะนำ LAN Manager ซึ่งรันอยู่บน NetBIOS frame แนะนำ NetBIOS NetBIOS ถูกออกแบบมาเพื่อเป็น protocol ที่เป็นตัวเชื่อม ( interface) ระหว่างระบบปฏิบัติการกับฮาร์ดแวร์ เพื่อให้ application สามารถสื่อสารกับเครือข่ายได้โดยเป็นอิสระจากฮาร์ดแวร์ ทั้งนี้ application จะสามารถเข้าถึงเลเยอร์สูงสุดของ OSI model ได้เท่านั้น ซึ่งทำให้ application ที่สร้างขึ้นมาสามารถทำงานได้ในเครือข่ายที่มี network environment ไม่เหมือนกัน ทั้งนี้ NetBIOS จะทำหน้าที่ขนส่งข้อมูลไปยัง application ที่อยู่บนเครื่องอื่นในเครือข่ายให้ ในช่วงเริ่มต้นนั้น NetBIOS ถูกออกแบบให้ทำงานได้กับ IBM's PC LAN เท่านั้น แต่ปัจจุบัน NetBIOS ได้กลายเป็นพื้นฐานของ network application ไปแล้ว โดย NetBIOS เป็นโปรโตคอลที่ถูกใช้งานอย่างแพร่หลาย มันสามารถทำงานได้บน Ethernet, Token ring, IBM PC Network NetBIOS ถูกออกแบบมาให้เป็นตัวเชื่อม เป็นส่วนขยายของ BIOS ที่ช่วยให้สามารถติดต่อใช้งานบริการบนเครือข่ายได้ จึงกล่าวได้ว่า NetBIOS ถูกออกแบบให้เป็น Application Program Interface (API) ในขณะเดียวกัน NetBIOS ก็ถือว่าเป็นโปรโตคอลได้เช่นเดียวกันกับ TCP/IP เพราะมีชุดของโปรโตคอลชั้นล่างลงไปที่สามารถทำงานร่วมกันแนะนำ เพื่อใช้ติดต่อสื่อสารระหว่างระบบที่มีความแตกต่างกัน ความสามารถในการแก้ไขปัญหาที่เกิดขึ้นในระบบเครือข่าย เช่นในกรณีที่ผู้ส่งและผู้รับยังคงมีการติดต่อกันอยู่ แต่โหนดกลางทีใช้เป็นผู้ช่วยรับ-ส่งเกิดเสียหายใช้การไม่ได้ หรือสายสื่อสารบางช่วงถูกตัดขาด กฎการสื่อสารนี้จะต้องสามารถจัดหาทางเลือกอื่นเพื่อทำให้การสื่อสารดำเนินต่อไปได้โดยอัตโนมัติ มีความคล่องตัวต่อการสื่อสารข้อมูลได้หลายชนิดทั้งแบบที่ไม่มีความเร่งด่วน เช่น การจัดส่งแฟ้มข้อมูล และแบบที่ต้องการรับประกันความเร่งด่วนของข้อมูล เช่น การสื่อสารแบบ real-time และทั้งการสื่อสารแบบเสียง ( Voice) และข้อมูล ( data) รูปที่ 1 ขั้นตอนการ Encapsulation และ Demultiplexing ข้อมูลที่ผ่านการ Encapsulate ในแต่ละเลเยอร์มีชื่อเรียกแตกต่างกัน ดังนี้
รูปที่ 2 โครงสร้าง TCP/IP 1. ชั้นโฮสต์-เครือข่าย ( Host-to-Network Layer) 2. ชั้นสื่อสารอินเทอร์เน็ต ( The Internet Layer) a. IP (Internet Protocol)
รูปที่ 3 IP Header รูปที่ 4 ICMP Header แบ่งเป็นโพรโตคอล 2 ชนิดตามลักษณะ ลักษณะแรกเรียกว่า Transmission Control Protocol (TCP) เป็นแบบที่มีการกำหนดช่วงการสื่อสารตลอดระยะเวลาการสื่อสาร ( connection-oriented) ซึ่งจะยอมให้มีการส่งข้อมูลเป็นแบบ Byte stream ที่ไว้ใจได้โดยไม่มีข้อผิดพลาด ข้อมูลที่มีปริมาณมากจะถูกแบ่งออกเป็นส่วนเล็กๆ เรียกว่า message ซึ่งจะถูกส่งไปยังผู้รับผ่านทางชั้นสื่อสารของอินเทอร์เน็ต ทางฝ่ายผู้รับจะนำ message มาเรียงต่อกันตามลำดับเป็นข้อมูลตัวเดิม TCP ยังมีความสามารถในการควบคุมการไหลของข้อมูลเพื่อป้องกันไม่ให้ผู้ส่ง ส่งข้อมูลเร็วเกินกว่าที่ผู้รับจะทำงานได้ทันอีกด้วย โปรโตคอลการนำส่งข้อมูลแบบที่สองเรียกว่า UDP (User Datagram Protocol) เป็นการติดต่อแบบไม่ต่อเนื่อง ( connectionless) มีการตรวจสอบความถูกต้องของข้อมูลแต่จะไม่มีการแจ้งกลับไปยังผู้ส่ง จึงถือได้ว่าไม่มีการตรวจสอบความถูกต้องของข้อมูล อย่างไรก็ตาม วิธีการนี้มีข้อดีในด้านความรวดเร็วในการส่งข้อมูล จึงนิยมใช้ในระบบผู้ให้และผู้ใช้บริการ ( client/server system) ซึ่งมีการสื่อสารแบบ ถาม/ตอบ ( request/reply) นอกจากนั้นยังใช้ในการส่งข้อมูลประเภทภาพเคลื่อนไหวหรือการส่งเสียง ( voice) ทางอินเทอร์เน็ต กลไกการตรวจสอบโดย checksum ของ UDP นั้นเพื่อเป็นการป้องกันข้อมูลที่อาจจะถูกแก้ไข หรือมีความผิดพลาดระหว่างการส่ง และหากเกิดเหตุการณ์ดังกล่าว ปลายทางจะได้รู้ว่ามีข้อผิดพลาดเกิดขึ้น แต่มันจะเป็นการตรวจสอบเพียงฝ่ายเดียวเท่านั้น โดยในข้อกำหนดของ UDP หากพบว่า Checksum Error ก็ให้ผู้รับปลายทางทำการทิ้งข้อมูลนั้น แต่จะไม่มีการแจ้งกลับไปยังผู้ส่งแต่อย่างใด การรับส่งข้อมูลแต่ละครั้งหากเกิดข้อผิดพลาดในระดับ IP เช่น ส่งไม่ถึง , หมดเวลา ผู้ส่งจะได้รับ Error Message จากระดับ IP เป็น ICMP Error Message แต่เมื่อข้อมูลส่งถึงปลายทางถูกต้อง แต่เกิดข้อผิดพลาดในส่วนของ UDP เอง จะไม่มีการยืนยัน หรือแจ้งให้ผู้ส่งทราบแต่อย่างใด รูปที่ 5 UDP Header
การสื่อสารของ TCP NetBIOIPX/SPX Protocol SoverTCP/IP(NBT) RFC 1001 (PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: CONCEPTS AND METHODS ) RFC 1002 (PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: DETAILED SPECIFICATIONS ) ทั้งนี้เพื่อกำหนดมาตรฐานในการนำ NetBIOS มาใช้งานบน TCP/IP network ให้สามารถใช้งาน NetBIOS service ได้ครบ โดยพยายามให้มีการเปลี่ยนแปลงให้น้อยที่สุดและสามารถเข้ากับมาตรฐานเดิมได้ และยังทำงานได้อย่างยืดหยุ่นและมีประสิทธิภาพ โดยไม่จำเป็นต้องมีศูนย์กลางในการควบคุม (ไม่ใช่ central management) และสามารถทำงานได้โดยไม่จำเป็นต้องใช้ facility เสริมอื่นใด NetBIOS name สามารถเปรียบได้กับระบบ Domain Name System (DNS) ใน TCP/IP protocol แต่ก็มีข้อแตกต่างกันพอสมควร คือ
NetBIOS จะสามารถส่งและรับข้อมูลได้เฉพาะโหนดที่มี NetBIOS scope identifier เป็นค่าเดียวกันเท่านั้น โดย scope identifier นี้เป็น string ที่อยู่ในรูปแบบที่ compatible กับ DNS format Note: มีการใช้งาน NetBIOS over TCP/IP ที่เห็นได้ชัดเจนคือ ระบบปฏิบัติการ Windows ของ Microsoft และ Samba ที่สามารถทำงานได้บน Unix และ Linux ทั้งนี้การ implement ของทั้งสองค่ายอาจจะแตกต่างไปจาก RFC ที่ได้กำหนดไว้บ้าง แต่ก็ดำเนินไปในแนวทางคล้ายๆ กัน อย่างไรก็
NetBIOSServiceoverTCP/IP Name Service ให้บริการลงทะเบียนและยกเลิกการใช้งาน NetBIOS name ภายในเครือข่ายที่อยู่ใน segment เดียวกัน โดยใช้โปรโตคอล UDP port 137 (broadcast packet) ทั้งนี้ Name service สามารถใช้ได้ในวง LAN เท่านั้นเนื่องจาก router ส่วนใหญ่จะถูกตั้งค่า UDProadcastpacket การที่บริการนี้ทำงานบน UDP protocol ทำให้มีข้อดีตรงที่ header ของ packet มีขนาดเล็กและใช้เวลาในการสื่อสารน้อยกว่าการใช้ TCP protocol ส่วนข้อเสียก็คือเมื่อส่งข้อมูลออกไปแล้วจะไม่สามารถรู้ได้เลยว่าข้อมูลถูกส่งออกไปถึงเป้าหมายที่ต้องการจริงหรือไม่ Datagram Service เป็นบริการที่ทำให้สามารถสื่อสารกับโหนดอื่นๆ ได้ โดยสามารถส่งข้อมูลได้ทั้งแบบ connectionless และแบบ broadcast โดยใช้ UDP protocol port 138 ตัวอย่างการนำไปใช้งานที่เห็นได้ชัดเจนคือ browser service ซึ่งจะถูกเรียกใช้เมื่อผู้ใช้รัน network neighborhood จาก Windows Desktop ซึ่ง browser service จะเรียกใช้งาน datagram service โดยการ broadcast ข้อความออกไป ทั้งนี้ Datagram service ซึ่งรันอยู่บน UDP port นั้นก็มีข้อดีและข้อเสียเหมือนกับ Name service เช่นเดียวกัน Session Service เป็นบริการที่ให้การเชื่อมต่อแบบ connection-oriented โดยใช้ TCP protocol port 139 ตัวอย่างการใช้งานที่เห็นได้ชัดเจนคือ file sharing, printer sharing นอกจากนี้ยังมี network application ของ Windows ทำงานโดยอาศัยบริการนี้ เช่น ServeManager,EventViewer,RegisterEditorPerformanceMonitor อย่างไรก็ตามหากกล่าวถึง service หรือ application ที่ทำงานอยู่ในเลเยอร์ที่สูงกว่า NetBIOS มักจะพบว่า บริการดังกล่าวมักจะอาศัยบริการพื้นฐานทั้ง 3 อย่างของ NetBIOS จึงจะสามารถทำงานได้อย่างสมบูรณ์ เช่น Messenger Service ซึ่งสามารถใช้งานได้โดยการใช้คำสั่ง ซึ่งสามารถระบุปลายทางเป็น user, เครื่องคอมพิวเตอร์หนึ่งเครื่อง หรือทุกเครื่องในโดเมนก็ได้ หากเป้าหมายเป็นเครื่องคอมพิวเตอร์ 1 เครื่อง NetBIOS name service ก็จะส่ง broadcast message ออกไปเพื่อค้นหาเครื่องคอมพิวเตอร์ดังกล่าว ในกรณีที่ปลายทางเป็น user ตัว NetBIOS name service ก็จะส่ง broadcast ไปทั้งเครือข่ายเพื่อค้นหา user ที่มีชื่อตามที่ระบุไว้ ( byte ที่ 16 มีค่าเป็น <03h>) หลังจากนั้นก็จะเป็นขั้นตอนการส่งข้อความที่ต้องการส่ง หากปลายทางเป็นกลุ่มของเครื่องคอมพิวเตอร์ NetBIOS datagram service จะเป็นตัวส่งข้อความ broadcast ออกไปทั้งเครือข่าย แต่ถ้าเป็นเครื่องคอมพิวเตอร์เครื่องเดียว NetBIOS session service จะเชื่อมต่อไปหาเครื่องคอมพิวเตอร์นั้นโดยตรง ทำความเข้าใจ Nametable Name tables เป็นตารางที่ใช้เก็บข้อมูล NetBIOS name ของเครื่องตัวเอง โดยภายหลังจากที่บริการพื้นฐานของ NetBIOS ทั้งหมดถูกรันในเครื่องคอมพิวเตอร์นั้นๆ แล้ว มันจะลงทะเบียน ( register) ชื่อ (NetBIOS name) ลงใน local NetBIOS name table จากนั้น NetBIOS application ก็จะรอดูว่ามีเครื่องอื่นส่ง query ที่เกี่ยวข้องกับชื่อที่ได้ลงทะเบียนไว้แล้วหรือไม่ (ผ่านทาง TCP หรือ UDP port) ถ้าชื่อ NetBIOS name ที่ถูกส่ง query มาไม่ปรากฏใน local NetBIOS name table มันก็จะไม่ทำอะไร แต่ถ้าชื่อนั้นมีปรากฏอยู่ NBT(NetBIOS over TCP/IP) ก็จะส่งข้อมูลนั้นไปยัง application เพื่อทำการประมวลผลต่อไป ตามที่ได้เคยกล่าวมาแล้วว่า Micorsoft ได้ใช้ byte ที่ 16 ของ NetBIOS name ในการเก็บข้อมูลชนิด ( type) ของ NetBIOS name นั้นๆ ซึ่งสามารถตรวจสอบได้ เช่น หากพิมพ์คำสั่ง NBTSTAT -n ดูก็จะได้ผลคล้ายๆ ตัวอย่างด้านล่าง
จากตัวอย่าง ทำให้ทราบว่าเครื่องคอมพิวเตอร์ดังกล่าวมีค่าที่เกี่ยวข้องต่างๆ ดังนี้
|