แอปพลิเคชันและบริการเครือข่าย
แอปพลิเคชันและบริการเครือข่ายคือโปรแกรมและโพรโทคอลที่ทำงานอยู่ที่ส่วนปลายของเครือข่ายและส่งมอบคุณค่าให้กับผู้ใช้ — ตั้งแต่เว็บและอีเมลไปจนถึงระบบชื่อโดเมนและเครือข่ายกระจายเนื้อหา — ซึ่งสร้างขึ้นบนบริการขนส่งข้อมูลที่อยู่เบื้องล่าง
Definition
ชั้นแอปพลิเคชันคือชั้นโพรโทคอลที่อยู่บนสุด ซึ่งกระบวนการแอปพลิเคชันแบบเครือข่ายจะแลกเปลี่ยนข้อความตามโพรโทคอลเฉพาะของแอปพลิเคชันนั้นๆ; บริการเครือข่ายคือโครงสร้างพื้นฐานที่สนับสนุน เช่น การตั้งชื่อและการส่งมอบเนื้อหา ซึ่งแอปพลิเคชันเหล่านั้นต้องพึ่งพา
Scope
ขอบเขตนี้ครอบคลุมชั้นแอปพลิเคชันและบริการโครงสร้างพื้นฐานที่สนับสนุน: สถาปัตยกรรมแอปพลิเคชัน (ไคลเอนต์-เซิร์ฟเวอร์และเพียร์ทูเพียร์), โพรโทคอลแอปพลิเคชันหลัก เช่น HTTP, SMTP และ FTP, ระบบชื่อโดเมนที่แปลงชื่อที่มนุษย์อ่านได้เป็นที่อยู่, เครือข่ายกระจายเนื้อหาที่จำลองเนื้อหาใกล้ผู้ใช้, และภาพรวมของความปลอดภัยเครือข่ายที่เกี่ยวข้องกับระบบสื่อสาร โดยไม่รวมกลไกชั้นการขนส่งข้อมูลที่ต้องพึ่งพา แต่จะเน้นที่บริการที่แอปพลิเคชันเปิดเผยและโพรโทคอลที่ใช้สื่อสารแทน
Sub-topics
Core questions
- แอปพลิเคชันเครือข่ายมีโครงสร้างอย่างไร — ไคลเอนต์-เซิร์ฟเวอร์เทียบกับเพียร์ทูเพียร์ — และมีข้อดีข้อเสียอย่างไร?
- โพรโทคอลแอปพลิเคชันหลัก เช่น HTTP และ SMTP กำหนดรูปแบบการส่งข้อความและการโต้ตอบอย่างไร?
- ระบบชื่อโดเมนแปลงชื่อเป็นที่อยู่ด้วยวิธีที่ปรับขนาดได้และกระจายตัวอย่างไร?
- เครือข่ายกระจายเนื้อหาลดความล่าช้าและภาระงานโดยการจำลองเนื้อหาใกล้ผู้ใช้อย่างไร?
- แอปพลิเคชันเครือข่ายต้องมีคุณสมบัติความปลอดภัยใดบ้าง — การรักษาความลับ, ความสมบูรณ์, การยืนยันตัวตน — และทำได้อย่างไร?
Key concepts
- สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์
- สถาปัตยกรรมเพียร์ทูเพียร์
- HTTP และเว็บ
- โพรโทคอลอีเมล (SMTP, IMAP)
- ระบบชื่อโดเมน (DNS)
- การแคชและลำดับชั้นของ DNS
- เครือข่ายกระจายเนื้อหา (CDNs)
- ซ็อกเก็ตและ API ของแอปพลิเคชัน
- การรักษาความลับ, ความสมบูรณ์, และการยืนยันตัวตน
- ความปลอดภัยในชั้นการขนส่งข้อมูล (TLS)
Key theories
- สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์และเพียร์ทูเพียร์
- แอปพลิเคชันถูกจัดระเบียบโดยมีเซิร์ฟเวอร์ที่ทำงานตลอดเวลาซึ่งไคลเอนต์ติดต่อ ซึ่งรวมศูนย์การจัดการแต่ก็รวมภาระงานไว้ที่เดียว หรือเป็นระบบเพียร์ทูเพียร์ที่โฮสต์ที่เข้าร่วมทั้งร้องขอและให้บริการ ซึ่งปรับขนาดได้ตามจำนวนผู้ใช้แต่ทำให้การจัดการและความปลอดภัยซับซ้อนขึ้น
- การตั้งชื่อแบบลำดับชั้นและกระจายตัว (DNS)
- ระบบชื่อโดเมนจะแปลงชื่อเป็นที่อยู่ผ่านลำดับชั้นของเซิร์ฟเวอร์ผู้มีอำนาจที่ได้รับมอบหมายและการแคชอย่างเข้มข้น ซึ่งให้บริการค้นหาที่ปรับขนาดได้และยืดหยุ่น โดยไม่มีองค์กรใดองค์กรหนึ่งควบคุมทั้งหมดตั้งแต่ต้นจนจบ
- การจำลองและการกระจายเนื้อหา
- เครือข่ายกระจายเนื้อหาจะวางสำเนาของเนื้อหาบนเซิร์ฟเวอร์ใกล้ผู้ใช้และส่งคำขอแต่ละรายการไปยังสำเนาที่ดีที่สุด ซึ่งช่วยลดความล่าช้า, ภาระงานของเซิร์ฟเวอร์ต้นทาง, และการรับส่งข้อมูลหลัก — ซึ่งเป็นเหตุผลสำคัญที่บริการเว็บและสตรีมมิ่งขนาดใหญ่ทำงานได้ดี
Clinical relevance
ชั้นแอปพลิเคชันคือสิ่งที่ผู้ใช้สัมผัสได้จริง: เว็บ, สื่อสตรีมมิ่ง, การส่งข้อความ, และบริการคลาวด์ล้วนอยู่ที่นี่ DNS เป็นสิ่งจำเป็นอย่างยิ่งสำหรับการโต้ตอบออนไลน์เกือบทุกประเภท และการหยุดชะงักของ DNS อาจส่งผลกระทบเป็นวงกว้าง เครือข่ายกระจายเนื้อหาเป็นส่วนสำคัญของการรับส่งข้อมูลอินเทอร์เน็ตจำนวนมาก และเป็นศูนย์กลางในการส่งมอบวิดีโอและซอฟต์แวร์ในขนาดใหญ่ ขณะที่ความปลอดภัยในชั้นแอปพลิเคชันผ่าน TLS ช่วยปกป้องความลับและความสมบูรณ์ของการสื่อสารในชีวิตประจำวัน
History
แอปพลิเคชันอินเทอร์เน็ตยุคแรกคืออีเมลและการถ่ายโอนไฟล์; เวิลด์ไวด์เว็บ ซึ่งคิดค้นโดย Tim Berners-Lee ประมาณปี 1990 ด้วย HTTP และ HTML ได้เปลี่ยนอินเทอร์เน็ตให้เป็นสื่อมวลชน ระบบชื่อโดเมน (Mockapetris, กลางทศวรรษ 1980) เข้ามาแทนที่ไฟล์ชื่อโฮสต์แบบเรียบด้วยไดเรกทอรีแบบกระจายที่ปรับขนาดได้ เครือข่ายกระจายเนื้อหาเกิดขึ้นในช่วงปลายทศวรรษ 1990 เพื่อรับมือกับการเติบโตของเว็บ และการเข้ารหัสในชั้นแอปพลิเคชันได้พัฒนาจาก SSL ไปสู่ TLS เพื่อรักษาความปลอดภัยในการสื่อสาร
Debates
- บริการคลาวด์แบบรวมศูนย์ไคลเอนต์-เซิร์ฟเวอร์เทียบกับระบบเพียร์ทูเพียร์แบบกระจายอำนาจ
- สถาปัตยกรรมคลาวด์แบบรวมศูนย์มีการจัดการที่ง่ายและประสิทธิภาพที่สม่ำเสมอ แต่รวมศูนย์การควบคุมและสร้างจุดเดียวที่อาจล้มเหลวได้ ในขณะที่การออกแบบแบบเพียร์ทูเพียร์และแบบกระจายอำนาจจะกระจายภาระงานและการควบคุมโดยแลกมาด้วยความซับซ้อน; ความสมดุลนี้เกิดขึ้นซ้ำๆ ในการแชร์ไฟล์, การส่งมอบเนื้อหา, และความพยายามในการสร้างเว็บแบบกระจายอำนาจที่กำลังเกิดขึ้น
Key figures
- Tim Berners-Lee
- Paul Mockapetris
- Roy Fielding
- Jon Postel
Related topics
Seminal works
- kurose2021
- rfc9110
- rfc1035
Frequently asked questions
- ระบบชื่อโดเมนทำอะไร?
- DNS แปลงชื่อที่มนุษย์อ่านได้ เช่น example.com ให้เป็นที่อยู่ IP ที่ชั้นเครือข่ายต้องการเพื่อกำหนดเส้นทางแพ็กเก็ต เป็นฐานข้อมูลแบบกระจายและมีลำดับชั้นพร้อมการแคช ดังนั้นการค้นหาจึงรวดเร็วและระบบสามารถปรับขนาดได้ทั่วทั้งอินเทอร์เน็ตโดยไม่มีเซิร์ฟเวอร์เดียวที่เก็บชื่อทั้งหมด
- เครือข่ายกระจายเนื้อหาช่วยเร่งความเร็วเว็บได้อย่างไร?
- CDN จัดเก็บสำเนาของเนื้อหาบนเซิร์ฟเวอร์จำนวนมากที่กระจายอยู่ทั่วโลก และนำทางคำขอของผู้ใช้แต่ละรายไปยังสำเนาที่อยู่ใกล้เคียง ซึ่งช่วยลดเส้นทางเครือข่าย ลดความล่าช้าและการสูญหายของแพ็กเก็ต ขณะเดียวกันก็ลดภาระงานของเซิร์ฟเวอร์ต้นทางและลดการรับส่งข้อมูลระยะไกล ซึ่งทั้งหมดนี้ช่วยปรับปรุงความเร็วและความน่าเชื่อถือ