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



Benzer belgeler
Bilgisayar Programcılığı Uzaktan Eğitim Programı. e-bilg 121 AĞ TEKNOLOJİLERİNİN TEMELLERİ Öğr. Gör. Bekir Güler

Bilgisayar Programcılığı Uzaktan Eğitim Programı. e-bilg 121 AĞ TEKNOLOJİLERİNİN TEMELLERİ Öğr. Gör. Bekir Güler

BM 402 Bilgisayar Ağları (Computer Networks)

Uygulama katmanı ve protokolları (Uygulama+Sunum+Oturum)

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

Bölüm3 Taşıma Katmanı. Transport Layer 3-1

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 1

Bilgisayar Programcılığı

İNTERNET VE BİLGİ AĞLARININ KULLANIMI

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

BM 402 Bilgisayar Ağları (Computer Networks)

BM 402 Bilgisayar Ağları (Computer Networks)

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

BİLGİSAYAR AĞLARI VE İLETİŞİM

Web Tasarımının Temelleri

Internet Nedir? Devlet Kurumları. Internet Servis Sağlayıcılar. Lokal Ağ. Eğitim Kurumları. Kişisel Bilgisayar. Dizüstü Bilgisayar.

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

FTP ve Güvenlik Duvarları

AĞ ve İNTERNET TCP/IP. IP Adresi İNTERNET NEDİR? Standartlar :

CENG 362 Computer Networks (2005) Midterm Exam 1 Çözümleri

Computer Networks 5. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

TBF 110 BİLGİSAYARDA VERİ İŞLEME ve UYGULAMALARI Ha9a- 2 - İnternet

HTTP. (Hyper Text Transfer Protocol)

Protocol Mimari, TCP/IP ve Internet Tabanlı Uygulamalar

Bilgisayar Sistemleri ilk ortaya çıktığında...

Bilgisayar Ağları. Ağı oluşturan cihazlar. Coğrafi koşullara göre ağın sınıflandırılması (LAN, MAN, WAN)

DNS Nedir? HİKMET TÜYSÜZ

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

Computer Networks 4. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

ÖRÜN (WEB) GÜVENLİĞİ. Hazırlayan: Arda Balkanay

Ağ Temelleri Semineri. erbil KARAMAN

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

Uygulama 6. Sunum 5. Oturum 4. Taşıma 3. Ağ 2. Veri iletim 1

Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Bilgisayar Ağları - 1 (BİL 403)

Prensipler Çoklu ortam uygulamalarının sınıflandırılması Uygulamaların ihtiyaç duyacağı ağ servislerini belirlemek Uygulamaların gerçek zamanlı

Uygulama Katmanı - 1. Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004.

BİLGİSAYAR AĞLARI. «Uygulama Katmanı»

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Internetin Yapı Taşları

Doç.Dr. Yaşar SARI ESOGÜ Turizm Fakültesi-Eskişehir BİLGİSAYAR AĞLARI (COMPUTER NETWORKS)

İnternet ve İnternet Tarayıcıları BİLGİ VE İLETİŞİM TEKNOLOJİSİ DERS NOTU - 2

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

BİLGİ & İLETİŞİM TEKNOLOJİLERİ

Giriş RFC (Yorumlar için talep) DNS IPv6 IPv6 ve DNS Örnekler. 13 Ocak 2011 IPv6 Konferansı

Đlk olarak 80 li yıllarda Amerikan Savunma Bakanlığı (DoD) tarafından OSI tabanlı sistemlere alternatif olarak geliştirilmiştir.

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Internet in Kısa Tarihçesi

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

WEB TASARIMININ TEMELLERİ

Bilgisayar Ağları ve Ağ Güvenliği DR. ÖĞR. ÜYESİ KENAN GENÇOL HİTİT ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK MÜH.

Html temelleri. Ders 4

Gökhan AKIN ĐTÜ/BĐDB Ağ Grubu Başkanı ULAK/CSIRT. Sınmaz KETENCĐ ĐTÜ/BĐDB Ağ Uzmanı

BİLGİSAYAR 4 MOLEKÜLER BİYOLOJİ VE GENETİK BÖLÜMÜ 1. DERS İNTERNET, TCP/IP, İNTERNETTE MESAJ VE BİLGİ AKTARIMI YARD. DOÇ. DR.

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

