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
