วันพฤหัสบดีที่ 5 กันยายน พ.ศ. 2556

บทที่ 8 โปรโตคอลแบบต่าง ๆ


 
8.1 โปรโตคอลและการจับมือ (Protocols  and  Hand shaking)

                โปรโตคอล (Protocol)  คือ  ข้อตกลงหรือรูปแบบที่ตกลงกันไว้ทั้งสองฝั่งว่าจะส่งข้อมูลกันในลักษณะใด  และตีความหมายกับข้อมูลนั้นอย่างไร

 

โดยทั่วไปสิ่งที่โปรโตคอลต้องกำหนดมีดังนี้

-                    กฎในการตรวจสอบข้อมูล  เช่น  กำหนด  parity  bit  ตำแหน่งที่เป็น  parity  bit   ที่ส่งมากับข้อมูล

-                   มาตรฐานการบีบอัดข้อมูล  อาจจะมีในกรณีที่ข้อมูลขนาดใหญ่

-                   ข้อตกลงที่บอกให้ผู้รับทราบว่าข้อมูลส่งมาครบแล้ว

-                   ข้อตกลงที่บอกให้ผู้รับทราบว่า  จะส่งข้อมูลส่งมาให้   และให้ผู้รับเตรียมตัวให้พร้อมรับข้อมูลนั้น

-                   กำหนดความเร็วในการส่งข้อมูล

-                   เป็นการส่งข้อมูลแบบ  (Synchronus)  หรืออวิงโครนัส  (Asynchronus)

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

 

8.2  โปรโตคอล  TCP/IP

                TCP/IP (Transmitsion Control Protocol/Internet Protocol) เป็นชุดของโปรโตคอลที่ถูกใช้ในการสื่อสารผ่านเครือข่ายอินเทอร์เน็ต โดยมีวัตถุประสงค์เพื่อให้สามารถใช้สื่อสารจากต้นทางข้ามเครือข่ายไปยังปลายทางได้ และสามารถหาเส้นทางที่จะส่งข้อมูลไปได้เองโดยอัตโนมัติ ถึงแม้ว่าในระหว่างทางอาจจะผ่านเครือข่ายที่มีปัญหา โปรโตคอลก็ยังคงหาเส้นทางอื่นในการส่งผ่านข้อมูลไปให้ถึงปลายทางได้

ชุดโปรโตคอลนี้ได้รับการพัฒนามาตั้งแต่ปี 1960 ซึ่งถูกใช้เป็นครั้งแรกในเครือข่าย ARPANET ซึ่งต่อมาได้ขยายการเชื่อมต่อไปทั่วโลกเป็นเครือข่ายอินเตอร์เน็ต ทำให้ TCP/IP เป็นที่ยอมรับอย่างกว้างขวางจนถึงปัจจุบัน

 



8.2.1 Transmission Control Protocol (TCP)

TCP นำบล็อกของข้อมูลขนาดใหญ่จาก application และ กระจายบล็อกของข้อมูลให้เป็น

ส่วนย่อย ๆ (segment) มันจะนับจำนวนและเรียงลำดับแต่ละ segment ดังนั้นที่ปลายทางของ TCP

protocol สามารถใส่ segment ต่าง ๆ กลับไปในคำสั่งของ application ดังที่ตั้งใจไว้ หลังจากที่

segment เหล่านี้ถูกส่ง TCP (บนการส่งของโฮส) จะคอย acknowledgement ของการรับของ

ปลายทางของ TCP virtual circuit session การส่งซ้ำของข้อมูลเหล่านั้นที่ไม่ได้เกิดการ

acknowledged.                                                    

ก่อนการส่งที่โฮสจะเริ่มส่ง Segment ไปตามโครงสร้าง TCP protocol ของผู้ส่งจะเชื่อมโยงไป

ยังปลายทางของ TCP protocol เพื่อสร้างการเชื่อมต่อ สิ่งที่สร้างนี้รู้จักกันในชื่อของ virtual circuit

ประเภทของการสื่อสารนี้ถูกเรียกว่า connection-oriented ระหว่างการจับมือกันในช่วงแรกนี้ สอง

