بروتوكول نقل الملفات البسيط
بروتوكول نقل الملفات البسيط ( TFTP ) هو بروتوكول اتصال بسيط لنقل الملفات أو استقبالها في تطبيقات العميل والخادم . يُستخدم TFTP بشكل أساسي في المراحل الأولى من تشغيل العُقد على شبكة محلية، عندما يتم تخزين نظام التشغيل أو صور البرامج الثابتة على خادم ملفات. [ 1 ]
تم توحيد بروتوكول TFTP لأول مرة في عام 1981 [ 2 ] وتم تحديثه في RFC 1350 .
ملخص
بفضل تصميمه البسيط، يُمكن تنفيذ بروتوكول TFTP بسهولة باستخدام التعليمات البرمجية مع استهلاك منخفض للذاكرة . ولذلك، يُعدّ البروتوكول المُفضّل للمراحل الأولية لأي استراتيجية تمهيد شبكي مثل BOOTP و PXE و BSDP وغيرها، عند استهداف أجهزة تتراوح مواردها من أجهزة الكمبيوتر عالية الأداء إلى أجهزة الكمبيوتر أحادية اللوحة (SBC) وأنظمة على شريحة (SoC) منخفضة الموارد . كما يُستخدم لنقل صور البرامج الثابتة وملفات التكوين إلى أجهزة الشبكة مثل أجهزة التوجيه وجدران الحماية وهواتف IP وغيرها. أما اليوم، فيكاد يكون استخدام TFTP معدومًا في عمليات نقل البيانات عبر الإنترنت. [ 1 ]
استُلهم تصميم بروتوكول TFTP من بروتوكول EFTP السابق ، الذي كان جزءًا من مجموعة بروتوكولات PARC Universal Packet . وتم تعريف TFTP لأول مرة عام 1980 بموجب معيار IEN 133. [ 3 ] وفي يونيو 1981، نُشر بروتوكول TFTP (المراجعة 2) بموجب RFC 783، ثم جرى تحديثه لاحقًا في يوليو 1992 بموجب RFC 1350، الذي عالج، من بين أمور أخرى، مشكلة "متلازمة الساحر المتدرب" . [ 4 ] وفي مارس 1995، حدد ملحق خيارات TFTP، RFC 1782، الذي جرى تحديثه لاحقًا في مايو 1998 بموجب RFC 2347، آلية التفاوض على الخيارات التي تُرسّخ إطار عمل خيارات نقل الملفات التي يتم التفاوض عليها قبل النقل باستخدام آلية تتوافق مع المواصفات الأصلية لبروتوكول TFTP. [ 5 ]
بروتوكول نقل الملفات البسيط (TFTP) هو بروتوكول بسيط لنقل الملفات، مُنفَّذ فوق بروتوكولات UDP/IP باستخدام المنفذ 69 المعروف . صُمِّم TFTP ليكون صغير الحجم وسهل التنفيذ، ولذلك يفتقر إلى معظم الميزات المتقدمة التي توفرها بروتوكولات نقل الملفات الأكثر قوة. يقتصر دور TFTP على قراءة وكتابة الملفات من وإلى خادم بعيد. لا يمكنه عرض أو حذف أو إعادة تسمية الملفات أو المجلدات، كما أنه لا يوفر أي آلية للتحقق من هوية المستخدم. يُستخدم TFTP اليوم بشكل عام على الشبكات المحلية (LAN) فقط.
عملية

يبدأ نقل الملفات عبر بروتوكول TFTP عندما يرسل العميل طلبًا لقراءة أو كتابة ملف معين على الخادم. [ 6 ] يمكن أن يتضمن الطلب، اختياريًا، مجموعة من معلمات النقل المتفاوض عليها التي يقترحها العميل وفقًا لما هو محدد في RFC 2347 [ 5 ] ، وقد يحدد حجم الكتلة كما هو محدد في RFS 2348 [ 7 ].
إذا وافق الخادم على الطلب، يُرسل الملف في كتل ثابتة الطول (512 بايت ما لم يُحدد خلاف ذلك). يجب على العميل تأكيد استلام كل كتلة من البيانات المنقولة، والتي تُحمل عادةً ضمن حزمة IP واحدة لتجنب تجزئة IP ، قبل إرسال الكتلة التالية. تشير حزمة بيانات أقل من 512 بايت أو أقل من حجم الكتلة المتفق عليه إلى انتهاء عملية النقل. [ 6 ]
إذا فُقدت حزمة بيانات في الشبكة، فسينتهي وقت انتظار المُستقبِل المقصود وقد يُعيد إرسال آخر حزمة بيانات أرسلها (والتي قد تكون بيانات أو إشعار استلام)، مما يدفع مُرسِل الحزمة المفقودة إلى إعادة إرسال تلك الحزمة المفقودة. [ 6 ]
يُعرّف بروتوكول نقل الملفات البسيط (TFTP) ثلاثة أنماط لنقل البيانات: "Netascii" [ 2 ] ، وهو شكل مُعدّل من مجموعة أحرف ASCII مع تعديلات مشابهة لتلك الموجودة في بروتوكول Telnet ، و"Octet" الذي يتكون من بيانات ثنائية عشوائية، و"Mail" الذي يتضمن إرسال أحرف Netascii إلى عنوان بريد إلكتروني بدلاً من ملف. وقد وُصف نمط النقل الأخير بأنه قديم. [ 6 ]
يستخدم بروتوكول نقل الملفات البسيط (TFTP ) بروتوكول بيانات المستخدم (UDP) في طبقة النقل . يُبدأ طلب النقل دائمًا باستهداف المنفذ 69، ولكن يتم اختيار منافذ نقل البيانات بشكل مستقل من قِبل المُرسِل والمُستقبِل أثناء بدء عملية النقل. تُختار المنافذ عشوائيًا وفقًا لمعايير حزمة الشبكة، وعادةً ما تكون من نطاق المنافذ المؤقتة . [ 6 ]
يبلغ الحد الأقصى لحجم ملف النقل في البروتوكول الأصلي 65535 كتلة، أو 32 ميجابايت. ومع إضافة RFC 2348 الذي يسمح بأحجام كتل تصل إلى 65535 بايت، ارتفع الحد الأقصى إلى 4 جيجابايت. [ 7 ] تدعم بعض الخوادم والعملاء خاصية إعادة ضبط عداد الكتل، حيث يُعاد ضبط العداد بعد تجاوز حد 65535 كتلة. ورغم أن هذه الخاصية غير قياسية، إلا أنها تتيح نظريًا حجم ملف نقل غير محدود. [ 8 ]
نظراً لاحتياج بروتوكول TFTP إلى إتمام عملية نقل البيانات ذهاباً وإياباً بنجاح لكل كتلة بيانات، فإنه يوفر معدل نقل بيانات منخفضاً، خاصةً عبر روابط ذات زمن استجابة عالٍ . في يناير 2015، نُشرت وثيقة TFTP RFC 7440، التي تُقدم استراتيجية تُعرف باسم "التقسيم إلى نوافذ" يتم فيها إرسال عدد أكبر من كتل البيانات دون انقطاع قبل انتظار تأكيد الاستلام. يُحسّن هذا الأسلوب الأداء بشكل كبير في حالات استخدام مثل التمهيد عبر PXE ، كبديل لزيادة حجم الكتلة، الذي يُحدّ من خلال خطر تجزئة عناوين IP . [ 9 ]
الاستخدام
لطالما ارتبط بروتوكول نقل الملفات البسيط (TFTP) بعملية الإقلاع عبر الشبكة. وكان من أوائل تطبيقاته تحميل ملفات الإقلاع باستخدام معيار TFTP (RFC 906) المنشور عام 1984، والذي أرست قواعده معيار بروتوكول نقل الملفات البسيط (RFC 783) المنشور عام 1981، والذي استُخدم كبروتوكول نقل الملفات القياسي لتحميل ملفات الإقلاع. [ 10 ] [ 1 ]
صدرت بيئة تنفيذ ما قبل الإقلاع (PXE) الإصدار 2.0 في ديسمبر 1998، ونُشر التحديث 2.1 في سبتمبر 1999 معتمدًا على بروتوكول نقل الملفات البسيط (TFTP). [ 11 ] وقد قررت إنتل مؤخرًا دعم PXE على نطاق واسع ضمن مواصفات UEFI الجديدة ، ما وسّع دعم TFTP ليشمل جميع بيئات EFI/UEFI. [ 12 ] [ 13 ]
الاعتبارات الأمنية
لا يوفر بروتوكول TFTP آليات أمان مدمجة. لذا، يجب توخي الحذر عند منح الصلاحيات لعملية خادم TFTP لتجنب انتهاك أمان نظام ملفات الخادم. ولذلك، غالبًا ما يُثبّت مع ضوابط تضمن إتاحة الملفات التي لها صلاحية قراءة عامة فقط عبر TFTP. [ 6 ] إضافةً إلى ذلك، لا يدعم TFTP عرض الملفات أو حذفها أو إعادة تسميتها أو كتابتها. [ 7 ] لا يُنصح بنقل الملفات عبر TFTP في الحالات التي قد تُثير فيها قيود البروتوكول المتأصلة مخاوف قانونية جسيمة. [ 9 ]
وثائق معايير IETF
| رقم RFC | عنوان | نُشر | مؤلف | معلومات قديمة ومعلومات محدثة |
|---|---|---|---|---|
| RFC 783 | بروتوكول TFTP (المراجعة 1) | يونيو 1981 | ك. سولينز | تم إلغاؤه بموجب - RFC 1350 |
| RFC 906 | تحميل Bootstrap باستخدام TFTP | يونيو 1984 | روس فينلايسون | — |
| RFC 951 | بروتوكول التمهيد | سبتمبر 1985 | بيل كروفت | تم التحديث بواسطة RFC 1395 و 1497 و 1532 و 1542 و 5494 |
| RFC 1350 | بروتوكول TFTP (المراجعة 2) | يوليو 1992 | ك. سولينز | تم التحديث بواسطة RFC 1782 ، 1783 ، 1784 ، 1785 ، 2347 ، 2348 ، 2349 |
| RFC 1782 | امتداد خيار TFTP | مارس 1995 | جي. مالكين | تم إلغاؤه بموجب - RFC 2347 |
| RFC 2090 | خيار البث المتعدد لبروتوكول نقل الملفات البسيط (TFTP) | فبراير 1997 | أ. إمبيرسون | تجريبي |
| RFC 2131 | بروتوكول تكوين المضيف الديناميكي | مارس 1997 | آر. درومز | تم التحديث بواسطة RFC 3396 و 4361 و 5494 و 6842 |
| RFC 2347 | امتداد خيار TFTP | مايو 1998 | جي. مالكين | — |
| RFC 2348 | خيار حجم كتلة TFTP | مايو 1998 | جي. مالكين | — |
| RFC 2349 | خيارات مهلة TFTP وحجم النقل | مايو 1998 | جي. مالكين | — |
| RFC 5505 | مبادئ تهيئة مضيف الإنترنت | مايو 2009 | ب. أبوبا | — |
| RFC 7440 | خيار حجم نافذة TFTP | يناير 2015 | ب. ماسوتا | — |
انظر أيضاً
مراجع
- 1 2 3 مواصفات بيئة التنفيذ قبل التمهيد (PXE) . شركة إنتل . 1999.
- 1 2 كارين ر. سولينز (يونيو 1981). بروتوكول TFTP (المراجعة 2) . IETF . doi : 10.17487/RFC0783 . RFC 783. تاريخ الاسترجاع: 23 أبريل 2026 .
- ↑ كارين ر. سولينز (29 يناير 1980). بروتوكول TFTP . IETF . IEN 133. تم الاطلاع عليه في 1 مايو 2010 .
- ↑ RFC 1123. فريق عمل هندسة الإنترنت. أكتوبر 1989. doi : 10.17487/RFC1123 . تم الاطلاع عليه بتاريخ 23 أبريل 2026 .
- 1 2 RFC 2347. فريق عمل هندسة الإنترنت. doi : 10.17487/RFC2347 . RFC 2347. تم الاطلاع عليه بتاريخ 23 أبريل 2026 .
- 1 2 3 4 5 6 كارين ر.سولينز (يوليو 1992). بروتوكول TFTP (المراجعة 2) . فريق عمل الإنترنت . دوى : 10.17487/RFC1350 . آر إف سي 1350 . تم الاسترجاع 2010-05-01 .
- 1 2 3 غاري سكوت مالكين؛ آرت هاركين (يوليو 1992). بروتوكول TFTP (المراجعة 2) . IETF . doi : 10.17487/RFC2347 . RFC 2347. تاريخ الاسترجاع : 23 أبريل 2026 .
- ↑ "توسيع نطاق بروتوكول نقل الملفات البسيط" (TFTP) . كومبيوفايز . تم الاطلاع عليه بتاريخ 12-12-2018 .
- 1 2 باتريك ماسوتا (يناير 2015). بروتوكول TFTP (المراجعة 2) . IETF . doi : 10.17487/RFC7440 . RFC 7440. تاريخ الاسترجاع : 23 أبريل 2026 .
- ↑ ديفيد ل. ميلز. المواصفات الرسمية لبروتوكول البوابة الخارجية . فريق عمل هندسة الإنترنت. doi : 10.17487/RFC0904 . RFC 904. تاريخ الاسترجاع: 23 أبريل 2026 .
- ↑ "مواصفات بيئة تنفيذ ما قبل التمهيد (PXE) - الإصدار 2.1" (ملف PDF) . شركة إنتل. 20 سبتمبر 1999. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 2 نوفمبر 2013. تم الاطلاع عليه بتاريخ 8 فبراير 2014 .
- ↑ "مواصفات واجهة البرامج الثابتة الموحدة القابلة للتوسيع" (ملف PDF) . UEFI. 2013-12-02 . تم الاطلاع عليه بتاريخ 2014-04-04 .
- ↑ "تحليل أداء الإقلاع عبر PXE في UEFI" (ملف PDF) . شركة إنتل. 2014-02-02. مؤرشف من النسخة الأصلية (PDF) بتاريخ 2014-08-08 . تم الاطلاع عليه بتاريخ 2014-04-04 .
- معايير الشبكات
- بروتوكولات الشبكة
- بروتوكولات نقل الملفات عبر الشبكة
- بدء التشغيل عبر الشبكة
