Chapter 2 - Bagian 2 - Lapisan Aplikasi - V7.01 - Revised
Chapter 2 - Bagian 2 - Lapisan Aplikasi - V7.01 - Revised
Lapisan Aplikasi
Catatan Penggunaan:
Slide ini dibuat untuk dipergunakan secara bebas bagi semua pihak
(fakultas, peserta kuliah, pembaca). Berbentuk presentasi sehingga bisa
menampilkan animasi dan dapat menambahkan, mengubah dan
menghapus slide (termasuk halaman ini) dan isi slidenya untuk
menyesuaikan kebutuhan. Slide-slide ini merupakan karya kami. Dalam
penggunaannya, kami berharap anda melakukan hal berikut:
Computer
Jika digunakan dalam kelas, sebutkanlah sumbernya. Bagaimanapun
kami ingin buku ini dipergunakan. Networking: A Top
Jika mengunggah slide pada situs www, yang mengacu pada slide kami,
perhatikan hak cipta material ini. Down Approach
Terima kasih dan selamat menggunakan 7th edition
Jim Kurose, Keith Ross
All material copyright 1996-2016 Pearson/Addison Wesley
J.F Kurose and K.W. Ross, All Rights Reserved April 2016
Application Layer 2-1
Bab 2: Ikhtisar
2.1 Prinsip-prinsip 2.5 Aplikasi P2P
Aplikasi Jaringan 2.6 Pemrograman Soket
2.2 Web dan HTTP dengan UDP dan TCP
2.3 Surat Elektronik
• SMTP, POP3, IMAP
2.4 DNS
Application Layer
naik secara linier sesuai N2-5
File distribution time: P2P
• transmisi server: harus unggah
setidaknya satu bagian F
us
• waktu untuk kirim satu bagian:
di
client:
F/us setiap klien harus unduh network
bagian file ui
• waktu minimum unduh: F/dmin
clients: sebagai agregat harus unduh NF bits
• kecepatan maks unggah (membatasi kecepatan maks unduh)
adalah us + Sui
waktu distribusi F
ke N clients D
P2P > max{F/us,,F/dmin,,NF/(us + Sui)}
menggunakan P2P
Alice arrives …
… obtains list
of peers from tracker
… and begins exchanging
file chunks with peers in torrent
application application
socket dikontrol oleh
process process app developer
transport transport
network network dikontrol
link
oleh OS
link Internet
physical physical
Contoh Aplikasi:
1. client membaca sebuah baris karakter (data) dari
keyboard dan mengirimkan data ke server
2. server menerima data dan mengkonversi karakter
menjadi uppercase (huruf kapital)
3. server mengirim data yang telah dimodifikasi ke
client
4. client menerima data yang telah dimodifikasi dan
menampilkan baris tersebut di layar
Application Layer 2-27
Socket programming dengan UDP
UDP: tidak ada “connection” antara klien & server
tidak ada handshaking sebelum mengirim data
pengirim secara eksplisit menyertakan alamat IP dan
nomor port tujuan ke setiap paket
penerima memilah alamat IP dan nomor port dari paket
yang diterima
UDP: data yang ditransmisikan mungkin hilang
atau diterima dengan urutan yang tidak benar
sudut pandang aplikasi:
UDP menyediakan unreliable transfer sekelompok bytes
(“datagrams”) antara klien dan server
tulis reply ke
baca datagram dari
serverSocket
clientSocket
tentukan alamat client,
nomor port tutup
clientSocket
Application 2-29
Contoh app: klien UDP
Python UDPClient
memasukkan socket
library Python from socket import *
serverName = ‘hostname’
serverPort = 12000
membuat socket UDP clientSocket = socket(AF_INET,
untuk server
SOCK_DGRAM)
dapatkan input dari keyboard
user message = raw_input(’Input lowercase sentence:’)
Cantumkan nama server, clientSocket.sendto(message.encode(),
port ke pesan; masukkan
ke socket (serverName, serverPort))
baca karakter balasan dari modifiedMessage, serverAddress =
socket masukkan menjadi
string clientSocket.recvfrom(2048)
tampilkan string yang print modifiedMessage.decode()
diterima dan tutup socket
clientSocket.close()
Application Layer 2-30
Contoh app: server UDP
Python UDPServer
from socket import *
serverPort = 12000
buat socket UDP serverSocket = socket(AF_INET, SOCK_DGRAM)
bind socket ke nomor port
lokal 12000
serverSocket.bind(('', serverPort))
print (“The server is ready to receive”)
loop selamanya while True:
Baca socket UDP dan
masukkan pesan,
message, clientAddress = serverSocket.recvfrom(2048)
dapatkan alamat client (IP modifiedMessage = message.decode().upper()
dan port client)
kirim kembali upper case serverSocket.sendto(modifiedMessage.encode(),
string ke client clientAddress)
tulis balasan ke
connectionSocket baca balasan dari
clientSocket
tutup
connectionSocket tutup
clientSocket