Monday, June 23, 2025

Network Layer ทบทวน และ update

 เรื่องของ "Network Layers" หรือ "ชั้นเครือข่าย" เป็นแนวคิดพื้นฐานที่สำคัญมากๆ ในการทำความเข้าใจว่าคอมพิวเตอร์และอุปกรณ์ต่างๆ สื่อสารกันผ่านเครือข่ายได้อย่างไร มันเหมือนกับการแบ่งงานออกเป็นส่วนๆ เพื่อให้แต่ละส่วนทำหน้าที่เฉพาะของตัวเอง ทำให้ระบบซับซ้อนอย่างเครือข่ายสามารถทำงานได้อย่างมีประสิทธิภาพและสามารถจัดการได้ง่ายขึ้น

มีโมเดลหลักๆ ที่ใช้อธิบายเรื่อง Layer ของเครือข่ายอยู่ 2 โมเดลที่นิยมใช้กันคือ:

  1. OSI Model (Open Systems Interconnection Model): มี 7 Layers เป็นโมเดลเชิงทฤษฎีที่ละเอียดและเป็นมาตรฐานในการอ้างอิง
  2. TCP/IP Model: มี 4 Layers เป็นโมเดลที่ใช้งานจริงบน Internet ในปัจจุบัน

เราจะอธิบายทั้งสองโมเดลโดยเน้นที่หน้าที่หลักของแต่ละ Layer ครับ


แนวคิดเบื้องหลัง Network Layers (Why Layers?)

ลองนึกภาพว่าคุณกำลังจะส่งพัสดุ (ข้อมูล) ไปให้เพื่อน:

  • คุณ (Application): เขียนจดหมาย (ข้อมูลดิบ)
  • พนักงานแพ็คของ (Presentation): จัดรูปแบบจดหมายให้เรียบร้อย อาจจะเข้ารหัสถ้าเป็นความลับ
  • พนักงานจัดการงาน (Session): เริ่มการสื่อสารกับที่ทำการไปรษณีย์ และคอยดูแลว่าการส่งนี้จะสำเร็จหรือไม่
  • พนักงานไปรษณีย์สาขาต้นทาง (Transport): ตัดจดหมายเป็นหน้าๆ (ถ้าจดหมายยาวมาก) ใส่ซองพร้อมระบุ "ผู้ส่ง" และ "ผู้รับปลายทาง"
  • เจ้าหน้าที่จัดเส้นทาง (Network): ดูที่อยู่ปลายทางในซอง แล้วระบุเส้นทางว่าซองนี้ควรจะไปทางไหน ผ่านไปรษณีย์สาขาไหนบ้าง
  • พนักงานขับรถ/จัดของ (Data Link): นำซองใส่กล่องหรือห่อหุ้มอีกชั้น พร้อมระบุ "ผู้ส่ง" และ "ผู้รับ" สำหรับการขนส่ง "ระหว่างจุด" (เช่น จากไปรษณีย์ A ไป B) แล้วนำไปวางบนรถ
  • รถขนส่ง/ถนน (Physical): ขับรถไปตามถนนจริงเพื่อส่งกล่องไปอีกจุด

เมื่อพัสดุไปถึงปลายทาง กระบวนการก็จะย้อนกลับ:

  • รถขนส่ง/ถนน (Physical): นำกล่องมาส่ง
  • พนักงานขับรถ/จัดของ (Data Link): แกะกล่อง ตรวจสอบว่าซองไม่เสียหาย แล้วส่งให้เจ้าหน้าที่ในไปรษณีย์ปลายทาง
  • เจ้าหน้าที่จัดเส้นทาง (Network): ดูว่าซองมาถึงไปรษณีย์ปลายทางถูกต้องหรือไม่
  • พนักงานไปรษณีย์สาขาปลายทาง (Transport): แกะซอง เอาหน้าจดหมายมารวมกันให้ครบ
  • พนักงานจัดการงาน (Session): ตรวจสอบว่าได้รับครบถ้วนแล้ว
  • พนักงานแกะรหัส/จัดรูปแบบ (Presentation): จัดรูปแบบจดหมายกลับมาให้คุณอ่านได้
  • คุณ (Application): อ่านจดหมาย

