วันพุธที่ 11 กันยายน พ.ศ. 2556

OSI (Open Systems Interconnection)

OSI Model (Open System Interconnection 7 - layer Reference Model)
ความรู้เกี่ยวกับ OSI Model
ISO (International Standards Organization) เป็นหน่วยงาน ที่มีหน้าที่พัฒนา มาตรฐานสำหรับ การสื่อสารข้อมูล ในประเทศ และระหว่างประเทศ ในช่วงต้น
ทศวรรษ 1970 ISO ได้พัฒนาแบบจำลอง OSI (Open Systems Interconnection ) ขึ้นเพื่อใช้เป็นมาตรฐาน สำหรับการออกแบบอุปกรณ์ ของผู้ผลิตเพื่อที่อุปกรณ์ จากต่างผู้ผลิต สามารถสื่อสารกันได้ แบบจำลอง OSI ประกอบด้วย 7 เลเยอร์ (layer) อธิบายถึงสิ่งที่เกิดขึ้น เมื่ออุปกรณ์ที่เชื่อมโยงกันสนทนากัน Layer ทั้ง 7 จะสนับสนุนในส่วนฮาร์ดแวร์ และซอฟท์แวร์ รวมทั้งการติดต่อถึงกัน ของทั้งสองข้าง ที่ต้องการสื่อสารเข้าด้วยกัน คือ ด้านส่ง และด้านรับ
จึงได้เกิดหน่วยงานกำหนดมาตรฐานสากลขึ้นคือ International Standards Organization ขึ้นและทำการกำหนดโครงสร้างทั้งหมดที่จำเป็นต้องใช้ในการสื่อสาร
ข้อมูลและเป็นระบบเปิด เพื่อให้ผู้ผลิตต่างๆสามารถแยกผลิตในส่วนที่ตัวเองถนัดแต่สามารถนำไปใช้ร่วมกันได้ระบบเครือข่ายคอมพิวเตอร์สมัยใหม่จะถูกออกแบบให้มีโครงสร้างทีแน่นอน และเพื่อเป็นการลดความซับซ้อน ระบบเครือข่ายส่วนมากจึงแยกการทำงานออกเป็นชั้นๆ (layer) โดยกำหนดหน้าที่ในแต่ละชั้นไว้อย่างชัดเจน แบบจำลองสำหรับอ้างอิงแบบ OSI (Open System Interconnection Reference Model) หรือที่นิยมเรียกกันทั่วไปว่า OSI Reference Model ของ ISO เป็นแบบจำลองที่ถูกเสนอและพัฒนาโดยองค์กร International Standard Organization (ISO) โดยจะบรรยายถึงโครงสร้างของสถาปัตยกรรมเครือข่ายในอุดมคติซึ่งระบบเครือข่ายที่เป็นไปตามสถาปัตยกรรมนี้จะเป็นระบบเครือข่ายแบบเปิดและอุปกรณ์ทางเครือข่ายจะสามารถติดต่อกันได้โดยไม่ขึ้นกับว่าเป็นอุปกรณ์ของผู้ขายรายใด
2
แบบจำลอง OSI 7 Layer Reference Model
แบบจำลอง OSI จะแบ่งการทำงานของระบบเครือข่ายออกเป็น 7 ชั้น คือ

