پروتکل انتقال فایل

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از اف‌تی‌پی)
پرش به: ناوبری، جستجو

اف‌تی‌پی (به انگلیسی: ‎FTP[۱]) یا قاپ[۲] (قرارداد انتقال پرونده)، قرارداد (پروتکلی) است که در شبکه‌های رایانه‌ای برای جابه‌جایی پرونده از مبدا به مقصد مورد استفاده قرار می‌گیرد.

درمیان رایانه‌های میزبان، اف‌تی‌پی به طور ویژه یک قراردادِ متداول برای دادوستد فرمان‌ها و پرونده‌ها در هر شبکه پشتیبان از قرارداد اینترنت و قرارداد هدایت انتقال (TCP/IP) (مانند اینترنت و اینترانت) است. درگاه (پورت) پیش‌فرض برای خدمات قاپ، درگاه 21/TCP و برای انتقال داده از درگاه 20/TCP استفاده می‌کند .

در یک انتقال اف‌تی‌پی دو رایانه دخیل است، یک کارساز و یک کاربر. کارساز (سرور) قاپ، برنامه‌های کارساز اف‌تی‌پی را اجرا می‌کند، و درخواست پذیرش در شبکه را رایانهٔ دیگر (یعنی کاربر) مطرح می‌کند. رایانهٔ کاربر برنامه‌های کاربری اف‌تی‌پی را اجرا و یک ارتباط با سکارساز بر قرار می‌کند.

هنگامی که یک ارتباط برقرار می‌شود کاربر می‌تواند تعدادی از برنامه‌ها را تغییر دهد (دستکاری محدود)، مانند بارگذاری پرونده در کارساز و بارگیری پرونده از آن، یا بازنامیدن یا حذف پرونده‌ها در کارساز و مانند این‌ها.

هر شخص یا شرکت برنامه‌ساز می‌تواند یک کارساز قاپ یا برنامه‌های کاربری ایجاد کند، چرا که این قراردادی آزاد است.

در واقع همهٔ بسترهای رایانه‌ای از اف‌تی‌پی پشتیبانی می‌کنند و به هر ارتباط رایانه‌ای که بر اساس قرارداد هدایت انتقال/قرارداد اینترنت باشد صرف‌نظر از این که از چه سامانهٔ عاملی استفاده می‌شود، اگر رایانه‌ها اجازهٔ دسترسی به قاپ را داشته باشند، این اجازه را می‌دهد که در پرونده‌های رایانهٔ دیگر در این شبکه تغییراتی ایجاد کند.

خدمات پروتکل انتقال فایل (FTP)[ویرایش]

  • تهیه ی لیستی از فایل های موجود از سیستم فایل کامپیوتر راه دور
  • حذف، تغییرنام و جابجا کردن فایل های کامپیوتر راه دور
  • جستجو در شاخه های کامپیوتر راه دور
  • ایجاد یا حذف شاخه روی کامپیوتر راه دور
  • انتقال (بارگذاری) فایل از کامپیوتر راه دور به کامپیوتر میزبان (download)
  • انتقال فایل و ذخیره ی آن از کامپیوتر میزبان به کامپیوتر راه دور (upload)

قابلیت هایی که پروتکل FTP عرضه میکند همانند Telnet می تواند برای سیستم سرویس دهنده بسیار خطرناک باشد زیرا به سادگی می توان فایل های یک کامپیوتر راه دور را آلوده یا نابود کرد. پس در این پروتکل کاربران باید قبل از تقاضای هر سرویسی شناسه و کلمه ی عبور خود را وارد کنند و سرویس دهنده پس از احراز هویت کاربر، سطح دسترسی و عملیات مجاز برای کاربر را تعیین می کند و یک نشست FTP آغاز می شود.[۳]

روش های برقراری یک نشست FTP[ویرایش]

ایجاد نشست بین سرویس دهنده و مشتری FTP با دو روش امکان پذیر است:

  • روش معمولی یا Normal Mode
  • روش غیر فعال یا Passive Mode

روش معمولی برقراری نشست:

برای برقراری یک نشست FTP به روش معمولی مراحل زیر انجام می شود:

الف) در برنامه ی سمت مشتری ابتدا دو سوکت نوع TCP با شماره پورت تصادفی بالای 1024 ایجاد می شود.

ب) در مرحله ی دوم برنامه ی سمت مشتری سعی می کند با استفاده از دستور ()connect اتصال یکی از سوکت های ایجاد شده را با پورت شماره 21 از سرویس دهنده برقرار نماید. اگر این اتصال برقرار شود در حقیقت کانال فرمان باز شده و پروسه PIآماده تفسیر فرامین صادره از سمت مشتری است.

ج) برنامه ی سمت مشتری با فرمان "PORT x" به برنامه ی سمت سرویس دهنده شماره ی پورت سوکت دوم را اعلام می نماید و منتظر می ماند. (در حقیقت برنامه مشتری روی سوکت دوم عمل ()listen انجام می دهد.)

