الشبكات / المتوسط: العمر والثقة وبروتوكولات التطبيق / الدرس 8
قراءة حالة TCP وضبط التدفق والازدحام
اربط التسلسل والإقرار والنوافذ والإعادة والإغلاق دون تحويل الأعراض لأسباب غير مدعومة.
في هذه الصفحة
أهداف الدرس
- شرح معنى التسلسل والإقرار.
- فصل ضبط المستقبل من ازدحام الشبكة.
- تفسير الإعادة وحالات الإغلاق بسياقها.
تصف حالة الاتصال رؤية الطرف
تحفظ الأطراف حالات البدء والنقل والإغلاق وللأعلام معان، ولا تكشف قطعة كل التاريخ. قد يغلق اتجاه ويبقى الآخر وTIME-WAIT حماية طبيعية لا تسرباً تلقائياً. احفظ الدورين والوقت؛ ينشئ الوسيط اتصالين بحالات مختلفة للطلب نفسه. لا تشخص الكل من تسمية.
تشير الإقرارات إلى فضاء تسلسل البايتات
يحدد التسلسل مواضع البايت ويشير الإقرار للتالي المتوقع. تستهلك SYN وFIN موضعاً دون حمولة، وتكرر الإعادة نطاقاً لا رسالة ثانية. يلتف الحساب الحقيقي فصِح الطرح البسيط ضمن غير الملتف. تضيف SACK نطاقات ولا يحدد التراكمي وحده موضع الفقد أو سببه.
initial_sequence = 1000
syn_consumption = 1
payload_bytes = 120
next_expected = initial_sequence + syn_consumption + payload_bytes
print('synthetic_ack=' + str(next_expected))
synthetic_ack=1121
يؤدي SYN عند 1000 ثم 120 بايتاً متتالية إلى 1121 بمثبت مبسط لا تحليل أو إرسال.
تختلف سعة المستقبل من سعة المسار
تقيد نافذة المستقبل القبول ويضبط الازدحام الإرسال وفق إشارات المسار. يتقيد الجاري بكليهما وتفاصيل أخرى. يشير الصفر لتدفق المستقبل لا إثبات فقد. قد تعكس نافذة الازدحام البدء والتعافي لا مخزناً مهيأ فقط. قارن الآلية بقراءة التطبيق والمسار قبل توصية المخزن أو التزامن.
congestion_window = 6000
receive_window = 4000
inflight = 2500
budget = max(0, min(congestion_window, receive_window) - inflight)
print(f'synthetic_additional_budget={budget} bytes')
synthetic_additional_budget=1500 bytes
الميزانية النموذجية 1500 بايت، ولـ TCP الحقيقي مؤقتات وتقسيم وقواعد إضافية.
الإعادة دليل لا سبب جذري
قد تأتي الإعادة من فقد أو ترتيب أو تأخر تغذية أو تعاف آخر، وقد تفوت نقطة الرصد قطعة فتخترع فقداً. تساهم المؤقتات والإقرارات المكررة حسب الخوارزمية. لا تسم كل تكرار كابلاً أو مهلة جداراً. احفظ النطاق والتقدم والوقت وحدود الرصد؛ نستخدم سجلات مصطنعة فقط ويحتاج السبب تأييداً بين الطبقات.
يحتاج النقل السليم مستهلكاً سليماً
قد يقيد تطبيق لا يقرأ TCP مع سلامة المسار، وقد ينتظر الخادم قاعدة باتصال قائم. تضيف المجمعات والوسطاء والمهل والمحاولات حدوداً. حاذ النقل بمعرفات الطلب ونتائجه لا المقبس المفتوح دليلاً على التقدم. راع احتمال الالتزام عند الإعادة وأصلح الآلية دون افتراضيات نقل عمياء.
الأخطاء الشائعة وإصلاحها
اعتبار تكرار التسلسل عملاً تطبيقياً مكرراً
- لماذا يحدث؟
- اختلط التعافي بتسليم الرسالة.
- كيف تصلحه؟
- طبق إعادة التجميع والتأطير.
- كيف تتجنب تكراره؟
- افصل هوية البايت والطلب.
خلط نافذتي المستقبل والازدحام
- لماذا يحدث؟
- عومل المستقبل والمسار قيداً واحداً.
- كيف تصلحه؟
- حدد الميزانية المقيدة.
- كيف تتجنب تكراره؟
- احفظ دليل الطرف والمسار.
تسمية TIME-WAIT وحده عطلاً
- لماذا يحدث؟
- أُهملت حماية الإغلاق الطبيعية.
- كيف تصلحه؟
- قارن العدد والعمر والفشل الحقيقي.
- كيف تتجنب تكراره؟
- علم المعنى قبل العتبة.
اختبر فهمك
1. لماذا لا يثبت ACK التزام التقرير بقاعدة؟
اعرض الحل المشروح
يقر تقدم النقل لا المعاملة وقد لا تقرأ أو تتحقق أو تلتزم بعد. اطلب الرد الموثق وصمم الإعادة لاحتمال الإنجاز السابق.
2. يعلن المستقبل نافذة فارغة. أي فرضية تميزها من الازدحام؟
اعرض الحل المشروح
قد لا يصرف المستقبل أو التطبيق البيانات. افحص تقدم المستهلك والتدفق لا افتراض فقد المسار، وللصفر قواعد تعاف خاصة.
أهم ما تعلمته
- تتبع الحالة والبايت والنافذة والتطبيق منفصلة.
- أيد سبب الإعادة قبل تغيير السياسة.