สรุป
เฟรมตั้งค่า HTTP/2 ใช้เป็นปลายทางการแลกเปลี่ยนพารามิเตอร์การตั้งค่าที่กำหนดไว้ ด้วยกัน โพรโทคอล HTTP/2 ไม่กำหนดขีดจำกัดด้านประสบการณ์ใด ๆ บนหมายเลขของการตั้งค่าพารามิเตอร์ที่รวมอยู่ในการตั้งค่าเดียวเฟรม (สูงสุดที่อนุญาตคือ2796202) และไม่มีข้อจำกัดเกี่ยวกับจำนวนครั้งที่มีการแลกเปลี่ยนเฟรมการตั้งค่าดังกล่าว
ไคลเอนต์ที่เป็นอันตรายใช้ HTTP/2 สามารถทำลายข้อเท็จจริงนี้เพื่อทำให้เป็นระบบเซิร์ฟเวอร์ HTTP/2 ไม่เสถียร ชั่วคราว โดยการเพิ่มการใช้งาน CPU ถึง 100% ก่อนการเชื่อมต่อถูกตัดโดย Internet Information Services (IIS)
การแก้ไข
เมื่อต้องการแก้ไขปัญหานี้ Microsoft ได้จัดเตรียมให้มีความสามารถในการกำหนดขีดจำกัดของพารามิเตอร์การตั้งค่า HTTP/2 จำนวนที่อนุญาตให้มีการเชื่อมต่อ ขีดจำกัดเหล่านี้จะไม่ได้รับการกำหนดไว้ล่วงหน้า โดย Microsoft และต้องมีกำหนด โดยผู้ดูแลระบบหลังจากการตรวจทานโพรโทคอล HTTP/2 และข้อกำหนดสภาพแวดล้อม
ด้านล่างนี้คือรายการรีจิสทรีที่สองเพิ่มเพื่อตั้งค่าขีดจำกัด:
เส้นทาง: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
ชื่อ: Http2MaxSettingsPerFrame
ชนิด: DWORD
ข้อมูล: ค่าน้อยที่สุด 7 ได้รับการสนับสนุน และ 2796202 สูงสุด ออกของช่วงค่าตัดค่าสิ้นสุดต่ำสุด/สูงสุดที่สอดคล้องกัน
เส้นทาง: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
ชื่อ: Http2MaxSettingsPerMinute
ชนิด: DWORD
ข้อมูล: ได้รับการสนับสนุนค่าต่ำสุด 7 ค่ามีขนาดเล็กกว่าตัดกับค่าน้อยที่สุด
หมายเหตุ : การเริ่มต้นระบบใหม่ หรือเริ่มการทำงานของบริการจำเป็นต้องมีการอ่านค่ารีจิสทรีที่จัดโครงแบบ เมื่อมีเพิ่มครั้งแรก หรือเปลี่ยนแปลง
มีการตั้งค่าขีดจำกัด
-
ฉันf เดียวsประกอบด้วยเฟรมเพิ่มเติมในการตั้งค่าวแบ่งส่วนข้อมูลพารามิเตอร์กว่า "Http2MaxSettingsPerFrame" ค่า จาก นั้นการเชื่อมต่อนั้นถูกยุติการทำงานทันที
-
ฉันf หมายเลขของ sพารามิเตอร์วแบ่งส่วนข้อมูลที่มีอยู่ในหลายการตั้งค่าตัดเฟรมได้รับภายในหนึ่งนาที "Http2MaxSettingsPerMinute" ค่า จาก นั้นเชื่อมต่อถูกยุติการทำงาน
เมื่อเหมาะสมตั้ง สูงกว่าขีดจำกัดสองวิธีใช้ต่าง ๆ เข้าด้วยกันเพื่อจบการทำงานของการเชื่อมต่อที่เป็นอันตรายที่ละเมิดข้อจำกัดเหล่านั้น และจัดรูปแบบเป็นขีดจำกัดสำหรับการเชื่อมต่อที่ถูกต้องตามกฎหมาย