420 likes | 638 Views
Application Layer. ET5044 Rekayasa Internet. Aplikasi: proses tesrditribusi yang saling berkomunikasi Berjalan di host user Salin mempertukarkan message untuk menerapkan aplikasi Mis. :email, file transfer, the Web Protokol application-layer Salah satu bagian dari suatu aplikasi
E N D
Application Layer ET5044 Rekayasa Internet
Aplikasi: proses tesrditribusi yang saling berkomunikasi Berjalan di host user Salin mempertukarkan message untuk menerapkan aplikasi Mis. :email, file transfer, the Web Protokol application-layer Salah satu bagian dari suatu aplikasi Mendefinisikan messages yang dipertukarkan aplikasi dan tindakan yang diambil Menggunakan layanan yang disediakan oleh protokol layer bawah application transport network data link physical application transport network data link physical application transport network data link physical Aplikasi dan protokol application-layer
Suatu process adalah program yang berjalan dalam suatu host Pada host yang sama, dua proses berkomunikasi menggunakan interprocess communication yang didefinisikan oleh OS (Operating System). Proses yang berjalan pada host yg berbeda berkomunikasi menggunakan protokol layer applikasi Suatu user agentadalah suatu interface anatara user dengan aplikasi jaringan Web:browser E-mail: mail reader streaming audio/video: media player Beberapa istilah aplikasi jaringan
Biasanya aplikasi jaringan memiliki dua bagian : client dan server request reply application transport network data link physical application transport network data link physical Paradigma Client-server Client: • Mengawali hubungan dengan server (“speaks first”) • Biasanya meminta layanan dari server • Untuk Web, client diimplementasikan dalam bentuk browser; untuk e-mail, dalam bentuk mail reader Server: • Menyediakan layanan yang diminta client • Mis: Web server mengirimkan halaman Web, mail server mengirimkan e-mail
API: application programming interface Mendefinisikan interface antara layer aplikasi dan transport socket: Internet API Dua proses berkomunikasi dengan cara mengirimkan dan membaca data ke/dari dalam socket two Q: bagaimana cara suatu proses mengidentifikasi proses lain yang ingin diajak berkomunikasi? Menggunakan IP address dari host yang menjalankan proses yg dimaksud dan menggunakan : “port number” – yang memungkinkan host penerima untuk menentukan proses lokal mana yang akan dikirimi message Protokol layer aplikasi
Data loss Beberapa aplikasi (mis: audio) toleran thd beberapa loss Aplikasi lain (mis : file transfer, telnet) memerlukan transfer data andal 100% Timing Beberapa aplikasi (misl : Internet telephony, interactive games) memerlukan sarat low delay agar efektif Layanan layer transport yg diperlukan layer aplikasi Bandwidth • Beberapa aplikasi (mis: multimedia) memerlukan sejumlah bandwidth agar efektif • Aplikasi lain (“elastic apps”) menggunakan bandwidht berapaun yg tersedia
Kebutuhan layanan layer transport dari beberapa aplikasi Time Sensitive no no no yes, 100’s msec yes, few secs yes, 100’s msec yes and no Application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games financial apps Data loss no loss no loss loss-tolerant loss-tolerant loss-tolerant loss-tolerant no loss Bandwidth elastic elastic elastic audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up elastic
TCP service: connection-oriented: reliable transport flow control congestion control: Tidak menyediakan: timing, jaminan bandwidth minimum UDP service: unreliable data transfer Tdk menyediakan: connection setup, reliability, flow control, congestion control, timing, ataupun jaminan bandwidth Layanan yang disediakan protokol layer transport Internet
Protokol aplikasi Internet dan protokol layer transport yang mendukungnya Application layer protocol smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietary (e.g. RealNetworks) NSF proprietary (e.g., Vocaltec) Underlying transport protocol TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP Application e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony
Socket programming Socket API • Diperkenalkan dalam BSD4.1 UNIX, 1981 • Secara ekspilist dibuat,digunakan dan diputuskan oleh aplikasi • client/server paradigm • Dua macam layanan transport melalui socket API: • unreliable datagram • reliable, byte stream-oriented
process process TCP with buffers, variables TCP with buffers, variables socket socket Socket-programming dgn TCP Socket: suatu “pintu” antara proses aplikasi dengan protokol transport (UDP atau TCP) TCP service: transfer byte reliable antar proses controlled by application developer controlled by application developer controlled by operating system controlled by operating system internet host or server host or server
Client harus menghubungi server terlebih dahulu Proses server harus sudah berjalan server harus sudah membentuk socket yang menerima kontak dari client Client menghubungi server dgn cara: Membuat socket TCP lokal Menentukan IP address server dan nomor port dari proses yang ada di server Ketika client membentuk socket: TCP client membentuk koneksi ke server TCP Ketika dihubungi client, server TCP membuat socket baru agar proses server dapat berkomunikasi dengan client Memungkinkan server berkomunikasi dgn beberapa client Socket programming dgn TCP
UDP: tidak ada koneksi antar client dan server no handshaking Pengirim secara eksplisit menyertakan IP address dan nomor port dari tujuan Server harus mengambil informasi IP address dan nomor port pengirim dari datagram yg diterima Socket programming dgn UDP
Orang memiliki banyak idnetitas : KTP, nama, nomor Passport dsb. Internet hosts, routers memiliki: IP address (32 bit) – “nama”, mis : ee.itb.ac.id (yg digunakan manusia) Q: bagaimana cara memetakan IP addresses dengan nama ? Domain Name System: Merupakan database terdistribusi yang diimplementasikan secara hirarkis dari sejumlah name servers resolvenames : address/name translation DNS: Domain Name System
Tidak ada server yg memiliki informasi semua pemetaan dari nama-ke-IP address local name servers: setiap ISP, perusahaan, kampus memiliki local (default) name server Query DNS dari host dikirim ke local name server dulu authoritative name server: Untuk suatu host: menyimpan IP address dan nama host tersebut Dapat melaukan terjemahan nama/address untuk nama host tersebut Pertimbangan DNS tidak tersentralisasi single point of failure traffic volume distant centralized database maintenance doesn’t scale! DNS name servers
Dihubungi oleh local name server yang tidak dapat me-resolve nama root name server: Menghubungi authoritative name server jika tidak mengetahui informasi pemetaan Mengambil informasi pemetaan Memberikan pemetaan ke local name server Ada banyak root name server yg tersedia DNS: Root name servers
host surf.eurecom.fr menginginkan IP address dari gaia.cs.umass.edu 1. Menghubungi local DNS server, dns.eurecom.fr 2.dns.eurecom.fr menghubungi root name server, jika perlu 3. root name server menghbungi authoritative name server, dns.umass.edu, jika perlu local name server dns.eurecom.fr Conntoh DNS sederhana root name server 2 4 3 5 authorititive name server dns.umass.edu 1 6 requesting host surf.eurecom.fr gaia.cs.umass.edu
Root name server: Bisa jadi tidak mengetahui authoratiative name server Tapi bisa jadi mengetahui intermediate name server: yang dapat dihubungi untuk menemukan authoritative name server local name server dns.eurecom.fr intermediate name server dns.umass.edu Contoh DNS root name server 6 2 3 7 5 4 1 8 authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr gaia.cs.umass.edu
recursive query: name resolution membebani name server yang dihubungi Dapat menimbulkan beban tinggi iterated query: Server yg dihubungi memberi informasi nama server yg harus dihubungi local name server dns.eurecom.fr intermediate name server dns.umass.edu DNS: iterated queries root name server iterated query 2 3 4 7 5 6 1 8 authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr gaia.cs.umass.edu
Sekali mempelajari bagaimana cara memetakan,DNS seerver akan menyimpannya (caches ) Isi cache akan timeout setelah beberapa waktu Mekanisme update/notify dinyatakan dalam RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html DNS: caching dan updating records
DNS: merupakan database terdistribusi yg menyimpan resource records(RR) Type=NS name adl. domain (mis.: foo.com) value adl. IP address dr. authoritative name server untuk domain yg bersangkutan RR format: (name, value, type, ttl) DNS records • Type=CNAME • name adl. nama alias name utk beberapa nama canonical (real) • value adl. Nama canonical • Type=A • name adl. hostname • value adl. IP address • Type=MX • value adl. hostname dari mail server yg sesuai dgn name
Halaman Web : Mengandung “objects” Pengalamatan menggunakan URL Kebanyakan hal. Web mengandung: Hal. HTML dasar, dan Beberapa referenced objects. URL mempunyai dua komponen: host name dan path name: User agent untuk Web disebut suatu browser: MS Internet Explorer Netscape Communicator Server untuk Web disebut Web server: Apache (public domain) MS Internet Information Server Web: beberapa istilah www.someSchool.edu/someDept/pic.gif
http: hypertext transfer protocol Protokol layer aplikasi untuk Web client/server model client: browser yang meminta,menerima,dan menampilkan objek web server: mengirimkan objek atas suatu request http1.0: RFC 1945 http1.1: RFC 2068 Web: protokol http http request PC running Explorer http response http request Server running NCSA Web server http response Mac running Navigator
http membutuhkan layanan TCP : client mengawali koneksi TCP (membuat socket) ke server, port 80 server menerima koneksi TCP dari client http messages (message protokol layer aplikasi) dipertukarkan antara browser (http client) dgn Web server (http server) Koneksi TCP ditutup http : “stateless” Server tdk mempertahankan informasi mengenai permintaan client yg lalu
Misalnya user memasukkan URL www.someSchool.edu/someDepartment/home.index 1a. http client mengawali koneksi TCP ke http server (process) di www.someSchool.edu. Port 80 adl. default untuk http server. Contoh http (mengandung text, Referensi ke 10 gambar jpeg) 1b.http server di host www.someSchool.edu menunggu koneksi TCP pada port 80. “menerima” koneksi, memberitahu client 2.http client mengirimkan http request message (mengandung URL) ke dalam socket TCP 3.http server menerima request, membentuk response message yg mengandung objectyang diminta (someDepartment/home.index), mengirimkan message ke dalam socket time
5. http client menerima respons yang mengandung file html, menampilkan html. Parsing html file, menemukan 10 referenced jpeg objects Contoh http(cont.) 4.http server menutup koneksi TCP 6.Langkah 1-5 diulangi untuk setiap objek jpeg time
Tujuan authentication : mengendalikan akses ke dokumen di server stateless: setiap request dari client harus menjalani authorization authorization: biasanya berupa nama dan password usual http request msg + Authorization:line usual http request msg + Authorization:line usual http response msg usual http response msg time Interkasi user-server : authentication server client usual http request msg 401: authorization req. WWW authenticate: Browser menyimpan (caches) nama & password sehingga user tidak perlu memasukkannya secara berulang
server mengirimkan “cookie” ke client dlm. response msg Set-cookie: 1678453 client menyertakan cookie dalam request berikutnya cookie: 1678453 server memeriksa kesesuaian cookie authentication Mengingat user preferences, previous choices usual http request msg cookie: # usual http request msg cookie: # usual http response msg usual http response msg Interaksi user-server : cookies server client usual http request msg usual http response + Set-cookie: # cookie- specific action cookie- specific action
user menyiapkan browser: Web accesses melalui web cache client mengirimkan semua http requests ke web cache Jika object yag dimint ada di web cache, web cache langsung menyertakan objek dalam http response Jika tidak ada, web cache meminta object dari origin server, lalu memberikan http response ke client Web Caches (proxy server) Tujuan: memenuhi client request tanpa harus melibatkan server asli (origin server) origin server Proxy server http request http request client http response http response http request http request http response http response client origin server
Misalkan: cache dekat ke client (mis : dalam jaringan yg sama) Response time lebih pendek Menurunkan trafik ke distant servers link out of institutional/local ISP network is often a bottleneck Fungsi Web Caching origin servers public Internet 1.5 Mbps access link institutional network 10 Mbps LAN institutional cache
Mentransfer file dari/ke remote host client/server model client: sisi yg mengawali transfer (baik dari/ke remote) server: remote host ftp: RFC 959 ftp server: port 21 FTP user interface FTP client FTP server local file system ftp: file transfer protocol file transfer user at host remote file system
ftp client menghubungi ftp server pada port 21, Dua koneksi TCP paralel dibuka : control: mempertukarkan perintah, tanggapan antara client, server. “out of band control” data: data file dari/ke server ftp server mempertahankan “state”: current directory, earlier authentication TCP control connection port 21 TCP data connection port 20 FTP client FTP server ftp: koneksi data dan koneksi kendali terpisah
Tiga komponen utama: user agents mail servers simple mail transfer protocol: smtp User Agent alias “mail reader” menyusun, mengedit, membaca pesan mail Mis: Eudora, Outlook, elm, Netscape Messenger Message outgoing dan incoming disimpan di server user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server outgoing message queue user mailbox Electronic Mail
Mail Servers mailbox menyimpan messages yang masuk (yg akan dibaca) untuk user Menyimpan antrian message keluar (yang akan dikirim) smtp protocol : antar mail servers untuk mengirim pesan email client: mail server pengirim “server”: mail server penerima user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server Mail servers
Menggunakan TCP, port 25 direct transfer: server pengirim ke server penerima Tiga fasa transfer handshaking (greeting) transfer messages penutup Interkasi command/response commands: ASCII text response: status code dan phrase messages harus berupa 7-bit ASCII Electronic Mail: smtp [RFC 821]
Interkasi smtp sederhana 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
smtp: protokol untuk mempertukarkan pesan email RFC 822: standard untuk format text message : Baris header, mis. To: From: Subject: body “message”, ASCII Format pesan mail header blank line body
MIME: multimedia mail extension, RFC 2045, 2056 Baris-baris tambahan dalam msg header yang menyatakan MIME content type 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 Message format: multimedia extensions MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data
Text Contoh subtypes: plain, html Image Contoh subtypes: jpeg, gif Audio Contoh subtypes: basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding) Video Contoh subtypes: mpeg, quicktime Application Data lain yang harus diproses oleh suatu reader sebelum bisa dilihat Contoh subtypes: msword, octet-stream MIME typesContent-Type: type/subtype; parameters
SMTP: pengiriman/penyimpanan ke server penerima Mail access protocol: pengambilan dari server POP: Post Office Protocol [RFC 1939] authorization (agent <-->server) dan download IMAP: Internet Mail Access Protocol [RFC 1730] Lebih banyak fitur (lebih complex) Manipulasi message tersimpan di server HTTP: Hotmail , Yahoo! Mail, etc. user agent user agent sender’s mail server SMTP Mail access protocols SMTP POP3 or IMAP receiver’s mail server
authorization phase client commands: user: declare username pass: password server responses +OK -ERR transaction phase, client: list: list message numbers retr: retrieve message by number dele: delete quit POP3 protocol 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
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 Keep all messages in one place: the server Allows user to organize messages in folders IMAP keeps user state across sessions: names of folders and mappings between message IDs and folder name POP3 (more) and IMAP