الشبكات / الأساسي: مسارات الحزم والعنونة / الدرس 5
مقارنة TCP وUDP وأطراف الخدمات
افهم المنافذ والتدفقات والمخططات والبدء وإكمال التطبيق قبل اختيار النقل أو تشخيصه.
في هذه الصفحة
أهداف الدرس
- تمييز تدفق TCP من مخططات UDP.
- شرح مجموعة الطرف ونجاح النقل مقابل التطبيق.
- إدراك مسؤوليات المبني فوق UDP.
تحدد المنافذ سياقات النقل
تحدد المحادثة بالبروتوكول والعناوين والمنافذ؛ والرقم نفسه في TCP وUDP فضاءان. يربط المستمع عنواناً ومنفذاً ويستخدم العميل عادة مصدراً مؤقتاً. لا يوثق الرقم الخدمة أو يضمن بروتوكولها. يغير الوسيط والترجمة المجموعة؛ احفظ الاتجاه والبروتوكول كي لا تدمج غير المتعلق.
يحفظ TCP بايتات مرتبة لا رسائل
يقدم TCP تدفقاً موثوقاً مرتباً ولا يحفظ حدود write. قد يتلقى جزء رسالة أو عدة معاً فيحتاج تأطيراً بالطول أو فاصل. لا يعني send معالجة النظير أو ديمومته. المصافحة والإقرار مرحلتان أدنى. عرف الإقرار والمحاولة وفق العملية ولا تفترض تنفيذ أعمال مرة واحدة من TCP.
chunks = [b'HEL', b'LO\nBY', b'E\n']
buffer = b''.join(chunks)
messages = buffer.split(b'\n')[:-1]
print([message.decode('ascii') for message in messages])
['HELLO', 'BYE']
تقطع القطع حدود الرسائل ويعيد الفاصل المعلن رسالتين غير متصلتين دون مقبس.
يترك UDP مسؤولية أكبر للتطبيق
يرسل UDP مخططات بحدود دون ضمان التسليم والترتيب والإعادة والتحكم المكافئ. يقرر التطبيق الفقد المقبول والمكرر والقديم وضبط الإرسال. لا يعني UDP تلقائياً تطبيقاً غير آمن أو موثوق؛ تضيف بروتوكولات الضمانات. وقد تضخم محاولة بلا حد الازدحام. اختر بالحاجة والمسار والتصميم لا شعار الأسرع.
قراءة الأطوال عند حدودها الصحيحة
يحوي رأس UDP المنفذين والطول والمجموع. يشمل الطول الرأس والحمولة لا الأدنى. يعلم تحليل مثبت ترتيب البايت والحدود دون إرسال. يفحص الحقيقي القطع والمجموع والنسخة والتغليف؛ ليس unpack الصغير محللاً كاملاً. صرح الحد وارفض التشوه ولا تثق بالطول عميانياً.
import struct
header = struct.pack('!HHHH', 53000, 53, 12, 0)
source, destination, length, checksum = struct.unpack('!HHHH', header)
print(f'src={source} dst={destination} payload={length - 8}')
src=53000 dst=53 payload=4
يعلن المثبت أربعة بايتات حمولة. الصفر توضيحي لا ادعاء صلاحية لكل نسخة أو جاهزية إرسال.
فصل الرفض والمهلة وإعادة الضبط ورفض التطبيق
تختلف ملاحظات الرفض والمهلة والضبط وخطأ HTTP ولا تسمي جداراً أو جهازاً واحداً. قد ينشأ النقل وتفشل المصادقة، وقد يقصد صمت UDP. احفظ المجموعة والوقت والتبادل المتوقع، وقارن النماذج وحدد دليلاً مصرحاً يميز المستمع والسياسة والفقد والتطبيق. لا نتصل أو نمسح منافذ.
الأخطاء الشائعة وإصلاحها
اعتبار قراءة TCP رسالة واحدة
- لماذا يحدث؟
- اختلطت القطع بالتأطير.
- كيف تصلحه؟
- طبق حدود البروتوكول.
- كيف تتجنب تكراره؟
- اختبر المجزأ والمجمع.
محاولات UDP بلا حد
- لماذا يحدث؟
- أُهمل الازدحام والتكرار.
- كيف تصلحه؟
- استخدم تعافياً محدوداً موثقاً.
- كيف تتجنب تكراره؟
- عامل الاختيار قرار بروتوكول كامل.
اعتبار إقرار TCP نجاحاً دائماً للتطبيق
- لماذا يحدث؟
- اختلط الاستلام بالإكمال.
- كيف تصلحه؟
- اطلب إقرار التطبيق الموثق.
- كيف تتجنب تكراره؟
- عرف الإعادة وتكرارية الفعل صراحة.
اختبر فهمك
1. كتب المرسل رسالتين وقرأ النظير قطعة واحدة. هل تعطل TCP؟
اعرض الحل المشروح
لا، يقدم بايتات وقد يضم أو يفصل. يستعيد المحلل الرسالتين بالتأطير ويجب تغيير القطع بالاختبار مستقلة.
2. ماذا يضيف بروتوكول موثوق فوق UDP؟
اعرض الحل المشروح
يحتاج تصميماً للفقد والترتيب والتكرار والازدحام والمهل والمصادقة وفق متطلباته، لا محاولات غير محدودة.
أهم ما تعلمته
- اختر التأطير والإكمال صراحة.
- افصل رصد النقل من نتائج التطبيق.