انتحال بروتوكول
تقنيات الانتحال > انتحال نقل الملفات

تعمل بروتوكولات تصحيح الأخطاء ونقل الملفات عادةً عن طريق حساب المجموع الاختباري أو اختبار التكرار الدوري CRC لكتلة من البيانات تعرف باسم الحزمة packet، وإرسال الرقم الناتج في نهاية الحزمة. في الطرف الآخر من الاتصال، يُعيد المتلقي حساب الرقم بناءً على البيانات التي تلقاها ويقارن هذه النتيجة بما جرى إرساله من الجهاز البعيد. إذا تطابق الاثنان، فذلك يعني أنه قد جرى إرسال الحزمة بشكل صحيح، ويرسل جهاز الاستقبال ACK للدلالة إلى أنه جاهز لاستلام الحزمة التالية.
الوقت اللازم لنقل إشارة ACK إلى المُرسِل يتوقف على خطوط الهاتف، ووليس سرعة المودم، وعادة ما يكون حوالي 0.1 من الثانية على الوصلات القصيرة وقد تكون أطول من ذلك بكثير على الوصلات الطويلة أو شبكات البيانات مثل X.25. بالنسبة للبروتوكول الذي يستخدم حزم صغيرة، يمكن أن يكون هذا التأخير أكبر من الوقت اللازم لإرسال حزمة. على سبيل المثال، بروتوكول UUCP "g" وكيرميت كلاهما يستخدم الحزم 64 بايت، والتي تأخذ حوالي 0.05 من الثانية للإرسال على وصلة 9600 بت/ث. يستخدم إكس مودم حزمة أكبر قليلا 128 بايت، والتي تستغرق حوالي 0.1 من الثانية للإرسال.
لا يمكن إرسال الحزمة التالية من البيانات حتى يتم استلام ACK للحزمة السابقة. في حالة إكس مودم، على سبيل المثال، هذا يعني أنه يأخذ ما لا يقل عن 0.2 من الثانية لدورة كاملة لإرسال حزمة واحدة. هذا يعني أن السرعة الإجمالية هي نصف الحد الأقصى النظري، وتصبح كفاءة القناة بنسبة 50٪.
يعالج انتحال البروتوكول هذه المشكلة من خلال جعل المودم المحلي يتعرف على أن نقل البيانات قيد التنفيذ، غالبًا من خلال البحث عن رؤوس الحزم packet headers. عند رؤيتها، يبحث المودم بعد ذلك عن نهاية الحزمة، عادةً من خلال معرفة عدد البايتات في الحزمة الواحدة. على سبيل المثال، يحتوي XMODEM على 132 بايت في الحزمة بسبب إضافة الرأس header والمجموع الاختباري checksum إلى 128 بايت من البيانات الفعلية. عندما يرى المودم انتهاء الحزمة، فإنه يرسل على الفور رسالة ACK المخادعة (المنتحلة) إلى المضيف. يؤدي هذا إلى قيام الكمبيوتر المحلي بإرسال حزمة أخرى على الفور، وبالتالي لا ينتظر زمن انتقال ACK من الجهاز البعيد. يجري الاحتفاظ ببيانات الحزم المتعددة في مخزن مؤقت داخلي أثناء قيام المودم بإرسالها إلى الجهاز البعيد. وهذا يسمح بإرسال الحزم باستمرار، مما يحسن بشكل كبير من كفاءة القناة. ومع ذلك، وهذا يتطلب أيضا أن تكون الوصلة بين النظامين خالية من الأخطاء، لأن المودم أرسل بالفعل ACK حتى قبل إرسال الحزمة. يجري معالجة ذلك عادةً باستخدام بروتوكول تصحيح الأخطاء على مستوى المودم، مثل بروتوكولات شبكة Microcom .
جرى استخدام انتحال البروتوكول على نطاق واسع مع ميزة أخرى لأجهزة المودم عالية السرعة السابقة. قبل إدخال إلغاء الصدى echo cancellation في v.32 والبروتوكولات الأحدث، كانت أجهزة المودم عالية السرعة تحتوي عادةً على «قناة خلفية» بطيئة جدًا لإرسال أشياء مثل ACK إلى المُرسِل. في TrailBlazer بسرعة ~18500 بت/ث، على سبيل المثال، يمكن أن يرسل المودم ما يصل إلى 35 حزمة UUCP في الثانية إلى جهاز الاستقبال، لكن القناة الخلفية تسمح فقط بـ 75 بت/ث، وهو ما لا يكفي تقريبًا لـ 35 بايت، 280 بت، من رسائل ACK التي يرسلها المضيف البعيد.
في هذه الحالة، سمح الانتحال للمودم المُرسِل بمواصلة إرسال الحزم بأسرع ما يمكن. في الوقت نفسه، أسقط المودم الموجود على الطرف المستلم عن بُعد حزم ACK التي يتم إنشاؤها بواسطة برنامج الكمبيوتر المحلي، وترك القناة الخلفية خالية. نظرًا لأن كفاءة القناة أصبحت مشكلة رئيسية فقط عند السرعات التي تزيد عن 2400 بت/ث، وأن أجهزة المودم قادرة على العمل بشكل أسرع من تلك التي تتمتع عادةً بقدرة معالجة كبيرة على أي حال، كان انتحال البروتوكول مرتبطًا في الغالب بهذه الأنظمة عالية السرعة.