300 likes | 520 Views
2.1 Ağ uygulamalarının esasları 2.2 Web and HTTP 2.3 FTP 2.4 Ele k troni k Posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P dosya paylaşımı. 2. Bölüm : Uygulama Katmanı. Amaç : Ağ uygulama protokollarının kavramsal ve işletim yönleri iletim - katmanı servi s model leri İstemci-sunucu
E N D
2.1 Ağ uygulamalarının esasları 2.2 Web and HTTP 2.3 FTP 2.4 ElektronikPosta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P dosya paylaşımı 2.Bölüm: Uygulama Katmanı 2:UYGULAMA KATMANI
Amaç: Ağ uygulama protokollarının kavramsal ve işletim yönleri iletim-katmanı servis modelleri İstemci-sunucu Eşten-eşe (P2P) Yaygın kullanılan protokoller HTTP FTP SMTP / POP3 / IMAP DNS 2.Bölüm: Uygulama Katmanı 2:UYGULAMA KATMANI
E-posta Web Chat Uzaktan erişim P2P dosya paylaşımı Çok kullanıcılı ağ oyunları Depolanmış video parçası akışı Internet telefonu Gerçek zaman video konferansı Bazı ağ uygulamaları 2:UYGULAMA KATMANI
Programlar Farklı uç sistemlerde çalışır Ağ üzerinden haberleşir e.g., Web: Web sunucusuyazılımıinternet gezgini vasıtasıyla ile haberleşir Yazılımlar ağ merkezindeki cihazlar düşünülerek yazılmazlar Ağ merkezindeki cihazlar uygulama katmanında çalışmazlar Bu tasarım uygulamaların geliştirmelerine müsait bir ortam hazırlar uygulama iletim ağ link fiziksel uygulama iletim ağ link fiziksel uygulama iletim ağ link fiziksel Ağ uygulaması oluşturmak 2:UYGULAMA KATMANI
Uygulama Mimarileri • İstemci-sunucu • P2P • Hibritistemci-sunucu ve P2P 2:UYGULAMA KATMANI
İstemci sunucu mimarisi sunucu: • Her zaman açık olan host • kalıcı IP adresi istemci: • sunucuyla haberleşir • arada bir bağlantı sağlayabilir • değişken IP adresleri olabilir • Birbirleriyle direkt olarak haberleşmezler 2:UYGULAMA KATMANI
Saf P2P mimarisi • Her zaman açık olan bir sunucu yok • herhangi iki eşdirekt olarak haberleşebilir • eşler geçici olarak bağlanabilir ve IP adresi değiştirebilir • örnek: Gnutella Ölçeklenebilirliği yüksek Fakat idaresi zor 2:UYGULAMA KATMANI
Hibrit istemci-sunucu ve P2P Napster • Dosya transferi P2P • Dosya aramasımerkezi: • Eşlermerkezi sunucuda içeriklerini kaydederler • Eşler aynı merkezi sunucuda aradıkları içeriği bulmak için sorgulama yaparlar Chat • İki kullanıcı arasındaki chat P2P • Çevrimiçi olup olmadığının algılaması merkezi: • Kullanıcılar çevrimiçi olduklarında IP adreslerini merkezi sunucuya kaydederler • Kullanıcı arkadaşlarının IP adreslerini bulmak için merkezi sunucuya başvurur 2:UYGULAMA KATMANI
İşlem:hostta çalışan program. aynı hostta iki işlem birbiriyle işletim sistemiyle belirlenen şekilde haberleşir. Farklı hostlardaki işlemler mesaj alış-verişiyle haberleşir. İstemciişlemi:haberleşmeyi başlatan işlem Sunucu işlemi:haberleşmek üzere bağlantı kurulmasını bekleyen işlem İşlemlerhaberleşiyor • Note: P2P mimarisine sahip uygulamalar istemci ve sunucu işlemlerinin her ikisine de sahipler 2:UYGULAMA KATMANI
host veya sunucu host veya sunucu işlem işlem soket soket TCP bufferlar TCP bufferlar Soketler • İşlemler soketleri aracılığıyla mesaj alış-verişi yaparlar • soket kapı ile aynı mantıkla çalışır • Gönderici işlem mesaja çıkış kapısını gösterir • Gönderici işlem, alıcı işlemlere de mesajları getiren kapının diğer tarafındaki iletim yapısına güvenir Uygulama geliştiricisinin kontrolünde Internet OS kontrolünde • API(Application Programming Interface): (1) iletim protokolünün seçimi; (2) birkaç parametreyi değiştirme yetkisi 2:UYGULAMA KATMANI
Bir işlemin mesajları alabilmesi için kimliği olmalı Bir host 32-bit IP adresine sahip S:sadece işlemin çalıştığı hostun IP adresi işlemi tanımlamaya yeterli mi? Cevap:Hayır, birçok işlem aynı hostta aynı anda çalışıyor olabilir Tanımlayıcı IP numarasını veport numarasını içermelidir. Örnek port numaraları: HTTP sunucu: 80 Mail sunucu: 25 Addresleme işlemleri 2:UYGULAMA KATMANI
Mesaj tiplerini, e.g., istek, cevap Message yazılım formatını: Mesajlarda hangi alanların olduğunu İşlemlerin ne zaman ve nasıl mesaj gönderdiklerinin ve cevapladıklarının kurallarını protokoller: RFClerle tanımlanmıştır Birbirleri ile çalışabilirler e.g., HTTP, SMTP Uygulama katmanı protokolü şunları tanımlar: 2:UYGULAMA KATMANI
Veri kaybı Bazı uygulamalar bir miktar veri kaybına tolere edebilir (e.g., ses) Diğer uygulamalar (e.g., dosya transferi, telnet) 100% güvenilir veri transferi ister Zamanlama Bazı uygulamalar (e.g., Internet telefonu, interaktifoyunlar) gecikmenin az olmasını ister Bir iletim servis uygulaması neye ihtiyaç duyar? Bant genişliği • Bazı uygulamaların (e.g., multimedia) çalışabileceği minimum bant genişliği vardır • Diğer uygulamalarne kadar bant genişliği alırlarsa onla idare ederler 2:UYGULAMA KATMANI
Bazı uygulamalar için Transport servis gereksinimleri hayır hayır hayır evet, 100’s msn evet, birkaç sn evet, 100’s msec evetvehayır Uygulama Dosya transferi e-posta Web belgeleri Gerçek-zaman ses/görüntü Depolanmış ses/görüntü interaktifoyunlar chat Zaman hassasiyeti Bant genişliği elastik elastik elastik ses: 5kbps-1Mbps video:10kbps-5Mbps aynı birkaç kbps elastik Veri kaybı Kayıpsız Kayıpsız Kayıpsız Kayıplı Kayıplı Kayıplı Kayıpsız 2:UYGULAMA KATMANI
Internet uygulamaları: uygulama, iletim protokolleri Uygulama katmanı protokolü SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] özel (e.g. RealNetworks) özel (e.g., Dialpad) Altındaki iletim protokolü TCP TCP TCP TCP TCP veya UDP Tipik olarak UDP Uygulama e-posta Uzaktan erişim Web Dosya transferi akan multimedia Internet telefonu 2:UYGULAMA KATMANI
www.someschool.edu/someDept/pic.gif path name host name Web ve HTTP Web sayfasınesneler içerir • Nesne HTML dosyası, JPEG resim, Java applet, ses dosyası,… olabilir • Web sayfasıbirçok nesneye referansı olan temel bir HTML(Hyper Text Markup Language )-dosyasıiçerir • Bütün nesneler birURL(Uniform Resource Locator)ile adreslenebilir • Örnek URL: 2:UYGULAMA KATMANI
HTTP: hypertext transfer protocol Web’inuygulama katmanı protokolü istemci/sunucu modeli istemci:Web nesnelerini isteyen ve gösteren gezgin sunucu:isteklere cevap veren ve nesneleri gönderen web sunucusu HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 HTTP HTTP isteği PC internet Explorer çalışıyor HTTP cevabı HTTP isteği Web sunucusu HTTP cevabı Mac Navigator çalışıyor 2:UYGULAMA KATMANI
TCP kullanır: İstemci, sunucu ile arasında TCP bağlantısı başlatır, port 80 sunucu TCP bağlantısını kabul eder HTTP mesajlarıinternet gezgini ve web sunucusu arasında gider gelir TCP bağlantısı kapatılır HTTP is “durumsuz” Sunucu istemcinin geçmiş istekleri hakkında bilgi depolamaz HTTP not Durum bilgisi tutan protokoller karmaşıktır! • Geçmiş durum takip edilmeli • Eğer sunucu/istemci çökerse durum bilgileri farklılaşabilir 2:UYGULAMA KATMANI
Kalıcı olmayan HTTP En fazla bir nesne TCP bağlantısı ile gönderilir. HTTP/1.0 kalıcı olmayan HTTP kullanır. Kalıcı HTTP Tek bir TCP bağlantısı üzerinden birden fazla nesne gönderilebilir. HTTP/1.1 kalıcı HTTP kullanır HTTP bağlantıları 2:UYGULAMA KATMANI
Kullanıcı aşağıdaki URL’yi ygirerwww.someSchool.edu/someDepartment/home.index 1a. HTTP istemcisi HTTP sunucusuna bağlantı başlatır(www.someSchool.edu, port 80) Kalıcı olmayan HTTP (metin ve 10 Jpeg’e referans içeriyor 1b.Port 80 den TCP bağlantısı bekleyen www.someSchool.edu hostu bağlantıyı kabul eder ve HTTP istemcisine bildirir 2. HTTPistemcisi HTTP istek messajını (URL’yi içeren) TCP bağlantı soketine gönderir. Messajistemcinin someDepartment/home.index nesnesini istediğini belirtir 3. HTTP sunucusuistek mesajını alır, istenen nesneyi de içeren cevap mesajınıoluşturarak kendi soketine gönderir. zaman 2:UYGULAMA KATMANI
5. HTTP istemcisi html dosyasını içeren mesajı alır ve gösterir. Bu dosyayı işlerken 10 tane referans jpeg nesnesi daha olduğunu fark eder Kalıcı olmayan HTTP 4. HTTP sunucusu TCP bağlantısını kapatır. zaman 6.1-5 adımları bu 10 jpeg nesnesi için tekrarlanır 2:UYGULAMA KATMANI
TCP Bağlantısı başlat RTT dosyayı iste Dosyayı iletme süresi RTT Dosya alındı zaman zaman Cevaplama süresi modeli RTT (Round Trip Time) tanımı:Gönderilen küçük bir paketin sunucuya gidip gelme zamanı. Cevaplama zamanı: • TCP bağlantı isteği için 1 RTT • HTTP isteği ve HTTP cevabının ilk bitlerinin dönmesi için 1RTT • Dosya iletim süresi toplam = 2RTT+iletim süresi 2:UYGULAMA KATMANI
Kalıcı olmayan HTTP sorunları: Her nesne için 2 RTT gerekli İşletim sistemi her nesnede TCP bağlantısını oluşturmak için meşgul olacak Fakat internet gezginleri genelde referans nesneler için paralel TCP bağlantısı açarlar Kalıcı HTTP Sunucu nesneyi gönderdikten sonra bağlantıyı açık tutar sonraki HTTP mesajları aynı bağlantı üzerinden gönderilir Ardışık olmayan Kalıcı: İstemci eğer bir önceki isteğe cevap alınmışsa yeni bir istek gönderir Herbir referans nesne için 1 RTT Ardışık Kalıcı: HTTP/1.1 İstemci gördüğü bütün referans nesneler için istekte bulunur Bütün referans nesneler için 1 RTT kadar az bir süre Kalıcı HTTP 2:UYGULAMA KATMANI
HTTP istek mesajı • İki tip HTTP messajı: istek, cevap • HTTP istek mesajı: • ASCII (insan tarafından okunabilen biçim) İstek satırı (GET, POST, HEAD komutları) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (enter) Başlık satırları Enter satırı, Mesajın sonun belirtir 2:UYGULAMA KATMANI
HTTP istek mesajı: genel format 2:UYGULAMA KATMANI
Post metodu: Web page genelde form girişi içerir Input sunucuya varlık gövdesi kısmında aktarılır URL metodu: GET metodunu kullanır Input istek satırının URL alanında aktarılır: form girişi yükleme www.somesite.com/animalsearch?monkeys&banana 2:UYGULAMA KATMANI
HTTP/1.0 GET POST HEAD Sunucudan nesneyi göndermemesini ister. Genelde hata ayıklama için kullanılır HTTP/1.1 GET, POST, HEAD PUT Dosyayı URL path’ine varlık gövdesi kısmında aktarır DELETE Belirtilen URL’deki dosyayı siler Method tipleri 2:UYGULAMA KATMANI
HTTP cevap mesajı Durum satırı (protokol durumkodu) 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 ... başlık satırları veri, e.g., istenilen HTML dosyası 2:UYGULAMA KATMANI
200 OK İstek başarılı, istenen nesne bu mesajda 301 Moved Permanently İstenen nesne taşındı, yeni yeri bu mesajda 400 Bad Request İstek mesajı sunucu tarafından anlaşılamadı 404 Not Found İstenen doküman sunucuda bulunamadı 505 HTTP Version Not Supported HTTP cevabıdurum kodları sunucu->istemci cevap mesajı ilk satırı. Birkaç örnek kod: 2:UYGULAMA KATMANI