Pemrograman Jaringan v.2014
Download
Report
Transcript Pemrograman Jaringan v.2014
Pemrograman Jaringan
Socket Programming
Aurelio Rahmadian
Objektif
Socket
Client-Server
TCP Socket Programming
UDP Socket Programming
TCP Socket vs UDP Socket
Socket
Socket adalah mekanisme komunikasi yang
memungkinkan terjadinya pertukaran data
antar program atau proses baik dalam satu
mesin maupun antar mesin
Keunggulan dari penggunaan socket adalah
dapat melakukan komunikasi antar
proses/program melalui jaringan berbasis
yang TCP/IP, bahkan dengan program lain,
sepanjang program tersebut berbicara dalam
protokol transfer yang sama
Socket
Socket adalah interface pada jaringan yang
menjadi titik komunikasi antarmesin pada
Internet Protocol, dan tentunya tanpa
komunikasi ini, tidak akan ada pertukaran
data dan informasi jaringan
Socket terdiri dari elemen-elemen utama
sebagai berikut:
◦
◦
◦
◦
◦
Protokol
Local IP
Local Port
Remote IP
Remote Port
Socket
Port
Port merupakan sebuah koneksi data virtual yang digunakan
aplikasi untuk bertukar data secara langsung
Terbagi atas 3 bagian:
◦ Well-known ports
Merupakan port yang telah digunakan secara internal oleh sistem,
misalnya port untuk koneksi Internet, service FTP, dan
seterusnya. Port yang telah digunakan ini adalah port 0 sampai
dengan port 1023.
◦ Registered ports
Port ini dapat digunakan dalam aplikasi tertentu, range-nya adalah
port 1024 hingga port 49151.
◦ Dynamic/Private ports
Dari port 49152 sampai dengan port 65535.
Socket
Network Socket merupakan titik akhir
arus komunikasi melalui suatu jaringan
komputer, ditujukan untuk komunikasi
antar aplikasi antar mesin dalam
lingkungan jaringan TCP/IP
Kebanyakan network socket merupakan
Internet Socket
Socket
Jenis internet socket:
◦ Stream Socket, connection-oriented socket,
menggunakan TCP
◦ Datagram Socket, connectionless,
menggunakan UDP
◦ Raw Socket (Raw IP Socket), umumnya
berada pada perangkat jaringan
Socket
Stream Socket
Socket komunikasi full-duplex berbasis aliran
(stream) data
Pada model komunikasi Socket Stream,
koneksi dua aplikasi harus dalam kondisi
tersambung dengan benar untuk dapat
bertukar data
Koneksi model seperti ini akan menjamin
data dapat dipertukarkan dengan baik, namun
memiliki kelemahan dalam hal penggunaan
jalur data yang relatif besar dan tidak boleh
terputus
Socket
Datagram Socket
Socket ini tidak membutuhkan koneksi yang
tersambung dengan benar untuk
mengirimkan dan menerima data
Model koneksi semacam ini tidak dapat
menjamin data dapat dipertukarkan dengan
baik, namun memiliki keunggulan dalam hal
penggunaan jalur data yang minimal
Tidak ada yang dapat menjamin data dapat
diterima dengan baik, kecuali diterapkan
metoda rechecking
Client-Server
Kebanyakan jaringan komputer yang ada
saat ini memiliki arsitektur client-server
Client melakukan inisiasi proses
komunikasi
Server merespon permintaan/request dari
client
Client-Server
Untuk membuat aplikasi socket yang
sederhana diperlukan dua aplikasi,
pertama adalah aplikasi server yang akan
menerima data, sedangkan aplikasi kedua
adalah aplikasi client yang mengirimkan
data pada server
Baik aplikasi server dan aplikasi client
mendefinisikan port yang sama sebagai
jalur komunikasi
TCP Socket Programming
Dari sisi server
◦ Server berada dalam posisi Listening dan siap
menerima koneksi dari client
◦ Pengiriman dan penerimaan data
menggunakan input dan output stream
Dari sisi client
◦ Koneksi ke server dilakukan pada pemanggilan
constructor
◦ Pengiriman dan penerimaan data
menggunakan input dan output stream
TCP Socket Programming
Model TCP Client-Server
TCP Socket Programming
Socket pada server memiliki fungsi:
◦ Mengikat Port (Bind Function)
◦ Mengamati data yang datang (Listen Function)
◦ Menerima koneksi dari remote machine pada
port tertentu (Accept Function)
TCP Socket Programming
TCP Server
socket( )
bind( )
+----> listen( )
|
accept( )
|
(block until connection from client )
|
read( )
|
write( )
+----close( )
close( )
TCP Socket Programming
Create a server socket
Prepare the socket to listen
Wait for a request to connect, a new client
socket is created here
Read data sent from client
Send data back to client
Close client socket
Loop back if not told to exit
Close server socket is exit command given
by client
TCP Socket Programming
Socket(InetAddress address, int port)
◦ Membuat sebuah stream socket dan koneksi ke suatu
nomor port pada suatu komputer yang memiliki alamat IP
Socket(String Host, int port)
◦ Membuat stream socket dan juga koneksi ke suatu port
komputer berdasarkan nama komputernya
Socket(String host, int port, InetAddress
localAddr, int localPort)
◦ Membuat sebuah socket dan mengkoneksikannya ke port
yang dituju pada alamat IP yang disebutkan pada parameter
address atau namahost
◦ Melakukan bind socket ke alamat lokal dan port lokal. (Jika
koneksi antara client dan server membutuhkan nomor
port yang sudah ditentukan)
TCP Socket Programming
TCP Client
socket( )
connect( )
write( )
read( )
close( )
TCP Socket Programming
Create a socket with the server IP
address
Connect to the server, this step also
names the socket
Send data to the server
Read data returned (echoed) back from
the server
Close the socket
UDP Socket Programming
Untuk protokol UDP, perbedaanya adalah
socket di sisi server sama dengan socket
di sisi client, dan tidak ada operasi listen
pada sisi server
Kemudian saat paket data dikirimkan,
alamat socket penerima harus disertakan
sebagai argumen
UDP Socket Programming
DatagramSocket(int port)
◦ Class ini dapat digunakan untuk menyatakan penggunaan
suatu nomor port sebagai "pintu“ untuk menerima koneksi
dari client
DatagramSocket(int port, InetAddress laddr)
◦ Class ini membentuk koneksi dengan protokol UDP pada
alamat IP lokal tertentu dan pada nomor port tertentu
DatagramSocket()
◦ Class ini membentuk koneksi dengan protokol UDP pada
alamat IP localhost dengan penentuan nomor portnya
secara random berdasar tersedianya nomor port yang
dapat digunakan
UDP Socket Programming
UDP Server
Membuat socket menggunakan DatagramSocket
object
Membuat object dari DatagramPacket class dan
menggunakan receive() method untuk menerima
pesan yang dikirim client
Membuat object dari DatagramPacket class dan
menggunakan send() method untuk mengirim
pesan ke client
Memulai server server dengan memanggil
constructor dari UDP server class di method
main()
UDP Socket Programming
UDP Client
Membuat socket dan menggunakan object
DatagramSocket untuk melakukan
komunikasi dengan server
Membuat object dari DatagramPacket class
dan menggunakan send() method untuk
mengirim pesan ke server
Membuat object dari DatagramPacket class
dan menggunakan method receive() untuk
menerima pesan yang dikirim oleh server
TCP Socket vs UDP Socket
TCP adalah protocol yang reliable
◦ Menunggu konfirmasi dari pihak socket penerima, dan
kalau perlu packet data yang hilang akan dikirimkan
kembali
◦ Konsekuensinya adalah TCP menimbulkan overhead
lalulintas jaringan lebih tinggi dibanding UDP
UDP adalah protocol yang unreliable
◦ Ketika packet data dikirimkan, UDP tidak mengecek
kembali apakah data yang dikirim sampai tujuan
◦ Jadi dengan UDP tidak ada kepastian bagi sisi pengirim
bahwa datanya sudah sampai ke tujuan dengan
keadaan baik
TCP Socket vs UDP Socket
TCP: tidak memiliki batasan karena datadata dikirimkan sebagai aliran data
(stream)
UDP: memiliki batasan ukuran datagram
(packet data) yang dikirimkan sebesar 64
kB
TCP Socket vs UDP Socket
TCP: membuat setup koneksi dengan
socket tujuan terlebih dulu, setelah
koneksi terbentuk, tidak dibutuhkan
mengirimkan informasi socket pengirim
tiap kali data dikirimkan
UDP: setiap kali suatu packet data
dikirim, informasi socket pengirim dan
alamat socket tujuan turut dikirimkan