TCP layer จะตกลงกันบนจำนวนของข้อมูลที่กำลังจะถูกส่งก่อน TCP ของผู้รับจะส่งกลับ

acknowledgement กลับไป การตอบรับทุกอย่างจะถูกนำไปปรับปรุง เส้นทางการเดินทางได้ถูกใช้

สำหรับการสื่อสารที่ให้ความน่าเชื่อถือที่จะเข้ามาแทนที่

TCP เป็น full-duplex, connection-oriented, ความน่าเชื่อถือ และprotocolที่ถูกต้อง แต่ว่า

การสร้างเงื่อนไขเหล่านี้ซึ่งรวมทั้งการตรวจ error ไม่ใช่งานเล็ก ๆ TCP ซับซ้อนมากและทั่วไปแล้วมี

เงื่อนไขของเน็ตเวิร์คมาก และตั้งแต่ที่เน็ตเวิร์คในทุกวันนี้มีความน่าเชื่อถือมากกว่าเมื่อก่อนที่ไม่ค่อย

จะจำเป็นเท่าไร

8.2.2   IP (Internet Protocol)
IP เป็นโปรโตคอลในระดับเน็ตเวิร์คเลเยอร์ ทำหน้าที่จัดการเกี่ยวกับแอดเดรสและข้อมูล และควบคุมการส่งข้อมูลบางอย่างที่ใช้ในการหาเส้นทางของแพ็กเก็ต ซึ่งกลไกในการหาเส้นทางของ IP จะมีความสามารถในการหาเส้นทางที่ดีที่สุด และสามารถเปลี่ยนแปลงเส้นทางได้ในระหว่างการส่งข้อมูล และมีระบบการแยกและประกอบดาต้าแกรม (datagram) เพื่อรองรับการส่งข้อมูลระดับ data link ที่มีขนาด MTU (Maximum Transmission Unit) ทีแตกต่างกัน ทำให้สามารถนำ IP ไปใช้บนโปรโตคอลอื่นได้หลากหลาย เช่น Ethernet ,Token Ring หรือ Apple Talk

การเชื่อมต่อของ IP เพื่อทำการส่งข้อมูล จะเป็นแบบ connectionless หรือเกิดเส้นทางการเชื่อมต่อในทุกๆครั้งของการส่งข้อมูล 1 ดาต้าแกรม โดยจะไม่ทราบถึงข้อมูลดาต้าแกรมที่ส่งก่อนหน้าหรือส่งตามมา แต่การส่งข้อมูลใน 1 ดาต้าแกรม อาจจะเกิดการส่งได้หลายครั้งในกรณีที่มีการแบ่งข้อมูลออกเป็นส่วนย่อยๆ (fragmentation) และถูกนำไปรวมเป็นดาต้าแกรมเดิมเมื่อถึงปลายทาง

 


เฮดเดอร์ของ IP โดยปกติจะมีขนาด 20 bytes ยกเว้นในกรณีที่มีการเพิ่ม option บางอย่าง ฟิลด์ของเฮดเดอร์ IP จะมีความหมายดังนี้

• Version : หมายเลขเวอร์ชันของโปรโตคอล ที่ใช้งานในปัจจุบันคือ เวอร์ชัน 4 (IPv4) และเวอร์ชัน 6 (IPv6)
• Header Length : ความยาวของเฮดเดอร์ โดยทั่วไปถ้าไม่มีส่วน option จะมีค่าเป็น 5 (5*32 bit)
• Type of Service (TOS) : ใช้เป็นข้อมูลสำหรับเราเตอร์ในการตัดสินใจเลือกการเราต์ข้อมูลในแต่ละดาต้าแกรม แต่ในปัจจุบันไม่ได้มีการนำไปใช้งานแล้ว
• Length : ความยาวทั้งหมดเป็นจำนวนไบต์ของดาต้าแกรม ซึ่งด้วยขนาด 16 บิตของฟิลด์ จะหมายถึงความยาวสูงสุดของดาต้าแกรม คือ 65535 byte (64k) แต่ในการส่งข้อมูลจริง ข้อมูลจะถูกแยกเป็นส่วนๆตามขนาดของ MTU ที่กำหนดในลิงค์เลเยอร์ และนำมารวมกันอีกครั้งเมื่อส่งถึงปลายทาง แอพพลิเคชั่นส่วนใหญ่จะมีขนาดของดาต้าแกรมไม่เกิน 512 byte
• Identification : เป็นหมายเลขของดาต้าแกรมในกรณีที่มีการแยกดาต้าแกรมเมื่อข้อมูลส่งถึงปลายทางจะนำข้อมูลที่มี identification เดียวกันมารวมกัน
• Flag : ใช้ในกรณีที่มีการแยกดาต้าแกรม
• Fragment Offset : ใช้ในการกำหนดตำแหน่งข้อมูลในดาต้าแกรมที่มีการแยกส่วน เพื่อให้สามารถนำกลับมาเรียงต่อกันได้อย่างถูกต้อง
• Time to Live (TTL) : กำหนดจำนวนครั้งที่มากที่สุดที่ดาต้าแกรมจะถูกส่งระหว่าง hop (การส่งผ่านข้อมูลระหว่างเน็ตเวิร์ค) เพื่อป้องกันไม่ให้เกิดการส่งข้อมูลโดยไม่สิ้นสุด โดยเมื่อข้อมูลถูกส่งไป 1 hop จะทำการลดค่า TTL ลง 1 เมื่อค่าของ TTL เป็น 0 และข้อมูลยังไม่ถึงปลายทาง ข้อมูลนั้นจะถูกยกเลิก และเราเตอร์สุดท้ายจะส่งข้อมูล ICMP แจ้งกลับมายังต้นทางว่าเกิด time out ในระหว่างการส่งข้อมูล
• Protocol : ระบุโปรโตคอลที่ส่งในดาต้าแกรม เช่น TCP ,UDP หรือ ICMP
• Header Checksum : ใช้ในการตรวจสอบความถูกต้องของข้อมูลในเฮดเดอร์
• Source IP Address : หมายเลข IP ของผู้ส่งข้อมูล
• Destination IP Address : หมายเลข IP ของผู้รับข้อมูล
• Data : ข้อมูลจากโปรโตคอลระดับบน

 

8.3  UDP

 UDP : (User Datagram Protocol)
เป็นโปรโตคอลที่อยู่ใน Transport Layer เมื่อเทียบกับโมเดล OSI โดยการส่งข้อมูลของ UDP นั้นจะเป็นการส่งครั้งละ 1 ชุดข้อมูล เรียกว่า UDP datagram ซึ่งจะไม่มีความสัมพันธ์กันระหว่างดาต้าแกรมและจะไม่มีกลไกการตรวจสอบความสำเร็จในการรับส่งข้อมูล
กลไกการตรวจสอบโดย checksum ของ UDP นั้นเพื่อเป็นการป้องกันข้อมูลที่อาจจะถูกแก้ไข หรือมีความผิดพลาดระหว่างการส่ง และหากเกิดเหตุการณ์ดังกล่าว ปลายทางจะได้รู้ว่ามีข้อผิดพลาดเกิดขึ้น แต่มันจะเป็นการตรวจสอบเพียงฝ่ายเดียวเท่านั้น โดยในข้อกำหนดของ UDP หากพบว่า Checksum Error ก็ให้ผู้รับปลายทางทำการทิ้งข้อมูลนั้น แต่จะไม่มีการแจ้งกลับไปยังผู้ส่งแต่อย่างใด การรับส่งข้อมูลแต่ละครั้งหากเกิดข้อผิดพลาดในระดับ IP เช่น ส่งไม่ถึง, หมดเวลา ผู้ส่งจะได้รับ Error Message จากระดับ IP เป็น ICMP Error Message แต่เมื่อข้อมูลส่งถึงปลายทางถูกต้อง แต่เกิดข้อผิดพลาดในส่วนของ UDP เอง จะไม่มีการยืนยัน หรือแจ้งให้ผู้ส่งทราบแต่อย่างใด

มีรายละเอียดดังนี้

• Source Port Number : หมายเลขพอร์ตต้นทางที่ส่งดาต้าแกรมนี้
• Destination Port Number : หมายเลขพอร์ตปลายทางที่จะเป็นผู้รับดาต้าแกรม
• UDP Length : ความยาวของดาต้าแกรม ทั้งส่วน Header และ data นั่นหมายความว่า ค่าที่น้อยที่สุดในฟิลด์นี้คือ 8 ซึ่งเป็นขนาดของ Header
• Checksum : เป็นตัวตรวจสอบความถูกต้องของ UDP datagram และจะนำข้อมูลบางส่วนใน IP Header มาคำนวณด้วย

8.4  IPX/SPX

                โปรโตคอล IPX/SPX ซึ่งเป็นโปรโตคอลที่โด่งดังมาจากระบบปฏิบัติการ Netware ของบริษัท Novell โดยใช้กันมากในสมัยก่อนที่ Windows NT Server จะเกิด แต่ถึงแม้จะมี Windows ทุกรุ่นโดยตั้งชื่อใหม่เป็น Microsoft IPX/SPX Compatible Protocol ซึ่งนับเป็นการตัดสินใจที่

ชาญฉลาดมาก เนื่องจากผู้ใช้สามารถที่จะใช้ Windows ติดต่อกับเซิร์ฟเวอร์ที่เป็น Netware ได้โดยไม่จำเป็นต้องติดตั้งโปรแกรม Netware Client

ของ Novell อย่างไรก็ตาม โปรโตคอล IPX/SPX ที่มีอยู่ในตัว Windows นั้นอาจไม่สามารถทำงานบางอย่างได้เหมือนกับ IPX/SPX ขนานแท้ของ Netware ได้ ซึ่งในกรณีนี้อาจต้องเปลี่ยนไปติดตั้งโปรแกรม Netware Client แทน ปัจจุบันโปรโตคอล IPX/SPX ก็ลดบทบาทลงไปมากพอสมควร แม้แต่ตัว Netware รุ่นใหม่ๆ (Netware5) ก็ยังเปลี่ยนไปใช้โปรโตคอลTCP/IPเป็นหลักในปัจจุบันโปรแกรมที่ยังคงใช้ปัจจุบันที่ยังคงใช้ประโยชน์ มากโปรโตคอล IPX/SPX  คือโปรแกรมเกมที่เล่นผ่านระบบ LAN

          8.4.1 SPX

SPX  พัฒนาเริ่มต้นมาจากโปรโตคอล  Sequenced Packet Protcol  (SPP)  จากบริษัท  Xerox  Network  Services  (XNS)  จะทำงานเหมือนโปรโตคอล  TCP  คือเป็นแบบ  Connection-oriented

8.4.1 IPX

IPX  พัฒนาเริ่มต้นมาจากโปรโตคอล Internetwork Datagram Packet (DIP)  ของ  XNS  โปรโตคอล  IPX   จะทำงานเหมือนโปรโตคอล  IP  คือเป็นแบบ  Connectionless  และทำหน้าที่ในการะบุหมายเลขปลายทางผู้รับ


8.5  NetBEUI

                NetBEUI (NetBIOS Extended User Interface) เป็นโปรแกรมที่ให้คอมพิวเตอร์ติดต่อภายในเครือข่าย ซึ่ง NetBEUI เป็นเวอร์ชันส่วนขยายของ NetBIOS โดยโปรแกรมที่มี Frame format (การจัดการสารสนเทศในการส่งข้อมูล) ที่ไม่ได้ระบุด้วย NetBIOS การพัฒนา NetBEUI ทำโดย IBM สำหรับใช้กับผลิตภัณฑ์ประเภท LAN manager และมีการปรับปรุงโดย Microsoft สำหรับ Windows NT, LAN manager และ Window for Workgroups

NetBEUI มีการทำงานที่ดีมาก สำหรับการติดต่อภายในระบบ LAN เดี่ยว แต่ไม่สนับสนุนระบบ Routing กับเครือข่ายอื่น ถ้าต้องการปรับปรุงการอินเตอร์เฟซต้องใช้โปรโตคอลตัวอื่น เช่น Internetwork Pocket Exchange หรือ TCP/IP จึงมีการแนะนำวิธีติดตั้ง NetBEUI และ TCP/IP ในเครื่องคอมพิวเตอร์แต่ละเครื่อง และตั้งค่าบนเครื่องแม่ข่ายให้ใช้ NetBEUI ในการติดต่อภายใน LAN และ TCP/IP สำหรับการติดต่อนอกเหนือจาก LAN

 8.6 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 เพราะมีชุดของโปรโตคอลชั้นล่างลงไปที่สามารถทำงานร่วมกันได้

8.7  DHCP

DHCP(Dynamic Host Configuration Protocol)  คือ โปรโตคอลที่ใช้ในการกำหนด IP Address อัตโนมัติแก่เครื่องลูกข่ายบนระบบ ที่ติดตั้ง TCP/IPสำหรับ DHCP server มีหน้าที่แจก IP ในเครือข่ายไม่ให้ซ้ำ เป็นการลดความซ้ำซ้อน เมื่อเครื่องลูกเริ่ม bootก็จะขอ IP address, Subnet mark, หมายเลข DNS และ Default gateway
   ขั้นตอนการเชื่อมต่อของเครื่องลูกกับ DHCP server
   1. เครื่องลูกค้นหาเครื่อง DHCP server ในเครือข่าย โดยส่ง DHCP discover เพื่อร้องขอ IP address
   2. DHCP server  จะค้นหา IP  ที่ว่างอยู่ในฐานข้อมูล แล้วส่ง DHCP offer กลังไปให้เครื่องลูก
   3. เมื่อเครื่องลูกได้รับ IP  ก็จะส่งสัญญาณตอบกลับ DHCP Request ให้เครื่องแม่ทราบ
   4. DHCP server ส่งสัญญาณ DHCP Ack กลับไปให้เครื่องลูก เพื่อแจ้งว่าเริ่มใช้งานได้

8.8 RARP

 RARP (Reverse Address Resolection Protocol) เป็นโปรโตคอล ซึ่งเครื่องทางกายภาพ ในเครือข่าย LAN สามารถขอเรียนรู้ IP Address จากเครื่องแม่ข่าย gateway หรือตาราง Address Resolution Protocol ผู้บริหารเครือข่ายสร้างตารางใน gateway router ของเครือข่าย LAN ที่ใช้จับคู่ address ของเครื่องทางกายภาพ (หรือ Media Access Control address) ที่ตรงกับ Internet Protocol address เมื่อมีการติดตั้งเครื่องใหม่ โปรแกรมลูกข่ายของ RARP จะขอ RARP server จาก routerให้ส่ง IP address มาให้ สมมติว่ามีการตั้งค่าในตาราง router แล้ว RARP server จะส่งกลับ IP address ไปที่เครื่องซึ่งจะเก็บไว้สำหรับการใช้ต่อไป  RARP มีให้กับเครือข่าย LAN แบบ Ethernet, Fiber Distributed-Data Interface และ Token ring


8.9 BOOTP

BOOTP (Bootstrap Protocol) เป็นโปรโตคอลที่ให้ผู้ใช้เครือข่าย สามารถทำการคอนฟิกโดยอัตโนมัติ (รับIP address) และมีการบู๊ตระบบปฏิบัติการหรือเริ่มต้นจะไม่มีการเกี่ยวข้องของผู้ใช้ เครื่องแม่ข่าย BOOTPได้รับการบริหารโดยผู้บริการเครือข่าย ซึ่งจะกำหนด IP address อย่างอัตโนมัติจากกองกลางของ IP addressสำหรับช่วงเวลาที่แน่นอน  BOOTP เป็นพื้นฐานสำหรับโปรโตคอลแบบ network manager ระดับสูงอื่น ๆ เช่น Dynamic Host Configuration Protocol (DHCP)

 

 

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

แสดงความคิดเห็น