การแบ่งหน้าที่แบบนี้มีประโยชน์มาก:

  • ง่ายต่อการพัฒนา: ผู้พัฒนาสามารถมุ่งเน้นไปที่การทำงานของ Layer ตัวเอง โดยไม่ต้องสนใจว่า Layer อื่นๆ ทำงานอย่างไร
  • ยืดหยุ่น: สามารถเปลี่ยนโปรโตคอลใน Layer หนึ่งได้ โดยไม่กระทบกับ Layer อื่นๆ
  • แก้ไขปัญหาง่าย: เมื่อมีปัญหาเกิดขึ้น สามารถระบุได้ว่าปัญหาอยู่ตรง Layer ไหน

1. OSI Model (7 Layers)

เป็นโมเดลที่ละเอียดและเป็นที่นิยมใช้อ้างอิงทางทฤษฎี (เรียงจาก Layer ที่ใกล้ผู้ใช้ที่สุด ไปยัง Layer ที่ใกล้ฮาร์ดแวร์ที่สุด)

  • Layer 7: Application Layer (ชั้นแอปพลิเคชัน)

    • หน้าที่: เป็น Layer ที่ใกล้ชิดกับผู้ใช้มากที่สุด เป็นจุดที่แอปพลิเคชันต่างๆ (เช่น Web Browser, Email Client, FTP Client) ใช้ในการสื่อสารกับเครือข่าย
    • โปรโตคอลตัวอย่าง: HTTP/HTTPS (สำหรับเว็บ), FTP (สำหรับโอนไฟล์), SMTP/POP3/IMAP (สำหรับอีเมล), DNS (สำหรับการแปลงชื่อโดเมนเป็น IP)
    • ตัวอย่าง: เมื่อคุณพิมพ์ www.google.com ในเบราว์เซอร์, นี่คือการทำงานของ Application Layer
  • Layer 6: Presentation Layer (ชั้นการนำเสนอ)

    • หน้าที่: แปลงข้อมูลให้อยู่ในรูปแบบที่ Layer Application เข้าใจ หรือสามารถนำไปใช้งานได้ จัดการเรื่องการเข้ารหัส/ถอดรหัสข้อมูล (Encryption/Decryption) และการบีบอัด/ขยายข้อมูล (Compression/Decompression)
    • โปรโตคอลตัวอย่าง: JPEG, MPEG (สำหรับรูปภาพ/วิดีโอ), ASCII, EBCDIC (สำหรับตัวอักษร), TLS/SSL (บางครั้งก็ถือว่าเป็นส่วนหนึ่งของ Presentation Layer)
    • ตัวอย่าง: การที่เบราว์เซอร์ของคุณสามารถแสดงรูปภาพ .jpg ได้ หรือการเชื่อมต่อ HTTPS ที่เข้ารหัสข้อมูล
  • Layer 5: Session Layer (ชั้นการจัดการเซสชัน)

    • หน้าที่: สร้าง, ควบคุม, และยุติ "เซสชัน" การสื่อสารระหว่างสองแอปพลิเคชัน (Host) ทำให้การสื่อสารเกิดขึ้นได้อย่างต่อเนื่องและเป็นระเบียบ
    • โปรโตคอลตัวอย่าง: NetBIOS, RPC (Remote Procedure Call)
    • ตัวอย่าง: เมื่อคุณ Login เข้าสู่ระบบธนาคารออนไลน์ Session Layer จะช่วยให้การสื่อสารระหว่างเบราว์เซอร์ของคุณกับเซิร์ฟเวอร์ธนาคารเป็นไปอย่างต่อเนื่องจนกว่าจะ Logout
  • Layer 4: Transport Layer (ชั้นการขนส่ง)

    • หน้าที่: รับผิดชอบในการรับส่งข้อมูลแบบ End-to-End (จากต้นทางถึงปลายทางอย่างสมบูรณ์) จัดการเรื่องการแบ่งข้อมูลออกเป็นส่วนๆ (Segment), การรวมข้อมูลกลับเข้าด้วยกัน, การควบคุมการไหลของข้อมูล (Flow Control) และการตรวจสอบข้อผิดพลาด (Error Checking)
    • โปรโตคอลตัวอย่าง:
      • TCP (Transmission Control Protocol): เป็น Connection-oriented (ต้องสร้างการเชื่อมต่อก่อนส่งข้อมูล) และ Reliable (รับประกันการส่งข้อมูลถึงปลายทางและเรียงตามลำดับ) เหมาะกับการส่งข้อมูลที่ต้องการความถูกต้อง เช่น เว็บเพจ, อีเมล, การโอนไฟล์
      • UDP (User Datagram Protocol): เป็น Connectionless และ Unreliable (ไม่รับประกันการส่งถึงและไม่เรียงลำดับ) แต่เร็ว เหมาะกับการส่งข้อมูลที่ต้องการความรวดเร็ว เช่น Streaming Video, Online Gaming, DNS Queries
    • ตัวอย่าง: เมื่อคุณดาวน์โหลดไฟล์ TCP จะดูแลให้ทุกส่วนของไฟล์มาถึงครบถ้วนและเรียงลำดับถูกต้อง
  • Layer 3: Network Layer (ชั้นเครือข่าย)

    • หน้าที่: รับผิดชอบในการหาเส้นทาง (Routing) และส่ง Packet ข้อมูลข้ามเครือข่ายที่แตกต่างกัน (Inter-networking) ใช้ "Logical Address" (เช่น IP Address) ในการระบุต้นทางและปลายทาง
    • โปรโตคอลตัวอย่าง: IP (Internet Protocol) – ทั้ง IPv4 และ IPv6, ICMP (Internet Control Message Protocol – ใช้สำหรับ Ping), Routing Protocols (เช่น OSPF, BGP)
    • อุปกรณ์: Router (เราเตอร์) เป็นอุปกรณ์หลักที่ทำงานใน Layer นี้
    • ตัวอย่าง: เมื่อ Packet ข้อมูลออกจากเครือข่ายบ้านของคุณ Router จะเป็นตัวตัดสินใจว่าจะส่ง Packet นั้นไปทางไหนเพื่อไปให้ถึง Google Server
  • Layer 2: Data Link Layer (ชั้นเชื่อมโยงข้อมูล)

    • หน้าที่: รับผิดชอบในการรับส่งข้อมูลระหว่างอุปกรณ์ที่อยู่ "ติดกัน" หรืออยู่ในเครือข่ายเดียวกัน (Node-to-Node) จัดการเรื่อง "Physical Address" (เช่น MAC Address), การควบคุมการเข้าถึงสื่อ (Media Access Control - MAC), การตรวจจับและแก้ไขข้อผิดพลาดในระดับ Frame
    • มักจะแบ่งเป็น 2 Sub-layers:
      • Logical Link Control (LLC): จัดการการสื่อสารระหว่าง Network Layer กับ MAC Sub-layer
      • Media Access Control (MAC): จัดการการเข้าถึงสื่อทางกายภาพ (เช่น ใครจะได้ส่งข้อมูลเมื่อไหร่)
    • โปรโตคอลตัวอย่าง: Ethernet (สำหรับ Wired LAN), Wi-Fi (IEEE 802.11)
    • อุปกรณ์: Switch (สวิตช์), Network Interface Card (NIC หรือการ์ด LAN/WiFi)
    • ตัวอย่าง: เมื่อคอมพิวเตอร์ของคุณส่งข้อมูลไปให้ Router ข้อมูลนั้นจะถูกจัดอยู่ในรูปแบบของ Frame ที่มี MAC Address ต้นทางและปลายทาง
  • Layer 1: Physical Layer (ชั้นกายภาพ)

    • หน้าที่: กำหนดคุณสมบัติทางกายภาพและไฟฟ้าของการส่งข้อมูล จัดการการส่งบิตข้อมูลดิบ (Raw Bits) ผ่านสื่อกลางทางกายภาพ (สายเคเบิล, คลื่นวิทยุ, ใยแก้วนำแสง)
    • โปรโตคอลตัวอย่าง: มาตรฐานสำหรับสาย Ethernet (RJ-45), Fiber Optic, Wi-Fi Radio Frequencies, Bluetooth
    • อุปกรณ์: สายเคเบิล (ทองแดง, ใยแก้ว), Wireless Antennas, Hubs, Repeater, NIC
    • ตัวอย่าง: เมื่อข้อมูลเป็น 0s และ 1s ถูกแปลงเป็นสัญญาณไฟฟ้า (สำหรับสายทองแดง) หรือคลื่นวิทยุ (สำหรับ WiFi) และส่งออกไป

2. TCP/IP Model (4 Layers)

เป็นโมเดลที่ใช้งานจริงบน Internet และรวมบาง Layer ของ OSI เข้าด้วยกันเพื่อให้เรียบง่ายขึ้น

  • Layer 4: Application Layer

    • หน้าที่: รวมหน้าที่ของ Application, Presentation, และ Session Layers ของ OSI เข้าด้วยกัน
    • โปรโตคอลตัวอย่าง: HTTP, HTTPS, FTP, SMTP, DNS, SSH, Telnet
  • Layer 3: Transport Layer

    • หน้าที่: เหมือนกับ Transport Layer ใน OSI Model
    • โปรโตคอลตัวอย่าง: TCP, UDP
  • Layer 2: Internet Layer

    • หน้าที่: เหมือนกับ Network Layer ใน OSI Model
    • โปรโตคอลตัวอย่าง: IP, ICMP, ARP
  • Layer 1: Network Access Layer (หรือ Link Layer)

    • หน้าที่: รวมหน้าที่ของ Data Link และ Physical Layers ของ OSI เข้าด้วยกัน จัดการการสื่อสารกับฮาร์ดแวร์เครือข่ายโดยตรง
    • โปรโตคอลตัวอย่าง: Ethernet, Wi-Fi (IEEE 802.11), PPP

