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‬کاربران را تعريف‬
‫و مجوزهای دسترسی آنها به سيستم فايل را تنظيم کرد‪.‬‬