Transcript Session 7
مهندسی فناوری اطالعات ارائه دهنده دکتر سيد امين حسيني E.mail: [email protected] Home page: http://hosseini.staffcms.um.ac.ir فصل 8 پروتکل های اليه کاربرد: FTP،Telnet پروتکل Telnet به طورخالصه :پروتکلی است که می توان بوسیله آن دستوراتی روی کامپیوتر راه دور اجرا کرد برنامه Telnetیک ترمینال مجازی با مشخصه های ترمینال حقیقی سرویس دهنده ،بر روی ماشین کاربر شبیه سازی می نماید .به این ترمینال شبیه سازی شده اختصارا“ )Network virtual terminal( NVTگفته می شود. پروتکل Telnet برنامه telnetفرامین صادر شده از کاربر را دریافت وآنرا به نحو مناسبی به سمت کامپیوتر راه دور هدایت می کند،پس از تفسیر واجرای دستور نتیجه را به برنامه telnetکامپیوتر کاربر باز می گرداند. نشست :Telnet منظور از یک «نشست »Telnetبرقراری موفق یک اتصال TCPبا پورت 23از ماشین سرویس دهنده است به گونه ای که ماشین سرویس دهنده ضمن پذیرش این اتصال و احراز هویت کاربر آماده پذیرش فرمانهای صادره از کاربر و اجرای آنها شود. در دو قسمت برنامه سازماندهی ميشود Telnet پروسه سرويس دهنده :Telnetاین برنامه بر روی کامپیوتر سرویس دهنده نصب و اجرا می شود،موظف است تقاضاهای ورودی برای برقراری یک نشست را بپذیرد و به برنامه مشتری سرویس بدهد.این برنامه در محیط یونیکس به نام )telnet deamon( telnetd :شناخته می شود. در دو قسمت برنامه ميشود سازماندهی پروسه مشتری :Telnetاین برنامه بر روی Telnet کامپیوتر کاربران نصب می شود و منطبق بر سخت افزار و سیستم عامل ماشین کاربر است.وظیفه دارد مراحل یک یک نشست را برقرار کند ویک ترمینال مجازی به گونه ای شبیه سازی نماید که فرامین صادره از کاربر منطبق و سازگار با ماشین سرویس دهنده باشد.این برنامه بطورعام telnetنامیده شده است. جريان عبور داده ها بين پروسه telnet های مبدأومقصد در terminal telnet Terminal driver telnetd Tcp Tcp Application Pscudo TTY Server Machine Client Machine internet سيستم عامل مبتنی بر پنجره کاربر بجای صدور فرامین در خط فرمان ،در یک محیط گرافیکی(شامل پنجره،منو،آیکون و نظایر آن) ازسیستم سرویس دریافت نماید. سيستم عامل مبتنی بر پنجره: شرايط برقراری ارتباط با يک سيستم عامل مبتنی بر پنجره: .1باید سرویس دهنده مورد نظر کاربر چنین سرویسی را فراهم آورده باشد. .2برنامه telnetبر روی ماشین کاربر باید چنین قابلیتی را داشته باشد. .3طرفین بر روی پارامترهای استاندارد توافق کنند تا بتوانند فرامین مربوط با پنجره را تحلیل کرده وخروجی الزم را نشان بدهد. اجرای برنامه telnet در این حالت باید ابتدا اسم برنامه ونام ماشین سرویس دهنده نوشته شود ،در غیر این صورت برنامه منتظر می ماند تا فرامین داخلی telnetرا اجرا نمایید. Merlin>telnet tpci_hpws4 Trying……………………….. Connected to tpci_hpws4. Escape character is ‘^]’. )HP_UX tpci_hpws4 A.09.01 A9000/720(ttys2 Login:tparker ********password: چند نکته .1با فشاردادن کلیدهای ]ctrl+برنامه به حالت «فرامین کاربری» رفته و هر فرمانی که صادر می شود به جای ارسال به سرویس دهنده به صورت محلی و توسط برنامه telnetتحلیل خواهد شد. .2برای ختم یک نشست telnetاز کلیدهای ctrl+Dاستفاده می شود و معادل با عمل خروج از سیستم یا logoutاست. :ttys2 .3قراردادی برای نحوه مبادله متنی کاربر و ماشین راه دور است)Text teletype simulation( . فرامين Telnet فرامین استاندارد جهت محاوره(مشهور به فرامين داخلی): این فرمین دارای قالب استاندارد و جهانی هستند،بین سرویس دهنده telnetدر ماشین راه دور وبرنامه مشتری مبادله می شود،کاربر دخالتی در مبادله ای فرامین ندارد و فقط می تواند مبادله آنها را ببیند،ای فرامین در پروتکل telnet استانداردسازی شده است. فرامين کاربری:این فرامین یکسری از دستورات کاربری در محیط telnetهستندو با صدور آنها کاربر می تواند با برنامه telnetدر ماشین خود محاوره داشته باشدوحاالت مختلف ترمینال خود را تنظیم نماید. کد مميزه فرمان برای تمایز بین داده ها و فرامین تعریف شده است و به گونه ای است که درون متن داده ها پیدا نمی شود. هر فرمان ابتدا با کاراکتر کد )Escape code( 255شروع وسپس کد فرمان ونهایتا”در صورت لزوم کد انتخاب قرار می گیرد. هر فرمان جمعا” سه بايت است که مقادیر عددی هر یک از آنها برای طرف مقابل ارسال می شود«.کد انتخاب می تواند در برخی از فرامین وجود نداشته باشد». telnet IAC قالب فرامين استاندارد در COMMAND CODE OPTION CODE اصلی ترين کدهای فرمان این 4کد برای توافق و هماهنگی سرویس دهنده و برنامه telnetروی ماشین محلی کاربرد دارند. Willبا کد:251با این کد یکی از طرفین می تواند عملی را به طرف مقابل تقاضا بدهد. Won’tبا کد:252با این کد یکی از طرفین تقاضای عدم انجام یا لغو عمل را می نماید :Doبه معنای پذیرش تقاضای داده شده یا اعالم یک عمل انجام شده می باشد. :Don’tبه معنای عدم پذیرش تقاضای داده شده یا اعالم لغو یک عمل می باشد. اصلی ترين کدهای فرمان :(killprocess)Interrupt process تقاضای قطع دائم یا موقت(تعلیق)آن. :)Ao(Abort Output تقاضای اجرا پروسه تا تکمیل نهایی بدون ارسال خروجی آن برای ترمینال. :Break(BRK) تقاضای قطع برنامه(،معادل )Ctrl+Break اصلی ترين کدهای فرمان :Are you There(AYT) پرس وجو در خصوص آنکه طرف مقابل هنوز فعال است یا نشست را ترک کرده است. :Erase Line(EL) تقاضای حذف آخرین سطر از بافر طرف مقابل. :Erase Character(EC) تقاضای حذف آخرین کاراکتر از بافر طرف مقابل. : RCVD Will Echoازطرف مقابل دريافت شد Echo .تقاضای فعال شدن حالت TN3270 سرویس دهنده TELNETبا قابلیت تغییر مجموعه کد با نام TN3270ارائه شده است. عدد 3270اشاره به الگویی برای کدگذاری استریمهای داده دارد که با نام 3270 SNA Data Streamتوسط IBMاز قبل برای شبکه SNAاستانداردسازی شده بود. TN3270 TN3270پروتکلی است که برای انتقال استریمهای 3270بر روی شبکه TCP/IPتدوین وپیاده سازی شده است. درTN3270برخالف (telnetکه داده ها را به صورت خط به خط ارسال میکند ) استریمهای داده پس از کدگذاری بصورت بلوکی ارسال می شوند. پروتکل انتقال فايل ()FTP ابزاريست مطمئن برای انتقال فايل بين کامپيوترهايی که به شبکه اينترنت متصل هستند. خدمات پروتکل .1تهیه لیستی ازفایل های موجود ازسیستم فایل کامپیوتر راه دور. .2حذف،تغییر نام وجابجا کردن فایل های کامپیوتر راه دور. .3جستجو در شاخه های (دایرکتوریهای)کامپیوتر راه دور. خدمات پروتکل .4ایجاد یا حذف شاخه روی کامپیوتر راه دور. .5انتقال از کامپیوتر راه دور به کامپیوتر میزبان()Download .6انتقال فایل وذخیره آن از کامپیوتر میزبان به کامپیوتر راه دور()upload ارتباط بين سرويس دهنده ومشتری در پروتکل FTPبرای شروع یک نشست باید دواتصال (کانال ( همزمان از نوع TCPبرقرار شود: .1کانال داده:یک اتصال با پورت شماره 20از سرویس دهنده که روی آن داده ها مبادله می شوند. .2کانال فرمان:یک اتصال TCPبا پورت شماره 21که روی آن فرامین الزم برای مدیریت فایلها رد وبدل می شوند. ارتباط بين سرويس دهنده ومشتری FTP در پروتکل ftpهمه عمليات انتقال فايل در «پيش زمينه»foregroundانجام می شود. پروسه مفسر پروتکل(:)PIوظیفه مدیریت ارتباط روی کانال فرمان را به عهده دارد.همیشه به پورت شماره 21 گوش می دهد. پروسه انتقال داده(:)DTPوظیفه مدیریت انتقال داده ها را بر عهده دارد.همیشه به پورت شماره 20گوش می دهد. روشهای برقراری يک نشست : روش معمولی .1در برنامه سمت مشتری ابتدا دو سوکت نوع TCPبا شماره پورت .2 .3 .4 .5 تصادفی باالی 1024ایجاد می شود. برنامه سمت مشتری با استفاده از دستور()Connectسعی دارد تا اتصال یکی از سوکت های ایجاد شده را با پورت 21از سرویس دهنده برقرار نماید. برنامه سمت مشتری با فرمان «،»PORT Xبه برنامه سمت سرویس دهنده شماره پورت سوکت دوم را اعالم مینماید( ،برنامه مشتری روی سوکت دوم عمل )(listenانجام میدهد). سرويس دهنده سعی در برقراری یک اتصال TCPبا شماره پورت اعالم شده از مشتری را دارد. برنامه سمت مشتری اتصال TCPشروع شده از سرویس دهنده را تصدیق کرده و یک نشست FTPآغاز می شود. روشهای برقراری يک نشست : روش غير فعال .1در برنامه سمت مشتری دو سوکت نوع TCPبا شماره پورت تصادفی باالی 1024ایجاد می شود. .2برنامه سمت مشتری اتصال TCPیکی از سوکت های اجرا شده را با پورت شماره 21از سرویس دهنده برقرار مینماید. .3برنامه سمت مشتری با فرمان PASVبه برنامه سمت سرویس دهنده اعالم می کند که خواستار نشست از نوع غیر فعال است. روشهای برقراری يک نشست : روش غير فعال .4برنامه سمت سرویس دهنده یک سوکت با شماره پورت تصادفی ایجاد کرده و شماره آن را به ماشین مشتری اعالم مینماید. .5برنامه سمت مشتری اتصال سوکت دوم خودرا با شماره پورت اعالم شده برقرار کرده ،پس از تصدیق اتصال نشست FTPآغاز می شود. فرامين FTP فرامین داخلی :FTPفرامین داخلی FTPتماما’’ حالت متنی داشته و حداکثر 4حرفی هستند. برخی از فرامین دارای پارامتر هستند که این پارامترها نیز به صورت متنی پس از یک فاصله خالی در ادامه فرمان قرار می گیرند. خاتمه هر فرمان و آرگومانهایش با جفت کد (\rمعادل با کد )carriage returnو ( \nمعادل با کد )new lineمشخص می شود. :PASV\r\n یک فرمان معتبر ftp مجموعه فرامين ftpبرای سه عمليات دسته فرایندبرقراری و ختم یک نشست (ftpمثل فرمان )QUIT،PORT،PASV ارسال کلمه عبور جهت تعیین جواز وسطح سرویس دهی فرامین مربوط به انتقال فایل،فهرست گیری از شاخه ها و فایل ها وعملیات مدیریت فایل. در پاسخ به هر فرمان صادره یک کد سه رقمی بر میگردد.برنامه سمت مشتری با پردازش این کد می تواند در مورد عمل بعدی خود تصمیم بگیرد. در پروتکل ftpانتقال فایل در چند حالت متفاوت انجام می شود: . حالت متنی و روش دودويی فرامين کاربری برنامه FTP کاربر برای استفاده از FTPباید از این فرامین اطالع داشته باشد. برنامه های FTPدر سمت کاربر بر 2نوع هستند: .1برنامه هایی که در خط فرمان اجرا می شوندو کاربر مجبوراست فرامین استفاده از برنامهFTPرا حفظ باشد. .2برنامه هایی که دارای ظاهر گرافیکی هستند و کاربر از طریق آیکون ها یا منو ها فرمان مورد نظر خود را اجرا می کند. تذکر:برای بکارگيری برنامه FTPدر خط فرمان الزم است ضمن درج نام برنامه ،نام ماشينی که سرويس FTPمی دهد به عنوان پارامتر ورودی ،جلوی نام FTPدرج شده باشد. عمل :Login در صورت برقراری ارتباط بین برنامه کاربر وسرویس دهنده ftpباید اعتبار کاربر برای سرویس دهنده مشخص شود،هنگامی که که کاربر معتبر شناخته شدید به شما اجازه ورود به سیستم ftpداده خواهد شد به اين عمل اصطالحا’’loginگفته می شود. پروسه ای که اعتبار کاربران را از لحاظ مجوز عبور و سطح دسترسی ،کنترل مینماید«پروسه ورود »(login processناميده می شود). تذکر:با اضافه کردن گزينه -dدر هنگام فراخوانی و اجرای برنامه ftpمی توان عمل اشکال زدايی انجام داد .با اين گزينه تمام فرامينی داخلی که بين برنامه ftpوسرويس دهنده مبادله می شوندقابل مشاهده خواهند بود. فرايند برقراری يک نشست کاربر ديدگاه از ftp :Loginتعیین شناسه کاربری وکلمه عبور و تایید آنها توسط سرویس دهنده. :Define directoryتعیین شاخه ای که پس از برقراری ارتباط به صورت پیش فرض برای شروع عملیات کاربر در نظر گرفته می شود. :Define file transfer modeتعیین روش انتقال(متنی یا دودویی). :Start data transferامکان صدور فرمان و انتقال فایل را برای کاربر فراهم می آورد. :Stop data transferارتباط را خاتمه می دهد. انتقال با واسطه در پروتکل :FTP FTP این امکان را فراهم می سازد که نظارت بر انتقال فایلها از طریق ماشین سومی که بین برنامه مشتری و سرویس دهنده قرار گرفته است ،انجام شود.این رویه به عنوان «انتقال با واسطه» ( THIRD PARTY )TRANSFERشناخته شده است وصدور مجوز دسترسی به سیستم فایل موجود در ماشین سرویس دهنده و نظارت بر فرامین صادره از طریق این ماشین انجام میگیرد. استفاده از يک سيستم واسطه سرعت انتقال را افزايش می دهد. دسترسی بی نام به FTP روش راحت تری برای ایجاد دسترسی عمومی به یک مجموعه فایل یا دایرکتوری وجود دارد که «FTPبی نام »خوانده می شود. با FTPبی نام دیگر نیازی به داشتن مجوز روی یک ماشین نیستFTP .این کار را با فعال کردن حالت «ورود بی نام»توسط یک کلمه عبور بنام «مهمان یا»GUESTیا کلمه عبور پوچ (یک رشته خالی انجام می دهد). سرويس دهنده های FTP بسیاری از ماشینهای unixبصورت پیش فرض به عنوان سرویس دهنده ftpعمل می کنند. برای ارائه امکانات سرویس دهنده ،ftpباید هنگام بوت شدن سیستم عامل ftp daemon،اجرا شده باشد. دسترسی به سرويس FTPتوسط تعريف فهرست کاربران که در بسته FTP SERVERقرار دارد کنترل می شود ومی توان با رجوع به منوی userکاربران را تعريف و مجوزهای دسترسی آنها به سيستم فايل را تنظيم کرد.