الخلاصة
- اقترح RFC 3465 العد المناسب للبايتات: تكبر نافذة TCP بحسب البايتات التي يؤكدها ACK لأول مرة، بدلاً من منح زيادة ثابتة لكل رسالة ACK.
- بقي دليل البايتات محدوداً. حدّد
Lالزيادة لكل ACK في البدء البطيء، ولم يجز أن يتجاوز وحدتي SMSS، وكان يجب خفضه إلى وحدة واحدة بعد RTO لأن التأكيد التراكمي قد يحمل تقدماً قديماً.
عدد الإيصالات لم يكن مقدار التقدم
عامل النمو التقليدي كل ACK يصل على أنه فرصة لزيادة cwnd. صلحت المقاربة حين كان المستقبل يؤكد كل مقطع ولا تضيع رسائل ACK. لكن التأكيد المؤجل أعاد رسائل أقل للبايتات نفسها، فضاقت فرص النمو. وفي الاتجاه الآخر، استطاع المستقبل تقسيم تأكيد مقطع واحد إلى رسائل صغيرة كثيرة، فتحولت كل رسالة إلى رصيد إضافي لا يقابله تقدم جديد.
نقل RFC 3465، المنشور بصفة تجريبية في فبراير 2003، وحدة الحساب. يكوّن النص الخام وسجل محرر RFC وDatatracker والتاريخ والمراجع والإحالات اللاحقة والتصويبات السجل العام. عدّل الاقتراح منطق RFC 2581، الذي حل محله لاحقاً RFC 5681 على مسار المعايير.
سمحت التأكيدات المؤجلة في RFC 1122 لرسالة واحدة بتغطية مقطعين كاملين تقريباً. عند عد الرسائل، نما الإطار بنحو نصف السرعة. وإذا ضاعت رسالة ACK، ضاعت فرصة حتى لو أثبتت الرسالة التراكمية التالية وصول البايتات نفسها.
استغل ACK division الطرف المقابل. كان المستقبل يؤكد أجزاء متتابعة صغيرة من المقطع، فتكسب كل رسالة زيادة ثابتة. جعل ABC مجموع الرسائل المجزأة يساوي فقط مجموع البايتات الجديدة التي تحملها.
احتفظ المرسل بدفتر بايتات
في congestion avoidance جمع bytes_acked البايتات غير المؤكدة سابقاً. عندما بلغ المجموع cwnd الحالي، طرح المرسل قيمة النافذة وأضاف وحدة SMSS إليها. بقي الهدف قريباً من مقطع واحد لكل RTT بصرف النظر عن عدد رسائل ACK.
في البدء البطيء أمكن زيادة النافذة بعدد البايتات الجديدة، ضمن الحد L. لم يكن L=1*SMSS أشد من القاعدة السابقة، وأوصى RFC بهذه الصورة. سمح بـL=2*SMSS للتجربة وتعويض ACK يغطي مقطعين، ومنع أي قيمة أكبر.
كبح الحد التأكيدات التراكمية الكبيرة وstretch ACK من إطلاق دفعة اعتباطية. ومع ذلك، قد تزيد وحدتا SMSS الدفعات الصغيرة وتقرب نمو البدء البطيء من الضعف كل دورة. أظهرت المحاكاة المحدودة خسارة إضافية في حالات، فطلبت الوثيقة مزيداً من التجربة ولم تدّع انتشاراً أو عدالة عامة. أوصت بـSACK من RFC 2018. وعالج RFC 2861 مشكلة قريبة هي تراكم رصيد نافذة غير مستخدم.
بعد RTO حمل الحاضر تاريخاً أقدم
إذا ضاع مقطع مبكر ووصلت المقاطع اللاحقة، فإن إعادة الفجوة بعد RTO قد تنتج ACK تراكمياً يعبر عدة مقاطع. كلها جديدة في حالة تأكيد المرسل، لكن مقطع الإعادة وحده ربما غادر الشبكة في RTT الحالي.
لذلك ألزم RFC 3465 استخدام L=1*SMSS في استرداد البدء البطيء بعد RTO. قدم RFC 2988، ثم خلفه RFC 6298، سياق المؤقت. لم يكن ACK خاطئاً؛ كان نطاقه الزمني أوسع من مسبار السعة الجديد.
امتلكت الآليات المجاورة صلاحيات مختلفة. سمح Limited Transmit في RFC 3042 ببيانات جديدة قبل ثالث ACK مكرر ضمن قيود، ولم يعرف دفتر ABC. درس RFC 3449 المسارات غير المتناظرة وترشيح ACK وإعادة بنائه، ولم ينقل رصيد المرسل من الرسائل إلى البايتات. ويقدم RFC 2525 سياقاً لمشكلات التنفيذ، لا دليلاً على نشر ABC.
تفصل طبقات الواقع اللاحقة لدى Heng Lu بين ACK المرصود والبايتات الجديدة والرصيد المقبول والحزم المرسلة. وتوجه أولوية الشيفرة المنفذة الفحص إلى المجمع والحد وحالة الاسترداد والدفعة. هذه عدسات تحريرية لاحقة، لا نسبة نية خاصة إلى مؤلف RFC.
جعل RFC 3465 الحساب أصعب تلاعباً من دون إعلان كل بايت مؤكد سعة جديدة. يمكن تقسيم الإيصالات أو جمعها، لكن التقدم الأساسي لا ينبغي أن يتضاعف معها.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
