Pemrograman Jaringan
description
Transcript of Pemrograman Jaringan
Pemrograman JaringanSocket Programming
Aurelio Rahmadian
ObjektifSocketClient-ServerTCP Socket ProgrammingUDP Socket ProgrammingTCP Socket vs UDP Socket
SocketSocket 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
SocketSocket 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
SocketPort 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 portsPort ini dapat digunakan dalam aplikasi tertentu, range-nya adalah port 1024 hingga port 49151.
◦ Dynamic/Private portsDari port 49152 sampai dengan port 65535.
SocketNetwork 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
SocketJenis internet socket:
◦Stream Socket, connection-oriented socket, menggunakan TCP
◦Datagram Socket, connectionless, menggunakan UDP
◦Raw Socket (Raw IP Socket), umumnya berada pada perangkat jaringan
SocketStream SocketSocket komunikasi full-duplex berbasis
aliran (stream) dataPada 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
SocketDatagram SocketSocket 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-ServerKebanyakan jaringan komputer
yang ada saat ini memiliki arsitektur client-server
Client melakukan inisiasi proses komunikasi
Server merespon permintaan/request dari client
Client-ServerUntuk 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 ProgrammingDari 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 ProgrammingModel TCP Client-Server
TCP Socket ProgrammingSocket 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 ProgrammingTCP Server
socket( )bind( )
+----> listen( )| accept( )| (block until connection from client )
| read( )| write( )+----- close( )
close( )
TCP Socket ProgrammingCreate a server socketPrepare the socket to listenWait for a request to connect, a new
client socket is created hereRead data sent from clientSend data back to clientClose client socketLoop back if not told to exitClose server socket is exit command
given by client
TCP Socket ProgrammingSocket(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 komputernyaSocket(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 Clientsocket( )connect( )write( )read( )close( )
TCP Socket ProgrammingCreate a socket with the server IP
addressConnect to the server, this step
also names the socketSend data to the serverRead data returned (echoed)
back from the serverClose the socket
UDP Socket ProgrammingUntuk 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 ProgrammingDatagramSocket(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 ProgrammingUDP ServerMembuat socket menggunakan
DatagramSocket objectMembuat 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 ProgrammingUDP ClientMembuat 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 SocketTCP 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 SocketTCP: tidak memiliki batasan
karena data-data dikirimkan sebagai aliran data (stream)
UDP: memiliki batasan ukuran datagram (packet data) yang dikirimkan sebesar 64 kB
TCP Socket vs UDP SocketTCP: 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