ลองคำนวณสิ่งที่เรากำลังทำกับที่นี่ CAR นั้นเป็นรุ่นเก่าของการตรวจสอบ IOS ดังนั้นแนวคิดเหล่านี้จึงมีผลกับทั้งคู่
Committed Information Rate (CIR) = 5,000,000 (5Mbps)
Burst Commit Bucket (Bc) = 937,500
Burst Excess Bucket (Be) = 1,875,000
Time Interval (Tc) = Bc / CIR = 0.1875 s = 187.5 ms
อัตราที่เราต้องการ จำกัด การไหลคือ 5Mbps Commit Bucket คือ 937,500 ไบต์ ถังระเบิดขนาด 1,875,000 ไบต์ และถังจะถูกเติมทุก ๆ 187.5 มิลลิวินาที
ดังที่คุณกล่าวไว้ IOS ใช้กลไกการฝากข้อมูลเพื่อ จำกัด ปริมาณการรับส่งข้อมูลที่สามารถผ่านได้ มันไม่ทราฟฟิกทราฟฟิกไปที่ X% ของแบนด์วิดธ์อินเตอร์เฟสในช่วงเวลาที่กำหนดเอง! แต่จะอนุญาตให้เข้าถึงแบนด์วิดท์ของอินเทอร์เฟซได้อย่างเต็มที่ตราบใดที่คุณมีโทเค็นที่ต้องจ่ายแทน
นอกจากนี้เนื่องจากการรักษานี้ RED / WRED ไม่ได้อยู่ในการเล่น RED จะเกิดขึ้นเมื่อมีคิวที่จะจัดการ ไม่มีการบัฟเฟอร์ / การรอคิวในการรักษาเฉพาะในการสร้าง
มาจัดการกับ Commit Bucket (Bc) ก่อน สมมติว่าไม่มี Bucket มากเกินไป (Be) ในตอนนี้
* ฝากถังเท่านั้น (Policer สองสี) *
นี่เป็น policer ที่เข้มงวดมากที่จะให้คุณส่งภายใน CIR เท่านั้น ไม่มีการระเบิดดังกล่าวข้างต้น มีเพียงถังเดียวเท่านั้น Bc มีสอง "สี" สำหรับการจราจรมีความสอดคล้องและเกิน
เวลา = 0 ms -ที่ฝากข้อมูลเริ่มต้นเต็มโดยมีค่าโทเค็น 937,500 ไบต์ สมมติว่าคุณส่ง 7,500 ไบต์ผ่านส่วนต่อประสาน ตอนนี้ IOS จะลดการฝากข้อมูล 7,500 ไบต์และที่ฝากข้อมูลนั้นมี 930,000 ไบต์ที่มีค่าโทเค็นอยู่ การรับส่งข้อมูลนั้นถูกพิจารณาว่าเป็น "การสอดคล้อง" และมีการใช้ "การกระทำที่สอดคล้องกัน" กับมัน
เวลา = 187.5 ms -เรากด Tc ทันทีและเติมที่เก็บ Bc มีการเพิ่มโทเค็นมูลค่า 937,500 ไบต์ โทเค็นพิเศษใด ๆ ที่รั่วไหลและหายไป
เวลา = 190 ms -ที่ฝากข้อมูลมีโทเค็น 937,500 เราได้รับปริมาณการใช้ 2,000,000 ไบต์ 937,500 ไบต์แรกถูกถ่ายโอนได้ดีเนื่องจากที่ฝากข้อมูลมีโทเค็นอยู่ ปริมาณการใช้งานที่เหลือถือว่าเป็น "เกิน" และได้รับการปฏิบัติตาม "เกินกำลัง" Remeber ไม่มีการกำหนดบัฟเฟอร์ในการรักษา (ที่เรียกว่าการปรับรูปร่าง) - คุณสามารถส่งคำพูดและการส่งผ่านหรือลดลง
เวลา = 375 ms -เรากด Tc อีกครั้งและที่ฝากข้อมูล Bc ถูกเติมด้วยโทเค็น 937,500
* ฝากถังด้วยถังเกิน (Policer สามสี) *
คุณสามารถเลือกเพิ่ม Excess Bucket (Be) ได้ วิธีนี้ทำให้การรับส่งข้อมูลเกิน Bc ที่ฝากข้อมูลชั่วคราว CIR โดยรวมควรอยู่ในสภาพเดียวกัน นี่คือสาม "สี" policer: สอดคล้องเกินและการละเมิด
เวลา = 0 ms -ทั้งสองถัง (Bc และ Be) เริ่มเต็ม Bc มี 937,500 โทเค็น Be มี 1,875,000 โทเค็น
เวลา = 50 ms - มีการรับส่งข้อมูล 2,000,000 ไบต์ เราเตอร์จะลดโทเค็น Bc bucket ก่อน มันลดความจุ Bc เป็นศูนย์ 937,500 ไบต์ของการรับส่งข้อมูลที่ครอบคลุมโดย Bc ถือเป็น "การสอดคล้อง" และมีการใช้ "การกระทำที่สอดคล้องกัน" กับมัน
ที่เหลือ 1,062,500 ไบต์ของการจราจรที่ยังไม่มีโทเค็น ตอนนี้เราเตอร์จะจุ่มลงในถังข้อมูลและลบ 1,062,500 โทเค็นเพื่อครอบคลุมการจราจรที่เหลือ ไบต์เหล่านี้ถูกพิจารณาว่า "เกิน" และจะมีการใช้ "การกระทำเกิน" ในตัวอย่างของคุณการรับส่งข้อมูลจะลดลง แต่คุณสามารถสังเกตหรือส่งได้
หากคุณรักษาคะแนนไว้ที่บ้านตอนนี้ Bc จะมีโทเค็นเป็นศูนย์และมี 812,500 โทเค็น
เวลา = 75 มิลลิวินาที -ตอนนี้เราเตอร์จะได้รับปริมาณการใช้งานอีก 1,200,000 ไบต์ ที่ฝากข้อมูล Bc ว่างเปล่าดังนั้นจึงไม่มีความช่วยเหลือ ที่ฝากข้อมูล Be สามารถช่วยได้ดังนั้นจึงครอบคลุมการจราจร 812,500 ไบต์แรกด้วยโทเค็นและตอนนี้ว่างเปล่า การเข้าชมนี้ถูกพิจารณาว่า "เกิน" และจะมีการใช้ "การกระทำเกิน"
ตอนนี้ที่เก็บถังแห้ง แต่ยังมีเหลืออีก 387,500 ไบต์ที่จะจัดการ การเข้าชมนี้ถูกพิจารณาว่า "ละเมิด" และมักจะถูกทิ้งไว้กับ CAR (คุณสามารถทำสิ่งอื่นด้วยการใช้ MQC และคำสั่งของตำรวจด้วย "การกระทำที่ละเมิด")
เวลา = 187.5 ms -ตอนนี้เรามาถึงช่วงเวลา Tc แรกเวลาที่เติมถังของเรา จุดสำคัญคือมีการเติมโทเค็น Bcมูลค่าเท่านั้น! Bc bucket เต็มไปก่อนถึง 937,500 ถัง Be ยังคงว่างเปล่า
เวลา = 375 มิลลิวินาที -มันเงียบและเราทำให้เป็นช่วง Tc ถัดไป โทเค็นมูลค่า Bc ถูกเพิ่มลงในที่ฝากข้อมูล Bc เนื่องจากที่ฝากข้อมูล Bc เต็มแล้วโทเค็นส่วนเกินจะไม่สูญหาย - จึงถูก "ล้น" ไปยังที่ฝากข้อมูล Be แทน ตอนนี้ที่ฝากข้อมูล Bc นั้นเต็มไปด้วยโทเค็น 937,500 และ Be bucket นั้นเต็มไปด้วยโทเค็น 937,500 บางส่วน
เวลา = 562.5 ms -ยังคงเงียบและเราอยู่ที่ Tc ถัดไป โทเค็นมูลค่า Bc ถูกเพิ่มลงในที่ฝากข้อมูล Bc ซึ่งเต็มแล้ว ทั้งหมดมันกระจายไปในถัง Be (ซึ่งมีโทเค็น 937,500 แล้ว) The Be เติมตลอดทางจนถึงโทเค็นสูงสุด 1,875,000
* หมายเหตุสุดท้าย *
การกำหนดค่าของคุณไม่ได้ใช้งาน Be bucket คุณกำลัง จำกัด อัตรา / การรักษาโดยใช้เพียง Bc bucket ซึ่งอาจมีผลข้างเคียงที่ไม่ได้ตั้งใจหากผู้ส่ง / ผู้ส่งข้อมูลไปยังคุณไม่ได้กำหนดค่าเหมือนกันและไม่ได้ซิงค์ Tc-wise
CAR / rate-limit เก่ามากและเลิกใช้แล้ว พิจารณาเปลี่ยนเป็น MQC และ QoS ที่ทันสมัยเพื่อใช้สิ่งนี้เนื่องจากจะให้ข้อมูลและตัวเลือกเพิ่มเติมแก่คุณ
ฉันเพิกเฉยต่อความล่าช้าในการซีเรียลไลเซชั่นโดยสิ้นเชิง (เวลาที่ใช้ในการส่งข้อมูลบนบรรทัด) ด้านบนและฉันค่อนข้างแน่ใจว่าคณิตศาสตร์ไม่ได้ผลในสถานการณ์จริง แต่แนวคิดมีความมั่นคงโดยไม่คำนึงถึงจำนวนที่แน่นอนใช้
* ตัวอย่าง MQC *
policy-map PM-FA0/0-IN
class class-default
police cir 5000000 bc 937500 be 1875000
!
interface Fa0/0
service-policy input PM-FA0/0-IN
!
* แหล่งที่มา *