لایه ی کاربرد مظفر بگ محمدی 2: Application Layer
لایه ی کاربرد اصول لایه ی کاربرد Web و HTTP FTP , TFTP TELNET پست الکترونیکی SMTP, POP3, IMAP DNS کاربردهای P2P امنیت 2: Application Layer
بعضی کاربردهای شبکه تلفن IP e-mail ویدیوی بلادرنگ وب کنفرانس ویدیویی محاسبات گرید دانلود فایل e-mail وب پیغام فوری وارد شدن به سیستم از راه دور اشتراک فایل P2P بازیهای شبکهای چندکاربره پخش کلیپهای ویدیویی ذخیره شده 2: Application Layer
معماریهای کاربرد مشتری-خدمتگزار نظیر به نظیر (P2P)
معماری مشتری-خدمتگزار خدمتگزار: یک میزبان دائما روشن آدرس IP دائم و ایستا مجموعه ای از سرورها برای افزایش مقیاس پذیری مشتری: با خدمتگزار ارتباط برقرار می کند. ممکن است به صورت متناوب وصل شود. ممکن است آدرس IP دینامیک داشته باشد. مشتریها مستقیماً با هم ارتباطی ندارند. client/server
معماری P2P خالص 2: Application Layer سروری که همیشه روشن باشد نداریم. سروری که همیشه روشن باشد نداریم. نقاط انتهایی می توانند مستقیما با هم ارتباط داشته باشند. ارتباط نظیرها متناوب است و از آدرسهای دینامیک استفاده میکنند. مقیاس پذیر ی آن بالا است اما مدیریت آن سخت است. peer-peer 2: Application Layer
ترکیب مشتری-خدمتگزار و P2P Skype یک کاربرد IP تلفنی نظیر به نظیر خدمتگزار مرکزی جهت پیدا کردن آدرس طرف مقابل ارتباط مشتری-مشتری: مستقیم (بدون دخالت سرور) Instant messaging گفتگوی (چت) بین دو کاربر P2P است. خدمتگزار مرکزی برای تشخیص وجود مشتری و مکان آن مشتری آدرس IP خود را موقع ورود به سیستم در سرور مرکزی ثبت می کند. کاربر از سرور مرکزی برای پیدا کردن رفیقهای خود استفاده می کند. 2: Application Layer
تعریف پروتکلهای لایه ی کاربرد انواع پیغامهای مبادله شده مثل درخواست، پاسخ قالب یا محتوی پیغام: چه فیلدهایی در پیغام هست و چگونه از هم جدا شدهاند. معنای پیغامها معنای اطلاعات موجود در فیلدها قوانینی که مشخص میکنند که کی و چگونه پیغامها را پردازش کنیم و به آنها پاسخ دهیم. پروتکلهای عمومی: در RFC ها تعریف شدهاند. کاربردهای هم نوع باید با هم سازگار باشند. مثل HTTP, SMTP پروتکلهای اختصاصی: مثل Skype 2: Application Layer
به چه خدماتی از لایه انتقال نیاز داریم؟ گذردهی بعضی کاربردها (مثل چندرسانهای) به یک نرخ گذردهی حداقل نیاز دارند. بقیه ی کاربردها (کاربردهای کشسان) میتوانند خود را با تغییرات نرخ گذردهی وفق دهند. امنیت رمزگذاری، جامعیت داده گم شدن بستهها بعضی کاربردها (مثل صوت) می توانند گم شدن بسته ها را تحمل کنند. بعضی کاربردها (مثل انتقال فایل و telnet) به یک خدمت ۱۰۰٪ مطمئن نیاز دارند. زمانبندی بعضی کاربردها (مثل تلفن اینترنتی و بازیهای تعاملی) به تاخیر خیلی کمی نیاز دارند. 2: Application Layer
نیازهای کاربردهای متعارف Application file transfer e-mail Web documents real-time audio/vid stored audio/video interactive games instant messaging Data loss no loss loss-tolerant Throughput elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up Time Sensitive no yes, 100’s msec yes, few secs yes and no 2: Application Layer
پروتکلهای لایه ی انتقال خدمتTCP : اتصال گرا: ابتدا باید یک اتصال بین فرآیندهای مشتری و خدمتگزار برقرار شود. انتقال قابل اعتماد بین فرآیندهای فرستنده و گیرنده کنترل جریان: فرستنده سریع گیرنده کند را دست پاچه نمیکند. کنترل ازدحام: فرستنده در هنگام وقوع ازدحام سرعت خود را پایین میآورد. فاقد: زمانبندی، تضمین نرخ گذردهی حداقل، امنیت خدمت UDP: انتقال داده غیرقابل اعتماد بین دو فرآیند فاقد: فاز برقراری، قابلیت اعتماد، کنترل جریان، کنترل ازدحام، تضمین گذردهی، زمانبندی، یا امنیت سوال: چرا UDP وجود دارد؟ 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 or UDP typically UDP Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony 2: Application Layer
Web و HTTP ابتدا چند واژهی متداول را معرفی میکنیم. صفحه ی وب شامل اشیاء است. اشیاء میتوانند فایل HTML، تصویر JPEG، اپلت Java، فایل صوتی و ... باشند. هر صفحه ی وب شامل یک فایل HTML پایه که خود شامل ارجاع به اشیاء دیگر است. هر شئ توسط URL آدرسدهی شده است. مثالی از URL: www.someschool.edu/someDept/pic.gif host name path name 2: Application Layer
مرور کلی HTTP HTTP: hypertext transfer protocol 2: Application Layer پروتکل لایه ی کاربرد وب مدل مشتری-خدمتگزار مشتری: مرورگری است که اشیاء وب را درخواست و دریافت میکند و آنها را نمایش میدهد. خدمتگزار یک خدمتگزار وب است که در پاسخ به درخواستها اشیاء را میفرستد. 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 استفاده میکند: خدمتگزار درخواست برقراری اتصال مشتری را میپذیرد. مرورگر و خدمتگزار وب پیغامهای HTTP را با هم مبادله میکنند. ارتباط TCP بسته میشود. HTTP بدون حالت است. خدمتگزار هیچ اطلاعاتی راجع به درخواستهای قبلی مشتری نگهداری نمیکند. ملاحظه پروتکلهایی که از حالت نگهداری میکنند خیلی پیچیده هستند. تاریخچه گذشته (حالت) باید نگهداری شود. اگر مشتری یا خدمتگزار در حین ارتباط خراب شود، دید دو نفر از حالت با هم همخوانی ندارد و باید تطبیق داده شوند. 2: Application Layer
اتصالات HTTP HTTP غیر مصر روی هر اتصال TCP حداکثر یک شئ میتوان فرستاد. HTTP مصر میتوان روی یک اتصال TCP بین مشتری و خدمتگزار چندین شئ را جابجا کرد. 2: Application Layer
HTTP غیر مصر زمان 2: Application Layer فرض کنید URL روبرو www.someSchool.edu/home.index شامل ۱۰ ارجاع متنی به تصاویر jpeg باشد. ا-الف: مشتری HTTP ارتباط TCP را با فرآیند خدمتگزار HTTP در www.someSchool.edu روی پورت ۸۰شروع میکند. زمان ا-ب: خدمتگزار HTTP در میزبان www.someSchool.edu که منتظر دریافت درخواست برقراری اتصال روی پورت ۸۰ است، اتصال را میپذیرد و به مشتری اطلاع میدهد. ۲: مشتری HTTP پیغام درخواست HTTP شامل URL فوق را روی سوکت اتصال TCP میفرستد. پیغام نشان دهنده ی این است که مشتری شی /home.index را میخواهد. ۳: خدمتگزار HTTP درخواست را دریافت میکند، پیغام پاسخ که شامل شی موردنظر است را تشکیل میدهد و روی سوکت ارسال می کند. 2: Application Layer
HTTPغیر مصر (ادامه...) زمان 2: Application Layer ۴: خدمتگزار HTTP ارتباط TCP را میبندد. ۵: مشتری HTTP پیغام پاسخ که شامل فایل HTML را دریافت میکند و فایل را نمایش می دهد. بعد از تجزیه ی فایل متوجه میشود که ۱۰ ارجاع به اشیاء jpeg در آن قرار دارد. زمان ۶: مراحل ۱ تا ۵ برای هر کدام از اشیاء jpeg ده بار تکرار می شود. 2: Application Layer
HTTP غیر مصر: زمان پاسخ 2: Application Layer تعریف RTT: زمانی که لازم است تا یک بستهی کوچک از مشتری به خدمتگزار برود و برگردد. زمان پاسخ: یک RTT برای شروع اتصال TCP یک RTT برای ارسال پیغام درخواست HTTP و دریافت اولین بایتهای پاسخ HTTP. زمان لازم برای انتقال فایل total = 2RTT+transmit time زمان لازم برای انتقال فایل شروع اتصال TCP RTT درخواست فایل دریافت فایل زمان 2: Application Layer
HTTP مصر 2: Application Layer مشکلات HTTP غیر مصر: HTTP مصر: به ازای هر شی به ۲ RTT نیاز است. برای هر اتصال TCP، باید سربار سیستم عامل را نیز تحمل کنیم. مرورگرها معمولاً از چندین اتصال موازی TCP برای دریافت اشیاء استفاده میکنند. HTTP مصر: خدمتگزار بعد از ارسال پاسخ، اتصال را نمی بندد. پیغامهای بعدی HTTP بین مشتری/خدمتگزار از این اتصال باز استفاده میکند. مشتری هر وقت با یک شئ مواجه شد آنرا درخواست میکند. برای دریافت تمام اشیاء به یک RTT نیاز است. 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
بارگذاری ورودیهای فرم متدPost : برای صفحاتی که مقدار ورودیها زیاد است. برای صفحاتی که مقدار ورودیها زیاد است. ورودیهای فرم از طریق بدنهی پیغام ارسال میشود. متد:URL از متد GET استفاده میکند. ورودی از طریق فیلد URL در خط درخواست ارسال میشود. www.somesite.com/animalsearch?monkeys&banana 2: Application Layer
انواع Method HTTP/1.0 GET POST HEAD HTTP/1.1 GET, POST, HEAD PUT به خدمتگزار میگوید که فایل موجود در قسمت بدنه را در مسیری که توسط فیلد URL تعیین میشود قرار دهد. DELETE به خدمتگزار میگوید که فایل موجود در مسیری که توسط فیلد URL تعیین میشود را حذف کند. 2: Application Layer
پیغام پاسخ HTTP 2: Application Layer خط وضعیت (کد وضعیت پروتکل و توضیحات آن) HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Uni x) 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
telnet remus.rutgers.edu 80 آزمایش 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
حالت کاربر در خدمتگزار: کوکی ها (ادامه ..) حالت کاربر در خدمتگزار: کوکی ها (ادامه ..) client server ebay 8734 usual http request msg Amazon server creates ID 1678 for user create entry cookie file usual http response Set-cookie: 1678 ebay 8734 amazon 1678 usual http request msg cookie: 1678 cookie- specific action access usual http request msg cookie: 1678 cookie- spectific action access usual http response msg backend database one week later: ebay 8734 amazon 1678 usual http response msg 2: Application Layer
کوکی ها (ادامه..) 2: Application Layer ملاحظه کوکی و حریم خصوصی کوکی به سایت اجازه میدهد که در مورد شما مطالبی یاد بگیرد. ممکن است اسم و ایمیل خود را به سایتها بدهید. مزایای کوکی: صدور مجوز سبد خرید ارائه پیشنهاد به کاربر وضعیت جلسهی کاربر نحوه ی نگهدار ی حالت: دو طرف ارتباط حالت تراکنشهای انجام شده را نگهداری میکنند. کوکی: حالت از طریق پیغامهای http حمل میشود. 2: Application Layer
حافظهی نهان (خدمتگزار میانجی) هدف: برآورده کردن درخواست کاربر بدون درگیر کردن خدمتگزار. origin server کاربر مرورگر را تنظیم میکند تا از حافظهی نهان استفاده کند. مرورگر تمام درخواستهای HTTP را به حافظهی نهان میفرستد. اگر شی در حافظهی نهان باشد، شی را بر میگرداند. در غیر این صورت، حافظهی نهان شی را از خدمتگزار اصلی درخواست کرده و جواب را به مشتری برمی گرداند. HTTP response Proxy server HTTP request client HTTP request HTTP response client origin server 2: Application Layer
استفاده از حافظهی نهان در وب دلایل استفاده از حافظهی نهان در وب کاهش زمان پاسخ به درخواستهای کاربر کاهش ترافیک روی لینک دسترسی سازمان به اینترنت. به ISP های ضعیف اجازه میدهد تا بهتر کار کنند. حافظهی نهان هم به عنوان مشتری و هم به عنوان خدمتگزار عمل میکند. معمولاً، حافظهی نهان توسط ISP نصب میشود. 2: Application Layer
مثال حافظهی نهان 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
If-modified-since: <date> If-modified-since: <date> GET شرطی cache server HTTP request msg If-modified-since: <date> هدف: اگر نسخه ی موجود در حافظهی نهان آخرین نسخه است، شی را نفرست. تاریخ ذخیره ی داده در حافظهی نهان را در درخواست HTTP کپی کنید. If-modified-since: <date> جواب خدمتگزار مشخص میکند که آیا نسخهی حافظهی نهان به روز است: HTTP/1.0 304 Not Modified شی تغییر نکرده است. HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> شی تغییر کرده است. HTTP response HTTP/1.0 200 OK <data> 2: Application Layer