บทที่ 7 OSI Model
การทำงานของระบบเครือข่ายคอมพิวเตอร์ แต่เดิมนั้น การติดต่อสื่อสารกันระหว่างเครื่องคอมพิวเตอร์ ก็จะถูกใช้งานภายใต้ผู้ผลิตเจ้านั้นๆ ยกตัวให้เห็นภาพอย่างง่ายๆ เช่น
– Software ของ Apple ต้องลงบนเครื่อง Apple
– Software ของ Microsoft ต้องลงบน Windows
แบบนี้ เราจะเรียกว่าเป็น Proprietary แปลได้ว่า เป็นของผมแต่เพียงผู้เดียว ทำให้ถ้าเราต้องการที่จะใช้งานหลายๆบริษัทผู้ผลิต (Multi-Vendors) ก็จะไม่สามารถใช้งานร่วมกันได้ (Not Compatible)
จึงมีองค์กรต่างที่มากำหนดมาตรฐานต่างๆขึ้นสำหรับการสื่อสารบนเครือข่าย เช่น IETF , IEEE และอื่นๆ เพื่อให้ผู้ผลิตแต่ละรายนั้นสามารถผลิตอุปกรณ์ พัฒนา software หรือ protocol ได้เป็นไปตามมาตรฐานเดียวกัน และสามารถใช้งานร่วมกันได้
มาพูดถึง OSI Model กันบ้าง
องค์กรมาตรฐานระหว่างประเทศ (The International Organization for Standardization) หรือที่เราเรียกย่อๆว่า ISO (ไอโซ่) ได้พัฒนา Model ของการทำงานบนระบบเครือข่ายขึ้นมาเป็นมาตรฐานกลาง ในปัจจุบันใช้เพื่ออ้างอิงการสื่อสารและเปรียบเทียบการทำงานบนเครือข่าย ผู้ผลิตหลายๆบริษัท ที่ผลิตอุปกรณ์หรือ software ต่างๆขึ้นมาก็จะต้องผลิตตามมาตรฐานที่กำหนดขององค์ที่ดูแลในแต่ละส่วน ซึ่ง Model นี้ก็ถูกนำมาใช้มาเปรียบเทียบเพื่อให้เข้าใจและอธิบายการทำงานของแต่ละส่วนได้ง่ายขึ้น !!! ผมยกตัวอย่างของคำว่ามาตรฐานให้ดูง่ายๆครับ เช่น
เวลาขับรถเกียร์ออโต้ เราเข้าไปที่เกียร์ D ก็คือ ไปข้างหน้า เข้าไปที่เกียร์R ก็ถอยหลัง ไม่ว่าเราจะซื้อยี่ห้อไหนมา ก็จะถูกออกแบบให้เป็นมาตรฐานเดียวกัน
และ Model ที่ผมพูดถึงนี้เรียกว่า Open System Interconnection (OSI) นั่นเอง !!!
อย่างที่ผมบอกนะครับ OSI Model เป็นเพียง Model ที่ใช้อ้างอิงในการสื่อสารเท่านั้น ปัจจุบันโลกเครือข่ายเราใช้งานบนTCP/IP เป็นหลักครับ แต่ที่ยังพูดถึง OSI Model เพราะว่า การแบ่งเป็น Layer ของมันสามารถมองเป็นภาพกว้างของการทำงานบนเครือข่ายในแต่ละส่วนได้ เพื่อมาใช้ในการสอน ในการอธิบาย และในการแก้ปัญหาได้ง่ายขึ้นครับ
OSI Model ใช้อ้างอิงการสื่อสาร (Reference Model)แบ่งออกเป็นชั้น (Layer) โดยมีตั้งแต่ชั้นที่ 1 ถึงสวรรค์ชั้น 7 (Layer 1 – 7) โดย Layer 1 จะอยู่ด้านล่างสุด และเรียงขึ้นไปจนถึง Layer 7 แต่ละ Layer ก็มีชื่อเรียกตามรูปแบบการสื่อสารและการทำงานของมันในแต่ละชั้นนั่นเอง
บน OSI Model ก็จะแบ่งเป็น 2 กลุ่มใหญ่ คือ
ตั้งแต่ Layer 1 – 4 เรียกว่า Lower Layer
ตั้งแต่ Layer 5 – 7 เรียกว่า Upper Layer
โดยส่วนมากเราจะวุ่นวายกันอยู่ที่ Lower Layer มากกว่าUpper Layer ครับ ใครที่ทำงานเป็น Network Engineerจะมองภาพออกครับว่า เราจะยุ่งอยู่กับ Lower Layer มากกว่า
ทีนี้เรามาดูกันว่าในแต่ละ Layer มันมีหน้าที่อะไรบ้าง
Layer 1 (Physical Layer)
เป็น ชั้นล่างสุด จะมีการกำหนดคุณสมบัติทางกายภาพของฮาร์ดแวร์ที่ใช้เชื่อมต่อระหว่าง คอมพิวเตอร์ทั้งสองระบบ เช่น
สายที่ใช้รับส่งข้อมูลจะเป็นแบบไหน
ข้อต่อที่ใช้ในการรับส่งข้อมูลมีมาตรฐานอย่างไร
ความเร็วในการรับส่งข้อมูลเท่าใด
สัญญาณที่ใช้ในการรับส่งข้อมูลมีรูปร่างอย่างไร
ใช้แรงดันไฟฟ้าเท่าไหร่
ข้อมูลใน Layer ที่ 1 นี้จะมองเห็นเป็นการรับส่งข้อมูลทีละบิตเรียงต่อกันไป
จากรูปแสดงถึงการส่งข้อมูลบน Physical layer ครับ แสดงให้เห็นว่า ข้อมูลจะมาเป็นอย่างไรก็ตาม ก็จะถูกแปลงเป็นสัญญาณเพื่อส่งไปยังปลายทาง แล้วฝั่งปลายทางก็จะนำสัญญาณที่รับมาแปลงกลับเป็นข้อมูลเพื่อส่งให้เครื่อง Client ต่อไป
ยังไม่ได้พูดถึงการส่งข้อมูลบน OSI นะครับ เอาไว้รอบหน้า ตรงนี้ผมอยกขึ้นมาเพื่อให้เห็นภาพเบื้องต้น
เพราะ ฉะนั้น อุปกรณ์ต่างๆที่มีความสามารถในการนำพาสัญญาณไป ก็พวก Card LAN (NIC) , สาย UTP , สาย Fiber หรือพวก เต้าเสียบ หัวต่อต่างๆ RJ45 , RJ11 , RS323 ก็จัดอยู่ใน Physical Layer ครับ
Layer 2 (Data-Link Layer)
เป็นชั้นที่ทำหน้ากำหนดรูปแบบของการส่งข้อมูลข้าม Physical Network โดยใช้ Physical Address อ้างอิงที่อยู่ต้นทางและปลายทาง ซึ่งก็คือ MAC Address นั่นเอง รวมถึงทำการตรวจสอบและจัดการกับ error ในการรับส่งข้อมูล ข้อมูลที่ถูกส่งบนLayer 2 เราจะเรียกว่า Frame
ซึ่งบน Layer 2 ก็จะแบ่งเป็น LAN และ WAN ครับ
ซึ่ง ปัจจุบัน บน Layer 2 LAN เรานิยมใช้เทคโนโลยีแบบEthernet มากที่สุด ส่วน WAN ก็จะมีหลายแบบแตกต่างกันไป เช่น Lease Line (HDLC , PPP) , MPLS , 3G และอื่นๆ
สำหรับ LAN ยังมีการแบ่งย่อยออกเป็น 2 sublayers คือ
Logical Link Control (LLC)
IEEE 802.2 ซึ่งจะให้บริการกับ Layer ด้านบนในการเข้าใช้สัญญาณใน การรับ-ส่งข้อมูล ตามมาตรฐาน IEEE802 แล้ว จะอนุญาตให้สถาปัตยกรรมของ LAN ที่ต่างกันสามารถทำงานร่วมกันได้ หมายความว่า Layer ด้านบนไม่จำเป็นต้องทราบว่า Physical Layer ใช้สายสัญญาณประเภทใดในการรับ-ส่งข้อมูล เพราะ LLCจะรับผิดชอบในการปรับ Frame ข้อมูลให้สามารถส่งไปได้ในสายสัญญาณประเภทนั้นได้ และไม่จำเป็นต้องสนใจว่าข้อมูลจะส่งผ่านเครือข่ายแบบไหน เช่น Ethernet , Token Ring และไม่จำเป็นต้องรู้ว่าการส่งผ่านข้อมูลใน Physical Layer จะใช้การรับส่งข้อมูล แบบใด LLC จะเป็นผู้จัดการเรื่องเหล่านี้ได้ทั้งหมดครับ
Media Access Control (MAC)
IEEE 802.3 ใช้ควบคุมการติดต่อสื่อสารกับ Layer 1 และรับผิดชอบในการรับ-ส่งข้อมูลให้สำเร็จและถูกต้อง โดยมีการระบุ MAC Address ของอุปกรณ์เครือข่าย ซึ่งใช้อ้างอิงในการส่งข้อมูลจากต้นทางไปยังปลายทาง เช่น
จาก ต้นทางส่งมาจาก MAC Address หมายเลขAAAA:AAAA:AAAA ส่งไปหาปลายทางหมายเลขBBBB:BBBB:BBBB เมื่อปลายทางได้รับข้อมูลก็จะรู้ว่าใครส่งมา เพื่อจะได้ตอบกลับไปถูกต้อง นั่นเอง
บน Ethernet (IEEE802.3) เมื่อมันมีหน้าที่ในการรับผิดชอบการรับ-ส่งข้อมูลให้สำเร็จและถูกต้อง มันจึงมีการตรวจสอบข้อผิดพลาดในการส่งข้อมูลด้วย ที่เราเรียกว่า Frame Check Sequence (FCS) และยังตรวจสอบกับ Physical ด้วยว่าช่องสัญญาณพร้อมสำหรับส่งข้อมูลไหม ถ้าว่างก็ส่งได้ ถ้าไม่ว่างก็ต้องรอ กลไลนี่เรารู้จักกันในชื่อ CSMA/CD นั่นเองครับ
CSMA/CD มันก็คือกลไลการตรวจสอบการชนกันของข้อมูล บนEthernet ถ้าเกิดมีการชนกันเกิดขึ้น มันก็จะส่งสัญญาณ (jam signal) ออกไปเพื่อให้ทุกคนหยุดส่งข้อมูล แล้วสุ่มรอเวลา (back off) เพื่อส่งใหม่อีกครั้ง
Layer 3 (Network Layer)
ทำหน้าที่ส่งข้อมูลข้ามเครือข่าย หรือ ข้าม network โดยส่งข้อมูลผ่าน Internet Protocol (IP) โดยมีการสร้างที่อยู่ขึ้นมา (Logical Address) เพื่อใช้อ้างอิงเวลาส่งข้อมูล เราเรียกว่า IP address ข้อมูลที่ถูกส่งมาจากต้นทาง เพื่อไปยังปลายทาง ที่ไม่ได้อยู่บนเครือข่ายเดียวกัน จำเป็นจะต้องพึ่งพาอุปกรณ์ที่ทำงานบน Layer 3 นั่นก็คือ Router หรือ Switch Layer 3 โดยใช้ Routing Protocol (OSPF , EIGRP) เพื่อหาเส้นทางและส่งข้อมูลนั้น (IP) ข้ามเครือข่ายไป
โดยการทำงาน
ของ Internet Protocol (IP) เป็นการทำงานแบบConnection-less หมายความว่า IP ไม่มีการตรวจสอบข้อมูลว่าส่งไปถึงปลายทางไหม แต่มันจะพยายามส่งข้อมูลออกไปด้วยความพยายามที่ดีที่สุด (Best-Effort) เพราะฉะนั้น ข้อมูลที่ส่งออกไปแล้วไม่ถึงปลายทาง ต้นทางก็จะไม่รู้เลย ถ้าส่งไปแล้วข้อมูลไม่ถึงปลายทาง ฝั่งต้นทางจะต้องทำการส่งไปใหม่ บน Layer 3 จึงมี Protocolอีกตัวนึงเพื่อใช้ตรวจสอบว่าปลายทางยังมีชีวิตอยู่ไหม ก่อนที่จะส่งข้อมูล นั่นคือ ICMP ครับ แต่ผู้ใช้งานจะต้องเป็นคนเรียกใช้protocol ตัวนี้เองนะครับ
จริงๆ แล้ว ก็ยังมีรายละเอียดของ ICMP , ARP อีกที่ทำงานบนLayer 3 แต่เบื้องต้น เอาไว้เท่าที่ก่อนละกันครับ สำหรับ Layer 3
Layer 4 (Transport Layer)
ทำหน้าที่เชื่อมต่อกับ Upper Layer ในการใช้งาน network services ต่างๆ หรือ Application ต่าง จากต้นทางไปยังปลายทาง (end-to-end connection) ในแต่ละ servicesได้ โดยใช้ port number ในการส่งข้อมูลของ Layer 4 จะใช้งานผ่าน protocol 2 ตัว คือ TCP และ UDP
เมื่อข้อมูลถูกส่งมาใช้งานผ่าน services Telnet ไปยังปลายทางถูกส่งลงมาที่ Layer 4 ก็จะทำการแยกว่า telnet คือ port number 23 เป็น port number ที่ใช้ติดต่อไปหาปลายทาง แล้วฝั่งต้นทางก็จะ random port number ขึ้นมา เพื่อให้ปลายทางสามารถตอบกลับมาได้เช่นเดียวกัน
ทีนี้เรามาดู protocol 2 ตัว ใน Layer 4 กันต่อครับ
Transmission Control Protocol (TCP) มีคุณลักษณะที่สำคัญ ดังนี้
จัดแบ่งข้อมูลจากระดับ Application ให้มีขนาดพอเหมาะที่จะส่งไปบนเครือข่าย (Segment)
มีการสร้าง Connection กันก่อนที่จะมีการรับส่งข้อมูลกัน (Connection-oriented)
มีการใช้ Sequence Number เพื่อจัดลำดับการส่งข้อมูล
มีการตรวจสอบว่าข้อมูลที่ส่งไปถึงปลายทางหรือไม่ (Recovery)
บน TCP ก่อนจะส่งข้อมูลนั้นจะต้องทำการตรวจสอบก่อนว่า ปลายทางสามารถติดต่อได้ โดยจะทำการสร้างการเชื่อมต่อระหว่างผู้ส่งและผู้รับก่อน โดยใช้กลไล Three-Way Handshake เพื่อให้แน่ใจว่าข้อมูลที่ส่งจะสามารถส่งถึงผู้รับแน่นอน
นอกจาก Three-Way Handshake แล้ว TCP ยังมีกลไกFlow Control เพื่อควบคุมการส่งข้อมูลเมื่อเกิดปัญหาบนเครือข่ายระหว่างที่ส่งข้อมูลอยู่ หรือ กลไล Error Recovery ในกรณีที่มีข้อมูลบางส่วนหายไปขณะส่ง ก็ให้ทำการส่งมาใหม่ (Retransmission) แต่ผมขอพูดเรื่องกลไลต่างๆไว้เพียงเบื้องต้นละกันนะครับ
นอก จากนั้นยังสามารถทำการจัดสรรค์หรือแบ่งส่วนของข้อมูลออกเป็นส่วนๆ (Segmentation) ก่อนที่จะส่งลงไปที่ Layer 3 อีกด้วย และข้อมูลที่ถูกแบ่งออก ก็จะใส่ลำดับหมายเลขเข้าไป (Sequence number) เพื่อให้ปลายทางนำข้อมูลไปประกอบกันได้อย่างถูกต้อง
User Datagram Protocol (UDP) มีคุณลักษณะที่สำคัญ ดังนี้
ไม่มีการสร้าง Connection กันก่อนที่จะมีการรับส่งข้อมูลกัน (Connectionless)
ส่งข้อมูลด้วยความพยายามที่ดีที่สุด (Best-Effort)
ไม่มีการตรวจสอบว่าข้อมูลที่ส่งไปถึงปลายทางหรือไม่ (No Recovery)
บน UDP จะตรงข้ามกับ TCP เลยครับ เพราะ ไม่มีการสร้างการเชื่อมต่อกันก่อน หมายความว่าถ้า services ใดๆ ใช้งานผ่านUDP ก็จะถูกส่งออกไปทันทีด้วยความพยายามที่ดีที่สุด (ฺBest-Effort) และไม่มีการส่งใหม่เมื่อข้อมูลสูญหาย (No Recovery)หรือส่งไม่ถึงปลายทางอีกด้วย
ข้อดีของมันก็คือ มีความรวดเร็วในการส่งข้อมูล เพราะฉะนั้นservices ที่ใช้งานผ่าน UDP ก็มีมากมาย เช่น TFTP , DHCP , VoIP และอื่นๆ เป็นต้น
ผมชอบภาพนี้ เพราะเปรียบเทียบการทำงานของ TCP และ UDPได้เห็นภาพดีเหมือนกันครับ
อ้าวๆๆ เหนื่อยกันหรือยังครับ ผ่านไปแล้ว สำหรับ Lower Layerนะครับ คือ Layer 1 – 4 ซึ่งส่วนมากแล้วชาว Network Engineer ก็จะวุ่นวายกับ Lower Layer มากกว่า Upper Layer (5-7) ซะอีก แต่จะไม่พูดถึงก็ไม่ได้ใช่ไหมครับ ถ้าอย่างนั้นก็ไปดูกันต่อเลยครับ
Layer 5 (Session Layer)
ทำหน้าที่ควบคุมการเชื่อมต่อ session เพื่อติดต่อจากต้นทาง กับ ปลายทาง ลองดูจากรูปตัวอย่างเผื่อจะทำให้เข้าใจง่ายขึ้น
เมื่อฝั่งต้นทางต้องการติดต่อไปยังปลายทางด้วย port 80 (เปิดInternet Explorer) ฝั่งต้นทางก็จะทำการติดต่อไปยังปลายทาง โดยการสร้าง session ขึ้นมา เป็น session ที่ 1 ส่งผ่านLayer 4 โดย random port ต้นทางขึ้นมาเป็น 1025 ส่งไปหาปลายทางด้วย port 80
ระหว่าง ที่ session ที่ 1 ใช้งานอยู่ เราติดต่อไปยังปลายทางอีกครั้งด้วย port 80 (เปิด Google Chrome) ฝั่งต้นทางก็จะทำการสร้าง session ที่ 2 ขึ้นมา ส่งผ่าน Layer 4 โดยrandom port ต้นทางขึ้นมาเป็น 1026 ส่งไปหาปลายทางด้วยport 80
แล้วแต่ละ session ฝั่งปลายทาง ก็จะตอบกลับมาด้วย port ที่ฝั่งต้นทางส่งมา ทำให้สามารถแยก session ออกได้ เมื่อเราส่งข้อมูลบนเครือข่ายนั่นเองครับ
Layer 6 (Presentation Layer)
ทำหน้าที่ในการแปล หรือ นำเสนอ structure , format , coding ต่างๆของข้อมูลบน application ที่จะส่งจากต้นทางไปยังปลายทาง ให้อยู่ในรูปแบบที่ฝั่งต้นทางและปลายทาง สามารถเข้าใจได้ทั้ง 2 ฝั่ง
ผมอ่านจากเว็บนึงกล่าวไว้ก็เข้าใจง่ายดีนะครับ
Most computers use the ASCII table for characters. If another computer would use another character like EBCDIC than the presentation layer needs to “reformat” the data so both computers agree on the same characters.
เค้าบอกว่า computer ส่วนมากใช้ ASCII format ถ้าจะติดต่อพวก computer mainframe จะใช้พวก EBCDIC format ซึ่ง Layer 6 ก็จะทำการ reformat ข้อมูล ซึ่งสามารถทำให้ทั้ง 2 เครื่องสามารถเข้าใจ format ข้อมูลที่จะสื่อสารกันได้
Layer 7 (Application Layer)
ทำหน้าที่ติดต่อระหว่างผู้ใช้ (user) กับ application ที่ใช้งานบนเครือข่าย เช่น Web Browser (HTTP) , FTP , Telnetเป็นต้น สรุปแล้วมันก็คือพวก application ที่ใช้งานผ่านnetwork นั่นเองครับ
จบแล้วครับ สำหรับ OSI Model ผมก็หวังว่า บทความนี้จะทำให้หลายๆท่าน ได้รู้จักและเข้าใจ OSI Model กันไม่มากก็น้อยครับ แล้วเจอกันในบทความต่อไป