4 คะแนน โดย GN⁺ 2023-12-06 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ชื่อสรุป: การเดินทางของแพ็กเก็ตอินเทอร์เน็ตและบทบาทของโปรโตคอล BGP

  • บทความที่อธิบายฟังก์ชัน traceroute สำหรับติดตามว่าข้อมูลถูกส่งผ่านอินเทอร์เน็ตอย่างไร
  • เนื้อหาครอบคลุมกระบวนการที่แพ็กเก็ตเดินทางจากคอมพิวเตอร์ของผู้ใช้ ผ่านเราเตอร์, ISP และไปยังเซิร์ฟเวอร์ปลายทาง
  • ใช้โปรแกรม traceroute ชื่อ ktr ที่สตรีมผลลัพธ์แบบเรียลไทม์ เพื่อติดตามเซิร์ฟเวอร์ที่แพ็กเก็ตผ่านในแต่ละขั้นตอน

การเดินทางของแพ็กเก็ตอินเทอร์เน็ต

  • คอมพิวเตอร์ของผู้ใช้เริ่มสื่อสารกับเราเตอร์ ซึ่งเป็นจุดเข้าสู่เครือข่ายของ ISP
  • เส้นทางที่ผ่านเครือข่ายของ Linode และไปถึงเซิร์ฟเวอร์ปลายทางในที่สุด ถูกติดตามด้วย traceroute

ฟรอนต์เอนด์ของเว็บไซต์

  • เว็บไซต์ยังคงทำงานได้ตามปกติแม้ปิดใช้งาน JavaScript
  • เซิร์ฟเวอร์รับคำขอ HTTP แล้วเริ่ม traceroute จากนั้นแสดงผลบนหน้าเว็บแบบเรียลไทม์ทุกครั้งที่มีผลลัพธ์ออกมา

การไล่ย้อนเส้นทางของแพ็กเก็ต

  • ในความเป็นจริง ระบบจะรัน traceroute จากเซิร์ฟเวอร์ไปยังคอมพิวเตอร์ของผู้ใช้ แล้วติดตามเส้นทางนั้นแบบย้อนกลับ
  • ในการทำ routing บนอินเทอร์เน็ตจริง แพ็กเก็ตอาจผ่านเส้นทางที่ต่างออกไป แต่โดยมากจะคล้ายกัน

ความหมายของเครือข่าย

  • แต่ละเครือข่ายเรียกว่า autonomous system (AS) ซึ่งเป็นชุดของเราเตอร์และเซิร์ฟเวอร์ที่เชื่อมต่อกัน
  • เจ้าของ AS เป็นผู้กำหนดโครงสร้างของอินเทอร์เน็ตผ่านการเชื่อมต่อกับ AS อื่น
  • อินเทอร์เน็ตคือโครงสร้างที่เครือข่ายซึ่งบริษัทต่าง ๆ เป็นเจ้าของ ถูกเชื่อมเข้าด้วยกันผ่านธุรกรรมทางการเงินและระบบราชการ

ข้อมูล WHOIS

  • ใช้โปรโตคอล WHOIS เพื่อค้นหาข้อมูลเจ้าของของ autonomous system (AS) ที่ IP แต่ละรายการสังกัดอยู่
  • ข้อมูลถูกให้บริการจากเซิร์ฟเวอร์ต่าง ๆ ตามโครงสร้างที่ผู้ดูแลเซิร์ฟเวอร์ WHOIS สร้างไว้

โปรโตคอล BGP

  • BGP (Border Gateway Protocol) คือโปรโตคอลที่ border router ระหว่าง AS ใช้เมื่อต้องส่งต่อแพ็กเก็ตไปยังเครือข่ายถัดไป
  • BGP เป็นตัวกำหนดรูปร่างของอินเทอร์เน็ต และเราเตอร์ของแต่ละ AS จะแชร์ routing table ผ่าน BGP

ภูมิหลังทางประวัติศาสตร์

  • อธิบายประวัติตั้งแต่การเริ่มต้นของ ARPANET ซึ่งเป็นรูปแบบเริ่มแรกของอินเทอร์เน็ต ไปจนถึงการพัฒนาของโปรโตคอล BGP
  • BGP v4 คือโปรโตคอลหลักสำหรับการ routing บนอินเทอร์เน็ตที่ยังใช้อยู่จนถึงปัจจุบัน

ความเห็นของ GN⁺

ส่วนที่สำคัญที่สุดของบทความนี้คือคำอธิบายเกี่ยวกับฟังก์ชัน traceroute ที่สามารถติดตามการเดินทางของแพ็กเก็ตข้อมูลบนอินเทอร์เน็ตได้แบบเรียลไทม์ และโปรโตคอล BGP ที่มีบทบาทสำคัญในกระบวนการนั้น บทความนี้ช่วยให้วิศวกรซอฟต์แวร์ระดับเริ่มต้นเข้าใจโครงสร้างอันซับซ้อนของอินเทอร์เน็ตได้ดีขึ้น และยังชวนให้เห็นว่าอินเทอร์เน็ตไม่ได้เป็นเพียงโครงสร้างทางเทคนิคอย่างเดียว แต่เป็นระบบนิเวศที่ซับซ้อนซึ่งเกี่ยวพันกับบริษัทต่าง ๆ และนโยบายมากมาย

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

 
GN⁺ 2023-12-06
ความคิดเห็นบน Hacker News
  • Lexi นักพัฒนาอายุน้อยวัย 17 ปี สนใจทั้งความเข้าใจเชิงลึกเกี่ยวกับหลักการทำงานของคอมพิวเตอร์และการสร้างภาพด้วยวิธีใหม่ ๆ

    • หลังจากเปิดตัว cpu.land ก็รู้สึกกดดันกับโปรเจกต์ใหญ่ชิ้นถัดไป
    • ระหว่างทำโปรเจกต์ส่วนตัวได้เรียนรู้การทำงานของอินเทอร์เน็ตโดยบังเอิญ และพัฒนาโปรแกรม traceroute ที่สตรีมแบบเรียลไทม์ไปยังเว็บไซต์ได้
    • มองว่านี่เป็นวิธีใหม่ที่น่าสนใจในการทำภาพโครงสร้างของอินเทอร์เน็ต จึงขัดเกลาเว็บไซต์ให้ดูดีและนำไปรวมกับบทความที่แบ่งปันความรู้ที่เกี่ยวข้อง
    • คาดว่าโค้ดอาจพังได้สักวันหนึ่ง และขอให้ช่วยบอกหากมีข้อเสนอแนะ
    • เลือกใช้ Rust เพราะเหมาะกับการเขียนโปรแกรมระดับล่างที่รวดเร็วและเชื่อถือได้ รวมถึงความสามารถด้านการจัดการข้อผิดพลาดของ Rust
  • BGP คือโปรโตคอลที่กำหนดรูปร่างของอินเทอร์เน็ต และบุคคลทั่วไปไม่สามารถใช้งานได้โดยตรง

    • การขอ ASN และใช้งาน BGP นั้นง่ายกว่าที่คิด และแนะนำให้ลองหากสนใจ
  • สิ่งนี้แสดงลำดับย้อนกลับของวิธีที่เซิร์ฟเวอร์เข้าถึงคอมพิวเตอร์ของผู้ใช้ และการกำหนดเส้นทางในแต่ละทิศทางส่วนใหญ่มักแตกต่างกันมาก

  • มีการแนะนำบทความวิชาการเกี่ยวกับหลักการทำงานของ traceroute โดยชี้ว่าหลายคนมองข้ามประเด็นที่ traceroute อาจไม่สมมาตร

  • การพัฒนาพาร์เซอร์สำหรับโปรโตคอล WHOIS แทบเป็นไปไม่ได้ เพราะรูปแบบการตอบกลับเป็นอิสระ

    • ในอดีตยังพอทำพาร์เซอร์เฉพาะกิจสำหรับที่อยู่/โดเมนส่วนใหญ่ได้ แต่ปัจจุบันข้อมูลเหล่านี้ถูกซ่อนไว้หลังเกราะคุ้มครองความเป็นส่วนตัว
    • ICANN ไม่ได้บังคับใช้กฎการให้บริการเซิร์ฟเวอร์ WHOIS แบบสาธารณะและได้ยกเลิกไปแล้ว
  • แทนที่จะติดตามด้วย ICMP ECHO สามารถใช้การเชื่อมต่อ HTTP TCP ที่มีอยู่ระหว่างเบราว์เซอร์ฝั่งไคลเอนต์กับเว็บเซิร์ฟเวอร์ เพื่อผ่าน NAT ฝั่งไคลเอนต์และ/หรือไฟร์วอลล์แบบเก็บสถานะได้

  • มีการแนะนำงานวิจัยก่อนหน้าเกี่ยวกับ reverse traceroute

  • แพ็กเก็ตของ TCP session มักใช้เส้นทางแบบไม่สมมาตรบนอินเทอร์เน็ต ซึ่งเกี่ยวข้องกับกฎทางธุรกิจด้านต้นทุนและความผิดพลาดของมนุษย์

  • มีการกล่าวถึง mtr ว่าใช้งานบ่อยกว่า traceroute และช่วยวินิจฉัยการสูญหายของแพ็กเก็ตเป็นช่วง ๆ รวมถึงช่วยทำความเข้าใจการไหลโดยเฉลี่ย

    • ยังกล่าวถึงด้วยว่า MPLS อาจซ่อนเส้นทางจริงได้, การติดตามด้วย UDP มีประโยชน์, และเราเตอร์จำนวนมากจะดรอป ICMP แบบเลือกได้เมื่ออยู่ภายใต้โหลด
  • Lexi ไม่เพียงเข้าใจอย่างลึกซึ้งเกี่ยวกับ TCP/IP และ OSI model ครบทั้ง 7 ชั้นเท่านั้น แต่ยังเชี่ยวชาญด้านการพัฒนา frontend และ backend, ฮาร์ดแวร์แบบ embedded, แอปมือถือ และคอมไพเลอร์ด้วย

    • นอกจากนี้ยังมีความสามารถโดดเด่นในหลายด้าน เช่น การปีนผา การบังคับเครื่องบิน Cessna การสร้างหุ่นยนต์ การเล่นเชลโล และการแต่งเพลง