جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
آشنائي با پروتكل FTP ( بخش اول )
-(1 Body) 
آشنائي با پروتكل FTP ( بخش اول )
Visitor 207
Category: دنياي فن آوري
امروزه از پروتكل هاي متعددي در شبكه هاي كامپيوتري استفاده مي گردد كه صرفا" تعداد اندكي از آنان به منظور انتقال داده طراحي و پياده سازي شده اند . اينترنت نيز به عنوان يك شبكه گسترده از اين قاعده مستثني نبوده و در اين رابطه از پروتكل هاي متعددي استفاده مي شود.
براي بسياري از كاربران اينترنت همه چيز محدود به وب و پروتكل مرتبط با آن يعني HTTP است ، در صورتي كه در اين عرصه از پروتكل هاي متعدد ديگري نيز استفاده مي گردد. FTP نمونه اي در اين زمينه است .

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

تصوير اوليه اينترنت در ذهن بسياري از كاربران، استفاده از منابع اطلاعاتي و حركت از سايتي به سايت ديگر است و شايد به همين دليل باشد كه اينترنت در طي ساليان اخير به سرعت رشد و متداول شده است . بسياري از كارشناسان اين عرصه اعتقاد دارند كه اينترنت گسترش و عموميت خود را مديون سرويس وب مي باشد .
فرض كنيد كه سرويس وب را از اينترنت حذف نمائيم . براي بسياري از ما اين سوال مطرح خواهد شد كه چه نوع استفاده اي را مي توانيم از اينترنت داشته باشيم ؟ در صورت تحقق چنين شرايطي ، يكي از عملياتي كه كاربران قادر به انجام آن خواهند بود ، دريافت داده ، فايل هاي صوتي ، تصويري و ساير نمونه فايل هاي ديگر با استفاده از پروتكل FTP (برگرفته از File Transfer Protocol ) است.

ويژگي هاي پروتكل FTP