กระบวนการ "Encapsulation" และ "Decapsulation"

เมื่อข้อมูลถูกส่งผ่านเครือข่าย มันจะผ่านกระบวนการที่เรียกว่า "Encapsulation" (การห่อหุ้ม) และ "Decapsulation" (การแกะห่อ)

  • Encapsulation (ที่ฝั่งส่ง):

    • ข้อมูล (Data) จาก Application Layer จะถูกส่งลงมายัง Layer ถัดไป
    • แต่ละ Layer จะเพิ่มข้อมูลควบคุมของตัวเอง (เรียกว่า Header และบางครั้งก็ Trailer) เข้าไปที่ด้านหน้า (และ/หรือด้านหลัง) ของข้อมูลเดิม
    • ข้อมูลที่ถูกเพิ่ม Header/Trailer ของ Layer หนึ่ง จะกลายเป็น "Payload" สำหรับ Layer ถัดไปที่อยู่ข้างล่าง
    • กระบวนการนี้จะดำเนินไปเรื่อยๆ จนกระทั่งถึง Physical Layer ที่จะแปลงข้อมูลทั้งหมดให้เป็น Bit stream และส่งออกไป
  • Decapsulation (ที่ฝั่งรับ):

    • กระบวนการจะย้อนกลับ
    • Physical Layer รับ Bit stream มาแปลงเป็นข้อมูล
    • แต่ละ Layer จะแกะ Header/Trailer ของตัวเองออก ตรวจสอบข้อมูลควบคุม แล้วส่ง Payload ที่เหลือขึ้นไปยัง Layer ที่อยู่ข้างบน
    • จนกระทั่งถึง Application Layer ที่ได้รับข้อมูลดั้งเดิมกลับมา

ตัวอย่างการ Encapsulation:

[User Data]
  |
  V
[Application Layer Header] [User Data]           (Application Layer)
  |
  V
[Presentation Layer Header] [Application Layer Data] (Presentation Layer)
  |
  V
[Session Layer Header] [Presentation Layer Data]   (Session Layer)
  |
  V
[TCP Header] [Session Layer Data]                 (Transport Layer) - เรียกว่า Segment
  |
  V
[IP Header] [TCP Segment]                         (Network Layer) - เรียกว่า Packet
  |
  V
[Ethernet Header] [IP Packet] [Ethernet Trailer]  (Data Link Layer) - เรียกว่า Frame
  |
  V
[Bits]                                            (Physical Layer)

ทำไมถึงสำคัญ?

การเข้าใจเรื่อง Network Layers ทำให้เราสามารถ:

  • วิเคราะห์และแก้ไขปัญหาเครือข่ายได้ง่ายขึ้น (เช่น ถ้าเข้าเว็บไม่ได้ อาจจะเป็นปัญหาที่ Application Layer หรือถ้า Ping ไม่ได้อาจเป็น Network Layer)
  • ออกแบบและพัฒนาโปรโตคอลใหม่ๆ ได้อย่างมีระบบ
  • เข้าใจว่าอุปกรณ์เครือข่ายแต่ละประเภท (Router, Switch, Hub) ทำงานที่ Layer ใดบ้าง

หวังว่าคำอธิบายนี้จะช่วยให้เข้าใจเรื่อง Network Layers ได้ชัดเจนขึ้นนะครับ!

No comments: