‹

04. การเบี่ยงเบนของโปรโตคอล — เมื่อสองฝ่ายมีความเห็นไม่ตรงกันเรื่องสัญญา

04. ​การเบี่ยงเบน​ของ​โปรโตคอล — ​เมื่อ​สอง​ฝ่าย​มี​ความเห็น​ไม่​ตรงกัน​เรื่อง​สัญญา

​ต้นกำเนิด​ของ​การยอมรับ​แบบ​ยืดหยุ่น

​ใน​ปี 1989 J. Postel ​และ​คณะ​เขียน​หลักการ​ที่​ภายหลัง​จะ​ทำให้​สัญญา​ระหว่าง​ระบบ​เลือนหาย​ไป ​ลง​ใน​เอกสาร​ที่​รู้จัก​กัน​ใน​ชื่อ​ทางการ​ว่า RFC 1122 ​หลักการ​นั้น​ว่า​ไว้​สั้นๆ ​ทำ​ใน​สิ่ง​ที่​ตน​ทำ​อย่าง​อนุรักษ์นิยม ​ยอมรับ​สิ่ง​ที่​ได้รับ​อย่าง​ยืดหยุ่น ​เป้าหมาย​คือ​ให้​ระบบ​ที่​ต่างกัน​ทำงาน​ร่วมกัน​ได้มาก​ที่สุด ​สถาปนิก​ของ IETF ​เชื่อ​ว่า​ถ้า​ยอมรับ​อินพุต​ที่​ผิดรูป​แบบ​ไป​บ้าง ​บริการ​ต่างๆ ​จะ​รอด​จาก​ข้อผิดพลาด​เล็กน้อย​ได้​โดย​ไม่​ล่ม ​และ​เครือข่าย​จะ​ยัง​ทำงาน​ได้​และ​ทนทาน ​ทางเลือก​นี้​กลับ​ผลักภาระ​บำรุงรักษา​จริง​ไป​ไว้​ที่​ฝ่าย​ที่​พยายาม​ทำให้​ถูกต้อง​ตาม​ข้อกำหนด​ดั้งเดิม​อย่าง​เคร่งครัด ​โดย​ไม่​มี​ใคร​รู้ตัว ​ผู้รับ​กลบเกลื่อน​ข้อผิดพลาด​ไป​เงียบๆ ​ผู้ส่ง​จึง​ไม่​เคย​รู้​ว่า​เอาต์พุต​ของ​ตน​เบี่ยงเบน​ไป​จาก​มาตรฐาน​ของ​โปรโตคอล​ที่​ตกลง​กัน​ไว้ ​เมื่อ​เวลา​ผ่าน​ไป ​สัญญา​ดั้งเดิม​ระหว่าง​ระบบ​ทั้งสอง​ก็​หาย​ไป​ในทางปฏิบัติ ​เหลือ​ไว้​เพียง​ความเป็นจริง​ที่​เปราะบาง ​ไม่​มี​เอกสาร​กำกับ ​และ​ไม่​มี​ฝ่าย​ใด​เป็นเจ้าของ​หรือ​เข้าใจ​อย่าง​ถ่องแท้

​ต้นทุน​ของ​การยอมรับ​อย่าง​เงียบเชียบ

​ภายใน​ปี 2023 ​การเบี่ยงเบน​นี้​ถูก​จัดการ​อย่าง​เป็นทางการ Internet Architecture Board ​นำ​โดย​ผู้เขียน​ที่รวม​ถึง Martin Thomson ​และ T. Pauly ​เผยแพร่ RFC 9413 ​เพื่อ​รับมือ​กับ​ผล​ของ​มัน​โดยตรง ​คณะกรรมการ​สังเกตว่า​นิสัย​ยอมรับ​อินพุต​ที่​ไม่​ตรง​มาตรฐาน​ซึ่ง​มี​มา​นาน ​ให้รางวัล​แก่​ผู้ส่ง​ที่​ไม่​ทำตาม​ข้อกำหนด​โปรโตคอล​ที่​เข้มงวด​และ​ชัดเจน ​โดย​ไม่​มี​ใคร​ตั้งใจ ​การยอมรับ​เงียบๆ ​นี้​ฝัง​ความคลุมเครือ​ลง​ลึก ​และ​สร้าง​ข้อบกพร่อง​ด้าน​ความปลอดภัย​ที่​สำคัญ ​เพราะ​ระบบ​เริ่ม​พึ่งพา​พฤติกรรม​ที่​คาดเดา​ไม่​ได้ ​แทน​สัญญา​จุด​เชื่อมต่อ​ที่​ชัดเจน​และ​เป็นทางการ ​ผู้ส่ง​ที่​อนุรักษ์นิยม​และ​ยัง​ทำตาม​กฎ ​ต้อง​จ่าย​ต้นทุน​บำรุงรักษา​ไป​ไม่​มี​กำหนด ​เพื่อ​รองรับ​พฤติกรรม​ที่​เอา​แน่​เอา​นอน​ไม่​ได้​ของ​คู่สนทนา​ที่​ยืดหยุ่น​เกินไป IAB ​สรุป​ว่าการ​บำรุงรักษา​โปรโตคอล​เชิงรุก​เหนือกว่า​การรับ​อินพุต​ผิดรูป​แบบ​โดย​ไม่​โต้ตอบ​อยู่​มาก ​เพราะ​มัน​บังคับ​ให้​ทั้งสองฝ่าย​รักษา​แนวทาง​ให้​ตรงกัน​อยู่​เสมอ ​การทด​สอบ​สัญญา ​เช่น ​สัญญา​ที่​ขับเคลื่อน​โดย​ผู้ใช้งาน (consumer-driven contracts) ​อย่าง Pact ​คือ​กลไก​บังคับใช้​สมัยใหม่ ​มัน​แทนที่​ข้อสมมติ​ฐาน​ที่​คลุมเครือ​ด้วย​ความคาดหวัง​ต่อ​จุด​เชื่อมต่อ​ที่​รัน​ได้​และ​ตรวจสอบ​ได้​จริง