• پروتكل FTP ، اولين تلاش انجام شده براي‌ ايجاد يك استاندارد به منظور مبادله فايل بر روي شبكه هاي مبتني بر پروتكل TCP/IP است كه از اوايل سال 1970 مطرح و مشخصات استاندارد آن طي RFC 959 در اكتبر سال 1985 ارائه گرديد .
• پروتكل 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 و يك شماره پورت استفاده مي نمايد . برقراري ارتباط بين يك سرويس گيرنده و يك سرويس دهنده منوط به وجود چهار عنصر اطلاعاتي است : آدرس سرويس دهنده ،‌پورت سرويس دهنده ، آدرس سرويس گيرنده و پورت سرويس گيرنده . در زمان برقراري يك ارتباط ، سرويس گيرنده از يك شماره پورت استفاده مي نمايد . اين شماره پورت مي تواند متناسب با نوع عملكرد برنامه سرويس گيرنده به صورت اختياري و يا اجباري باشد . مثلا" برخي برنامه هاي سرويس گيرنده به منظور ارتباط با سرويس دهنده ، نيازمند استفاده از يك شماره پورت خاص مي باشند ( نظير برنامه هاي سرويس گيرنده وب و يا مرورگرهاي وب كه از پورت شماره 80 به منظور ارتباط با سرويس دهنده وب استفاده مي نمايد) . در مواردي كه الزامي در خصوص شماره پورت وجود ندارد از يك شماره پورت موقتي و يا ephemeral استفاده مي گردد . اين نوع پورت ها موقتي بوده و توسط IP stack ماشين مربوطه به متقاضيان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد مي گردد . با توجه به اين كه اكثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند كرد ( تا زماني كه تمام pool تكميل نشده باشد ) ،‌در صورتي كه سرويس گيرنده مجددا" درخواست برقراري يك ارتباط را نمايد ، يك شماره پورت موقتي ديگر به وي تخصيص داده مي شود .
• پروتكل FTP منحصرا" از پروتكل TCP استفاده مي نمايد( هرگز از پروتكل UDP استفاده نمي شود) . معمولا" پروتكل هاي لايه Application ( با توجه به مدل مرجع OSI ) از يكي از پروتكل هاي TCP و يا UDP استفاده مي نمايند ( به جزء پروتكل DNS ) . پروتكل FTP نيز از برخي جهات شرايط خاص خود را دارد و براي انجام وظايف محوله از دو پورت استفاده مي نمايد . اين پروتكل معمولا" از پورت شماره 20 براي ارسال داده و از پورت 21 براي گوش دادن به فرامين استفاده مي نمايد . توجه داشته باشيد كه براي ارسال داده همواره از پورت 20 استفاده نمي گردد و ممكن است در برخي موارد از پورت هاي ديگر استفاده شود .
• اكثر سرويس دهندگان FTP از روش خاصي براي رمزنگاري اطلاعات استفاده نمي نمايند و در زمان login سرويس گيرنده به سرويس دهنده ، اطلاعات مربوط به نام و رمز عبور كاربر به صورت متن معمولي در شبكه ارسال مي گردد . افرادي كه داراي يك Packet sniffer بين سرويس گيرنده و سرويس دهنده مي باشند ، مي توانند به سادگي اقدام به سرقت نام و رمز عبور نمايند . علاوه بر سرقت رمزهاي عبور ، مهاجمان مي توانند تمامي مكالمات بر روي اتصالات FTP را شنود و محتويات داده هاي ارسالي را مشاهده نمايند . پيشنهادات متعددي به منظور ايمن سازي سرويس دهنده FTP مطرح مي گردد ولي تا زماني كه رمزنگاري و امكانات حفاظتي در سطح لايه پروتكل IP اعمال نگردد ( مثلا" رمزنگاري توسط IPsecs ) ،‌ نمي بايست از FTP استفاده گردد خصوصا" اگر بر روي شبكه اطلاعات مهم و حياتي ارسال و يا دريافت مي گردد .
• همانند بسياري از پروتكل هاي لايه Application ، پروتكل FTP داراي كدهاي وضعيت خطاء مختص به خود مي باشد ( همانند HTTP ) كه اطلاعات لازم در خصوص وضعيت ارتباط ايجاد شده و يا درخواستي را ارائه مي نمايد . زماني كه يك درخواست ( GET , PUT ) براي يك سرويس دهنده FTP ارسال مي گردد ، سرويس دهنده پاسخ خود را به صورت يك رشته اعلام مي نمايد . اولين خط اين رشته معمولا" شامل نام سرويس دهنده و نسخه نرم افزار FTP است .در ادامه مي توان دستورات GET و يا PUT را براي سرويس دهنده ارسال نمود . سرويس دهنده با ارائه يك پيام وضعيت به درخواست سرويس گيرندگان پاسخ مي دهد . كدهاي وضعيت برگردانده شده را مي توان در پنج گروه متفاوت تقسيم نمود :
كدهاي 1xx : پاسخ اوليه
كدهاي 2xx : درخواست بدون خطاء‌ اجراء گرديد .
كدهاي 3xx : به اطلاعات بشتري نياز است .
كدهاي 4xx : يك خطاء موقت ايجاد شده است .
كدهاي 5xx : يك خطاء دائمي ايجاد شده است .
متداولترين كدهاي وضعيت FTP به همراه مفهوم هريك در جدول زير نشان داده شده است :

كدهاي وضعيت سري 100

110

Restart reply

120

Service ready in x minutes

125

Connection currently open, transfer starting

150

File status okay, about to open data

كدهاي وضعيت سري200

200

Command okay

202

Command not implemented, superfluous at this site

211

System status/help reply

212

Directory status

213

File status

214

System Help message

215

NAME system type

220

Service ready for next user.

221

Service closing control connection. Logged off where appropriate

225

Data connection open; no transfer in progress.

226

Closing data connection. Requested action successful

227

Entering Passive Mode

230

User logged in, continue

250

Requested file action okay, completed

257

"PATHNAME" created.

كدهاي وضعيت سري300

331

User name okay, need password.

332

Need account for login

350

Requested file action pending further information.

كدهاي وضعيت سري400

421

Service not available, closing control connection.

425

Can't open data connection

426

Connection closed; transfer aborted.

450

Requested file action not taken. File not available - busy etc..

451

 Request aborted: error on server in processing.

452

Requested action not taken. Insufficient resources on system

كدهاي وضعيت سري500

500

Syntax error, command unrecognized

501

Syntax error in parameters or arguments.

502

Command not implemented.

503

Bad sequence of commands

504

Command not implemented for that parameter.

530

Not logged in.

532

Need account for storing files

550

Requested action not taken. File unavailable

552

Requested file action aborted. Exceeded storage allocation

553

Requested action not taken. File name not allowed

مفهوم برخي از كدهاي متداول

226

دستور بدون هيچگونه خطائي اجراء گرديد .

230

زماني اين كد نمايش داده مي شود كه يك سرويس گيرنده رمز عبور خود را به درستي درج و عمليات loginبا موفقيت انجام شده باشد .

231

كد فوق نشاندهنده دريافت  username  ارسالي سرويس گيرنده توسط سرويس دهنده مي باشد و تائيدي است بر اعلام وصول Username( نه صحت آن  )  .

501

دستور تايپ شده داراي خطاء گرامري است و مي بايست مجددا" دستور تايپ گردد .

530

عمليات loginبا موفقيت انجام نشده است . ممكن است Usernameو يا رمز عبور اشتباه باشد .

550

فايل مشخص شده در دستور تايپ شده نامعتبر است .

در بخش دوم به بررسي نحوه عملكرد پروتكل FTP خواهيم پرداخت .
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image