2. bölüm : uygulama katmanı

29
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ı

Upload: samson-hansen

Post on 01-Jan-2016

42 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: 2. Bölüm :  Uygulama Katmanı

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ı

Page 2: 2. Bölüm :  Uygulama Katmanı

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

Page 3: 2. Bölüm :  Uygulama Katmanı

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ı

Page 4: 2. Bölüm :  Uygulama Katmanı

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

Page 5: 2. Bölüm :  Uygulama Katmanı

2:UYGULAMA KATMANI 2-5

Uygulama Mimarileri

İstemci-sunucu P2P Hibrit istemci-sunucu ve P2P

Page 6: 2. Bölüm :  Uygulama Katmanı

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

Page 7: 2. Bölüm :  Uygulama Katmanı

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

Page 8: 2. Bölüm :  Uygulama Katmanı

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

Page 9: 2. Bölüm :  Uygulama Katmanı

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

Page 10: 2. Bölüm :  Uygulama Katmanı

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

Page 11: 2. Bölüm :  Uygulama Katmanı

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

Page 12: 2. Bölüm :  Uygulama Katmanı

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

Page 13: 2. Bölüm :  Uygulama Katmanı

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

Page 14: 2. Bölüm :  Uygulama Katmanı

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

Page 15: 2. Bölüm :  Uygulama Katmanı

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

Page 16: 2. Bölüm :  Uygulama Katmanı

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

Page 17: 2. Bölüm :  Uygulama Katmanı

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ı

Page 18: 2. Bölüm :  Uygulama Katmanı

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

Page 19: 2. Bölüm :  Uygulama Katmanı

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

Page 20: 2. Bölüm :  Uygulama Katmanı

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

Page 21: 2. Bölüm :  Uygulama Katmanı

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

Page 22: 2. Bölüm :  Uygulama Katmanı

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

Page 23: 2. Bölüm :  Uygulama Katmanı

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

Page 24: 2. Bölüm :  Uygulama Katmanı

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

Page 25: 2. Bölüm :  Uygulama Katmanı

2:UYGULAMA KATMANI 2-25

HTTP istek mesajı: genel format

Page 26: 2. Bölüm :  Uygulama Katmanı

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

Page 27: 2. Bölüm :  Uygulama Katmanı

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

Page 28: 2. Bölüm :  Uygulama Katmanı

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ı

Page 29: 2. Bölüm :  Uygulama Katmanı

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: