Show HN: คอมพิวเตอร์ไปถึงเซิร์ฟเวอร์ของฉันได้อย่างไร?
(how-did-i-get-here.net)ชื่อสรุป: การเดินทางของแพ็กเก็ตอินเทอร์เน็ตและบทบาทของโปรโตคอล 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 ความคิดเห็น
ความคิดเห็นบน Hacker News
Lexi นักพัฒนาอายุน้อยวัย 17 ปี สนใจทั้งความเข้าใจเชิงลึกเกี่ยวกับหลักการทำงานของคอมพิวเตอร์และการสร้างภาพด้วยวิธีใหม่ ๆ
BGP คือโปรโตคอลที่กำหนดรูปร่างของอินเทอร์เน็ต และบุคคลทั่วไปไม่สามารถใช้งานได้โดยตรง
สิ่งนี้แสดงลำดับย้อนกลับของวิธีที่เซิร์ฟเวอร์เข้าถึงคอมพิวเตอร์ของผู้ใช้ และการกำหนดเส้นทางในแต่ละทิศทางส่วนใหญ่มักแตกต่างกันมาก
มีการแนะนำบทความวิชาการเกี่ยวกับหลักการทำงานของ traceroute โดยชี้ว่าหลายคนมองข้ามประเด็นที่ traceroute อาจไม่สมมาตร
การพัฒนาพาร์เซอร์สำหรับโปรโตคอล WHOIS แทบเป็นไปไม่ได้ เพราะรูปแบบการตอบกลับเป็นอิสระ
แทนที่จะติดตามด้วย ICMP ECHO สามารถใช้การเชื่อมต่อ HTTP TCP ที่มีอยู่ระหว่างเบราว์เซอร์ฝั่งไคลเอนต์กับเว็บเซิร์ฟเวอร์ เพื่อผ่าน NAT ฝั่งไคลเอนต์และ/หรือไฟร์วอลล์แบบเก็บสถานะได้
มีการแนะนำงานวิจัยก่อนหน้าเกี่ยวกับ reverse traceroute
แพ็กเก็ตของ TCP session มักใช้เส้นทางแบบไม่สมมาตรบนอินเทอร์เน็ต ซึ่งเกี่ยวข้องกับกฎทางธุรกิจด้านต้นทุนและความผิดพลาดของมนุษย์
มีการกล่าวถึง mtr ว่าใช้งานบ่อยกว่า traceroute และช่วยวินิจฉัยการสูญหายของแพ็กเก็ตเป็นช่วง ๆ รวมถึงช่วยทำความเข้าใจการไหลโดยเฉลี่ย
Lexi ไม่เพียงเข้าใจอย่างลึกซึ้งเกี่ยวกับ TCP/IP และ OSI model ครบทั้ง 7 ชั้นเท่านั้น แต่ยังเชี่ยวชาญด้านการพัฒนา frontend และ backend, ฮาร์ดแวร์แบบ embedded, แอปมือถือ และคอมไพเลอร์ด้วย