‹

09 · เครือข่าย

09 · ​เครือข่าย

​ชั้นนี้​ละลาย​ขอบเขต​ของ​เครื่อง​เดี่ยว​ทิ้ง — ​ทุกอย่าง​ที่อยู่​เหนือ​ขึ้นไป​อ้าง​ถึง​สิ่ง​ที่​ไม่​ใช่​ตัว​มัน​เอง​ได้

​เครื่อง​ที่​ไม่​มี​อะไร​ร่วมกัน​เลย ​ตกลง​กัน​จน​คุย​กัน​ได้​อย่างไร

​ใน​เดือน​ตุลาคม 1986 ​สอง​สถานที่​ที่​ห่าง​กัน​สี่​ร้อย​หลา​คุย​กัน​ไม่​ได้​อีกต่อไป Van Jacobson ​บันทึก​ตัวเลข​ไว้: ​ระหว่าง Lawrence Berkeley Laboratory ​กับ University of California ​ที่ Berkeley — "​ห่าง​กัน 400 ​หลา ​และ​สอง​ช่วง IMP hop" ("separated by 400 yards and two IMP hops") — ​ปริมาณ​งาน​ต่อเวลา (throughput) ​ตก​จาก 32 Kbps ​เหลือ 40 bps (Jacobson & Karels, SIGCOMM '88) ​ต่างกัน​พัน​เท่า ​บน​ระยะ​ที่​คน​เดิน​ถึง​ใน​สี่​นาที ​ไม่​มี​อะไร​พัง ​ไม่​มี​สาย​ถูก​ตัด ​ไม่​มี​เครื่อง​ล่ม ​ไม่​มี​ผู้​โจมตี ​เครือข่าย​แค่​ยุ่ง​กับ​การส่ง​ซ้ำ (retransmission) ​แพ็กเก็ต (packet) ​ที่​มัน​ส่ง​ไม่​สำเร็จ​อยู่แล้ว ​จน​ไม่​เหลือ​ที่ว่าง​ให้​ส่ง​อะไร​ได้​อีก ​มัน​กิน​ตัวเอง ​และ​จะ​กิน​ตัวเอง​ซ้ำ​ไป​อีก​สอง​ปี

​เหตุการณ์​นั้น​คือ​บทนำ​ที่​ดี​ที่สุด​ของ​ชั้นนี้ ​เพราะ​มัน​บอก​ว่า​เครือข่าย (network) ​เป็น​ของ​แบบ​ไหน ​ไม่​ใช่​สายไฟ ​แต่​เป็น​ข้อตกลง — ​ที่​ไม่​มีอำนาจ​ใด​บังคับ​ให้​ทำตาม

​ข้อตกลง​นี้​เริ่ม​จาก​การตัดสินใจ​ที่เกิด​ขึ้น​สอง​ครั้ง​แยกจาก​กัน ​ใน​ช่วงต้น​ทศวรรษ 1960 ​ระบบ​โทรศัพท์​ทำงาน​ด้วย circuit switching: ​จอง​เส้นทาง​ไว้​ทั้ง​สาย ​ยึด​ไว้​ตลอด​การสนทนา ​บทสนทนา​ก็ได้​สาย​ส่วนตัว​ไป​ใช้ Paul Baran ​ที่ RAND ​กำลัง​ออกแบบ​ระบบ​สื่อสาร​ที่​รอด​ได้​แม้​ตัว​มัน​เอง​จะ​ถูก​ทำลาย​ไป​เป็นส่วนใหญ่ ​เขา​เสนอ​ตรงข้าม: ​สับ​ข้อความ​เป็น​ก้อน​มาตรฐาน ​ให้​แต่ละ​ก้อน​หาทาง​ไป​เอง ​แล้ว​ประกอบ​กลับ​ที่​ปลายทาง (On Distributed Communications, RM-3420-PR, 1964) Donald Davies ​ที่ National Physical Laboratory ​ของ​อังกฤษ ​มาถึง​แบบ​เดียวกัน​ด้วย​เหตุผล​คนละอย่าง — ท​ราฟฟิก​ของ​คอมพิวเตอร์​มา​เป็น​ห้วงๆ (bursty) ​และ​วงจร​ที่​จอง​ไว้​ก็​ว่างเปล่า​เกือบ​ตลอดเวลา — ​และ​เขา​คือ​คน​ตั้งชื่อ​ก้อน​พวก​นี้​จน​ติดปาก​มาถึง​ทุกวันนี้​ว่า ​แพ็กเก็ต (packet) packet switching ​แลก​การรับประกัน​ด้วย​ค่า​สถิติ: ​ไม่​มี​บทสนทนา​ไหน​ได้รับ​สัญญา​ว่า​จะ​มี​เส้นทาง ​ทุก​บทสนทนา​ใช้​ทุก​เส้นทาง​ร่วมกัน ​และ​ใช้​ร่วมกัน​ได้ดี​เพราะ​ไม่​มี​ใคร​พูด​ต่อเนื่อง​ตลอดเวลา ​ข้อความ​แรก​บน ARPANET ​ที่​โต​ขึ้น​มาจาก​ทั้งหมด​นี้ ​ถูก​ส่ง​จาก UCLA ​ไป​ยัง Stanford Research Institute ​เมื่อ​วันที่ 29 ​ตุลาคม 1969 ​ผู้ควบคุม​พิมพ์​อักษร​สอง​ตัว​แรก​ของ "LOGIN" ​ปลายทาง​ก็​ล่ม (Kleinrock's account)

​การตัดสินใจ​เชิง​โครงสร้าง​ข้อ​ที่สอง​คือ ​การแบ่ง​ชั้น (layering) — ​หอคอย (tower) ​ทั้ง​ใบ​ย่อ​ลงมา​อยู่​ใน​บท​เดียว ​แต่ละ​ชั้น​รับงาน​จาก​ชั้นบน ​ทำ​แค่​ส่วน​ของ​ตัวเอง ​ส่ง​ที่​เหลือ​ลง​ข้างล่าง ​โดย​ไม่​รู้​อะไร​เลย​เกี่ยวกับ​การ implement ​ที่อยู่​ข้างใต้ ​เวอร์ชัน​ทางการ​คือ OSI Basic Reference Model ​เจ็ด​ชั้น ​เป็นมาตร​ฐาน​ใน​ปี 1984 (ISO/IEC 7498-1) ​เวอร์ชัน​ที่​โลก​จริง​ใช้​อยู่​เล็ก​กว่า​และ​รก​กว่า ​มี​สี่​ชั้น ​เขียน​ขึ้น​หลังจาก​มัน​เกิดขึ้น​จริง​ไป​แล้ว​ใน RFC 1122 (1989) ​จำ​ความน่าอาย​นี้​ไว้​ให้​ดี: ​โมเดล​ที่​คณะกรรมการ​ออกแบบ​คือ​โมเดล​ที่​ถูก​สอน​ใน​ห้องเรียน ​โมเดล​ที่​งอก​ขึ้น​จาก​มือ​คน​ที่ implement ​จริง​คือ​ตัว​ที่​กำลัง​พา​ประโยค​นี้​มาถึง​คุณ

​สิ่ง​ที่​ทำให้​เวอร์ชัน​ที่​งอก​ขึ้น​มา​ใช้งาน​ได้​คือ​รูปทรง​ของ​ส่วนกลาง Internet Protocol ​ให้​อะไร​แทบ​ไม่​ได้​เลย: ​มัน​จะ​พยายาม​ส่ง​แพ็กเก็ต​ไป​ยัง​ที่อยู่​หนึ่ง ​และ​มัน​อาจ​ทำ​หาย ​ทำซ้ำ ​หน่วงเวลา ​หรือ​ส่ง​ถึง​ผิด​ลำดับ ​โดย​ไม่​ขอโทษ​ใคร ​เทคโนโลยี​เครือข่าย​ข้างล่าง​ต่างกัน​ได้​หมด — ​ไฟเบอร์ ​วิทยุ ​ดาวเทียม ​สาย​ทองแดง — ​แอปพลิเคชัน​ข้างบน​ก็​ต่างกัน​ได้​หมด ​ทั้งสอง​ฝั่ง​มา​เจอกัน​ที่​ชั้นเดียว​ที่​จนใจ​โดยตั้งใจ Jerome Saltzer, David Reed ​และ David Clark ​ตั้งชื่อ​หลักการ​เบื้องหลัง​ความจน​ใจ​นั้น: ​ฟังก์ชัน​หนึ่ง​จะ​ถูก implement ​ได้​อย่าง​สมบูรณ์​และ​ถูกต้อง​ก็ต่อเมื่อ​มีความรู้​และ​ความช่วยเหลือ​จาก​แอปพลิเคชัน​ที่​ยืน​อยู่​ที่​จุด​ปลายทาง​ทั้งสอง​ฝั่ง​เท่านั้น ​การทำให้​ฟังก์ชัน​ที่​ถูก​ตั้งคำถาม​นั้น​เป็น​ฟีเจอร์​ของ​ระบบ​สื่อสาร​เอง​จึง​เป็นไปไม่ได้ (end-to-end arguments, 1981/1984) ​วาง​ความฉลาด​ไว้​ที่​ขอบ ​เครือข่าย​ที่​พยายาม​รับประกัน​การส่ง​ถึง​ก็​ยัง​ไม่​ปลด​แอปพลิเคชัน​จาก​การต้อง​ตรวจสอบ​เอง​อยู่ดี ​แถม​เก็บภาษี​จาก​ทุก​แอปพลิเคชัน​ที่​ไม่​สนใจ​เรื่อง​นี้​ด้วย

​ความน่าเชื่อถือ​จึง​ถูก​สร้าง ​ซ้อนทับ ​ความไม่​น่าเชื่อถือ ​โดย​จุด​ปลายทาง​ทั้งสอง​ฝั่ง ​และ​นั่น​คือ TCP ​การออกแบบ​ของ Vint Cerf ​กับ Robert Kahn ​ใน​ปี 1974 (IEEE Trans. Comm. COM-22(5): 637–648) ​ใส่​หมายเลข​ให้​ทุก​ไบต์ ​ยืนยัน​สิ่ง​ที่มา​ถึง ​ส่ง​ซ้ำ​สิ่ง​ที่​ไม่​มาถึง ​ปั้น​สตรีม​ที่​เรียงลำดับ​และ​ไม่​มี​ช่องว่าง​ขึ้น​จาก​ตัวกลาง​ที่​ไม่​สัญญา​สัก​อย่าง​เดียว​ใน​นั้น ARPANET ​เปลี่ยน​มา​ใช้​มัน​ทั้ง​ระบบ​ใน​วันที่ 1 ​มกราคม 1983 ​วันที่​กำหนด​ไว้​ล่วงหน้า​สอง​ปี​ใน RFC 801 — ​ครั้งสุดท้าย​ที่​เครือข่าย​ยัง​เล็ก​พอ​จะ​เปลี่ยน​ได้​ใน​วัน​เดียว

​เรา​กลับมา​ที่​ปี 1986 ​ได้​ตรงนี้ ​เพราะ​การส่ง​ซ้ำ (retransmission) ​คือ​พฤติกรรม​ที่​กิน​เครือข่าย​ไป​นั่นเอง ​ผู้ส่ง​ที่​ตอบสนอง​ต่อ​ความแออัด (congestion) ​ด้วย​การพยายาม​หนัก​ขึ้น ​ทำให้​ความแออัด​แย่​ลง ​ผู้ส่ง​หนึ่ง​หมื่น​ราย​ทำ​แบบ​นั้น​พร้อมกัน​ก็​พัง​ทรัพยากร​ส่วนรวม​ทั้ง​ผืน ​ไม่​มี​หน่วยงาน​กลาง​ไหน​ห้าม​ได้ — ​ไม่​มี​ใคร​เป็นเจ้าของ​อินเทอร์เน็ต ​และ​ไม่​มี​ใคร​ถูก​สั่ง​ให้​ช้า​ลง​ได้ ​ทางแก้​ของ Jacobson ​ยัง​ฝัง​อยู่​ใน​กระดูก​ของ​ทุก​การเชื่อมต่อ​ที่​คุณ​สร้าง​ทุกวันนี้: ​ให้​ผู้ส่ง​แต่ละ​ราย​อนุมาน​สถานะ (state) ​ของ​ทั้ง​ระบบ​จาก​สิ่ง​ที่​ตัวเอง​มองเห็น​ใน​พื้นที่ ​มอง​แพ็กเก็ต​ที่​หาย​ไป​เป็นหลัก​ฐาน​ของ​ความแออัด ​ตัด​อัตรา​การส่ง​ลง​อย่าง​แรง ​ค่อยๆ ​ไต่​ขึ้น​ใหม่​อย่าง​นุ่มนวล congestion control ​คือ​การยับยั้งชั่งใจ​โดยสมัครใจ​ของ​ฝ่าย​ที่​มองไม่เห็น​กันและกัน ​และ​มัน​อยู่​ได้​เพราะ​ทางเลือก​อื่น​คือ​ไม่​มี​ใคร​ได้​อะไร​เลย ​มัน​คือ​ชิ้นส่วน​ของ​ความสุภาพ​แบบ​กระจาย​ศูนย์​ที่​ส่งผล​สำคัญ​ที่สุด​เท่าที่​เคย​ถูก​นำไปใช้​จริง

​โครงสร้าง​เดียวกัน — ​ไม่​มีอำนาจ ​มี​แต่​ข้อตกลง — ​คุม​ว่า​จะ​หา​ของ​เจอ​ได้​อย่างไร Domain Name System ​ที่ Paul Mockapetris ​เขียน​สเปก​ไว้​ใน​ปี 1983 ​และ​ปรับปรุง​ใน RFCs 1034 ​และ 1035 (1987) ​แปลง​ชื่อ​เป็นที่​อยู่​ด้วย​การมอบอำนาจ (delegation): ​แต่ละ​โซน​ได้รับ​ความไว้ใจ​ให้​ตอบแทน​ชื่อ​ที่อยู่​ใต้​มัน ​การจัด​เส้นทาง (routing) ​ระหว่าง​เครือข่าย​วิ่ง​บน BGP (RFC 4271) ​แต่ละ​เครือข่าย​ประกาศ​ว่า​ตัวเอง​ไป​ถึงที่​อยู่​ไหน​ได้​บ้าง ​เพื่อนบ้าน​ก็​เชื่อ ​เมื่อ​วันที่ 24 ​กุมภาพันธ์ 2008 Pakistan Telecom ​ทำตาม​คำสั่ง​ให้​บล็อก YouTube ​ในประเทศ ​ด้วย​การประกาศ​เส้นทาง​ไป​ยัง​ที่อยู่​ส่วนหนึ่ง​ของ YouTube ​ที่​จำเพาะ​กว่า​ของ YouTube ​เอง — ​เส้นทาง​ที่​จำเพาะ​กว่า​ชนะ​เสมอ ​และ​ผู้ให้บริการ​ต้นทาง​ของ​มัน​ส่งต่อ​คำประกาศ​นั้น​ออก​ไป ท​ราฟฟิก​ทั้งโลก​ที่​มุ่ง​หา YouTube ​จึง​วิ่ง​ไป​ปากีสถาน​อยู่​ราว​สอง​ชั่วโมง (RIPE NCC) ​ไม่​มี​อะไร​ถูก​แฮ็ก ​ระบบ​ทำงาน​ตามที่​ออกแบบ​ไว้​ทุกอย่าง ​และ​การออกแบบ​นั้น​ตั้งอยู่​บน​สมมติฐาน​ว่า​ทุกฝ่าย​ซื่อสัตย์

​บนสุด​ของ​ทั้งหมด​นี้​คือ​แอปพลิเคชัน​หนึ่ง​ใน​หลายๆ ​ตัว ​เสนอ​ขึ้น​ที่ CERN ​ใน​เดือน​มีนาคม 1989 ​เพื่อ​ใช้​ติดตาม​เอกสาร (Berners-Lee) ​และ​ปล่อย​สู่​สาธารณสมบัติ​ใน​วันที่ 30 ​เมษายน 1993 ​สำหรับ​คน​ส่วนใหญ่ ​เว็บ (the Web) ​คือ ​เครือข่าย (network) — ​นั่นแหละ​คือ​หน้าตา​ของ​ชั้น​ที่​สร้าง​มา​ดี ​เมื่อ​มอง​จาก​ด้านบน

​เชื่อมโยง

​ด้านล่าง: ​บท​ที่ 03 ​กำหนด​เพดาน​ทางกายภาพ​ของ​ช่องสัญญาณ (channel) ​ใดๆ ​และ​ให้​รหัส​ตรวจจับ​ข้อผิดพลาด (error-detecting code) ​ที่​ทุก​ชั้น​ใช้ ​บท​ที่ 04 ​กับ 05 ​ให้​เครื่อง​และ​ระบบปฏิบัติการ​ที่​ลงมือ​ขยับ​ไบต์​จริงๆ ​ด้านบน: ​บท​ที่ 10 ​เอา​เครื่อง​ที่​เชื่อมต่อ​กัน​ใน​บท​นี้​ไป​ถาม​ว่าการ​ที่​พวก​มัน​ตกลง​อะไร​กัน​สัก​อย่าง​แปล​ว่า​อะไร ​คำถาม​นี้​ยาก​กว่า​การทำให้​พวก​มัน​คุย​กัน​ได้มาก ​บท​ที่ 08 ​มัก​อยู่​อีก​ฟาก​หนึ่ง​ของ​การเชื่อมต่อ​แบบนี้ ​บท​ที่ 11 ​คือ​บท​ที่​ชั้นนี้​ต้อง​พึ่ง​อยู่​ตลอด ​เพราะ DNS ​กับ BGP ​ถูก​สร้าง​มา​สำหรับ​เครือข่าย​ของ​คน​ที่​รู้จัก​กัน​เป็นเพื่อน​ร่วมงาน

​คำถาม​ที่​ยัง​เปิด​อยู่

end-to-end argument ​ถูก​กดดัน​อยู่​ตลอด: firewall, address translator ​และ content delivery network ​ต่าง​พา​ความฉลาด​กลับ​เข้าไป​ไว้​ตรงกลาง ​ส่วน QUIC ​ย้าย transport ​ออกจาก kernel ​เพื่อ​หนี​เงื้อมมือ​ของ​ตรงกลาง​นั้น ​เอว​คอด​แคบ (narrow waist) ​ยัง​เป็น​สถาปัตยกรรม​จริง ​หรือ​เป็น​แค่​ความทรงจำ​ถึง​มัน​แล้ว ​ข้อ​สอง: ​ปัญหา​ความไว้ใจ​ของ BGP ​มี​คำตอบ​ทางเทคนิค​มา​หลาย​ปี​แล้ว — ​การตรวจสอบ​แหล่งที่มา​ของ​เส้นทาง​ด้วย​วิทยาการ​รหัสลับ (cryptographic validation) — ​แต่​การใช้งาน​จริง​ยัง​ทำได้​แค่​บางส่วน ​มัน​จึง​ไม่​ใช่​คำถาม​วิจัย​เท่ากับ​เป็น​กรณีศึกษา​ว่า​ทำไม​การประสานงาน​ถึง​ล้มเหลว​เมื่อ​ไม่​มี​ใคร​ถูก​บังคับ​ได้ ​ข้อ​สาม: congestion control ​ตอนนี้​รัน​หลาย​อัลกอริทึม​พร้อมกัน ​บาง​ตัว​ก้าวร้าว​กว่า​ตัว​อื่น​มาก ​บน​ทรัพยากร​ส่วนรวม​ที่​ออกแบบ​มา​โดย​สมมติ​ว่า​ทุกฝ่าย​ยับยั้งชั่งใจ​เท่าๆ ​กัน ​อะไร​จะ​ยึด​ข้อตกลง​ไว้​ได้ ​เมื่อ​ฝ่าย​ต่างๆ ​ไม่​เห็น​ตรงกัน​อีกต่อไป

​อ่าน​ต่อ

บทถัดไป · 11 / 1610 · ระบบกระจาย
Size
Page
Font

The Tower of Abstractions — An Encyclopedia of the Computing Disciplines

❦
100 · แผนที่201 · ทฤษฎีการคำนวณ302 · อัลกอริทึมและโครงสร้างข้อมูล403 · สารสนเทศและการเข้ารหัส504 · สถาปัตยกรรมคอมพิวเตอร์605 · ระบบปฏิบัติการ706 · ภาษาและคอมไพเลอร์807 · วิศวกรรมซอฟต์แวร์908 · ฐานข้อมูล1009 · เครือข่าย1110 · ระบบกระจาย1211 · ความปลอดภัยและวิทยาการรหัสลับ1312 · ปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง1413 · ปฏิสัมพันธ์มนุษย์–คอมพิวเตอร์ และกราฟิกส์1514 · พรมแดน1699 · ปิดเล่ม — หอคอยเมื่อมองทั้งหลัง