360 likes | 593 Views
لایه ی کاربرد. مظفر بگ محمدی. لایه ی کاربرد. اصول لایه ی کاربرد Web و HTTP FTP , TFTP TELNET پست الکترونیکی SMTP, POP3, IMAP DNS کاربردهای P2P امنیت. تلفن IP ویدیوی بلادرنگ کنفرانس ویدیویی محاسبات گرید دانلود فایل. بعضی کاربردهای شبکه. e-mail وب پیغام فوری
E N D
2: Application Layer لایه ی کاربرد مظفر بگ محمدی
2: Application Layer لایه ی کاربرد • اصول لایه ی کاربرد • Web و HTTP • FTP , TFTP • TELNET • پست الکترونیکی • SMTP, POP3, IMAP • DNS • کاربردهای P2P • امنیت
2: Application Layer تلفن IP ویدیوی بلادرنگ کنفرانس ویدیویی محاسبات گرید دانلود فایل بعضی کاربردهای شبکه • e-mail • وب • پیغام فوری • وارد شدن به سیستم از راه دور • اشتراک فایل P2P • بازیهای شبکهای چندکاربره • پخش کلیپهای ویدیویی ذخیره شده
معماریهای کاربرد • مشتری-خدمتگزار • نظیر به نظیر (P2P) • ترکیبی از مدل مشتری-خدمتگزار و P2P
client/server معماری مشتری-خدمتگزار • خدمتگزار: • یک میزبان دائما روشن • آدرس IP دائم و ایستا • مجموعه ای از سرورها برای افزایش مقیاس پذیری مشتری: • با خدمتگزار ارتباط برقرار می کند. • ممکن است به صورت متناوب صل شود. • ممکن است آدرس IP دینامیک داشته باشد. • مشتریها مستقیماً با هم ارتباطی ندارند.
2: Application Layer peer-peer معماری P2P خالص • سرور ی که همیشه روشن باشد نداریم. • نقاط انتهایی می توانند مستقیما با هم ارتباط داشته باشند. • ارتباط نظیرها متناوب است و از آدرسهای دینامیک استفاده میکنند. • مقیاس پذیر ی آن بالا است اما مدیریت آن سخت است.
2: Application Layer ترکیب مشتری-خدمتگزار و P2P • Skype • یک کاربرد IP تلفنی نظیر به نظیر • خدمتگزار مرکزی جهت پیدا کردن آدرس طرف مقابل • ارتباط مشتری-مشتری: مستقیم (بدون دخالت سرور) Instant messaging • گفتگوی (چت) بین دو کاربر P2P است. • خدمتگزار مرکزی برای تشخیص وجود مشتری و مکان آن • مشتری آدرس IP خود را موقع ورود به سیستم در سرور مرکزی ثبت می کند. • کاربر از سرور مرکزی برای پیدا کردن رفیقهای خود استفاده می کند.
2: Application Layer پروتکلهای عمومی: در RFC ها تعریف شدهاند. کاربردهای هم نوع باید با هم سازگار باشند. مثل HTTP, SMTP پروتکلهای اختصاصی: مثل Skype تعریف پروتکلهای لایه ی کاربرد • انواع پیغامهای مبادله شده • مثل درخواست، پاسخ • قالب یا محتوی پیغام: • چه فیلدهایی در پیغام هست و چگونه از هم جدا شدهاند. • معنای پیغامها • معنای اطلاعات موجود در فیلدها • قوانینی که مشخص میکنند که کی و چگونه پیغامها را پردازش کنیم و به آنها پاسخ دهیم.
2: Application Layer زمانبندی بعضی کاربردها (مثل تلفن اینترنتی و بازیهای تعاملی) به تاخیر خیلی کمی نیاز دارند. به چه خدماتی از لایه انتقال نیاز داریم؟ • گذردهی • بعضی کاربردها (مثل چندرسانهای) به یک نرخ گذردهی حداقل نیاز دارند. • بقیه ی کاربردها (کاربردهای کشسان) میتوانند خود را با تغییرات نرخ گذردهی وفق دهند. امنیت • رمزگذاری، جامعیت داده • گم شدن بستهها • بعضی کاربردها (مثل صوت) می توانند گم شدن بسته ها را تحمل کنند. • بعضی کاربردها (مثل انتقال فایل و telnet) به یک خدمت ۱۰۰٪ مطمئن نیاز دارند.
2: Application Layer نیازهای کاربردهای متعارف Time Sensitive no no no yes, 100’s msec yes, few secs yes, 100’s msec yes and no Application file transfer e-mail Web documents real-time audio/vid stored audio/video interactive games instant messaging Data loss no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss Throughput elastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic
2: Application Layer خدمت UDP: انتقال داده غیرقابل اعتماد بین دو فرآیند فاقد: فاز برقراری، قابلیت اعتماد، کنترل جریان، کنترل ازدحام، تضمین گذردهی، زمانبندی، یا امنیت سوال: چرا UDP وجود دارد؟ پروتکلهای لایه ی انتقال • خدمتTCP : • اتصال گرا: ابتدا باید یک اتصال بین فرآیندهای مشتری و خدمتگزار برقرار شود. • انتقال قابل اعتماد بین فرآیندهای فرستنده و گیرنده • کنترل جریان: فرستنده سریع گیرنده کند را دست پاچه نمیکند. • کنترل ازدحام: فرستنده در هنگام وقوع ازدحام سرعت خود را پایین میآورد. • فاقد:زمانبندی، تضمین نرخ گذردهی حداقل، امنیت
2: Application Layer کاربردهای اینترنتی و لایه ی انتقال Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (eg Youtube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) Underlying transport protocol TCP TCP TCP TCP TCP or UDP typically UDP Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony
2: Application Layer www.someschool.edu/someDept/pic.gif path name host name Web و HTTP • ابتدا چند واژهی متداول را معرفی میکنیم. • صفحه ی وب شامل اشیاء است. • اشیاء میتوانند فایل HTML، تصویر JPEG،اپلت Java، فایل صوتی و ... باشند. • هر صفحه ی وب شامل یک فایل HTML پایهکه خود شامل ارجاع به اشیاء دیگر است. • هر شئ توسط URLآدرسدهی شده است. • مثالی از URL:
2: Application Layer مرور کلی HTTP • HTTP: hypertext transfer protocol • پروتکل لایه ی کاربرد وب • مدل مشتری-خدمتگزار • مشتری: مرورگری است که اشیاء وب را درخواست و دریافت میکند و آنها را نمایش میدهد. • خدمتگزار یک خدمتگزار وب است که در پاسخ به درخواستها اشیاء را میفرستد. HTTP request PC running Explorer HTTP response HTTP request Server running Apache Web server HTTP response Mac running Navigator
2: Application Layer HTTP بدون حالت است. خدمتگزار هیچ اطلاعاتی راجع به درخواستهای قبلی مشتری نگهداری نمیکند. مرور کلی HTTP (ادامه) • از TCP استفاده میکند: • مشتری با استفاده از TCP با پورت ۸۰ خدمتگزار تماس میگیرد. • خدمتگزار درخواست برقراری اتصال مشتری را میپذیرد. • مرورگر و خدمتگزار وب پیغامهای HTTP را با هم مبادله میکنند. • ارتباط TCP بسته میشود. ملاحظه • پروتکلهایی که از حالت نگهداری میکنند خیلی پیچیده هستند. • تاریخچه گذشته (حالت) باید نگهداری شود. • اگر مشتری یا خدمتگزار در حین ارتباط خراب شود، دید دو نفر از حالت با هم همخوانی ندارد و باید تطبیق داده شوند.
2: Application Layer HTTP مصر میتوان روی یک اتصال TCP بین مشتری و خدمتگزار چندین شئ را جابجا کرد. اتصالات HTTP • HTTP غیر مصر • روی هر اتصال TCP حداکثر یک شئ میتوان فرستاد.
2: Application Layer ا-الف: مشتری HTTP ارتباطTCP را با فرآیند خدمتگزار HTTP در www.someSchool.edu روی پورت ۸۰شروع میکند. HTTP غیر مصر فرض کنید URL روبروwww.someSchool.edu/home.index شامل ۱۰ ارجاع متنی به تصاویر jpeg باشد. ا-ب: خدمتگزار HTTP در میزبان www.someSchool.edu که منتظر دریافت درخواست برقراری اتصال روی پورت ۸۰ است، اتصال را میپذیرد و به مشتری اطلاع میدهد. ۲: مشتری HTTPپیغام درخواست HTTP شامل URL فوق را روی سوکت اتصال TCP میفرستد. پیغام نشان دهنده ی این است که مشتری شی /home.index را میخواهد. ۳: خدمتگزار HTTP درخواست را دریافت میکند، پیغام پاسخ که شامل شی موردنظر است را تشکیل میدهد و روی سوکت ارسال می کند. زمان
2: Application Layer HTTPغیر مصر (ادامه...) ۴: خدمتگزار HTTP ارتباط TCP را میبندد. • ۵: مشتری HTTP پیغام پاسخ که شامل فایل HTML را دریافت میکند و فایل را نمایش می دهد. بعد از تجزیه ی فایل متوجه میشود که ۱۰ ارجاع به اشیاء jpeg در آن قرار دارد. زمان ۶: مراحل ۱ تا ۵ برای هر کدام از اشیاء jpeg ده بار تکرار می شود.
2: Application Layer شروع اتصال TCP RTT درخواست فایل زمان لازم برای انتقال فایل RTT دریافت فایل زمان زمان HTTP غیر مصر: زمان پاسخ • تعریف RTT: زمانی که لازم است تا یک بستهی کوچک از مشتری به خدمتگزار برود و برگردد. • زمان پاسخ: • یک RTT برای شروع اتصال TCP • یک RTT برای ارسال پیغام درخواست HTTP و دریافت اولین بایتهای پاسخ HTTP. • زمان لازم برای انتقال فایل total = 2RTT+transmit time
2: Application Layer HTTP مصر: خدمتگزار بعد از ارسال پاسخ، اتصال را نمی بندد. پیغامهای بعدی HTTP بین مشتری/خدمتگزار از این اتصال باز استفاده میکند. مشتری هر وقت با یک شئ مواجه شد آنرا درخواست میکند. برای دریافت تمام اشیاء به یک RTT نیاز است. HTTP مصر • مشکلات HTTP غیر مصر: • به ازای هر شی به ۲ RTT نیاز است. • برای هر اتصال TCP، باید سربار سیستم عامل را نیز تحمل کنیم. • مرورگرها معمولاً از چندین اتصال موازی TCP برای دریافت اشیاء استفاده میکنند.
2: Application Layer پیغام درخواست HTTP • دو نوع پیغام HTTP داریم: request, response • پیغام درخواست: • ASCII (فرمت قابل خواندن توسط انسان) خط درخواست: (GET, POST, HEAD commands) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (یک CR(carriage return) و LF(line feed) اضافی) خطوط سرآیند CR و LF نشان دهنده ی آخر پیغام هستند.
2: Application Layer قالب عمومی پیغام درخواست در HTTP
2: Application Layer متد:URL از متد GET استفاده میکند. ورودی از طریق فیلد URL در خط درخواست ارسال میشود. بارگذاری ورودیهای فرم • متدPost : • برای صفحاتی که مقدار ورودیها زیاد است. • ورودیهای فرم از طریق بدنهی پیغام ارسال میشود. www.somesite.com/animalsearch?monkeys&banana
2: Application Layer HTTP/1.1 GET, POST, HEAD PUT به خدمتگزار میگوید که فایل موجود در قسمت بدنه را در مسیری که توسط فیلد URL تعیین میشود قرار دهد. DELETE به خدمتگزار میگوید که فایل موجود در مسیری که توسط فیلد URL تعیین میشود را حذف کند. انواع Method • HTTP/1.0 • GET • POST • HEAD • شبیه Get است با این تفاوت که از خدمتگزار می خواهد که برای شی درخواست شده قسمت بدنه را پر نکند و فقط خطوط سرآیند را برگرداند.
2: Application Layer پیغام پاسخ HTTP خط وضعیت (کد وضعیت پروتکل و توضیحات آن) HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data ... خطوط سرآیند داده، مثلاً فایل HTML درخواستی
2: Application Layer کدهای وضعیت پاسخ در HTTP در خط اول پاسخ خدمتگزار به مشتری قرار دارد. چند نمونه از کدها: • 200 OK • درخواست موفقیت آمیر بود و شی درخواستی در ادامه ی پیغام قرار دارد. 301 Moved Permanently • شی درخواستی به مکان جدیدی منتقل شده است. مکان جدید در ادامه ی پیغام قرار دارد. (Location:) 400 Bad Request • خدمتگزار پیغام درخواست را نمی فهمد. 404 Not Found • سند درخواستی پیدا نشد. 505 HTTP Version Not Supported
2: Application Layer آزمایش HTTP • ۱-با telnet به خدمتگزار مورد نظر خود وصل شوید. ارتباط TCP را روی پورت ۸۰ میزبان cis.poly.edu. باز میکند. هر چه تایپ کنید به پورت ۸۰ این میزبان ارسال خواهد شد. telnet remus.rutgers.edu 80 ۲-درخواست GET HTTP را تایپ کنید. دقت کنید که CR را دوبار بزنید تا پیغام ارسال شود. این درخواست یک درخواست GET حداقل اما کامل است. GET /~rmartin/ HTTP/1.1 Host: remus.rutgers.edu ۳-به جوابی که خدمتگزار HTTP میفرستد دقت کنید.
2: Application Layer مثال: علی میخواهد از طریق کامپیوتر خود به اینترنت وصل شود. و یک سایت تجاری را برای اولین بار ببیند. وقتی که اولین درخواست به سایت برسد، سایت موارد زیر را ایجاد میکند: یک ID یکتا یک ردیف در پایگاه داده برای این ID حالت کاربر در خدمتگزار: کوکی ها • خیلی از سایتها از کوکی استفاده میکنند. • چهار جزء: • ۱- خط سرآیند کوکی در پیغام پاسخ HTTP • ۲- خط سرآیند کوکی در پیغام درخواست HTTP • ۳- فایل کوکی که در طرف کاربر ذخیره میشود و توسط مرورگر کاربر مدیریت میگردد. • ۴- یک پایگاه داده در سایت
2: Application Layer ebay 8734 usual http request msg Amazon server creates ID 1678 for user usual http response Set-cookie: 1678 create entry ebay 8734 amazon 1678 usual http request msg cookie: 1678 cookie- specific action access usual http response msg access ebay 8734 amazon 1678 usual http request msg cookie: 1678 cookie- spectific action usual http response msg حالت کاربر در خدمتگزار: کوکی ها (ادامه ..) client server cookie file backend database one week later:
2: Application Layer کوکی ها (ادامه..) ملاحظه • کوکی و حریم خصوصی • کوکی به سایت اجازه میدهد که در مورد شما مطالبی یاد بگیرد. • ممکن است اسم و ایمیل خود را به سایتها بدهید. • مزایای کوکی: • صدور مجوز • سبد خرید • ارائه پیشنهاد به کاربر • وضعیت جلسهی کاربر • نحوه ی نگهدار ی حالت: • دو طرف ارتباط حالت تراکنشهای انجام شده را نگهداری میکنند. • کوکی: حالت از طریق پیغامهای http حمل میشود.
2: Application Layer HTTP request HTTP request HTTP response HTTP response HTTP request HTTP response حافظهی نهان (خدمتگزار میانجی) هدف: برآورده کردن درخواست کاربر بدون درگیر کردن خدمتگزار. • کاربر مرورگر را تنظیم میکند تا از حافظهی نهان استفاده کند. • مرورگر تمام درخواستهای HTTP را به حافظهی نهان میفرستد. • اگر شی در حافظهی نهان باشد، شی را بر میگرداند. • در غیر این صورت، حافظهی نهان شی را از خدمتگزار اصلی درخواست کرده و جواب را به مشتری برمی گرداند. origin server Proxy server client client origin server
2: Application Layer دلایل استفاده از حافظهی نهان در وب کاهش زمان پاسخ به درخواستهای کاربر کاهش ترافیک روی لینک دسترسی سازمان به اینترنت. به ISP های ضعیف اجازه میدهد تا بهتر کار کنند. استفاده از حافظهی نهان در وب • حافظهی نهان هم به عنوان مشتری و هم به عنوان خدمتگزار عمل میکند. • معمولاً، حافظهی نهان توسط ISP نصب میشود.
2: Application Layer مثال حافظهی نهان origin servers • مفروضات • اندازه ی متوسط شی ۱۰۰۰۰۰ بیت است. • در هر ثانیه ۱۵ درخواست به خدمتگزارها ارسال می شود. • تاخیر رفت و برگشت مسیریاب تا هر کدام از خدمتگزارها برابر ۲ ثانیه است. در نتیجه: • بهرهوری LAN برابر ۱۵٪ خواهد بود. • بهرهوری لینک دسترسی برابر ۱۰۰٪ خواهد بود. • total delay = Internet delay + access delay + LAN delay = 2 sec + minutes + milliseconds public Internet 1.5 Mbps access link institutional network 10 Mbps LAN institutional cache
2: Application Layer مثال حافظهی نهان (ادامه) origin servers • یک راه حل: • پهنای باند لینک دسترسی را به ۱۰مگابایت در ثانیه افزایش دهید. در نتیجه: • بهرهوری LAN برابر ۱۵٪ خواهد بود. • بهرهوری لینک دسترسی برابر ۱۵٪ خواهد بود. • Total delay = Internet delay + access delay + LAN delay = 2 sec + msecs + msecs public Internet 10 Mbps access link institutional network 10 Mbps LAN institutional cache
2: Application Layer مثال حافظهی نهان (ادامه ...) origin servers • راه حل: نصب حافظهی نهان • فرض کنید نرخ بودن دادهها در حافظهی نهان برابر ۰.۴ است. در نتیجه: • ۴۰٪ درخواستها بلافاصله پاسخ داده میشوند. • ۶۰٪ درخواستها از طریق خدمتگزار اصلی جواب داده میشوند. • بهرهوری لینک دسترسی به ۶۰٪ کاهش مییابد و تاخیر پایین میايد (مثلاً 10 ms) • total avg delay = Internet delay + access delay + LAN delay = .6*(2.01) secs + .4*milliseconds < 1.4 secs public Internet 1.5 Mbps access link institutional network 10 Mbps LAN institutional cache
2: Application Layer HTTP response HTTP/1.0 304 Not Modified GET شرطی server cache • هدف: اگر نسخه ی موجود در حافظهی نهان آخرین نسخه است، شی را نفرست. • تاریخ ذخیره ی داده در حافظهی نهان را در درخواست HTTP کپی کنید. If-modified-since: <date> • جواب خدمتگزار مشخص میکند که آیا نسخهی حافظهی نهان به روز است: HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> شی تغییر نکرده است. HTTP request msg If-modified-since: <date> شی تغییر کرده است. HTTP response HTTP/1.0 200 OK <data>