7 Uygulama 6. Sunum 5 Oturum Taşıma. 4 Ara katman- Yazılım ve donanım arası 3. Ağ Veri iletim. 2 Ağ Grubu-Donanım 1. Fiziksel. Uygulama Grubu-Yazılım

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

HP PROCURVE SWITCHLERDE 802.1X KİMLİK DOĞRULAMA KONFİGÜRASYONU. Levent Gönenç GÜLSOY

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Ağ Temelleri. Murat Ozdemir Ondokuz Mayıs Üniversitesi Bilgi İşlem Daire Başkanı 15 Ocak Ref: HNet.23

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Serdar SEVİL. TCP/IP Protokolü

DNS. Linux Yaz Kampı Bolu 2012 Eray Aslan

Bilg-101. Bölüm 6. Bilgisayar Ağları. Ne Öğreneceğiz? Bilgisayar Ağı Nedir?

Oturum Başlatma Protokolü ve Uygulamaları

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Yedek Almak ve Yedekten Geri Dönmek

Atabey Meslek Yüksek Okulu Web Tasarımının Temelleri

Exchange Server 2013 Kurulum Sonrası Yapılandırmalar

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

qmail ile SPAM engelleme Devrim Sipahi Dokuz Eylül Üniversitesi

İleti Sunucuları Seviyesinde Virüslü İletilerden Korunmak

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

İSMET AKTAR ANADOLU TEKNİK LİSESİ BİLİŞİM TEKNOLOJİLERİ ALANI WEB PROGRAMCILIĞI DALI

TCP/IP protokol kümesini tanımlamak. Bu protokol kümesindeki katmanları sıralamak.

OSI REFERANS MODELI-II

DOD / DEPARMENT OF DEFENCE

Bölüm 8 : PROTOKOLLER VE KATMANLI YAPI: OSI, TCP/IP REFERANS MODELLERİ.

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

Elbistan Meslek Yüksek Okulu Güz Yarıyılı EKi Salı, Perşembe Öğr. Gör. Murat KEÇECĠOĞLU

MCR02-AE Ethernet Temassız Kart Okuyucu

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

AĞ HĠZMETLERĠ MODÜLÜ 1. TAŞIMA KATMANI PROTOKOLLERİ

INTERNET PROGRAMCILIĞI. Kişisel Bağlantı. Neler Öğreneceğiz? Bağlantı Türleri. Gereksinimler. Modem

Internet: Tarihçe ve Kavramlar

EXCHANGE RAPORLAMA YAZILIMI ESASLARI

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

TÜBİTAK UEKAE ULUSAL ELEKTRONİK ve KRİPTOLOJİ ARAŞTIRMA ENSTİTÜSÜ

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

BILG101 Bilgisayara Giriş

WEB TASARIMININ TEMELLERİ

İÇİNDEKİLER VII İÇİNDEKİLER


Đstanbul Teknik Üniversitesi Bilgi Đşlem Daire Başkanlığı. 9 Kasim 2007 INET-TR Ankara

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Transkript:

Bölüm 2 Uygulama Katmanı 2: Application Layer 1

Bölüm 2:Uygulama Katmanı 2.1 Ağ uygulamalarının prensipleri 2.2 Web & HTTP 2.3 FTP 2.4 Elektronik posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Eşler arası uygulamalar 2.7 TCP ile soket programlama 2.8 UDP ile soket programlama 2: Application Layer 2

Bölüm 2: Uygulama katmanı Amaç: Uygulama katmanı ile Taşıma katmanı servisleri client-server peer-to-peer Protokoller hakkında bilgi edinmek HTTP FTP SMTP / POP3 / IMAP DNS 2: Application Layer 3

Bazı nt uygulamaları E-mail Web messenger Uzak erişim P2P dosya paylaşımı Çok kullanıcılı nt oyunları Video klipler Internet telefonu Video conferans 2: Application Layer 4

Bir nt uygulaması oluşturmak Başka sistemlerde çalışan Nt üzerinden haberleşen örn Web: Web server yazılımının tarayıcı ile haberleşen Programlar yazmak. Uygulama Taşıma Network Link Fiziksel Nt çekirdeğindeki cihazlar için program yazılmıyor Çekirdekteki cihazlarda uygulama katmanı yok Bu şekilde daha kolay uygulama yapılabiliyor Uygulama Taşıma Network Link Fiziksel Uygulama Taşıma Network Link Fiziksel 2: Application Layer 5

Bölüm 2:Uygulama Katmanı 2.1 Ağ uygulamalarının prensipleri 2.2 Web & HTTP 2.3 FTP 2.4 Elektronik posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Eşler arası uygulamalar 2.7 TCP ile soket programlama 2.8 UDP ile soket programlama 2: Application Layer 6

Uygulama Mimarileri Client-server Peer-to-peer (P2P) client-server ve P2P birleşimi 2: Application Layer 7

Client-server mimarisi server: Her zaman açık sabit IP adresi Büyüklüğe göre ana sistem kümesi(sunucu çiftliği) client: Serverla haberleşir Her zaman açık değil değişen IP adresine sahip Sunucular birbirleriyle direkt görüşmüyor 2: Application Layer 8

Saf P2P mimarisi Her zaman açık bir server yok Uç sistemler direkt haberleşir Ip adresleri değişir örn: Gnutella Büyür Kendi kendine ölçeklenebilir 2: Application Layer 9

Süreç iletişimleri Süreç (Process): uç sistemde çalışan program. Aynı uç sistemde 2 süreç haberleşebilir Farklı uç sistemlerdeki süreçler mesajlar sayesinde haberleşirler Client süreci: haberleşmeyi başlatan süreç Server süreci: iletişim kurulmayı bekleyen süreç Not:P2P mimarileri uygulamları client ve server süreçlerine sahiptir(2si ne de) 2: Application Layer 10

Soketler Süreçler mesajları soketlerden gönderir/alır host host or server Süreç=ev dersek Soketler kapıya benzer süreç Uygulama trf kontrol edilir süreç Süreç msj göndermek istediğinde msjı kapıya doğru iter soket TCP Internet TCP soket Đşletim sistemi Trf kontrol edilir 2: Application Layer 11

Adresleme süreci Bir sürecin mesaj alabilmesi için bir adresi olması lazım Bir uç sistemin 32-bit IP adresi vardır S: Ip adresi uç sistemde çalışan süreçlerden hangisinin haberleştiğini belirler mi? C: Hayır Ip adresi sadece uç sistemi gösterir, süreçleri göstermez Ip adresinin yanında bir de port numarası uç sistemdeki süreci belirler Bazı port numaraları: HTTP server: 80 Mail server: 25 Portlarla ilgili ilerleyen slaytlarda ek bilgi... 2: Application Layer 12

Uygulama katmanı protokolleri şunları belirler: Alınan ve gönderilen msjların tipini Msj tiplerinin şekli: msjlardaki alanlar nasıl olacak Msjların alanlarındaki bilgilerin anlamı Gelen msjlara ne zaman ve nasıl cevap verileceği ile ilgili kurallar Genel protokoller: RFC de tanımlıdır Đşbirliğine izin verir Örn: HTTP, SMTP özel protokoller: Örn: KaZaA 2: Application Layer 13

Uygulamalar trf kullanılabilen taşıma servisleri Data kaybı Ses gibi datalarda kayıp olabilir Dosya transferi gibi uygulamalar %100 güvenli olmalıdır Bant genişliği Esnek uygulamalar ne kadar bant genişiliği varsa onu kullanır; Multimedya bant genişliğine duyarlıdır Zamanlama Đnternet telefonu, oyun vs. gibi uygulamalarda gecikme olmamalıdır 2: Application Layer 14

Taşıma servisleri uygulama Veri kaybı Bant genişliği Zamana duyarlı Dosya transferi e-mail Web Gerçek zamanlı video Kayıtlı ses,video oyun msn yok yok yok olabilir olabilir olabilir yok esnek esnek esnek audio: 5kbps-1Mbps video:10kbps-5mbps Yukarıdaki ile aynı Birkaç kb elastik hayır hayır hayır ewet ewet ewet ewet 2: Application Layer 15

Internet taşıma protokolü servisleri TCP servis: Bağlantı tabanlı: client-server süreçleri arasında ilk bağlantı kurulması Güvenilir taşıma Akış kontrolü: gönderen alıcıyı bunaltmaz Tıkanıklık kontrolü: nt te aşırı yükleme olunca gönderen hızını keser sağlamadığı: zamanlama, minimum bant genişliği UDP servis: Güvenilir olmayandata transferi Sağlamadıkları: bağlantı yok, güvenilirlik yok,akış ve tıkanıklık kontrolü yok, zamanlama ve bant genişliği garanti 2: Application Layer 16

Internet uygulamaları Uygulama e-mail Uzaktan erişim Web Dosya transferi maltimedya Internet telefonu Uygulama katmanı protokolü SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] özel (e.g. RealNetworks) özel Taşıma protokolü TCP TCP TCP TCP TCP or UDP UDP 2: Application Layer 17

Bölüm 2:Uygulama Katmanı 2.1 Ağ uygulamalarının prensipleri 2.2 Web & HTTP 2.3 FTP 2.4 Elektronik posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Eşler arası uygulamalar 2.7 TCP ile soket programlama 2.8 UDP ile soket programlama 2: Application Layer 18

Web ve HTTP Bazı terimler Web sayfası objelerden oluşur Obje HTML sayfası, JPEG resim, Java applet, ses dosyası, Web sayfası objeleri içeren taban HTMLdosyasıdır Her bir objenin URL si vardır Örn URL: www.someschool.edu/somedept/pic.gif host adı Yol adı 2: Application Layer 19

HTTP HTTP: hypertext transfer protocol Web in uygulama katmanı protokolü client/server modeli client: web objlerini isteyen, alan ve gösteren tarayıcı server: Web server objleri clienta gönderir HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 PC tarayıcı Mac tarayıcı HTTP isteği HTTP cevabı HTTP isteği HTTP cevabı Server Apache Web server 2: Application Layer 20

HTTP TCP kullanır: client TCP bağlantısını başlatır (soket açar), port 80 den server clienttan gelen isteği kabul eder HTTP mesajları (uygulama katmanı protokolü mesajları) tarayıcı (HTTP client) ve Web server (HTTP server) arasında değişilir TCP bağlantısı kapatılır HTTP durumsuz dur server eski clientlar hakkındaki bilgileri tutmaz Durumu tutmak zordur! Geçmişin tutulması lazım Bunun yanında 2: Application Layer 21

HTTP bağlantısı Kalıcı olmayan bağ. HTTP TCP bağlantısı ile en fazla 1 nesne gönderilir. HTTP/1.0 kalıcı olmayan bağlantılı HTTP yi kullanır Kalıcı bağ. HTTP Tek bir TCP bağlantısından birçok nesne client server arasında gönderilir HTTP/1.1 kalıcı olan bağlantıyı kullanır 2: Application Layer 22

Kalıcı olmayan bağlantılarla HTTP Kullanıcı URL girer: www.someschool.edu/somedepartment/home.index (text ve 10 jpeg resim içerir) 1a. HTTP client port 80 den www.someschool.edu adresli HTTP serverla TCP bağlantısını başlatır 2. HTTP client HTTP URL içeren istek mesajını TCP bağlantı soketinden gönderir.cilent aşağıdaki adresi ister somedepartment/home.index 1b. www.someschool.edu adresli HTTP server port 80 den gelecek bağlantıyı bekler. Bağlantıyı kabul eder; clienta bildirir 3. HTTP server mesajı alır ve soketten nesneyi gönderir zaman 2: Application Layer 23

Kalıcı olmayan bağlantılarla HTTP zaman 5. HTTP client html dosyasını içeren mesajı alır: 6. 10 jpeg objenin herbiri için 1-5 arası adımlar tekrarlanır 4. HTTP server TCP bağlantısını kapatır 2: Application Layer 24

Cevap verme zamanı RRT RRT: client tan servera ve tekrar serverdan clienta 1 paket gitmesi için gereken zaman. Cevap verme zamanı: TCP bağlantısını kurmak için 1 RRT HTTP isteği ve ilk byteların cevap olarak clienta gelmesi 1 RRT RRT RRT toplam = 2RRT+gönderme zamanı time time 2: Application Layer 25

HTTP istek mesajı 2 çeşit HTTP msjı var: istek, cevap HTTP istek mesajı: ASCII (insanın okuyabileceği format) Đstek satırı (GET, POST, HEAD komutları) Başlık satırları GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr \n mesajın bittiğini gösterir 2: Application Layer 26

HTTP cevap mesajı: genel format 2: Application Layer 27

Form içeriğini upload etmek Post metodu: Web sayfasında formdan alınan bilgiler olabilir Input servera entity bodynin içerisinde gönderilir URL metodu: GET methodu kullanır Input URL adresinin içinde gönderilir: www.somesite.com/search?betul&oktay 2: Application Layer 28

