2 คะแนน โดย GN⁺ 2025-10-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แผนภาพนี้แสดง สแต็กเครือข่าย Linux ทั้งหมดในเชิงชั้นและส่วนประกอบอย่างเป็นภาพ
  • แผนภาพนี้รวมเทคโนโลยีเสมือนหลายประเภท เช่น virtualization, Linux containers, emulation, paravirtualization เป็นต้น
  • ครอบคลุมโครงสร้างชั้นทั้งหมดตั้งแต่ ซ็อกเก็ตเครือข่าย จนถึง สแต็กเครือข่าย (ชั้นบน: TCP, UDP / ชั้นล่าง: GRO, RPS, RFS, GSO)

# ส่วนประกอบหลัก

  • สแต็กเครือข่าย
    • ชั้นบน ของสแต็กเครือข่าย (TCP, UDP)
    • ชั้นล่าง ของสแต็กเครือข่าย (GRO, RPS, RFS, GSO)
  • องค์ประกอบของ Network Scheduler
  • NetFilter และการควบคุมทราฟฟิก
    • รวมถึง อินเทอร์เฟซเครือข่าย ที่หลากหลาย เช่น Bridge, Bond, Tap
  • ไดรเวอร์อุปกรณ์
    • คิว (Queue)
    • NAPI
    • ตัวจัดการ IRQ
  • ฟังก์ชันเครือข่ายที่เร่งด้วย NIC
    • Checksum Offload, VLAN, VxLAN, GRE, TSO, LRO, RSS ฯลฯ

# คุณสมบัติและข้อมูลเสริม

  • แต่ละชั้นมี เคล็ดลับการปรับแต่ง และ ข้อมูลสถิติ ให้พร้อมใช้งานพร้อมกัน
  • เชื่อมโยงอย่างละเอียดถึงแนวทางการไหลโดยรวมที่ต่อเนื่องไปยัง การ์ดเครือข่าย
  • แผนภาพนี้เป็นส่วนหนึ่งของหนังสือ “Operativni sustavi i računalne mreže - Linux u primjeni” และมีคุณค่าในการใช้งานเป็นแหล่งข้อมูลอ้างอิงเชิงวิชาชีพ

1 ความคิดเห็น

 
GN⁺ 2025-10-21
ความคิดเห็นบน Hacker News
  • รู้สึกว่าเอกสารคุณภาพสูงแบบนี้ควรมีให้เห็นกันมากขึ้นอีกมาก ฉันไม่สามารถใช้งาน IP tables ได้อย่างมีประสิทธิภาพมาหลายปี เคยซื้อหนังสือและลองตัวอย่างหลากหลายจากบล็อกแล้ว แต่ไม่เข้าใจว่ามันทำงานอย่างไร จึงยังใช้งานไม่เป็น แล้วฉันพบแผนภาพ (flowchart) ที่แสดงขั้นตอนที่แพ็กเก็ตผ่านเคอร์เนล ซึ่งช่วยให้เห็นลำดับที่แน่นอนที่กฎแต่ละ chain ถูกนำไปใช้ และเห็นได้ว่าค่า sysctl ถูกนำมาใช้ที่ไหน ด้วยแผนภาพนี้ ฉันสามารถเขียนกฎตามต้องการได้เอง และเลือกกฎที่เหมาะสมได้โดยพิจารณาประสิทธิภาพการทำงานด้วย แผนภาพเพียงชิ้นเดียวดูเหมือนเปลี่ยนโลกของฉันในทันที ใช้งานได้ถูกต้องตั้งแต่พยายามครั้งแรก ได้ประสบการณ์ตรงว่าพลังของแผนภาพที่ดีมีมากจริงๆ

    • อยากรู้ว่านี่คือแผนภาพเดียวกับ ที่นี่ หรือเปล่า

    • อยากเน้นถึง target TRACE ที่บันทึกลงล็อกว่าแพ็กเก็ตตรงกับกฎใดของไฟร์วอลล์อย่างแม่นยำ ในไฟร์วอลล์ขนาดใหญ่เป็นเครื่องมือที่แทบจะจำเป็นมากจริงๆ

    • อยากขอให้แชร์แผนภาพนี้หน่อย ฉันเองก็อยากได้ประสบการณ์กับโลกของ iptables อย่างแท้จริง

    • ฉันเองก็ไม่เข้าใจ IP tables มานานมาก ต่อมาได้รู้จัก FreeBSD และ pf tables จนตอนนี้รู้สึกเหมือนวิศวกรเครือข่าย แน่นอนว่าต้องใช้เวลาและความพยายามในการศึกษา แต่การเรียนรู้เข้ากับฉันได้ดี และค่อยๆ เพิ่มความรู้ได้เรื่อยๆ แนะนำให้ทุกคนลองท้าทายตัวเองด้วยตัวเอง เอกสารทางการเกี่ยวกับไฟร์วอลล์ของ FreeBSD ก็อ่านได้ด้วย และล่าสุดยังมีการเผยแพร่หนังสือ The Book of PF เล่ม 4 ด้วย

  • หากมีใครสนใจอยากบอกว่าผู้เขียนแผนภาพนี้ยังทำแผนภาพการไหลของ Linux Disk I/O ด้วย แผนภาพ Linux Disk I/O ที่นี่ สามารถดูได้ แผนภาพทั้งหมดนี้เริ่มต้นมาจากหนังสือของผู้เขียนชื่อ "Operativni sustavi i računalne mreže - Linux u primjeni" ต้นฉบับของหนังสือ ก็ถูกเผยแพร่ให้เข้าถึงได้ด้วย ชมเชยงานของผู้เขียนที่ยอดเยี่ยมและเป็นมิตร

    • อยากถามว่ามีฉบับแปลอังกฤษของหนังสือนี้หรือไม่

    • แผนภาพ Linux Disk I/O สุดยอดมาก ขอบคุณที่แชร์ให้ครับ

  • Linux Kernel map ก็เป็นข้อมูลที่ยอดเยี่ยม ควรเอามาอ้างอิงเช่นกัน [ลิงก์ Linux Kernel map](https://commons.wikimedia.org/wiki/File:Linux_kernel_map.png)

  • ขอขอบคุณ Hrvoje Horvat ที่สร้างแผนภาพละเอียดเช่นนี้ ทำให้การเรียน Network stack ของฉันง่ายขึ้นมาก หนังสือของผู้เขียน "Operativni sustavi i računalne mreže - Linux u primjeni" ก็น่ารู้สึกว่ามีคุณค่าพอที่จะเรียนภาษาครัวเฮาเตียน ขอแสดงความยินดีในการตีพิมพ์หนังสือและขอบคุณอีกครั้งสำหรับการมีส่วนร่วมที่มีค่าทุกครั้ง ลิงก์หนังสือ

  • งานของผู้เขียนยอดเยี่ยมจนแทบไม่อยากเชื่อ สุจริตใจมากที่อยากให้มีฉบับแปลอังกฤษ

  • คิดว่าเป็นแหล่งข้อมูลที่ดีมาก ถ้ามีใครพัฒนาเครื่องมือ visualization ที่สร้างแผนภาพแบบนี้อัตโนมัติได้คงจะน่าตื่นเต้นมาก แต่ในความเป็นจริงคงเกือบเป็นไปไม่ได้

    • ในการสร้างอัตโนมัติคงต้องจัดการกับหลายขั้นของการนามธรรมที่แผนภาพนี้แสดงจึงยากมาก อย่างไรก็ตาม Mermaid หรือ PlantUML อาจแสดงพื้นที่ที่คล้ายกันได้ระดับหนึ่ง และ PGF/TikZ น่าจะเป็นตัวเลือกที่เหมาะสมสำหรับการลองสร้างข้อความแทนการสร้างรูปภาพ
  • ต้องการเน้นว่าคอนเทนเนอร์ยังสามารถใช้ TCP/IP stack ของตัวเองได้ในลักษณะใกล้เคียง VM ถ้าใช้ slirp4netns คอนเทนเนอร์จะมีการทำงานเครือข่ายของตัวเอง และในทางตรงกันข้ามถ้าใช้ pasta จะใช้ TCP/IP stack ของเคอร์เนลโดยตรง หากสนใจสามารถดู diagram ในลิงก์นี้ เพื่อรายละเอียดเพิ่มเติม

  • แม้จะไม่ได้เรียน Network stack แบบเป็นทางการเป็นพิเศษ แต่หลังจากใช้ Linux มานานหลายสิบปี ทำให้โครงสร้างสแต็กส่วนใหญ่ค่อนข้างคุ้นเคยและรู้สึกประหลาดใจ

  • อยากรู้ว่ามีวิธีดูแผนภาพเป็นไฟล์ svg หรือไม่ ตอนนี้มีเฉพาะใน PDF ทำให้การอ่านยาก

    • ใน embedded PDF viewer กด "Download" ใต้เพื่อดาวน์โหลด PDF ทั้งไฟล์ได้
  • เป็นแผนภาพที่ย่อให้เรียบง่าย
    ในความเป็นจริงยังไม่รวม iptables หรือ nftables

    • มอง iptables อย่างตั้งใจจะรู้สึกเหมือน iptables มองกลับมาหาฉัน