รูปที่ 1 แสดงแบบจำลอง OSI 7 Layer Reference Model
แต่ละชั้นของแบบการสื่อสารข้อมูลเรียกว่า Layer ประกอบด้วย Layer ย่อยๆทั้งหมด7 Layerแต่ละชั้นทำหน้าที่รับส่งข้อมูลกับชั้นที่อยู่ติดกับตัวเองเท่านั้นจะไม่
ติดต่อกระโดดข้ามไปยังชั้นอื่นๆเช่น Layer 6จะติดต่อกับ Layer5 และ Layer7 เท่านั้นและการส่งข้อมูลจะทำไล่จาก Layer7 ลงมาจนถึง Layer1 ซึ่งเป็นชั้นที่มีการเชื่อมต่อทางกายภาพ จากนั้นข้อมูลจะถูกส่งไปยังเครื่องผู้รับปลายทางโดยเริ่มจาก Layer1 ข้อมูลก็จะถูกถอดรหัส และส่งขึ้นไปตาม Layer จนถึง Layer7 ก็จะประกอบกลับมาเป็นข้อมูล นำไปส่งให้ application นำไปใช้แสดงผลต่อไป
OSI Model ได้แบ่ง ตามลักษณะแบ่งออกเป็น 2 กลุ่มใหญ่ ได้แก่
 - Application-oriented Layers เป็น 4 Layer ด้านบนคือ Layer ที่ 7,6,5,4 ทำหน้าที่เชื่อมต่อรับส่งข้อมูลระหว่างผู้ใช้กับโปรแกรมประยุกต์ เพื่อให้รับส่งข้อมูลกับฮาร์ดแวร์ที่อยู่ชั้นล่างได้อย่างถูกต้อง ซึ่งจะเกี่ยวข้องกับซอฟแวร์เป็นหลัก
 - Network-dependent Layers เป็น 3 Layers ด้านล่าง ทำหน้าที่เกี่ยวกับการรับส่งข้อมูลผ่านสายส่ง และควบคุมการรับส่งข้อมูล.ตรวจสอบข้อผิดพลาด รวมทั้งเลื่อนเส้นทางที่ใช้ในการรับส่ง ซึ่งจะเกี่ยวข้องกับฮาร์ดแวร์เป็นหลัก ทำให้ใช้ผลิตภัณฑ์ต่างบริษัทกันได้อย่างไม่มีปัญหา

รูปที่ 2 แสดงการแบ่ง OSI Model ตามลักษณะกลุ่ม
3
การส่งผ่านข้อมูลระหว่างชั้น
เมื่อ computer A ต้องการส่งข้อมูลไปยัง computer B จะมีกระบวนการทำงานต่างๆ ตามลำดับดังนี้
ข้อมูลจาก Layer 7,6,5 จะถูกนำมาหั่นเป็นท่อนๆ แล้วใส่ข้อมูลบางอย่างตอ่เพิ่มเข้าไปในส่วนหัว เรียกว่า Header เพื่อใช้ในการบันทึกข้อมูลที่จำเป็นเช่น
หมายเลข port ต้นทางและหมายเลข port ปลายทาง กลายมาเป็นก้อนข้อมูล (Segment) ใน Layer4 ซึ่งเรียกว่า TCP Segment
จากนั้นข้อมูล Layer4 จะถูกส่งผ่านลงไปยัง Layer3 และจะถูกใส่ Header อีกซึ่งเป็นการเพิ่ม header เป็นชั้นๆ เรียกว่า การ Encapsulate ซึ่งในส่วนนี้จะ
เหมือนกับการเอาเอกสารใส่ซองจดหมายแล้วจ่าหน้าซองระบุผู้ส่งและผู้รับ คือเป็นการบันทึกหมายเลข ip address ของโฮสต์ต้นทางและโฮสต์ปลายทางไว้ด้วย เมื่อการ encapsulate เสร็จสิ้นจะได้ก้อนข้อมูลที่เรียกว่า packetจากนั้น packet ของข้อมูลจะถูกส่งผ่านไปยังระดับล่างอีก คือส่งไปให้ Layer2 ในชั้นนี้ข้อมูลจะถูกใส่ header เพิ่มเข้าไปที่ส่วนหัวเพื่อเก็บ MAC Address ของต้นทางและปลายทาง และยังมีการใส่ข้อมูล่ต่อเพิ่มเข้าไปในส่วนหางด้วย ข้อมูลที่ต่อเพิ่มไปในส่วนหางนี้เรียกว่า Trailer จึงรวมกันกลายเป็นก้อนข้อมูลของ Layer2 ที่เรียกว่า Frame จากนั้น Frame ข้อมูลจะถูกแปลงให้กลายเป็น bit ของข้อมูลเพื่อส่งไปตามสื่อเข่นสาย UTP, Fiber ต่อไป การส่งสัญญาณทางไฟฟ้าไปตามสื่อต่างๆนี้ เป็นการทำงานในระดับ Layer1 เรียกว่า Physical Layer

รูปที่ 3 แสดงการส่งข้อมูลผ่านระหว่างชั้น
4
หน้าที่ของแต่ละ Layer
Layer7, Application Layer เป็นชั้นที่อยู่บนสุดของขบวนการรับส่งข้อมูล ทำหน้าที่ติดต่อกับผู้ใช้ โดยจะรับคำสั่งต่างๆจากผู้ใช้ส่งให้คอมพิวเตอร์แปลความ
หมาย และทำงานตามคำสั่งที่ได้รับในระดับโปรแกรมประยุกต์ เช่นแปลความหมายของการกดปุ่มเมาส์ให้เป็นคำสั่งในการก็อปปี้ไฟล์ หรือดึงข้อมูลมาแสดงผลบนหน้าจอเป็น Browser, HTTP,FTP, Telnet, WWW, SMTP, SNMP,NFS เป็นต้น
Layer6, Presentation Layer เป็นชั้นที่ทำหน้าที่ตกลงกับคอมพิวเตอร์อีกด้านหนึ่งในชั้นเดียวกันว่า การรับส่งข้อมูลในระดับโปรแกรมประยุกต์จะมีขั้นตอนและ
ข้อบังคับอย่างไร จุดประสงค์หลักของ Layer นี้คือ กำหนดรูปแบบของการสื่อสาร อย่างเช่น ASCII Text, EBCDIC, Binary และ JPEG รวมถึงการเข้ารหัส (Encription)ก็รวมอยู่ใน Layer นี้ด้วย ตัวอย่างเช่น โปรแกรม FTP ต้องการรับส่งโอนย้ายไฟล์กับเครื่อง server ปลายทาง โปรโตคอล FTP จะอนุญาตให้ผู้ใช้ระบุรูปแบบของข้อมูลที่โอนย้ายกันได้ว่าเป็นแบบ ASCII text หรือแบบ binary JPEG, ASCII, Binary, EBCDICTIFF, GIF, MPEG, Encription เป็นต้น
Layer5, Session Layer เป็น Layer ที่ควบคุมการสื่อสารจากต้นทางไปยังปลายทางแบบ End to End และคอยควบคุมช่องทางการสื่อสารในกรณีที่มีหลายๆ
โปรเซสต้องการรับส่งข้อมูลพร้อมๆกันบนเครื่องเดียวกัน (ทำงานคล้ายๆเป็นหน้าต่างคอยสลับเปิดให้ข้อมูลเข้าออกตามหมายเลขช่อง(port)ที่กำหนด) และยังให้อินเตอร์เฟซสำหรับ Application Layer ด้านบนในการควบคุมขั้นตอนการทำงานของ protocol ในระดับ transport/network เช่น socket ของ unix หรือ windows socket ใน windows ซึ่งได้ให้ Application Programming Interface (API) แก่ผู้พัฒนาซอฟแวร์ในระดับบนสำหรับการเขียนโปรแกรมเพื่อควบคุมการทำงานของ protocol TCP/IP ในระดับล่าง และทำหน้าที่ควบคุม "จังหวะ" ในการรับส่งข้อมูล ของทั้ง 2ด้านให้มีความสอดคล้องกัน (syncronization) และกำหนดวิธีที่ใช้รับส่งข้อมูล เช่นอาจจะเป็นในลักษณะสลับกันส่ง (Half Duplex) หรือรับส่งไปพร้อมกันทั้ง2ด้าน (Full Duplex) ข้อมูลที่รับส่งกันใน Layer5 นี้จะอยู่ในรูปของ dialog หรือประโยคข้อมูลที่สนทนาโต้ตอบกันระหว่างต้านรับและด้านที่ส่งข้อมูล ไม่ได้มองเป็นคำสั่งอย่างใน Layer6 เช่นเมื่อผู้รับได้รับข้อมูลส่วนแรกจากผู้ส่ง ก็จะตอบกลับไปให้ผู้ส่งรู้ว่าได้รับข้อมูลส่วนแรกเรียบร้อยแล้ว และพร้อมที่จะรับข้อมูลส่วนต่อไป คล้ายกับเป็นการสนทนาตอบโต้กันระหว่างผู้รับกับผู้ส่งนั่นเอง ตัวอย่างของ protocol ในชั้นนี้คือ RPC, SQL, Netbios, Windows socket, NFS เป็นต้น
Layer4, Transport Layer เป็น Layer ที่มีหน้าที่หลักในการแบ่งข้อมูลใน Layer บนให้พอเหมาะกับการจัดส่งไปใน Layer ล่าง ซึ่งการแบ่งข้อมูลนี้เรียกว่า
Segmentation, ทำหน้าที่ประกอบรวมข้อมูลต่างๆที่ได้รับมาจาก Layer ล่าง และให้บริการตรวจสอบและแก้ไขปัญหาเมื่อเกิดข้อผิดพลาดขึ้นระหว่างการส่ง(error recovery) ทำหน้าที่ยืนยันว่าข้อมูลได้ถูกส่งไปถึงยังเครื่องปลายทางและได้รับข้อมูลถูกต้องเรียบร้อยแล้ว หน่วยของข้อมูลที่ถูกแบ่งแล้วนี้เรียกว่า Segment ตัวอย่างของ protocol ในชั้นนี้คือ TCP,UDP,SPX
Layer3, Network Layer เป็น Layer ที่มีหน้าที่หลักในการส่ง packet จากเครื่องต้นทางให้ไปถึงปลายทางด้วยความพยายามที่ดีที่สุด (best effort delivery)
layer นี้จะกำหนดให้มีการตั้ง logical address ขึ้นมาเพื่อใช้ระบุตัวตน ตัวอย่างของ protocol นี้เช่น IP และ logical address ที่ใช้คือหมายเลข IP นั่นเอง layer นี้ส่วนใหญ่เกี่ยวข้องกับอุปกรณ์ฮาร์ดแวร์ซึ่งที่ทำงานอยู่บน Layer นี้คือ router นั่นเอง protocol ที่ทำงานใน layer นี้จะไม่ทราบว่าpacketจริงๆแล้วไปถึงเครื่องปลายทางหรือไม่ หน้าที่ยืนยันว่าข้อมูลได้ไปถึงปลายทางจริงๆแล้วคือหน้าที่ของ Transport Layer นั่นเอง หน่วยของ layer นี้คือ packet ตัวอย่างของ protocol ในชั้นนี้คือ IP, IPX, Apple talk
Layer2, Data Link Layer รับผิดชอบในการส่งข้อมูลบน network แต่ละประเภทเช่น Ethernet, Token ring, FDDI, หรือบน WAN ต่างๆ ดูแลเรื่องการห่อหุ้ม
ข้อมูลจาก layer บนเช่น packet IP ไว้ภายใน Frame และส่งจากต้นทางไปยังอุปกรณ์ตัวถัดไป layer นี้จะเข้าใจถึงกลไกและอัลกอริทึ่มรวมทั้ง format จอง frame ที่ต้องใช้ใน network ประเภทต่างๆเป็นอย่างดี ในnetworkแบบEthernet layer นี้จะมีการระบุหมายเลข address ของเครื่อง/อุปกรณ์ต้นทางกับเครื่อง/อุปกรณ์ปลาทางด้วย hardware address ที่เรียกว่า MAC Address เป็น address ที่ฝังมากับอุปกรณ์นั้นเลยไม่สามารถเปลี่ยนเองได้ MAC Address เป็นตัวเลขขนาด 6 byte, 3 byte แรกจะได้รับการจัดสรรโดยองค์กรกลาง IEEE ให้กับผู้ผลิตแต่ละราย ส่วนตัวเลข 3 byte หลังทางผู้ผลิตจะเป็นผู้กำหนดเอง หน่วยของ layer นี้คือ Frame ตัวอย่างของ protocol ในชั้นนี้คือ Ethernet, Token Ring, IEEE 802.3/202.2,Frame Relay, FDDI, HDLC, ATM เป็นต้น
Layer1, Physical Layer เป็นการกล่าวถึงข้อกำหนดมาตรฐานคุณสมบัติทางกายภาพของฮาร์ดแวร์ที่ใช้เชื่อมต่อระหว่างคอมพิวเตอร์ทั้ง2ระบบ สัญญาณทาง
ไฟฟ้าและการเชื่อมต่อต่างๆของสายเคเบิล,Connectorต่างๆ เช่นสายที่ใช้รับส่งข้อมูลเป็นแบบไหน ข้อต่อหรือปลั๊กที่ใช้มีมาตรฐานอย่างไร ใช้ไฟกี่โวลต์ ความเร็วในการรับส่งเป็นเท่าไร สัญญาณที่ใช้รับส่งข้อมูลมีมาตรฐานอย่างไร Layer1 นี้จะมองเห็นข้อมูลเป็นการรับ-ส่งที่ละ bit เรียงต่อกันไปโดยไม่มีการพิจารณาเรื่องความหมายของข้อมูลเลย การรับส่งจะเป็นในรูป 0 หรือ 1 หากการรับส่งข้อมูลมีปัญหาเนื่องจากฮาร์ดแวร์ เช่นสายขาดก็จะเป็นหน้าที่ของ Layer1 นี้ที่จะตรวจสอบและแจ้งข้อผิดพลาดนั้นให้ชั้นอื่นๆที่อยู่เหนือขึ้นไปทราบ หน่วยของ layer นี้คือ bits ตัวอย่างของ protocol ในชั้นนี้คือ CAT5, CAT6, RJ-45, EIA/TIA-232, V.35cable เป็นต้น

รูปที่ 4 แสดงหน้าที่ของแต่ละ Layer ในการทำงาน
รูปที่ 5 แสดงความสัมพันธ์ของ Layer กับ Protocol ต่าง ๆ
รูปที่ 6 แสดงภาพรวมการติดต่อระหว่าง Computerโดยใช้ OSI 7- Layer
5
 ICMP (Internet Control Message Protocol)
ICMP เป็นโปรโตคอลที่ใช้ในการตรวจสอบและรายงานสถานภาพของดาต้าแกรม (Datagram) ในกรณีที่เกิดปัญหากับดาต้าแกรม เช่น เราเตอร์ไม่สามารถส่ง
ดาต้าแกรมไปถึงปลายทางได้ ICMP จะถูกส่งออกไปยังโฮสต้นทางเพื่อรายงานข้อผิดพลาด ที่เกิดขึ้น อย่างไรก็ดี ไม่มีอะไรรับประกันได้ว่า ICMP Message ที่ส่งไปจะถึงผู้รับจริงหรือไม่ หากมีการส่งดาต้าแกรมออกไปแล้วไม่มี ICMP Message ฟ้อง Error กลับมา ก็แปลความหมายได้สองกรณีคือ ข้อมูลถูกส่งไปถึงปลายทางอย่างเรียบร้อย หรืออาจจะมีปัญหา ในการสื่อสารทั้งการส่งดาต้าแกรม และ ICMP Message ที่ส่งกลับมาก็มีปัญหาระว่างทางก็ได้ ICMP จึงเป็นโปรโตคอลที่ไม่มีความน่าเชื่อถือ (unreliable) ซึ่งจะเป็นหน้าที่ของ โปรโตคอลในระดับสูงกว่า Network Layer ในการจัดการให้การสื่อสารนั้นๆ มีความน่าเชื่อถือ ในส่วนของ ICMP Message จะประกอบด้วย Type ขนาด 8 บิต Checksum ขนาด 16 บิต และส่วนของ Content ซึ่งจะมีขนาดแตกต่างกันไปตาม Type และ Code ดังรูป