Metod tipleri HTTP/1.0 GET POST HEAD Serverdan cevaba istenen dosyayı eklememesini söylüyor Genelde hata ayıklama için kullanılır HTTP/1.1 GET, POST, HEAD PUT URL alanına dosya upload eder DELETE URL deki dosyayı siler 2: Application Layer 29

HTTP cevap mesajı Durum satırı Đstenilen datalar Başlık satırı 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... 2: Application Layer 30

HTTP cevabı durum kodları Serverdaki ilk satır ->clienta cevap. Bazı örnekler: 200 OK Đstek kabul edildi, dosya msjla gönderiliyor 301 Moved Permanently Đstenilen nesne taşınmıştır, yeni URL cevap mesajının (Location:) kısmındadır 400 Bad Request Đstek sunucu tarafından anlaşılamadı 404 Not Found Đstenen belge bu sunucu üzerinde değil 505 HTTP Version Not Supported:istenilen HTTP protokolü sunucu trf desteklenmiyor 2: Application Layer 31

Kullanıcı taraflı etkileşim: cookiler (kurabiyeler) Bir çok web sitesi cookie kullanır 4 bileşeni vardır: 1) HTTP cevap msjındaki cookie başlık satırı 2) HTTP istek mesajındaki cookie başlık satırı 3) Kullanıcının uç sisteminde tutulan bir cookie dosyası 4) Web sitesindeki bir veritabanı Example: Susan Internete hep aynı bilgisayardan bağlanır Đlk defa ticari siteyi ziyaret eder HTTP isteği siteye uşlaşır ve site bir ID oluşturur ve veritabanında da ID ile ilgili bilgileri tutar 2: Application Layer 32

Cookieler: durum u tutarlar Cookie dosyası ebay: 8734 client http isteği Normal http cevabı + Set-cookie: 1678 server server Kullanıcı için ID 1678 oluşturur veritabanı Cookie dosyası amazon: 1678 ebay: 8734 one week later: Cookie dosyası amazon: 1678 ebay: 8734 http isteği cookie: 1678 http cevabı http isteği cookie: 1678 Http cevabı Cookieye özel Cookieye özel 2: Application Layer 33

Cookieler Cookieler ile: Kimlik kontrolü Alışveriş sepeti tavsiye Kişi oturumu (Web e- mail) yapılır Cookieler ve Kişinin Özeli: Cookielerle özelini öğrenirler Sitelerde email ve isim tutulur Arama motorları Reklam kampanyası 2: Application Layer 34

Web cacheleri(tampon belleği) (proxy server) Amaç: client isteklerini servera gitmeden gerçekleştirmek Cache? Kullanıcı tarayıcıyı açar: Webe cachten geçerek ulaşılır browser tüm HTTP isteklerini cachee yönlendirir Đstenen nesne cachete ise nesne clienta gönderilir Yoksa cache nesneyi orjinal serverdan ister ve clienta gönderir client client HTTP isteği HTTP cevabı HTTP isteği HTTP cevabı Proxy server HTTP isteği HTTP cevabı origin server origin server 2: Application Layer 35

Web cacheleme Cache hem client hem server gibi davranır Cache ISP tarafından kurulur (universite, şirket vs.) Neden Web cacheleme? Clienta daha hızlı cevap verebilmek için Kurumun dışarı ile bağlantısında fazla trafik oluşturmamak için 2: Application Layer 36

Cache örneği Assumptions Ortalama nesne = 100,000 bits Clientların orjinal serverdan istekte bulunması = 15 istek/saniye Router ve server arası iletişim = 2 saniye Consequences LAN = 15% link = 100% Toplam gecikme = Internet gecikmesi +... = 2 saniye +... network public Internet 1.5 Mbps 10 Mbps LAN origin servers institutional cache 2: Application Layer 37

Cache örneği Çözüm Bant genişliğini arttırmak: 10 Mbps Consequences LAN = 15% i kullanılır link = 15%i Toplam gecikme = Internet gecikmesi +... Maliyeti arttırmış oluruz institutional network public Internet 10 Mbps access link 10 Mbps LAN origin servers institutional cache 2: Application Layer 38

