نمایش نتایج: از شماره 1 تا 7 , از مجموع 7

موضوع: آشنائی با پروتكل ftp ( بخش اول )

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    New 1 آشنائی با پروتكل ftp ( بخش اول )

    امروزه از پروتكل های متعددی در شبكه های كامپيوتری استفاده می گردد كه صرفا" تعداد اندكی از آنان به منظور انتقال داده طراحی و پياده سازی شده اند . اينترنت نيز به عنوان يك شبكه گسترده از اين قاعده مستثنی نبوده و در اين رابطه از پروتكل های متعددی استفاده می شود.
    برای بسياری از كاربران اينترنت همه چيز محدود به وب و پروتكل مرتبط با آن يعنی 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 خواهيم پرداخت .

    منبع : www.srco.ir


  2. #2
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    New 1 آشنائی با پروتكل ftp ( بخش دوم )

    FTP ،‌ يك پروتكل ارسال فايل است كه با استفاده از آن سرويس گيرندگان می توانند به سرويس دهندگان متصل و صرفنظر از نوع سرويس دهنده اقدام به دريافت و يا ارسال فايل نمايند . پروتكل FTP به منظور ارائه خدمات خود از دو حالت متفاوت استفاده می نمايد : Active Mode و Passive Mode . مهمترين تفاوت بين روش های فوق جايگاه سرويس دهنده و يا سرويس گيرنده در ايجاد و خاتمه يك ارتباط است .
    همانگونه كه در بخش اول اشاره گرديد ، يك اتصال پروتكل TCP/IP ( نسخه شماره چهار) شامل دو نقطه مجزا می باشد كه هر نقطه از يك آدرس IP و يك شماره پورت استفاده می نمايد . برقراری ارتباط بين يك سرويس گيرنده و يك سرويس دهنده منوط به وجود چهار عنصر اطلاعاتی است : آدرس سرويس دهنده ،‌پورت سرويس دهنده ، آدرس سرويس گيرنده و پورت سرويس گيرنده . در زمان برقراری يك ارتباط ، سرويس گيرنده از يك شماره پورت استفاده می نمايد . اين شماره پورت می تواند متناسب با نوع عملكرد برنامه سرويس گيرنده به صورت اختياری و يا اجباری باشد . مثلا" برخی برنامه های سرويس گيرنده به منظور ارتباط با سرويس دهنده ، نيازمند استفاده از يك شماره پورت خاص می باشند ( نظير برنامه های سرويس گيرنده وب و يا مرورگرهای وب كه از پورت شماره 80 به منظور ارتباط با سرويس دهنده وب استفاده می نمايد) . در مواردی كه الزامی در خصوص شماره پورت وجود ندارد از يك شماره پورت موقتی و يا ephemeral استفاده می گردد . اين نوع پورت ها موقتی بوده و توسط IP stack ماشين مربوطه به متقاضيان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد می گردد . با توجه به اين كه اكثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند كرد ( تا زمانی كه تمام pool تكميل نشده باشد ) ،‌در صورتی كه سرويس گيرنده مجددا" درخواست برقراری يك ارتباط را نمايد ، يك شماره پورت موقتی ديگر به وی تخصيص داده می شود .
    پس از اين مقدمه ،‌ در ادامه به بررسی هر يك از روش های Active و Passive در پروتكل FTP خواهيم پرداخت .
    Active Mode
    Active Mode ، روش سنتی ارتباط بين يك سرويس گيرنده FTP و يك سرويس دهنده می باشد كه عملكرد آن بر اساس فرآيند زير است :


    • سرويس گيرنده يك ارتباط با پورت 21 سرويس دهنده FTP برقرار می نمايد . پورت 21 ، پورتی است كه سرويس دهنده به آن گوش فرا می دهد تا از صدور فرامين آگاه و آنان را به ترتيب پاسخ دهد . سرويس گيرنده برای برقراری ارتباط با سرويس دهنده از يك پورت تصادفی و موقتی ( بزرگتر از 1024 ) استفاده می نمايد( پورت x ).
    • سرويس گيرنده شماره پورت لازم برای ارتباط سرويس دهنده با خود را از طريق صدور دستور PORT N+1 به وی اطلاع می دهد ( پورت x+1 )
    • سرويس دهنده يك ارتباط را از طريق پورت 20 خود با پورت مشخص شده سرويس گيرنده ( پورت x+1 ) برقرار می نمايد .

    لطفا" به من از طريق پورت 1931 بر روی آدرس
    IP: 192.168.1.2 متصل و سپس داده را ارسال
    نمائيد .
    سرويس گيرنده تائيد دستور سرويس دهنده
    در فرآيند فوق ، ارتباط توسط سرويس گيرنده آغاز و پاسخ به آن توسط سرويس دهنده و از طريق پورت x+1 كه توسط سرويس گيرنده مشخص شده است ، انجام می شود . در صورتی كه سرويس گيرنده از سيستم ها و دستگاه های امنيتی خاصی نظير فايروال استفاده كرده باشد ، می بايست تهميدات لازم به منظور ارتباط كامپيوترهای ميزبان راه دور به سرويس گيرنده پيش بينی تا آنان بتوانند به هر پورت بالاتر از 1024 سرويس گيرنده دستيابی داشته باشند . بدين منظور لازم است كه پورت های اشاره شده بر روی ماشين سرويس گيرنده open باشند . اين موضوع می‌ تواند تهديدات و چالش های امنيتی متعددی را برای سرويس گيرندگان به دنبال داشته باشد .
    Passive Mode
    در Passive Mode ، كه به آن " مديريت و يا اداره سرويس گيرندگان FTP" نيز گفته می شود از فرآيند زير استفاده می گردد :


    • سرويس گيرنده دو پورت را فعال می نمايد ( پورت x و x+1 )
    • ارتباط اوليه از طريق پورت x سرويس گيرنده با پورت 21 سرويس دهنده آغاز می گردد .
    • سرويس دهنده يك پورت را فعال ( Y ) و به سرويس گيرنده شماره پورت را اعلام می نمايد .
    • در ادامه سرويس گيرنده يك اتصال از طريق پورت x+1 با پورت y سرويس دهنده برقرار می نمايد .


    لطفا" به من بگوئيد كه از كجا می توانم داده را دريافت نمايم
    سرويس گيرنده با من از طريق پورت 4023 بر روی آدرس
    IP: 192.168.1.25 ارتباط برقرار نمائيد .
    سرويس دهنده
    در فرآيند فوق ، سرويس گيرنده دارای نقش محوری است و فايروال موجود بر روی سرويس گيرنده می تواند درخواست های دريافتی غيرمجاز به پورت های بالاتر از 1024 را به منظور افزايش امنيت بلاك نمايند . در صورتی كه بر روی كامپيوترهای سرويس دهنده نيز فايروال نصب شده باشد ، می بايست پيكربندی لازم به منظور استفاده از پورت های بالاتر از 1024 بر روی آن آنجام و آنان open گردند . باز نمودن پورت های فوق بر روی سرويس دهنده می تواند چالش های امنيتی خاصی را برای سرويس دهنده به دنبال داشته باشد .
    متاسفانه تمامی سرويس گيرندگان FTP از Passive Mode حمايت نمی نمايند . اگر يك سرويس گيرنده بتواند به يك سرويس دهنده login نمايد ولی قادر به ارسال داده بر روی آن نباشد ، نشاندهنده اين موضوع است كه فايروال و يا Gateway برای استفاده از Passive Mode به درستی پيكربندی نشده است .

    ملاحضات امنيتی
    در صورتی كه فايروال های موجود بر روی كامپيوترهای سرويس گيرنده به درستی پيكربندی نگردند ، آنان نمی توانند از Active Mode استفاده نمايند . در Passive Mode استحكام سيستم امنيتی در سمت سرويس دهنده و توسط فايروال مربوطه انجام خواهد شد . بنابراين لازم است به سرويس دهنده اجازه داده شود كه به اتصالات هر پورت بالاتر از 1024 پاسخ دهد . ترافيك فوق ، معمولا" توسط فايروال سرويس دهنده بلاك می گردد . در چنين شرايطی امكان استفاده از Passive Mode وجود نخواهد داشت .

    Passive Mode و يا Active Mode ؟
    با توجه به مستندات درج شده در RFC 1579 ، استفاده از Passive Mode به دلايل متعددی به Active Mode ترجيح داده می شود :


    • تعداد سرويس دهندگان موجود بر روی اينترنت به مراتب كمتر از سرويس گيرندگان می باشد .
    • با استفاده از امكانات موجود می توان سرويس دهندگان را پيكربندی تا بتوانند از مجموعه پورت های محدود و تعريف شده ای با در نظر گرفتن مسائل امنيتی ، استفاده نمايند.

    پيكربندی فايروال
    جدول زير پيكربندی فايروال در Active Mode و Passive Mode را نشان می دهد .

    Active Mode Server Inbound
    from any client port >1024 to port 21 on the server
    Server Outbound
    from port 20 on the client on any port > 1024
    Client Inbound ports 20 from the server to any port >1024 on client Client Outbound
    from any port >1024 to port 21 on the server
    Passive Mode Server Inbound port 21 and any port >1024 from client/anywhere, from any port >1024 Server Outbound port 21 and any port >1024 to client/anywhere, to any port >1024 Client Inbound Return traffic, any port > 1024 from server using any port >1024
    و اما يك نكته ديگر در رابطه با پروتكل FTP !
    در صورتی كه در زمان دريافت يك فايل با استفاده از پروتكل FTP مشكلات خاصی ايجاد كه منجر به قطع ارتباط با سرويس دهنده FTP گردد ،‌ سرويس گيرنده می تواند با مشخص كردن يك offset از فايل دريافتی به سرويس دهنده اعلام نمايد كه عمليات ارسال را از جائی كه ارتباط قطع شده است ، ادامه دهد ( سرويس گيرنده از محلی شروع به دريافت فايل می نمايد كه ارتباط غيرفعال شده بود ) . استفاده از ويژگی فوق به امكانات سرويس دهنده FTP بستگی دارد .

  3. #3
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    New 1 آشنائی با پروتكل http ( بخش اول )


    در اينترنت همانند ساير شبكه های كامپيوتری از پروتكل های متعدد و با اهداف مختلف استفاده می گردد. هر پروتكل از يك ساختار خاص برای ارسال و دريافت اطلاعات (بسته های اطلاعاتی ) استفاده نموده و ترافيك مختص به خود را در شبكه ايجاد می نمايد . HTTP ( برگرفته از Hyper Text Transfer Protocol ) ، يكی از متداولترين پروتكل های لايه application است كه مسئوليت ارتباط بين سرويس گيرندگان و سرويس دهندگان وب را برعهده دارد .
    در ادامه با پروتكل فوق بيشتر آشنا خواهيم شد.
    پروتكل HTTP چيست ؟
    دنيای شبكه های كامپيوتری دارای عمری چند ساله است و بسياری از كاربران ، ضرورت استفاده از شبكه را همزمان با متداول شدن اينترنت در اوايل سال 1990 دريافتند . عموميت اينترنت، رشد و گسترش شبكه های كامپيوتر‌ی را به دنبال داشته است . اينترنت نيز با سرعتی باورنكردنی رشد و امروزه شاهد ايجاد ده ها ميليون وب سايت در طی يك سال در اين عرصه می باشيم .
    تمامی وب سايت های موجود بر روی‌ اينترنت از پروتكل HTTP استفاده می نمايند . با اين كه پروتكل HTTP با استفاده از پروتكل های ديگری نظير IP و TCP ماموريت خود را انجام می دهد ، ولی اين پروتكل HTTP است كه به عنوان زبان مشترك ارتباطی بين سرويس گيرنده و سرويس دهنده وب به رسميت شناخته شده و از‌ آن استفاده می گردد . در واقع مرورگر وب صدای خود را با استفاده از پروتكل HTTP به گوش سرويس دهنده وب رسانده و از وی درخواست يك صفحه وب را می نمايد.
    به منظور انجام يك تراكنش موفقيت آميز بين سرويس گيرندگان وب ( نظير IE ) و سرويس دهندگان وب ( نظير IIS ) ، به اطلاعات زيادی نياز خواهد بود . پس از handshake پروتكل TCP/IP ، مرورگر اطلاعات گسترده ای را ‌ برای سرويس دهنده وب ارسال می نمايد .
    يك بسته اطلاعاتی نمونه در شكل زير نشان داده شده است :

    توضيحات :
    داده مربوط به پروتكل لايه application ( در اين مورد خاص پروتكل HTTP ) ، پس از هدر TCP/IP قرار می گيرد . جدول زير برخی اطلاعات مبادله شده بين سرويس گيرنده و سرويس دهنده وب را نشان می دهد .

    عملكرد
    نوع اطلاعات
    سرويس گيرنده وب يك درخواست GET را برای سرويس دهنده وب ارسال و از وی درخواست اطلاعاتی را با استفاده از پروتكل HTTP 1.1 می نمايد.
    پروتكل HTTP دارای نسخه شماره يك نيز می باشد كه امروزه عموما" از نسخه فوق استفاده نمی گردد و در مقابل از نسخه 1 . 1 استفاده می شود.

    GET /HTTP/1.1
    وب سايتی است كه سرويس گيرنده قصد ارتباط با آن را دارد .
    Host:
    Google
    به سرويس دهنده وب ، نوع نرم افزار سرويس گيرنده ( در اين مورد خاص Mozilla version 5.0 ) و نوع سيستم عامل نصب شده بر روی كامپيوتر ( در اين مورد خاص Windows version NT 5.1 و يا همان ويندوز XP ) اعلام می گردد.
    User-agent:
    Mozilla/5.0 (Windows; U; Windows NT 5.1;
    نوع character set استفاده شده به سرويس دهنده اعلام می گردد ( در اين مورد خاص از en:us و نسخه شماره 10 . 7 . 1 استفاده شده است ) .
    en-US; rv: 1.7.10)
    نام مرورگر استفاده شده توسط سرويس گيرنده به سرويس دهنده وب اعلام می گردد ( در اين مورد خاص از مرورگر FireFox استفاده شده است ) .
    Gecko/20050716 Firefox/1.0.6
    سرويس گيرنده به سرويس دهنده وب فرمت اطلاعاتی را كه می تواند دريافت نمايد ، اعلام می نمايد ( در اين مورد خاص هم برای متن و هم برای application از فرمت xml استفاده می گردد ) .
    Accept:
    text/xml, application/xml, application/xhtml+xml
    سرويس گيرنده به سرويس دهنده نوع فرمت متن دريافتی را اعلام می نمايد ( در اين مورد خاص html و يا plain text ) .
    همچنين فرمت فايل های گرافيكی ( در اين مورد خاص png . و ساير فرمت های متداول ) نيز اعلام می گردد .

    text/html; q=0.9, text/plain; q=0.8, image/png, */*;q=0.5
    ليست character set كه سرويس گيرنده وب قادر به فهم آنان است، اعلام می گردد ( در اين مورد خاص ISO-8859 , و يا utf-8 ) .
    Accept-Charset:
    ISO-8859-1, utf-8; q=0.7, *;q=0/7
    به سرويس دهنده وب مدت زمان نگهداری session اعلام می گردد ( در اين مورد خاص 300 ثانيه ) .
    سرويس گيرندگان می توانند با صراحت پايان يك session را اعلام نمايند . در نسخه شماره 1 . 1 پروتكل HTTP ، ارتباط و يا اتصال برقرار شده فعال و يا open باقی خواهد ماند تا زمانی كه سرويس گيرنده خاتمه آن را اعلام و يا مدت زمان حيات آن به اتمام رسيده باشد .
    در نسخه شماره يك پروتكل HTTP ، پس از هر درخواست و اتمام تراكنش ، ارتباط ايجاد شده غيرفعال و يا close می گردد .

    Keep-Alive:
    300 Connection: keep-alive
    cookie و مقدار مربوطه به آن اعلام می گردد. كوكی يك متن اسكی فلت می باشد كه اطلاعات متفاوتی را در خود نگهداری می نمايد .
    مدت زمان حيات يك كوكی می تواند موقت ( تا زمانی كه مرورگر فعال است ) و يا دائم ( ذخيره بر روی هارد ديسك كامپيوتر و در يك محدوده زمانی تعريف شده ) باشد .

    Cookie: PREF=ID=01a0822454acb293: LD=en:TM=1121638094?..
    User agent نوع مرورگر و سيستم عامل سرويس گيرنده را مشخص می نمايد و اين موضوع می تواند مواد اوليه لازم برای تدارك برخی حملات توسط مهاجمان را تامين نمايد .
    منبع : www.srco.ir

  4. #4
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    New 1 آشنائی با پروتكل http ( بخش دوم )

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

    پروتكل HTTP : يك معماری سرويس گيرنده و سرويس دهنده
    سرويس گيرنده وب ، مقادير خاصی را با اهداف كاملا" مشخص شده برای سرويس دهنده وب ارسال می نمايد ( حصول اطمينان از وجود يك زبان مشترك برای گفتگو بين سرويس گيرنده و سرويس دهنده وب ) . سرويس دهنده پس از بررسی اطلاعات ارسالی ، آنان را تفسير و متناسب با آن اطلاعاتی را برای سرويس گيرنده ارسال می نمايد . در معماری فوق يك نرم افزار در سمت سرويس گيرنده و به عنوان يك سرويس گيرنده وب ( نظير IE و يا Mozilla Firefox ) ايفای وظيفه می نمايد و در سمت سرويس دهنده يك نرم افزار به عنوان سرويس دهنده وب ( نظير : IIS و يا Apache ) وظايف تعريف شده خود را انجام می دهد.
    سناريوی فوق مدل و يا معماری سرويس گيرنده - سرويس دهنده را در ذهن تداعی می نمايد ( معماری مبتنی بر درخواست و پاسخ ) .

    پاسخ سرويس دهنده
    شكل زير يك بسته اطلاعاتی HTTP از مبداء يك سرويس دهنده به مقصد يك سرويس گيرنده را نشان می دهد ( پاسخ سرويس دهنده ).

    توضيحات :
    جدول زير برخی اطلاعات ارسالی توسط سرويس دهنده را نشان می دهد .

    عملكرد
    نوع اطلاعات
    به سرويس گيرنده اعلام می گردد كه :

    • سرويس دهنده وب از پروتكل HTTP نسخه 1 .1 استفاده می نمايد.
    • فايل درخواستی وی توسط سرويس دهنده پيدا شده است .

    200 ، يك كد وضعيت است كه وضعيت پاسخ به درخواست را مشخص می نمايد .
    HTTP/1.1 200 OK
    مستند و يا فايل درخواستی سرويس گيرنده توسط يك پراكسی cache نخواهد شد و هدف آن صرفا" برای كاربر متقاضی فايل است .
    Cache-Control:
    private
    فرمت ارسال فايل و يا مستند درخواستی به سرويس گيرنده وب اعلام می شود . در اين مورد خاص ، اطلاعات با فرمت text/html ارسال می گردند .
    سرويس گيرنده وب دارای دانش لازم به منظور بررسی و نمايش اطلاعات با فرمت اشاره شده می باشد .

    Content-type:
    text/html
    نوع سرويس دهنده و يا نرم افزار سرويس دهنده ( سرويس دهنده وب ) مشخص می گردد .
    در اين مورد خاص ، سرويس دهنده وب Google نمايش داده شده است .

    Server:
    GWS/2.1
    پروتكل HTTP نسخه شماره 1 .1 از ارسال اطلاعات به صورت chuncked حمايت می نمايد. در روش فوق ، بدنه يك پيام به منظور ارسال مجموعه ای از ماژول ها اصلاح می گردد . مسوليت مشخص كردن اندازه هر ماژول ارسالی بر عهده يكی از فيلدهای موجود در اين ساختار گذاشته می شود .
    در صورت ارسال معمولی اطلاعات توسط پروتكل HTTP ، از يك فيلد با نام "Content-Length" به منظور مشخص نمودن حجم داده ارسالی،استفاده می گردد .

    Transfer-Encoding: chunked
    زمان و تاريخ سرويس دهنده وب مشخص می گردد.
    Date:
    Sat 30 Jul 2005 14:14:50 GMT
    تگ های HTML ارسالی توسط سرويس دهنده وب به مقصد سرويس گيرنده وب می باشند كه توسط سرويس گيرندگان وب ( نظير IE ) تفسير و نمايش داده می شوند .
    با استفاده از گزينه view موجود در برنامه های مرورگر ، می توان تگ های HTML يك صفحه وب را مشاهده نمود .

    منبع :

  5. #5
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    New 1 آشنائی با پروتكل http ( بخش سوم )

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

    HTTP پروتكلی ‌است كه امكان ارتباط بين سرويس گيرندگان و سرويس دهندگان وب را فراهم می نمايد .
    يك سرويس دهنده وب در واقع به عنوان يك سرويس دهنده HTTP نيز ايفای وظيفه می نمايد .

    زمانی كه مرورگر وب درخواست يك صفحه را از سرويس دهنده وب می نمايد، در واقع يك HTTP request را ارسال و سرويس دهنده وب نيز پاسخ آن را با يك HTTP response خواهد داد . يك پيام HTTP ، يك درخواست ( request ) و يا پاسخ ( response ) است كه از يك ساختار خاص تبعيت می نمايد .
    HTTP به يك پروتكل خاص لايه حمل وابستگی نداشته و عموما" از پروتكل TCP استفاده می نمايد (پورت شناخته شده 80 ) .

    كدهای وضعيت
    همانند بسياری از پروتكل ها ، پروتكل HTTP بر اساس يك مدل سرويس گيرنده - سرويس دهنده كار می كند . كدهای وضعيت توسط تعداد زيادی از پروتكل های لايه application استفاده می گردد و می توان آنان را به پنج گروه عمده تقسيم نمود . جدول زير گروه های پنج گانه كدهای وضعيت را در ارتباط با پروتكل HTTP نشان می دهد .

    عملكرد
    كد
    اطلاع رسانی برای استفاده در آينده
    1XX
    انجام موفقيت آميز تراكنش
    2XX
    راهنمائی مجدد
    3XX
    بروز خطاء سمت سرويس گيرنده
    4XX
    بروز خطاء سمت سرويس دهنده
    5XX
    هر يك از پنج گروه فوق، دارای كدهای وضعيت زير مجموعه ای می باشند كه بيانگر جزئيات عمليات است . جدول زير برخی از كدهای وضعيت هر يك از گروه های پنج گانه فوق را در ارتباط با پروتكل HTTP نشان می دهد .
    عملكرد
    كد وضعيت
    تراكنش با موفقيت انجام شده است
    200
    دستور POST با موفقيت انجام شده است
    201
    درخواست ارسالی دريافت گرديد.
    202
    منبع درخواستی در مكان های مختلفی پيدا شده است
    300
    منبع درخواستی به صورت دائم منتقل شده است
    301
    منبع درخواستی به صورت موقت منتقل شده است
    302
    درخواست نامناسب از جانب سرويس گيرنده
    400
    درخواست غيرمجاز
    401
    منبع درخواستی پيدا نگرديد
    404
    بروز خطاء بر روی سرويس دهنده
    500
    متد استفاده شده ، پياده سازی نشده است
    501
    درخواست های سرويس گيرندگان و دستورات
    سرويس گيرندگان وب به منظور استفاده از خدمات سرويس دهندگان وب از مجموعه پتانسيل های ارائه شده ( دستورات ) توسط پروتكل HTTP استفاده می نمايند :


    • GET : سرويس گيرنده وب درخواست يك منبع موجود بر روی سرويس دهنده وب را می نمايد .
    • POST : سرويس گيرنده وب اطلاعاتی را برای سرويس دهنده وب ارسال می نمايد .
    • PUT : سرويس گيرنده وب يك مستند جايگزين را برای سرويس دهنده وب ارسال می نمايد .
    • HEAD : سرويس گيرنده وب اطلاعات خاصی را در ارتباط با يك منبع موجود بر روی سرويس دهنده درخواست می نمايد ( عدم نياز به خود منبع )
    • DELETE : سرويس گيرنده وب درخواست حذف يك سند موجود بر روی سرويس دهنده را می نمايد .
    • TRACE : سرويس گيرندگان وب ، پراكسی مربوط به خود را تعريف می نمايند . از متد فوق اغلب در موارد اشكال زدائی استفاده می گردد .
    • OPTIONS : ساير پتانسيل های موجود به منظور كار بر روی يك سند توسط يك سرويس گيرنده وب درخواست می گردد .
    • CONNECT : سرويس گيرنده وب به عنوان يك پراكسی به يك سرويس دهنده HTTPS متصل می گردد .

    در اغلب موارد صرفا" از متد‍ GET و در برخی موارد از HEAD استفاده می گردد ( در صورت اشكال زدائی يك برنامه وب از تمامی امكانات فوق استفاده می شود ) .

    مراحل ايجاد يك تراكنش
    يك سرويس گيرنده وب قبل از اين كه بتواند با يك سرويس دهنده وب داده ئی را مبادله نمايد ، می بايست با آن ارتباط برقرار نمايد . بدين منظور از پروتكل TCP/IP استفاده می گردد . همانگونه كه اشاره گرديد سرويس گيرنده و سرويس دهنده وب برای ارسال يك درخواست و پاسخ به آن از پروتكل HTTP استفاده نموده و ارتباط ايجاد شده بين خود را صرفا" برای يك تراكنش نگهداری می نمايند ( HTTP يك پروتكل Stateless است ) .
    فرآيند ايجاد يك تراكنش بين سرويس گيرنده و سرويس دهنده وب را می توان در چهار مرحله زير خلاصه نمود:


    • مرحله اول ، برقراری ارتباط : در ابتدا می بايست يك ارتباط و يا اتصال مبتنی بر پروتكل TCP/IP بين يك سرويس دهنده و يك سرويس گيرنده وب ايجاد گردد . به منظور تشخيص نوع پروتكل استفاده شده ، برنامه ها از يك عدد منحصر بفرد با نام شماره پورت استفاده می نمايند .( پروتكل FTP از پورت 21 ، پروتكل Telnet از پورت 32 ، پروتكل SMTP از پورت 25 ، پروتكل HTTP از پورت 80 ) .
    • مرحله دوم : ‌ايحاد و يا صدور يك درخواست توسط سرويس گيرنده
    • مرحله سوم : ‌پاسخ سرويس دهنده به درخواست سرويس گيرنده
    • مرحله چهارم ،‌ خاتمه و يا توقف ارتباط : سرويس دهنده مسئوليت خاتمه ارتباط TCP با سرويس گيرنده وب را پس از پاسخ به درخواست سرويس گيرنده برعهده دارد . به منظور برخورد با مسائل غيرقابل پيش بينی ، هم سرويس گيرنده و هم سرويس دهنده می بايست قادر به مديريت يك ارتباط باشند . مثلا" پس از فعال نمودن دكمه stop در مرورگر ، می بايست به ارتباط ايجاد شده توسط سرويس گيرنده خاتمه داده شود .

  6. #6
    معاونت سایت
    تاریخ عضویت
    2012/06/05
    محل سکونت
    Tabriz
    نوشته ها
    14,398

    Eh چگونه سرعت اینترنت خود را 20% افزایش دهیم؟؟!!

    ویندوز XP Pro درحالت پیش فرض Packet Scheduler سیستم را به ۲۰ % از پهنای باند یك اتصال به اینترنت محدود می كند. یعنی اگر شما این تنظیمات را تغییر ندهید قادرید از ۲۰ درصد پهنای باند اتصالتان به اینترنت بهره ببرید.
    برای اینكه بتوانید از ۱۰۰ درصد پهنای باندتان استفاده كنید و سرعت بالاتری را در اتصال به اینترنت تجربه نمایید، مراحل زیر را انجام دهید :


    ۱) Run را از منوی Start اجرا كنید.

    ۲) در Run عبارت gpedit.msc را تایپ كرده و OK را كلیك كنید.

    ۳) منتظر بمانید تا Group Policy اجرا شود.

    ۴) در بخش Local Computer Policy و زیر Computer Configuration گزینه Administrative Templates را گسترش دهید. ( با كلیك بر روی علامت + كار آن انجام دهید )

    ۵) در لیست باز شده گزینه Network را نیز گسترش دهید.

    ۶) حال در این لیست Qos Packet Scheduler را انتخاب كنید.

    ۷) به گزینه هایی كه در سمت راست ظاهر می شوند دقت كنید.

    ۸ ) بر روی Limit reservable bandwidth كلیك راست كرده و Properties را كلیك كنید.

    ۹) پس از اینكه پنجره Limit reservable bandwidth Properties باز شد در برگه Setting و در زیر Limit reservable bandwidth گزینه Enabled را انتخاب كنید.

    ۱۰) مشاهده می كنید كه با انتخاب آن در روبروی Bandwidth Limit مقدار پیش فرض آن یعنی ۲۰ درصد به نمایش در می آید.

    ۱۱) به جای عدد ۲۰ مقدار ۰ را تایپ كرده و OK را كلیك كنید.

    ۱۲) حال به Connection كه به وسیله آن به اینترنت وصل می شوید رفته و بر روی دكمه Properties كلیك كنید.

    ۱۳) به برگه Networking بروید و دقت كنید كه Packet Scheduler فعال باشد (تیك كنار آن مشاهده شود).

    ۱۴) این پنجره را OK كنید.

    ۱۵) كامپیوتر خود را Restart كنید.

    این کار را می توانید با نرم افزارهای قدرتمند بهینه سازی ویندوز مثلTuneUp Utilities خیلی سریعتر و راحتر انجام دهید.
    برای بازگشت به حالت پیش فرض هم می توانید مسیر فوق را دنبال کرده و بجای ۰ عدد ۲۰ را قرار دهید.

  7. #7
    معاونت سایت
    تاریخ عضویت
    2012/06/05
    محل سکونت
    Tabriz
    نوشته ها
    14,398

    پیش فرض

    در این ترفند قصد داریم روشی کارآمد را به شما معرفی کنیم که بهره گیری از آن میتوانید مطمئن باشید که سرعت اینترنت شما بالاتر خواهد رفت. این کار از طریق تنظیمات مودم شما صورت خواهد گرفت ، در نتیجه تنها برای کاربران Dialup قابل استفاده است.


    بدین منظور:
    از منوی Start وارد Control Panel شوید ، سپس بر روی آیکون Phone and Modem Option دوبار کلیک کنید.
    در پنجره باز شده به تب Modems رفته و روی دکمه Properties کلیک کنید.
    حالا در پنجره جدید به تب Advanced بروید و در قسمت Extra Initialization Commands کد زیر را وارد کنید:
    AT&FX+MS=V34
    تمام پنجره ها را OK کرده و خارج شوید.
    سپس در ادامه کار در همان Control Panel و وارد قسمت Network Connection شوید. بر روی کانکشنی که با آن به اینترنت متصل میشود راست کلیک کنید و Properties را برگزنید.
    در پنجره باز شده و در همان تب General روی دکمه Configure کلیک کنید.
    در پایان در پنجره باز شده بخش Maximum Speed را روی 921600 تنظیم کنید.
    تمام پنجره ها را OK کرده و خارج شوید.

    تاثیر این کار پس از اولین اتصال با آن کانکشن است .

    ویرایش توسط !MAHSA! : 2013/06/12 در ساعت 16:00

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •