2. bölüm : uygulama katmanı
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
2:UYGULAMA KATMANI 2-1
2.Bölüm: Uygulama Katmanı
2.1 Ağ uygulamalarının esasları 2.2 Web and HTTP 2.3 FTP 2.4 Elektronik Posta
• SMTP, POP3, IMAP
2.5 DNS 2.6 P2P dosya paylaşımı
2:UYGULAMA KATMANI 2-2
2.Bölüm: Uygulama Katmanı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:UYGULAMA KATMANI 2-3
Bazı ağ uygulamaları
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ı
2:UYGULAMA KATMANI 2-4
Ağ uygulaması oluşturmak
Programlar• Farklı uç sistemlerde çalışır• Ağ üzerinden haberleşir• e.g., Web: Web sunucusu
yazı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
uygulamailetim
ağlink
fiziksel
uygulamailetim
ağlink
fiziksel
uygulamailetim
ağlink
fiziksel
2:UYGULAMA KATMANI 2-5
Uygulama Mimarileri
İstemci-sunucu P2P Hibrit istemci-sunucu ve P2P
2:UYGULAMA KATMANI 2-6
İstemci sunucu mimarisisunucu:
• 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 2-7
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 2-8
Hibrit istemci-sunucu ve P2P
Napster• Dosya transferi P2P• Dosya araması merkezi:
• Eşler merkezi 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 2-9
İşlemler haberleşiyor
İş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.
İstemci işlemi: haberleşmeyi başlatan işlem
Sunucu işlemi: haberleşmek üzere bağlantı kurulmasını bekleyen işlem
Note: P2P mimarisine sahip uygulamalar istemci ve sunucu işlemlerinin her ikisine de sahipler
2:UYGULAMA KATMANI 2-10
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
işlem
TCP bufferlar
soket
host veyasunucu
işlem
TCP bufferlar
soket
host veyasunucu
Internet
OS kontrolünde
Uygulama geliştiricisinin kontrolünde
API(Application Programming Interface): (1) iletim protokolünün seçimi; (2) birkaç parametreyi değiştirme yetkisi
2:UYGULAMA KATMANI 2-11
Addresleme işlemleri 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ı ve port numarasını içermelidir.
Örnek port numaraları:• HTTP sunucu: 80• Mail sunucu: 25
2:UYGULAMA KATMANI 2-12
Uygulama katmanı protokolü şunları tanımlar:
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
2:UYGULAMA KATMANI 2-13
Bir iletim servis uygulaması neye ihtiyaç duyar?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, interaktif oyunlar) gecikmenin az olmasını ister
Bant genişliği Bazı uygulamaların
(e.g., multimedia) çalışabileceği minimum bant genişliği vardır
Diğer uygulamalar ne kadar bant genişliği alırlarsa onla idare ederler
2:UYGULAMA KATMANI 2-14
Bazı uygulamalar için Transport servis gereksinimleri
Uygulama
Dosya transferie-posta
Web belgeleriGerçek-zaman
ses/görüntüDepolanmış ses/görüntü
interaktif oyunlarchat
Veri kaybı
KayıpsızKayıpsızKayıpsızKayıplı
KayıplıKayıplıKayıpsız
Bant genişliği
elastikelastikelastikses: 5kbps-1Mbpsvideo:10kbps-5Mbpsaynı birkaç kbps elastik
hayırhayırhayırevet, 100’s msn
evet, birkaç snevet, 100’s msecevet ve hayır
Zaman hassasiyeti
2:UYGULAMA KATMANI 2-15
Internet uygulamaları: uygulama, iletim protokolleri
Uygulama
e-postaUzaktan erişim
Web Dosya transferi
akan multimedia
Internet telefonu
Uygulamakatmanı protokolü
SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]özel(e.g. RealNetworks)özel(e.g., Dialpad)
Altındakiiletim protokolü
TCPTCPTCPTCPTCP veya UDP
Tipik olarak UDP
2:UYGULAMA KATMANI 2-16
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 bir URL (Uniform Resource Locator) ile adreslenebilir
Örnek URL:www.someschool.edu/someDept/pic.gif
host name path name
2:UYGULAMA KATMANI 2-17
HTTP
HTTP: hypertext transfer protocol
Web’in uygulama 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
PC internetExplorer çalışıyor
Websunucusu
Mac Navigator çalışıyor
HTTP isteği
HTTP isteği
HTTP cevabı
HTTP cevabı
2:UYGULAMA KATMANI 2-18
HTTP
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
Durum bilgisi tutan protokoller karmaşıktır!
Geçmiş durum takip edilmeli
Eğer sunucu/istemci çökerse durum bilgileri farklılaşabilir
not
2:UYGULAMA KATMANI 2-19
HTTP bağlantıları
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
2:UYGULAMA KATMANI 2-20
Kalıcı olmayan HTTPKullanıcı aşağıdaki URL’yi ygirer www.someSchool.edu/someDepartment/home.index
1a. HTTP istemcisi HTTP sunucusuna bağlantı başlatır (www.someSchool.edu, port 80)
2. HTTP istemcisi HTTP istek messajını (URL’yi içeren) TCP bağlantı soketine gönderir. Messaj istemcinin someDepartment/home.index nesnesini istediğini belirtir
1b. Port 80 den TCP bağlantısı bekleyen www.someSchool.edu hostu bağlantıyı kabul eder ve HTTP istemcisine bildirir
3. HTTP sunucusu istek mesajını alır, istenen nesneyi de içeren cevap mesajını oluşturarak kendi soketine gönderir.
zaman
(metin ve 10 Jpeg’e
referans içeriyor
2:UYGULAMA KATMANI 2-21
Kalıcı olmayan HTTP
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
6. 1-5 adımları bu 10 jpeg nesnesi için tekrarlanır
4. HTTP sunucusu TCP bağlantısını kapatır.
zaman
2:UYGULAMA KATMANI 2-22
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üresitoplam = 2RTT+iletim
süresi
Dosyayıiletme süresi
TCPBağlantısı başlat RTT
dosyayıiste
RTT
Dosya alındı
zaman zaman
2:UYGULAMA KATMANI 2-23
Kalıcı HTTP
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
2:UYGULAMA KATMANI 2-24
HTTP istek mesajı
İki tip HTTP messajı: istek, cevap HTTP istek mesajı:
• ASCII (insan tarafından okunabilen biçim)
GET /somedir/page.html HTTP/1.1Host: www.someschool.edu User-agent: Mozilla/4.0Connection: close Accept-language:fr
(enter)
İstek satırı(GET, POST,
HEAD komutları)
Başlık satırları
Enter satırı, Mesajın sonun belirtir
2:UYGULAMA KATMANI 2-25
HTTP istek mesajı: genel format
2:UYGULAMA KATMANI 2-26
form girişi yükleme
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:
www.somesite.com/animalsearch?monkeys&banana
2:UYGULAMA KATMANI 2-27
Method tipleri
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
2:UYGULAMA KATMANI 2-28
HTTP cevap mesajı
HTTP/1.1 200 OK Connection closeDate: 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 ...
Durum satırı(protokol
durum kodu)
başlık satırları
veri, e.g., istenilen
HTML dosyası
2:UYGULAMA KATMANI 2-29
HTTP cevabı durum kodları
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
sunucu->istemci cevap mesajı ilk satırı.Birkaç örnek kod: