بروتوكول نقل الملفات البسيط
بروتوكول نقل الملفات البسيط ( 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 is a simple protocol for transferring files, implemented on top of the UDP/IP protocols using well-known port number 69. TFTP was designed to be small and easy to implement, and therefore it lacks most of the advanced features offered by more robust file transfer protocols. TFTP only reads and writes files from or to a remote server. It cannot list, delete, or rename files or directories and it has no provisions for user authentication. Today TFTP is generally only used on local area networks (LAN).
Operation

A TFTP transfer is initiated by the client issuing a request to read or write a particular file on the server.[6] The request can optionally include a set of negotiated transfer parameters proposed by the client as specified by RFC 2347[5] and may specify a block size as specified by RFS 2348[7]
If the server grants the request, the file is sent in fixed-length blocks (512 bytes unless otherwise specified). Each block of transferred data, which is usually carried within a single IP packet in order to avoid IP fragmentation, must be acknowledged by the client before the next block can be sent. A data packet of less than 512 bytes or the agreed blocksize option signals the termination of a transfer.[6]
If a packet gets lost in the network, the intended recipient will timeout and may retransmit their last packet (which may be data or an acknowledgment), thus causing the sender of the lost packet to retransmit that lost packet.[6]
TFTP defines three modes of transfer: "Netascii",[2] which is a modified form of the ASCII character set with modifications similar to that of the Telnet protocol, "Octet", which consists of arbitrary binary data, and "Mail", which involves Netascii characters sent to an email address rather than a file. The latter mode of transfer has since been labelled obsolete.[6]
TFTP uses the User Datagram Protocol (UDP) at the transport layer. A transfer request is always initiated targeting port 69, but the data transfer ports are chosen independently by the sender and receiver during the transfer initialization. The ports are chosen at random according to the parameters of the networking stack, typically from the range of ephemeral ports.[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 .
- 123Gary Scott Malkin; Art Harkin (July 1992). The TFTP Protocol (Revision 2). IETF. doi:10.17487/RFC2347. RFC2347. Retrieved 2026-04-23.
- ↑"Extending TFTP". CompuPhase. Retrieved 2018-12-12.
- 12Patrick Masotta (January 2015). The TFTP Protocol (Revision 2). IETF. doi:10.17487/RFC7440. RFC7440. Retrieved 2026-04-23.
- ↑David L. Mills. Exterior Gateway Protocol Formal Specification. Internet Engineering Task Force. doi:10.17487/RFC0904. RFC904. Retrieved 2026-04-23.
- ↑"Preboot Execution Environment (PXE) Specification - Version 2.1"(PDF). Intel Corporation. 1999-09-20. Archived from the original(PDF) on 2013-11-02. Retrieved 2014-02-08.
- ↑"Unified Extensible Firmware Interface Specification"(PDF). UEFI. 2013-12-02. Retrieved 2014-04-04.
- ↑"UEFI PXE Boot Performance Analysis"(PDF). Intel Corporation. 2014-02-02. Archived from the original(PDF) on 2014-08-08. Retrieved 2014-04-04.
- Networking standards
- Network protocols
- Network file transfer protocols
- Network booting
