پروتکل انتقال فایل که آن را ftp می نامیم ابزاریست مطمئن برای انتقال فایل بین کامپیوتر ها یی که به شبکه اینترنت متصل هستند. خدماتی که این پروتکل ارائه می کند عبارتند از :
• تهیه لیستی از فایلهای موجود ازسیستیم فایل کامپوتر راه دور
• حذف، تغییر نام و جابجا کردن فایلهای کامپیوتر راه دور
• جستجو در شاخه های ( دایر کتوریهای) کامپیوتر راه دور
• ایجاد یا حذف شاخه روی کامپیوتر راه دور
• انتقال فایل ازکامپیوتر میزبان
• انتقال فایل و ذخیره ی آن از کامپیوتر میزبان به کامپیوتر راه دور
قابلیت هایی که پروتکل FTP عرضه می کند می تواند برای سیستم سرویس دهنده بسیار خطرناک باشد چرا که بسادگی می توان فایل های یک کامپیوتر راه دور را آلوده یا نابود کرد. فلذا در این پروتکل کاربران باید قبل ازتقاضای هر سرویسی کلمه ی عبور خود را وارد نمایند و سرویس دهنده پس از شناسایی کاربر سطح دسترسی وعملیات مجاز برای کاربر را تعیین می کند و یک نشست FTP آغاز می شود. FTP این قابلیت را ندارد که بتوان همانند پروتکل Telnet برنامه ای را برروی ماشین راه دور اجرا کرد بلکه فقط روشی سریع ساده و مطمئن برای خدمات فایل به کاربران راه دور محسوب می شود. حال باید ارتباط بین سرویس دهنده و سرویس گیرنده FTP را تشریح نماییم:
در پروتکل FTP برای شروع یک نشست بین برنامه سرو.یس دهنده و برنامه ی سرویس گیرنده باید دو ارتباط همزمان ازنوع TCP بر قرار شود. به هر یک از این ارتباطات در ادبیات پروتکل FTP ،کانال گفته می شود. این دو کانال عبارتند از :
• کانال داده : یک ارتباط TCP با پورت شمارهی 20 از سرویس دهنده که روی آن داده ها ( مثلا بلوکهای یک فایل ) مبادله می شوند .
• کانال فرمان: یک ارتباط TCP با پورت شمارهی 21 که روی آن فرامین لازم برای مدیریت فایلها رد و بدل می شود.
دلیل لزوم برقراری دو کانال مجزا بین سروس دهنده و سرویس گپیرنده ان است که بتوان بدون قطع جریان داده ها فرامین را بطور همزمان مبادله کرد. بعنوان مثال در حین اتقاال یک فایل می توان روی کانال فرمان دستور لغو عمل انتقال یا تغییر مود انتقال را صادر کرد. ذکر این نکته ضروری است که در پروکتل FTP ازسیستم spooler یا صف برای انتقال فایلها استفاده نمی کند بلکه عملیات انتقال به صورت بلادر نگ انجام می گیرد . ( سیستمهایی مثل مدیریت چاپ در پس زمینه عمل می کند یعنی وقتی پروسه ای تقاضای چاپ یک سند را می دهد سیستم عامل آن را به صف میکند تادر موقع مناسب آنرا چاپ نماید فلذا مشخص نیست از زمان صدور فرمان چاپ چه مدت طول بکشد تا سند چاپ شود چرا که اولویت با پروسه هایی است که در پیش زمینه اجرا می شوند .)
به گونه ای که اشاره شد سرویس دهنده FTP بایستی دو پروسه همزمان ایجاد نماید که یکی وظیفه مدیریت ارتباط روی کانال فرمان را به عهده داشته و اصطلاحاً مفسر پروتکل یا پروسه PI نامیده می شود . وظیفه پروسه دیگر مدیریت انتقال داده است وبه DTP یا پروسه انتقال داده معروف است . پروسه PI همیشه به پورت شماره 21 گوش میدهد و پروسه DPT به پورت شماه 20 مقید شده است.
روشهای برقراری یک نشست FTP
برقراری ارتباط بین سرویس دهنده وسرویس گیرنده FTP با دو روش امکان پذیر است :
• روش معمولی یا NORMAL MODE
• روش غیر فعال یا PASSIVE MODE
در روش معمولی برای برقراری یک نشست FTP مراحل زیر انجام میشود :
1) در برنامه سمت سرویس گیرنده ( برنامه سمت مشتری ) ابتدا دو سوکت نوع TCP با شماره پورت تصادفی بالای 1024 ایجاد می شود .
2) در مرحله دوم برنامه سمت مشتری سعی می کند با استفاده ازدستور () CONNECT ارتباط یکی از سوکتهای ایجاد شده را با پورت شماره 21 ازسرویس دهنده برقرار نماید. اگر این ارتباط برقرار شود در حقیقت کانال فرمان باز شده و پروسه PI آماده تفسیر فرامین صادره ازسمت مشتری می باشد .
3) برنامه سمت مشتری با فرمان PORT به برنامه سمت سرویس دهنده شماره پورت سوکت دوم را اعلام می ماند . ( در حقیقت برنامه مشتری روی سوکت دوم عمل () Iisten انجام می دهد )
4) در ادامه برنامه سرویس دهنده سعی می کند یک ارتباط با tcp با شماره پورت اعلام شده برقرار نماید . یکی ازنکات عجیب در این پروتکل آنست که سرویس دهنده FTP موظف است اقدام به برقراری یک ارتباط TCP ازطریق دستور ()CONNECT با برنامه مشتری نماید در صورتی که معمولا سرویس دهنده پذیرنده ارتباط است نه شروع کننده ارتباط.
5) برنامه سمت مشتری ارتباط TCP شروع شده ازسرویس دهنده را تصدیق کرده و یک نشست FTP آغاز می شود.