รูปที่ 7 แสดงโปรโตคคอล ICMP
 1. แบ่งเป็นโพรโตคอล 2 ชนิดตามลักษณะ ลักษณะแรกเรียกว่า Transmission Control Protocol (TCP) เป็นแบบที่มีการกำหนดช่วงการสื่อสารตลอดระยะเวลาการสื่อสาร (connection-oriented) ซึ่งจะยอมให้มีการส่งข้อมูลเป็นแบบ Byte stream ที่ไว้ใจได้โดยไม่มีข้อผิดพลาด ข้อมูลที่มีปริมาณมากจะถูกแบ่งออกเป็นส่วนเล็กๆ เรียกว่า message ซึ่งจะถูกส่งไปยังผู้รับผ่านทางชั้นสื่อสารของอินเทอร์เน็ต ทางฝ่ายผู้รับจะนำ message มาเรียงต่อกันตามลำดับเป็นข้อมูลตัวเดิม TCP ยังมีความสามารถในการควบคุมการไหลของข้อมูลเพื่อป้องกันไม่ให้ผู้ส่ง ส่งข้อมูลเร็วเกินกว่าที่ผู้รับจะทำงานได้ทันอีกด้วย
 2. โปรโตคอลการนำส่งข้อมูลแบบที่สองเรียกว่า UDP (User Datagram Protocol) เป็นการติดต่อแบบไม่ต่อเนื่อง (connectionless) มีการตรวจสอบความถูกต้องของข้อมูลแต่จะไม่มีการแจ้งกลับไปยังผู้ส่ง จึงถือได้ว่าไม่มีการตรวจสอบความถูกต้องของข้อมูล อย่างไรก็ตาม วิธีการนี้มีข้อดีในด้านความรวดเร็วในการส่งข้อมูล จึงนิยมใช้ในระบบผู้ให้และผู้ใช้บริการ (client/server system) ซึ่งมีการสื่อสารแบบ ถาม/ตอบ (request/reply) นอกจากนั้นยังใช้ในการส่งข้อมูลประเภทภาพเคลื่อนไหวหรือการส่งเสียง (voice) ทางอินเทอร์เน็ต