​การเปลี่ยนแปลง​ของ​มาตรฐาน

​ข้อพิพาท​เรื่อง​ความถูกต้อง​ของ​การยอมรับ​แบบ​ยืดหยุ่น​จบ​แล้ว ​ไม่​ใช่​ยัง​ถกเถียง​กัน​อยู่ ​เพราะ Internet Architecture Board ​รับคำ​วิจารณ์​นั้น​ไว้​อย่าง​เป็นทางการ ​อุตสาหกรรม​ย้าย​จาก​ปรัชญา​ปี 1989 ​ของ RFC 1122 ​ไป​สู่​ข้อบังคับ​ปี 2023 ​ของ RFC 9413 ​เพื่อ​รักษา​โปรโตคอล​เครือข่าย​ให้​ทนทาน​และ​คาดการณ์​ได้ IETF ​กลับ​จุดยืน​โดย​พื้นฐาน ​มัน​ให้น้ำ​หนัก​กับ​การบังคับใช้​ที่​ชัดเจน​และ​การทำตาม​สัญญา​ที่​ชัดแจ้ง ​มากกว่า​ช่องทางสื่อสาร​ที่​หละหลวม​และ​ให้อภัย​ความผิดพลาด​อย่าง​ที่​เคย​เลือก​ใน​อดีต

​ตัวอย่าง: ​จับมือ​โดย​ละเลย​นิ้ว​ที่​หัก ​สุดท้าย​มือ​นั้น​จะ​จับ​อะไร​ไม่​อยู่ ​รับ​น้ำหนัก​ไม่​ได้​เลย

​คำตัดสิน. ​ระบบ​ล้มเหลว​เมื่อ​สัญญา​จุด​เชื่อมต่อ​ถูก​ปล่อย​ให้​เสื่อมถอย ​ผ่าน​อินพุต​ที่​เบี่ยงเบน​จาก​ข้อกำหนด​ที่​ตกลง​กัน​ไว้ ​แล้ว​ถูก​รับ​เข้ามา​เงียบเชียบ​โดย​ไม่​มี​การตรวจสอบ

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

​แหล่ง​อ้างอิง. 1989 · J. Postel et al., "Requirements for Internet Hosts — Communication Layers" — IETF Datatracker · 2023 · Internet Architecture Board / M. Thomson, T. Pauly, "Maintaining Robust Protocols" — RFC Editor

บทถัดไป · 5 / 1205. การหมดเวลาและการลองใหม่ — ยาที่กลายเป็นต้นเหตุของโรค
Size
Page
Font

At The Seams

❦
101. รอยต่อ — เหตุใดความล้มเหลวจึงกระจุกตัว ณ จุดที่ส่วนประกอบมาบรรจบกัน202. หน่วยวัดและข้อสมมติฐาน — ความไม่เข้ากันที่ไม่มีใครรับผิดชอบ303. การส่งต่องาน — จุดที่ข้อมูลมักสูญหาย404. การเบี่ยงเบนของโปรโตคอล — เมื่อสองฝ่ายมีความเห็นไม่ตรงกันเรื่องสัญญา505. การหมดเวลาและการลองใหม่ — ยาที่กลายเป็นต้นเหตุของโรค606. ความสำเร็จที่เงียบงัน — ความล้มเหลวที่รายงานว่าทุกอย่างเรียบร้อยดี707. เงื่อนไขแฝง — อุบัติเหตุที่ดำรงอยู่ก่อนแล้ว808. ปฏิกิริยาตอบสนองด้วยการกล่าวโทษ — เหตุใด 'ความผิดพลาดของมนุษย์' จึงเป็นจุดจบของการสืบสวน909. การชันสูตรเหตุขัดข้อง — การเปลี่ยนเหตุการณ์หยุดชะงักให้เป็นสินทรัพย์1010. Resilience Engineering — งานอย่างที่คิดว่าทำ และงานอย่างที่ทำจริง1111. การควบคุม ไม่ใช่ส่วนประกอบ — การปรับกรอบแนวคิดของ Leveson1212. การค้นหารอยต่อของคุณ — ขั้นตอนการปฏิบัติ