زمانی که صحبت از پروتکل های شبکه می شود نام FTP یا پروتکل انتقال فایل به گوش میرسد. اما به راستی FTP چیست و چه کاربردی دارد؟ در این مقاله به همین سوالات پاسخ خواهیم داد. با ما همراه باشید.
پروتکل انتقال فایل یا FTP چیست ؟
پروتکل FTP، اولین تلاش انجام شده برای ایجاد یک استاندارد به منظور مبادله فایل بر روی شبکه های مبتنی بر پروتکل TCP/IPبوده است که از اوایل سال ۱۹۷۰ مطرح و مشخصات استاندارد آن طی RFC 959 در اکتبر سال ۱۹۸۵ ارائه گردید.
به منظور ارسال امن داده ها می توانید از پروتکل 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 بیان شد که روش های مختلفی جهت استفاده از این پروتکل از سمت کاربر وجود دارد. در زیر هر ۳ روش به اختصار توضیح داده شده است:
۱.استقاده از خط فرمان (command line)
این روش با توجه به عدم وجود محیط گرافیکی و استفاده از کد های دستوری جهت برقراری ارتباط در بین کاربرها محبوبیتی ندارد و کمتر مورد استفاده قرار میگیرد. ابزار مورد نیاز جهت استفاده از این روش در ویندوز محیط CMD ودر لینوکس Terminal است.
۲.استفاده از مرورگر
در این روش با وارد کردن آدرس FTP سرور در قسمت آدرس بار مرورگر، با یک صفحه ی لاگین مواجه خواهید شد که با دسترسی های مربوط به یوزر خود میتوانید متصل شوید و اطلاعات موجود در فضای مورد نظر را مشاهده کنید و اقدام به انتقال و تبادل فایل ها نمایید.این پروتکل در همه ی مرورگر ها پشتیبانی میشود.
۳.استفاده از نرم افزار (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 و یک شماره پورت استفاده می نماید. برقراری ارتباط بین یک سرویس گیرنده و یک سرویس دهنده منوط به وجود چهار عنصر اطلاعاتی است:
- آدرس سرویس دهنده
- پورت سرویس دهنده
- آدرس سرویس گیرنده
- پورت سرویس گیرنده
در زمان برقراری یک ارتباط، سرویس گیرنده از یک شماره پورت استفاده می نماید. این شماره پورت می تواند متناسب با نوع عملکرد برنامه سرویس گیرنده به صورت اختیاری و یا اجباری باشد. مثلا برخی برنامه های سرویس گیرنده به منظور ارتباط با سرویس دهنده، نیازمند استفاده از یک شماره پورت خاص می باشند (نظیر برنامه های سرویس گیرنده وب و یا مرورگرهای وب که از پورت شماره ۸۰ به منظور ارتباط با سرویس دهنده وب استفاده می نماید). در مواردی که الزامی در خصوص شماره پورت وجود ندارد از یک شماره پورت موقتی و یا ephemeral استفاده می گردد. این نوع پورت ها موقتی بوده و توسط IP stack ماشین مربوطه به متقاضیان نسبت داده شده و پس از پایان ارتباط ، پورت آزاد می گردند. با توجه به این که اکثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند کرد (تا زمانی که تمام pool تکمیل نشده باشد)، در صورتی که سرویس گیرنده مجددا درخواست برقراری یک ارتباط را نماید، یک شماره پورت موقتی دیگر به وی تخصیص داده می شود.
شماره پورت ftp چیست ؟
در بالا اشاره این مورد کردیم که اگر از نرم افزار هایی مانند filezilla برای انتقال فایل استفاده کنیم، علاوه بر نام کاربردی و رمز عبور، نیاز به شماره پورت پروتکل FTP نیز داریم.
پروتکل اف تی پی منحصرا از پروتکل TCP استفاده می نماید. معمولا پروتکل های لایه Application (با توجه به مدل مرجع OSI) از یکی از پروتکل های TCP و یا UDP استفاده می نمایند. پروتکل FTP نیز از برخی جهات شرایط خاص خود را دارد و برای انجام وظایف محوله از دو پورت استفاده می نماید. شماره پورت پروتکل ftp معمولا شماره ۲۰ برای ارسال داده و ۲۱ برای گوش دادن به فرامین است که البته امکان ویرایش شماره پورت ۲۱ در سمت سرور وجود دارد و ممکن است در برخی موارد از پورت های دیگر استفاده شود.
اکثر سرویس دهندگان اف تی پی از روش خاصی برای رمزنگاری اطلاعات استفاده نمی نمایند و در زمان login کلاینت به سرور، اطلاعات مربوطه به صورت متن عادی در شبکه ارسال می گردد. افرادی که دارای یک Packet sniffer بین سرویس گیرنده و سرویس دهنده می باشند، می توانند به سادگی اقدام به سرقت نام و رمز عبور نمایند. علاوه بر سرقت رمزهای عبور، مهاجمان می توانند تمامی مکالمات بر روی اتصالات ftp را شنود و محتویات داده های ارسالی را مشاهده نمایند. پیشنهادات متعددی به منظور ایمن سازی سرویس دهنده FTP مطرح می گردد ولی تا زمانی که رمزنگاری و امکانات حفاظتی در سطح لایه پروتکل IP اعمال نگردد (مثلا” رمزنگاری توسط IPsecs)، نمی بایست از FTP استفاده گردد خصوصا اگر بر روی شبکه اطلاعات مهم و حیاتی ارسال و یا دریافت می گردد.
همانند بسیاری از پروتکل های لایه Application، پروتکل FTP دارای کدهای وضعیت خطاء مختص به خود می باشد (همانند HTTP) که اطلاعات لازم در خصوص وضعیت ارتباط ایجاد شده و یا درخواستی را ارائه می نماید. زمانی که یک درخواست (GET , PUT) برای یک سرویس دهنده اف تی پی ارسال می گردد، سرویس دهنده پاسخ خود را به صورت یک رشته اعلام می نماید. اولین خط این رشته معمولا شامل نام سرویس دهنده و نسخه نرم افزار FTP است. در ادامه می توان دستورات GET و یا PUT را برای سرویس دهنده ارسال نمود. سرور با ارائه یک پیام وضعیت به درخواست کلاینت ها پاسخ می دهد. کدهای وضعیت برگردانده شده را می توان در پنج گروه متفاوت تقسیم نمود :
کدهای ۱xx : پاسخ اولیه
کدهای ۲xx : درخواست بدون خطا اجراء گردید.
کدهای ۳xx : به اطلاعات بیشتری نیاز است.
کدهای ۴xx : یک خطای موقت ایجاد شده است.
کدهای ۵xx : یک خطای ثابت ایجاد شده است.
پروتکل FTPS و SFTP
برای تعریف این ۲ پروتکل امن ابتدا باید بیان کنیم ارتباط در ftp به صورت عادی و بدون encryption و یا رمزگزاری صورت میگیرد. به همین منظور پروتکل های ftps و sftp با همان کاربرد و ماهیت اما با ارایه ی ارتباطی امن و با رمزگزاری اطلاعات در پروسه ی انتقال ارایه شده اند. اساس کار این دو پروتکل انتقال اطلاعات به صورت امن در شبکه ی اینترنت است.
اما تفاوتی در نحوه ی عملکرد آنها جود دارد که به صورت کلی FTPS یک لایه که همان رمزگزاری است را به FTP اضافه میکند، اما SFTP بر پایه ی پروتکل SSH و از یک کانال جهت رمزگزاری ،ارتباط و تبادل اطلاعات استفاده میکند. برای آشنایی بیشتر با sftp می توانید مقاله sftp چیست را بخوانید.
سوالات متداول
پورت ftp چیست ؟
پروتکل FTP نیز از برخی جهات شرایط خاص خود را دارد و برای انجام وظایف محوله از دو پورت استفاده می نماید. شماره پورت پروتکل ftp معمولا شماره ۲۰ برای ارسال داده و ۲۱ برای گوش دادن به فرامین است.
با پروتکل FTP چه داده هایی را می توان منتقل کرد؟
پروتکل انتقال فایل یا همان پروتکل FTP دارای امکانات لازم برای ارسال داده با نوع های مختلف می باشد. دو فرمت متداول، اسکی برای متن ( سرویس گیرنده با ارسال دستور TYPE A ،موضوع را به اطلاع سرویس دهنده می رساند ) و image برای داده های باینری است ( توسط TYPE I مشخص می گردد).
کدهای وضعیت برگردانده شده در FTP کدامند؟
کدهای ۱xx : پاسخ اولیه
کدهای ۲xx : درخواست بدون خطا اجراء گردید.
کدهای ۳xx : به اطلاعات بیشتری نیاز است.
کدهای ۴xx : یک خطای موقت ایجاد شده است.
کدهای ۵xx : یک خطای ثابت ایجاد شده است.
به شما پیشنهاد می شود مقاله ما را برای کسب اطلاعات در زمینه تاندربرد چیست مطالعه نمایید.