a. UDP:(User Datagram Protocol)
เป็นโปรโตคอลที่อยู่ใน Transport Layer เมื่อเทียบกับโมเดล OSI โดยการส่งข้อมูลของ UDP นั้นจะเป็นการส่งครั้งละ 1 ชุดข้อมูล เรียกว่า UDP datagram ซึ่งจะไม่มีความสัมพันธ์กันระหว่างดาต้าแกรมและจะไม่มีกลไกการตรวจสอบความสำเร็จในการรับส่งข้อมูล
 3. กลไกการตรวจสอบโดย checksum ของ UDP นั้นเพื่อเป็นการป้องกันข้อมูลที่อาจจะถูกแก้ไข หรือมีความผิดพลาดระหว่างการส่ง และหากเกิดเหตุการณ์ดังกล่าว ปลายทางจะได้รู้ว่ามีข้อผิดพลาดเกิดขึ้น แต่มันจะเป็นการตรวจสอบเพียงฝ่ายเดียวเท่านั้น โดยในข้อกำหนดของ UDP หากพบว่า Checksum Error ก็ให้ผู้รับปลายทางทำการทิ้งข้อมูลนั้น แต่จะไม่มีการแจ้งกลับไปยังผู้ส่งแต่อย่างใด การรับส่งข้อมูลแต่ละครั้งหากเกิดข้อผิดพลาดในระดับ IP เช่น ส่งไม่ถึง, หมดเวลา ผู้ส่งจะได้รับ Error Message จากระดับ IP เป็น ICMP Error Message แต่เมื่อข้อมูลส่งถึงปลายทางถูกต้อง แต่เกิดข้อผิดพลาดในส่วนของ UDP เอง จะไม่มีการยืนยัน หรือแจ้งให้ผู้ส่งทราบแต่อย่างใด

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

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