پروتكل FTP

details-images

امروزه از پروتكل های متعددی در شبكه های كامپیوتری استفاده می گردد كه صرفا" تعداد اندكی از آنان به منظور انتقال داده طراحی و پیاده سازی شده اند . اینترنت نیز به عنوان یك شبكه گسترده از این قاعده مستثنی نبوده و در این رابطه از پروتكل های متعددی استفاده می شود.

برای بسیاری از كاربران اینترنت همه چیز محدود به وب و پروتكل مرتبط با آن یعنی HTTP است ، در صورتی كه در این عرصه از پروتكل های متعدد دیگری نیز استفاده می گردد. FTP نمونه ای در این زمینه است .

پروتكل FTP چیست ؟

تصویر اولیه اینترنت در ذهن بسیاری از كاربران، استفاده از منابع اطلاعاتی و حركت از سایتی به سایت دیگر است و شاید به همین دلیل باشد كه اینترنت در طی سالیان اخیر به سرعت رشد و متداول شده است .

بسیاری از كارشناسان این عرصه اعتقاد دارند كه اینترنت گسترش و عمومیت خود را مدیون سرویس وب می باشد . فرض كنید كه سرویس وب را از اینترنت حذف نماییم .

برای بسیاری از ما این سوال مطرح خواهد شد كه چه نوع استفاده ای را می توانیم از اینترنت داشته باشیم ؟

در صورت تحقق چنین شرایطی ، یكی از عملیاتی كه كاربران قادر به انجام آن خواهند بود ، دریافت داده ، فایل های صوتی ، تصویری و سایر نمونه فایل های دیگر با استفاده از پروتكل FTP (برگرفته از FILE TRANSFER PROTOCOL ) است. ویژگی های پروتكل FTP پروتكل FTP ، اولین تلاش انجام شده برای‌ ایجاد یك استاندارد به منظور مبادله فایل بر روی شبكه های مبتنی بر پروتكل TCP/IP است كه از اوایل سال ۱۹۷۰ مطرح و مشخصات استاندارد آن طی RFC ۹۵۹ در اكتبر سال ۱۹۸۵ ارایه گردید .

پروتكل FTP دارای حداكثر انعطاف لازم و در عین حال امكان پذیر به منظور استفاده در شبكه های مختلف با توجه به نوع پروتكل شبكه است . پروتكل FTP از مدل سرویس گیرنده - سرویس دهنده تبعیت می نماید . برخلاف HTTP كه یك حاكم مطلق در عرصه مرورگرهای وب و سرویس دهندگان وب است ، نمی توان ادعای مشابهی را در رابطه با پروتكل FTP داشت و هم اینك مجموعه ای گسترده از سرویس گیرندگان و سرویس دهندگان FTP وجود دارد .

برای ارسال فایل با استفاده از پروتكل FTP به یك سرویس گیرنده FTP نیاز می باشد . ویندوز دارای یك برنامه سرویس گیرنده FTP از قبل تعبیه شده می باشد ولی دارای محدودیت های مختص به خود می باشد . در این رابطه نرم افزارهای متعددی تاكنون طراحی و پیاده سازی شده است:

ULLETPROOF FTP ، WS FTP PROFESSIONAL، FTP EXPLORER و SMART FTP نمونه هایی در این زمینه می باشند .

پروتكل FTP را می توان به عنوان یك سیستم پرس وجو نیز تلقی نمود چراكه سرویس گیرندگان و سرویس دهندگان گفتگوی لازم به منظور تایید یكدیگر و ارسال فایل را انجام می دهند. علاوه بر این، پروتكل فوق مشخص می نماید كه سرویس گیرنده و سرویس دهنده، داده را بر روی كانال گفتگو ارسال نمی نمایند .

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

سرویس گیرنده در ابتدا یك پیام را برای سرویس دهنده ارسال و سرویس دهنده نیز به آن پاسخ خواهد داد و در ادامه ارتباط غیرفعال می گردد . وضعیت فوق با سایر پروتكل هایی كه به صورت تراكنشی كار می كنند ،‌ متفاوت می باشد ( نظیر پروتكل HTTP ) .

برنامه های سرویس گیرنده زمانی قادر به شبیه سازی یك محیط تراكنشی می باشند كه از مسایلی كه قرار است در آینده محقق شوند ، آگاهی داشته باشند . در واقع ، پروتكل FTP یك دنباله 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 منحصرا" از پروتكل TCP استفاده می نماید( هرگز از پروتكل UDP استفاده نمی شود) . معمولا" پروتكل های لایه APPLICATION ( با توجه به مدل مرجع OSI ) از یكی از پروتكل های TCP و یا UDP استفاده می نمایند ( به جزء پروتكل DNS ) . پروتكل FTP نیز از برخی جهات شرایط خاص خود را دارد و برای انجام وظایف محوله از دو پورت استفاده می نماید .

این پروتكل معمولا" از پورت شماره ۲۰ برای ارسال داده و از پورت ۲۱ برای گوش دادن به فرامین استفاده می نماید . توجه داشته باشید كه برای ارسال داده همواره از پورت ۲۰ استفاده نمی گردد و ممكن است در برخی موارد از پورت های دیگر استفاده شود . اكثر سرویس دهندگان FTP از روش خاصی برای رمزنگاری اطلاعات استفاده نمی نمایند و در زمان LOGIN سرویس گیرنده به سرویس دهنده ، اطلاعات مربوط به نام و رمز عبور كاربر به صورت متن معمولی در شبكه ارسال می گردد .

افرادی كه دارای یك PACKET SNIFFER بین سرویس گیرنده و سرویس دهنده می باشند ، می توانند به سادگی اقدام به سرقت نام و رمز عبور نمایند . علاوه بر سرقت رمزهای عبور ، مهاجمان می توانند تمامی مكالمات بر روی اتصالات FTP را شنود و محتویات داده های ارسالی را مشاهده نمایند .

پیشنهادات متعددی به منظور ایمن سازی سرویس دهنده FTP مطرح می گردد ولی تا زمانی كه رمزنگاری و امكانات حفاظتی در سطح لایه پروتكل IP اعمال نگردد ( مثلا" رمزنگاری توسط IPSECS ) ،‌ نمی بایست از FTP استفاده گردد خصوصا" اگر بر روی شبكه اطلاعات مهم و حیاتی ارسال و یا دریافت می گردد .

منبع: http://www.itandti.com

پونیشا :: نیروی کار مجازی