د) در ادامه برنامه ی سرویس دهنده سعی می کند یک اتصال TCP با شماره پورت اعلام شده از مشتری برقرار نماید.یکی از نتایج عجیب در این پروتکل آن است که سرویس دهنده FTP موظف است اقدام به برقراری یک اتصال TCP از طریق دستور ()connect با برنامه مشتری نماید در صورتی که معمولا سرویس دهنده ها پذیرنده ی اتصال هستند نه شروع کننده!. البته باید توجه کرد که به هرحال اتصال اول را مشتری ایجاد کرده است.

ه) برنامه سمت مشتری اتصال TCP شروع شده از سرویس دهنده را تصدیق کرده و یک نشست FTP آغاز می شود. ابتدا برنامه ی سمت مشتری دو سوکت مجزا باز کرده و شماره پورت های دلخواه و تصادفی (مثل 5150 و 5151) را به آن ها مقید می کند. سپس از طریق سوکت اول یک اتصال TCP با پورت 21 از سرویس دهنده برقرار کرده و پس از برقراری اتصال، با ارسال فرمان "PORT 5151" شماره پورت سوکت دوم خود را اعلام می کند. برنامه ی سمت سرویس دهنده ضمن تصدیق پذیرش درخواست نشست، بلافاصله اقدام به برقراری یک اتصال TCP بین پورا 20 خودش و پورت دوم (شماره 5151) از مشتری می نماید. با تصدیق این اتصال توسط مشتری نشست FTP آغاز می شود.

روش غیر فعال برقراری نشست:

برای برقراری یک نشست FTP به روش غیر فعال تعاملات زیر لازم است:

الف) در برنامه سمت مشتری ابتدا دو سوکت نوع TCP با شماره پورت تصادفی بالای 1024 ایجاد می شود.

ب) برنامه ی سمت مشتری سعی می کند اتصال TCP یکی از سوکت های ایجاد شده را با پورت شماره ی 21 از سرویس دهنده برقرار نماید. با برقراری این ارتباط کانال فرمان باز شده و پروسه ی PI آماده ی تفسیر فرامین صادره از سمت مشتری خواهد بود.

ج) برنامه ی سمت مشتری با فرمان PASV به برنامه ی سمت سرویس دهنده اعلام می کند که خواستار یک نشست از نوع غیر فعال است.

د) برنامه ی سمت سرویس دهنده یک سوکت با شماره پورت تصادفی بالای 1024 ایجاد کرده و شماره ی آن را به برنامه ی مشتری اعلام می نماید.

ه) برنامه ی سمت مشتری اتصال سوکت دوم خود را با شماره پورت اعلام شده برقرار کرده پس از تصدیق اتصال، نشست FTP آغاز می شود.[۴]


تاریخچه[ویرایش]

FTP یا قرارداد انتقال فایل اولین بار در سال 1971 توسط "آبهای بوشان" و تحت عنوان RFC114 (مخفف "درخواست برای توضیحات"1) منتشر شد که به منظور قرارداد برای انتقال فایل بین شبکه آرپانت (ARPANET) ؛ شبکه ای از کامپیوترها که شامل چند مرکز نظامی و دانشگاهی و عده کمی از افراد میشد استفاده میشد . سپس اصلاحاتی در این قرار داد صورت گرفت و765 RFC و RFC 959 . چون در ابتدای ایجاد شبکه کامپیوتری تعداد کامپیوترها و کاربران کم و شناخته شده بودند مسائل امنیتی مهم نبود و به همین دلیل قرارداد انتقال فایل شامل نکات امنیتی نمی شد با گسترش شبکه کامپیوتر و افزایش ناگهانی کاربران آن نیاز به پر کردن این خلاء امنیتی احساس شد و RFC 2228 و RFC 2428 ارائه شدند

جستارهای وابسته[ویرایش]

اچ‌تی‌ام‌ال

منابع[ویرایش]

  1. File Transfer Protocol
  2. واژه‌ٔ مصوب فرهنگستان زبان و ادب فارسی، دفتر نخست تا چهارم، ۱۳۷۶ تا ۸۵
  3. اصول مهندسی اینترنت دکتر احسان ملکیان، ویراست دوم، چاپ سی و نهم
  4. اصول مهندسی اینترنت دکتر احسان ملکیان، ویراست دوم، چاپ سی و نهم
  • دانشنامهٔ آزاد ویکی‌پدیا، نسخه انگلیسی

1. Request for Comments: 114  ;

  1. تغییر_مسیر [[۱]]

2. Request for Comments 765  ; tools.ietf.org/html/rfc765 3. Request for Comments: 995  ; tools.ietf.org/html/rfc959 4. Request for Comments: 995  ; tools.ietf.org/html/rfc2228 5. Request for Comments: 995  ; tools.ietf.org/html/rfc2428

جستجو در ویکی‌انبار در ویکی‌انبار پرونده‌هایی دربارهٔ پروتکل انتقال فایل موجود است.