FTP چیست و آشنایی با پروتکل انتقال فایل و کاربردهای آن

زمانی که صحبت از پروتکل های شبکه می شود نام FTP یا پروتکل انتقال فایل به گوش میرسد. اما به راستی FTP چیست و چه کاربردی دارد؟ در این مقاله به همین سوالات پاسخ خواهیم داد. با ما همراه باشید.
پروتكل انتقال فایل یا FTP چیست ؟
File Transfer Protocol با به اختصار FTP یک پروتکل استاندارد شبکه برای انتقال فایل از یک هاست به هاست دیگر است. از این پروتکل برای آپلود صفحات وب و سایر اسناد میان انواع سرور از جمله سرور vps یا اختصاصی استفاده می شود. معماری این پروتکل Client Server بوده و اتصال داده و کنترلی را به صورت مجزا بین اف تی پی سرور و سرویس گیرنده برقرار می کند.
پروتکل FTP، اولين تلاش انجام شده برای ايجاد يك استاندارد به منظور مبادله فايل بر روی شبكه های مبتنی بر پروتكل TCP/IPبوده است كه از اوايل سال 1970 مطرح و مشخصات استاندارد آن طی RFC 959 در اكتبر سال 1985 ارائه گرديد.
به منظور ارسال امن داده ها می توانید از پروتکل SSH File Transfer Protocol. استفاده نمایید.
بسياری از كارشناسان عرصه ی اینترنت اعتقاد دارند كه اينترنت گسترش و عموميت خود را مديون سرويس وب می باشد. فرض كنيد كه وب سرویس را از اينترنت حذف نماییم. در صورت تحقق چنين شرايطی، يكی از عملياتی كه كاربران می توانند انجام دهند دريافت داده، فايل های صوتی تصويری و ساير نمونه فايل های ديگر با استفاده از پروتکل انتقال فایل یا به اختصار FTP (برگرفته از File Transfer Protocol ) است.
ویژگی های FTP چیست؟
هر پروتکل موجود در اینترنت ویژگی های خاص خود را دارد این ويژگی های پروتکل ftp عبارتند از:
- file transfer protocol دارای حداكثر انعطاف لازم به منظور استفاده در شبكه های مختلف با توجه به نوع پروتكل شبكه است.
- پروتکل FTP از مدل سرويس گيرنده – سرويس دهنده تبعيت می نمايد. برخلاف HTTP كه يك حاكم مطلق در عرصه مرورگرهای وب و سرويس دهندگان وب است، نمی توان ادعای مشابهی را در رابطه با پروتکل FTP داشت. هم اکنون مجموعه ای گسترده از سرويس گيرندگان و سرويس دهندگان FTP وجود دارد.

کاربرد پروتکل ftp
یکی از مهمترین نیازها در دنیای تکنولوژی و پس از پیدایش کامپیوتر ها انتقال اطلاعات وفایل بین دستگاه های مختلف بود. در ابتدا برای این انتقال از دیسک هایی مانند فلاپی استفاده میشد که زمانبر و هم هزینه بر بود. سپس پروتکل ftp جهت بهبود رفع نیاز انتقال فایل با حجم های بالا ارایه شد، به زبان ساده اگر بیان کنیم FTP پایه و اساس دانلود و آپلود محسوب میشود.
به طور کلی می توان گفت FTP در موارد زیر مورد استفاده است:
- فراهم کردن شرایط دانلود از یک سیستم
- فراهم کردم شرایط آپلود بر روی سیستم
- حذف یا ایجاد دایرکتوری بر روی سیستم
- تهیه گزارش از فایل هایی که بر روی سیستم موجود است
- جستجو کردن بین دایرکتوری های سیستم
- تغییر نام فایل، جابجایی یا حذف فایل از سیستم
ftp client چیست؟
همانطور که میدانیم file transfer protocol اف تی پی سرورجهت انتقال فایل دو طرفه بین کلاینت و سرور است. به این منظور در هر دو سمت به پیش نیاز هایی جهت برقراری ارتباط و انتقال فایل نیاز است. به نرم افزار های جانبی که به منظور انتقال فایل از طریق FTP در سمت کاربر مورد استفاده قرار میگیرند ftp client گفته میشود. ناگفته نماند جهت استفاده از پروتکل مربوطه راهکارهای دیگری نیز وجود دارد که در ادامه این مقاله ببین شده است.
ftp server چیست؟
به منظور انتقال فایل با استفاده از FTP،نرم افزاری تحت نام ftp server باید در سمت سرور نصب گردد تا از طریق آن سرور مربوطه تحت پروتکلFTP با پورت مد نظر به کلاینت متصل شود و دستورات دریافت شده را پردازش کند.
روش های استفاده از پروتکل ftp
در قسمت توضیحات ftp client بیان شد که روش های مختلفی جهت استفاده از این پروتکل از سمت کاربر وجود دارد. در زیر هر 3 روش به اختصار توضیح داده شده است:
1.استقاده از خط فرمان (command line)
این روش با توجه به عدم وجود محیط گرافیکی و استفاده از کد های دستوری جهت برقراری ارتباط در بین کاربرها محبوبیتی ندارد و کمتر مورد استفاده قرار میگیرد. ابزار مورد نیاز جهت استفاده از این روش در ویندوز محیط CMD ودر لینوکس Terminal است.

2.استفاده از مرورگر
در این روش با وارد کردن آدرس FTP سرور در قسمت آدرس بار مرورگر، با یک صفحه ی لاگین مواجه خواهید شد که با دسترسی های مربوط به یوزر خود میتوانید متصل شوید و اطلاعات موجود در فضای مورد نظر را مشاهده کنید و اقدام به انتقال و تبادل فایل ها نمایید.این پروتکل در همه ی مرورگر ها پشتیبانی میشود.

3.استفاده از نرم افزار (FTP client)
روش سوم استفاده از نرمافزارهای سرویسدهنده افتیپی مانند CuteFTP ،Cyberduck ،filezilla است. با استفاده از این نرم افزار ها میتوان از طریق پروتکل FTP به سرور مد نظر با اطلاعات یوزر خود جهت انتقال فایل متصل شد. مهمترین ویژگی این نرم افزار ها رابط کاربری آنهاست که با توجه به گرافیکی بودن محبوبیت زیادی بین کاربران دارند.

روش های انتقال داده در ftp
برای ارسال فايل با استفاده از پروتکل FTP به يك سرويس گيرنده FTP نياز می باشد. برای انتقال فایل دو روش وجود دارد:
- ويندوز دارای يك برنامه سرويس گيرنده FTP است اما دارای محدویت هایی هم هست. راه ساده این است که با تبدیل Windows explorer به FTP client این کار را انجام دهید.
- یک نرم افزار کلاینت FTP نصب کنید و از سرویس اف تی پی استفاده کنید. در این روش حتما نیاز به پورت ftp دارید. برای اتصال به پروتکل انتقال فایل خود علاوه بر نام کاربری و رمز عبور، نیاز به پورت اف تی پی دارید. برای این روش می توانید مقاله آموزش فایل زیلا که یکی از نرم افزار های مهم در انتقال فایل در Ftp می باشد را مطالعه نمایید.
پروتکل FTP امكان استفاده از سيستم فايل را از طریق shell يونيكس و يا خط فرمان ويندوز در اختيار كاربران قرار می دهد.
نحوه ارسال فایل با پروتکل FTP به چه صورت است؟
پروتکل انتقال فایل (FTP) را می توان به عنوان يك سيستم پرس وجو نيز تلقی نمود چرا كه سرويس گيرندگان و سرويس دهندگان گفتگوی لازم به منظور تائيد يكديگر و ارسال فايل را انجام می دهند. علاوه بر اين، پروتكل فوق مشخص می نمايد كه سرويس گيرنده و سرويس دهنده، داده را بر روی كانال گفتگو ارسال نمی نمايند. در مقابل، سرويس گيرنده و سرويس دهنده در خصوص نحوه ارسال فايل ها بر روی اتصالات مجزا و جداگانه (يك اتصال برای هر ارسال داده) با يكديگر گفتگو خواهند كرد (نمايش ليست فايل های موجود در يك دايركتوری نيز به عنوان يك ارسال فايل تلقی می گردد).
سرويس گيرنده در ابتدا يك پيام را برای سرويس دهنده ارسال و سرويس دهنده نيز به آن پاسخ خواهد داد و در ادامه ارتباط غيرفعال می گردد. وضعيت فوق با ساير پروتكل هایی كه به صورت تراكنشی كار می كنند، متفاوت می باشد (نظير پروتكل HTTP). در واقع، می توان گفت که پروتکل انتقال داده يك دنباله stateful از يك و يا چندين تراكنش است.
سرويس گيرندگان، مسئوليت ايجاد و مقداردهی اوليه درخواست ها را برعهده دارند كه با استفاده از دستورات اوليه FTP انجام می گردد. دستورات فوق، عموما سه و يا چهار حرفی می باشند (مثلا برای تغيير دايركتوری از دستور CWD استفاده می شود ). سرويس دهنده نيز بر اساس يك فرمت استاندارد به سرويس گيرندگان پاسخ خواهد داد ( سه رقم كه به دنبال آن از space استفاده شده است به همراه يك متن تشريحی ) . سرويس گيرندگان می بايست صرفا به كد عددی نتيجه استناد نمايند چرا كه متن تشريحی تغيير پذير بوده و عملا برای اشكال زدائی مفيد است .
پروتکل انتقال فایل یا همان پروتکل ftp دارای امكانات لازم برای ارسال داده با نوع های مختلف می باشد. دو فرمت متداول، اسكی برای متن ( سرويس گيرنده با ارسال دستور TYPE A ،موضوع را به اطلاع سرويس دهنده می رساند ) و image برای داده های باينری است ( توسط TYPE I مشخص می گردد). ارسال داده با فرمت اسكی در مواردی كه ماشين سرويس دهنده و ماشين سرويس گيرنده از استانداردهای متفاوتی برای متن استفاده می نمايند ، مفيد بوده و يك سرويس گيرنده می تواند پس از دريافت داده آن را به فرمت مورد نظر خود ترجمه و استفاده نمايد. مثلا در نسخه های ويندوز از يك دنباله carriage return و linefeed برای نشان دادن انتهای خط استفاده می گردد در صورتی كه در سيستم های مبتنی بر يونيكس صرفا از يك linefeed استفاده می شود.

اتخاذ تصميم در مورد نوع ارسال فايل ها در اختيار سرويس گيرنده است (برخلاف HTTP كه می تواند به سرويس گيرنده نوع داده ارسالی را اطلاع دهد). معمولا سرويس گيرندگان ارسال باينری را انتخاب می نمايند و پس از دريافت فايل، ترجمه لازم را انجام خواهند داد. ارسال باينری دارای كارآئی بيشتری است چرا كه سرويس دهنده و سرويس گيرنده نيازی به انجام تراكنش های on the fly را نخواهند داشت. ارسال اسكی گزينه پيش فرض انتخابی توسط پروتکل FTP است و در صورت نياز به ارسال باينری ، سرويس گيرنده می بايست اين موضوع را از سرويس دهنده درخواست نمايد.
يك اتصال TCP/IP ( نسخه شماره چهار) شامل دو نقطه مجزا می باشد كه هر نقطه از يك آدرس IP و يك شماره پورت استفاده می نمايد. برقراری ارتباط بين يك سرويس گيرنده و يك سرويس دهنده منوط به وجود چهار عنصر اطلاعاتی است:
- آدرس سرويس دهنده
- پورت سرويس دهنده
- آدرس سرويس گيرنده
- پورت سرويس گيرنده
در زمان برقراری يك ارتباط، سرويس گيرنده از يك شماره پورت استفاده می نمايد. اين شماره پورت می تواند متناسب با نوع عملكرد برنامه سرويس گيرنده به صورت اختياری و يا اجباری باشد. مثلا برخی برنامه های سرويس گيرنده به منظور ارتباط با سرويس دهنده، نيازمند استفاده از يك شماره پورت خاص می باشند (نظير برنامه های سرويس گيرنده وب و يا مرورگرهای وب كه از پورت شماره 80 به منظور ارتباط با سرويس دهنده وب استفاده می نمايد). در مواردی كه الزامی در خصوص شماره پورت وجود ندارد از يك شماره پورت موقتی و يا ephemeral استفاده می گردد. اين نوع پورت ها موقتی بوده و توسط IP stack ماشين مربوطه به متقاضيان نسبت داده شده و پس از پایان ارتباط ، پورت آزاد می گردند. با توجه به اين كه اكثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند كرد (تا زمانی كه تمام pool تكميل نشده باشد)، در صورتی كه سرويس گيرنده مجددا درخواست برقراری يك ارتباط را نمايد، يك شماره پورت موقتی ديگر به وی تخصيص داده می شود.
شماره پورت ftp چیست ؟
در بالا اشاره این مورد کردیم که اگر از نرم افزار هایی مانند filezilla برای انتقال فایل استفاده کنیم، علاوه بر نام کاربردی و رمز عبور، نیاز به شماره پورت پروتکل FTP نیز داریم.
پروتکل اف تی پی منحصرا از پروتكل TCP استفاده می نمايد. معمولا پروتكل های لايه Application (با توجه به مدل مرجع OSI) از يكی از پروتكل های TCP و يا UDP استفاده می نمايند. پروتکل FTP نيز از برخی جهات شرايط خاص خود را دارد و برای انجام وظايف محوله از دو پورت استفاده می نمايد. شماره پورت پروتکل ftp معمولا شماره 20 برای ارسال داده و 21 برای گوش دادن به فرامين است که البته امکان ویرایش شماره پورت 21 در سمت سرور وجود دارد و ممكن است در برخی موارد از پورت های ديگر استفاده شود.
اكثر سرويس دهندگان اف تی پی از روش خاصی برای رمزنگاری اطلاعات استفاده نمی نمايند و در زمان login کلاینت به سرور، اطلاعات مربوطه به صورت متن عادی در شبكه ارسال می گردد. افرادی كه دارای يك Packet sniffer بين سرويس گيرنده و سرويس دهنده می باشند، می توانند به سادگی اقدام به سرقت نام و رمز عبور نمايند. علاوه بر سرقت رمزهای عبور، مهاجمان می توانند تمامی مكالمات بر روی اتصالات ftp را شنود و محتويات داده های ارسالی را مشاهده نمايند. پيشنهادات متعددی به منظور ايمن سازی سرويس دهنده FTP مطرح می گردد ولی تا زمانی كه رمزنگاری و امكانات حفاظتی در سطح لايه پروتكل IP اعمال نگردد (مثلا” رمزنگاری توسط IPsecs)، نمی بايست از FTP استفاده گردد خصوصا اگر بر روی شبكه اطلاعات مهم و حياتی ارسال و يا دريافت می گردد.
همانند بسياری از پروتكل های لايه Application، پروتکل FTP دارای كدهای وضعيت خطاء مختص به خود می باشد (همانند HTTP) كه اطلاعات لازم در خصوص وضعيت ارتباط ايجاد شده و يا درخواستی را ارائه می نمايد. زمانی كه يك درخواست (GET , PUT) برای يك سرويس دهنده اف تی پی ارسال می گردد، سرويس دهنده پاسخ خود را به صورت يك رشته اعلام می نمايد. اولين خط اين رشته معمولا شامل نام سرويس دهنده و نسخه نرم افزار FTP است. در ادامه می توان دستورات GET و يا PUT را برای سرويس دهنده ارسال نمود. سرور با ارائه يك پيام وضعيت به درخواست کلاینت ها پاسخ می دهد. كدهای وضعيت برگردانده شده را می توان در پنج گروه متفاوت تقسيم نمود :
كدهای 1xx : پاسخ اوليه
كدهای 2xx : درخواست بدون خطا اجراء گرديد.
كدهای 3xx : به اطلاعات بیشتری نياز است.
كدهای 4xx : يك خطای موقت ايجاد شده است.
كدهای 5xx : يك خطای ثابت ايجاد شده است.
پروتکل FTPS و SFTP
برای تعریف این 2 پروتکل امن ابتدا باید بیان کنیم ارتباط در ftp به صورت عادی و بدون encryption و یا رمزگزاری صورت میگیرد. به همین منظور پروتکل های ftps و sftp با همان کاربرد و ماهیت اما با ارایه ی ارتباطی امن و با رمزگزاری اطلاعات در پروسه ی انتقال ارایه شده اند. اساس کار این دو پروتکل انتقال اطلاعات به صورت امن در شبکه ی اینترنت است.
اما تفاوتی در نحوه ی عملکرد آنها جود دارد که به صورت کلی FTPS یک لایه که همان رمزگزاری است را به FTP اضافه میکند، اما SFTP بر پایه ی پروتکل SSH و از یک کانال جهت رمزگزاری ،ارتباط و تبادل اطلاعات استفاده میکند. برای آشنایی بیشتر با sftp می توانید مقاله sftp چیست را بخوانید.
سوالات متداول
پورت ftp چیست ؟
پروتکل FTP نيز از برخی جهات شرايط خاص خود را دارد و برای انجام وظايف محوله از دو پورت استفاده می نمايد. شماره پورت پروتکل ftp معمولا شماره 20 برای ارسال داده و 21 برای گوش دادن به فرامين است.
با پروتکل FTP چه داده هایی را می توان منتقل کرد؟
پروتکل انتقال فایل یا همان پروتکل FTP دارای امكانات لازم برای ارسال داده با نوع های مختلف می باشد. دو فرمت متداول، اسكی برای متن ( سرويس گيرنده با ارسال دستور TYPE A ،موضوع را به اطلاع سرويس دهنده می رساند ) و image برای داده های باينری است ( توسط TYPE I مشخص می گردد).
كدهای وضعيت برگردانده شده در FTP کدامند؟
كدهای 1xx : پاسخ اوليه
كدهای 2xx : درخواست بدون خطا اجراء گرديد.
كدهای 3xx : به اطلاعات بیشتری نياز است.
كدهای 4xx : يك خطای موقت ايجاد شده است.
كدهای 5xx : يك خطای ثابت ايجاد شده است.
به شما پیشنهاد می شود مقاله ما را برای کسب اطلاعات در زمینه تاندربرد چیست مطالعه نمایید.

سلام خسته نباشی مهندس ، الان کدوم بهتره؟ FTPS یا SFTP ؟