Cache örneği Cache oluşturmak Đstenen verinin cachede bulunma ihtimali 4 Consequence Đsteklerin %40ı cache de vardır Đsteklerin %60ı orjinal server tarafından karşılanır Linkin kullanımı %60 a iner. Toplam gecikme azalır. institutional network public Internet 1.5 Mbps access link 10 Mbps LAN origin servers institutional cache 2: Application Layer 39

Conditional GET Amaç:cachede istenen objenin tarihi eski ise alma. cache:http isteğinde en son cache gelme zamanı söylenir: If-modified-since: <tarih> server: eğer obje eski ise aşağıdaki cevap verilir: HTTP/1.0 304 Not Modified cache HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> server Obje değiştirilmemiş Obje değiştirilmiş 2: Application Layer 40

Bölüm 2:Uygulama Katmanı 2.1 Ağ uygulamalarının prensipleri 2.2 Web & HTTP 2.3 FTP 2.4 Elektronik posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Eşler arası uygulamalar 2.7 TCP ile soket programlama 2.8 UDP ile soket programlama 2: Application Layer 41

FTP: File Transfer Protocol dosya transfer protokolü Hostta kullanıcı FTP user interface FTP client local dosyalar dosya transferi FTP server Uzaktaki dosyalar Uzaktaki hostla dosya transferi client/server modeli client: transferi başlatan taraf (transfer 2 yönlü olabilir) server: uzaktaki host ftp: RFC 959 ftp server: port 21 2: Application Layer 42

FTP: ayrı kontrol ve data bağlantısı FTP client FTP serverla port 21den görüşür, FTP TCP kullanır Client kontrol bağlantısından kimlik bilgilerini gönderir Client kontrol bağlantısından uzaktaki dosyalara bakar Serverla dosya transferi yapılacağı zaman data bağlantısı açılır ve dosya burdan gönderilir. Dosya transferi bitince data bağlantısı kapatılır. FTP client TCP control bağlantısı port 21 TCP data bağlantısı port 20 Başka dosya transferi için yeni data bağlantısı açılır. Control bağlantısı: out of band =bant dışı FTP server 2: Application Layer 43

FTP komutları ve cevapları Örnek komutlar: USER kullanıcıadı PASS şifre LIST klasördeki dosyaları listeler RETR dosyaadı: dosyayı getirir STOR dosyaadı: dosyayı servera gönderir Server cevapları 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 2: Application Layer 44

Bölüm 2:Uygulama Katmanı 2.1 Ağ uygulamalarının prensipleri 2.2 Web & HTTP 2.3 FTP 2.4 Elektronik posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Eşler arası uygulamalar 2.7 TCP ile soket programlama 2.8 UDP ile soket programlama 2: Application Layer 45

Electronik Mail (posta) Giden msj sırası 3 unsur: Kullanıcı temsilcisi Posta sunucusu simple mail transfer protocol: SMTP Kullanıcı temsilcisi Örn: mail okuyucusu Mail oluşturma, düzenleme, okuma Örn: Eudora, Outlook, elm, Netscape Messenger Giden ve gelen mailler serverlarda tutulur mail server SMTP mail server user agent kullanıcı SMTP SMTP user agent Kullanıcı posta kutusu mail server kullanıcı user agent user agent 2: Application Layer 46

Electronik Mail: mail serverları Mail Serverları mailbox ta kullanıcıya gelen mailler tutulur message sırası gönderilecek mailleri saklar SMTP protokolü serverlar arasında mail alıp göndermeyi sağlar client: mail gönderen server mail server SMTP mail server user agent SMTP SMTP mail server user agent user agent user agent server : maili alan server user agent user agent 2: Application Layer 47

Electronik Mail: SMTP [RFC 2821] port 25ten TCP kullanarak güvenli bağlantı ile serverlar arası mail transferini gerçekleştirir. direk transfer: gönderici serverdan alıca servera Mail transferinde 3 aşama var selamlaşma Mesaj transferi Bağlantının kapatılması Komut ve cevaplarla iletişim komutlar: ASCII text cevap: durum kodu mesajlar 7-bit ASCII koduyla gerçekleşir. 2: Application Layer 48

Senaryo: Alice Bob a mail atıyor 1) Alice maili yazar ve to bob@someschool.edu 2) Alice in kullanıcı temsilcisi (outlook vs.) maili servera gönderir ve mail serverda sıraya girer 3) SMTPnin client tarafı Bobun mail serverı ile TCP bağlantısı kurar 4) SMTP client Alice in mailini TCP bağlantısı üzerinden gönderir 5) Bobun mail serverı mail, Bobun mail kutusuna koyar 6) Bob kullanıcı temsilcisini kullanarak mailini okur 1 user agent mail server 2 3 4 mail server 5 6 user agent 2: Application Layer 49

Örnek SMTP iletişimi S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection 2: Application Layer 50

Kendiniz SMTPyi deneyebilirsiniz: telnet servername 25 220 serverdan cevap HELO, MAIL FROM, RCPT TO, DATA, QUIT komutlarını yaz 2: Application Layer 51

SMTP: son SMTP kalıcı bağlantı kullanır SMTP de mail 7-bit ASCII olmalıdır SMTP server alt satır.altsatır kullanarak mailin bittiğini söyler HTTP: HTTP: çekme SMTP: itme ASCII kodları ile iletişim ve durum kodları HTTP:hernesne kendi isteğine ayrı gönderilir SMTP: msjda birden fazla nesne gönderilebilir. 2: Application Layer 52

Mail mesaj formatı SMTP: RFC 822: text mesaj formatı: başlıklar To: (kime) From: (kimden) Subject: (konu) SMTP komutlarından farklı! gövde Sadece ASCII karakterler başlık gövde Boş satır 2: Application Layer 53

Mesaj formatı: multimedya uzantısı MIME: multimedia mail extension, RFC 2045, 2056 Mesaj başlığındaki ekstra satırlar MIME içeriğini belirtir MIME versiyon Data sıkıştırma metodu multimedia data tipi Sıkıştırılmış data From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data 2: Application Layer 54

Posta erişim protokolleri Kullanıcı temsilcisi SMTP erişim protocol Kullanıcı temsilcisi gönderen mail server alıcı mail server SMTP:alıcı servera iletme ve saklama Mail erişim protokolü: kullanıcının serverdan maili alması POP3: Post Office Protocol [RFC 1939] Kimlik doğrulama (kullanıcı temsilcisi <-->server) ve download IMAP: Internet Mail Access Protocol [RFC 1730] Daha karmaşık Serverda saklanan maillerin işlenmesi HTTP: Hotmail, Yahoo! Mail, vs. 2: Application Layer 55

POP3 protocol Kimlik doğrulama client komutları: user: kullacı adı pass: şifre server cevapları: +OK -ERR işlem fazı, client: list: msj numaralarını listele retr:msjları numaraları ile al dele: sil Quit:çıkış S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server signing off 2: Application Layer 56

POP3 ve IMAP More about POP3 Previous example uses download and delete mode. Bob cannot re-read e- mail if he changes client Download-and-keep : copies of messages on different clients POP3 is stateless across sessions IMAP Tüm mailleri serverda tut Allows user to organize messages in folders IMAP keeps user state across sessions: names of folders and mappings between message IDs and folder name 2: Application Layer 57

Bölüm 2:Uygulama Katmanı 2.1 Ağ uygulamalarının prensipleri 2.2 Web & HTTP 2.3 FTP 2.4 Elektronik posta SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Eşler arası uygulamalar 2.7 TCP ile soket programlama 2.8 UDP ile soket programlama 2: Application Layer 58

DNS: Domain Name System (internet dizin servisi) Đnsanlar: tanımlayıcılar: Tc kimlik no Internetteki hostlar, routerlar: IP address (32 bit) isimler, e.g., ww.yahoo.com insanlar trf kullanılır Q: Ip adreslerinin isimlere çevrilmesi? Domain Name System: Dağınık veritabanı: isimler dağınık isim serverlarında (name server) Uygulama katmanı protokolü hostlar, routerlar, name serverlar adres/isim çevirmesini yapmak için haberleşirler not: temel internet fonksyonu, uygulama katmanındadır HHTp, SMTP, FTP vs. DNSi kullanır. 2: Application Layer 59

DNS DNS servisleri Host adı IP adresi eşlemesi Host lakapları Çift lakap Mail server lakabı Yük dağılımı 1 isim için 1den fazla server (rotasyon) DNS neden merkezi değil? Çökme tek merkezde olur Trafik hacmi Bazı hostlar için çok uzak olur bakım ölçeklenemez! 2: Application Layer 60

Dağınık, Hiyerarşik Veritabanı Root(kök) DNS Servers com DNS servers org DNS servers edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu umass.edu DNS serversdns servers Client www.amazon.com adresinin IPsini ister; 1. yol: Client root servera com DNS serverını bulma isteğini bildirir Client com DNS serverına amazon.com DNS serverı bulma isteğini bildirir Client amazon.com DNS serverından www.amazon.comun IP adresini ister 2: Application Layer 61

DNS: Root name servers (Kök dns sunucuları) Đsmi çözemeyen local name serverlar root name serverla kontakt kurarlar root name server: Ip-isim eşlemesi bilinmiyorsa yetkili name serverla görüşür Eşlemeyi alır Eşlemeyi local name servera gönderir a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 11 locations) k RIPE London (also Amsterdam, i Autonomica, Frankfurt) Stockholm (plus 3 other locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA m WIDE Tokyo Dünyada 13 tane root name serverı var 2: Application Layer 62

TLD ve Yetkili Serverlar Top-level domain (TLD-üst seviye) serverları: com, org, net, edu gibi ve ülke domainlerini tutar Network solutions şirketi com TLD Educause şirketi for edu TLD Yetkili DNS serverları: kurumun DNS serverları eşlemeleri tutar (örn: Web ve mail). Kurum yada servis sağlayıcısı trf kurulur 2: Application Layer 63

Local Name Server Hiyerarşiye fazla bağımlı değil Her ISP (TT, Fatih unv. Vs.) bir local name servera sahip default name server olarak da adlandırılır Host DNS sorgusu yaptığı zaman önce local name server sorgulanır Sorgunun cevabı bulunamazsa hiyerarşide bir ust servera sorar 2: Application Layer 64

Örnek Root(kök) DNS server cis.poly.edu adresindeki host gaia.cs.umass.edu nun Ip adresini istiyor local DNS server dns.poly.edu 1 2 8 3 4 5 7 TLD (üst seviye) DNS server 6 Host isteği cis.poly.edu yetkili DNS server dns.cs.umass.edu gaia.cs.umass.edu 2: Application Layer 65

DNS: cache ve güncelleme Server IP-isim eşlemesini öğrenir ve onu cache de saklar Belli bir zaman sonra cachedeki bilgiler silinir Local name serverlarda genellikle TLD serverları cachede tutulur Bu yüzden root serverlardan az istekte bulunulur 2: Application Layer 66

DNS kayıtları DNS: kaynak kayıtlarını (RR) içeren dağınık veritabanı RR formatı: (name, value, type, ttl) Type=A name hostadıdır value IP adrestir Type=NS name domain (foo.com) adıdır value bu domain için yetkili name serverın Ip adresidir Type=CNAME name gerçek addır www.ibm.com is really servereast.backup2.ibm.com value lakaptır Type=MX value namein mail serverının kurallı adıdır 2: Application Layer 67

DNS protokol ve mesajlar DNS protocol : istek ve cevaplar aynı formattadır Msj başlığı tanımlama: 16 bit uzunluğunda bir sayı, verilen cevaba da aynı no kopyalanır 2: Application Layer 68

DNS protokolü, mesajlar Sorgu için isim ve tip alanları Cevaptaki RRlar Yetkili sunucuların kayıtları Ek yardımcı bilgi 2: Application Layer 69

DNS veritabanına kayıt girmek Örn: Network Utopia yı yeniden kurduğunuzu düşünün networkuptopia.com için bir kaydedici şirket Yetkili DNS sunucularının Ip adreslerini sunmak gerek Kaydedici trf aşağıdaki bilgiler eklenir: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) A tipi msj www.networkuptopia.com için ve MX tip kayıt networkutopia.com mail server için 2: Application Layer 70

Chapter 2: Application layer 2.1 Principles of network applications app architectures app requirements 2.2 Web and HTTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P file sharing 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server 2: Application Layer 71

P2P file sharing Example Alice runs P2P client application on her notebook computer Intermittently connects to Internet; gets new IP address for each connection Asks for Hey Jude Application displays other peers that have copy of Hey Jude. Alice chooses one of the peers, Bob. File is copied from Bob s PC to Alice s notebook: HTTP While Alice downloads, other users uploading from Alice. Alice s peer is both a Web client and a transient Web server. All peers are servers = highly scalable! 2: Application Layer 72