الجمعة، 2 سبتمبر 2011

كيفية إرسال ملفات كبيرة الحجم جدا عبر بروتوكول TCP

أفضل وسيلة لإرسال ملفات كبيرة الحجم جدا هي تقطيع الملف المرسل إلى قطع صغيرة وإرسالها إلى الطرف الثاني قطعة قطعة ثم يقو م الطرف الثاني بتجميعها من جديد لأن إرسال ملف بحجمه الطبيعي تضيع معظم البيانات المرسلة في معظم الحالات مرات تسلم الجرة ويسلم الملف كاملا وبما إننا نحتاج في بعض الحالات إرسال ملف حجمه (1.5GB) وغيره من الأحجام فلا بد من استخدام وسيلة ما.!
 فكيف تكون الطريقة  لأسال ملف كبير الحجم........؟
لنفرض أن لدينا صورة حجمها   6794 بايت  وأن نضريه التقطيع لدينا تقطع الملف إلى أجزاء  كل  جزء (بلوك) حجمه      2048    بايت  على حدة وترسله وحده  هكذا ستتكون لدينا ثلاث بلوكات ويبقى اقل من بلوك





تم يرسل البلوك الثاني ثم الثالث ثم  يبقى جزء اقل من  (2048 byte) سوف يرسله أيضا وحده ثم بعد اكتمال التسليم يقوم الطرف الثاني بتحويل البايتات المستلمة إلى ملف






تكو  خوارزمية الإرسال والاستلام














خ خطوات الإرسال والاستلام حسب المخطط أعلاه


1.    خطوة رقم 1 يرسل المرسل اسم الملف وحجمه إلى المستلم وينتظر إجابة منه إذا لم يجيبه خلال وقت محدد يقول لك فشل الإرسال

2.    خطوة رقم 2 إذا لم يكون المستلم مشغول بعملية استلام أخرى يرسل موافق  ويبدأ بتصنت على البيانات القادمة  

3.    خطوة رقم 3 إذا حصل المرسل على الموافقة على الإرسال  يبدأ بإرسال الملف قطعة قطعة

4.    خطوة رقم 4 يستمر المستلم يتصنت  على البيانات  القادمة ويستمر بالتصنت  وتجميع البيانات حتى يكتمل حجم البيانات المستلمة بنفس الحجم المرسل في خطوة رقم 1 ويحولها إلى الملف بنفس الامتداد الذي أرسل له في خطوة رقم 1 . وإذا لم يكتمل حجم الملف أو حصل انقطاع في الاستلام خلال فترة معينة يوقف عملية الاستلام ويقول لك فشل الإرسال

 
إرسال تعليق