Pemrograman Jaringan

26
Pemrograman Jaringan Socket Programming Aurelio Rahmadian

description

Pemrograman Jaringan. Socket Programming. Aurelio Rahmadian. Objektif. Socket Client-Server TCP Socket Programming UDP Socket Programming TCP Socket vs UDP Socket. Socket. - PowerPoint PPT Presentation

Transcript of Pemrograman Jaringan

Page 1: Pemrograman Jaringan

Pemrograman JaringanSocket Programming

Aurelio Rahmadian

Page 2: Pemrograman Jaringan

ObjektifSocketClient-ServerTCP Socket ProgrammingUDP Socket ProgrammingTCP Socket vs UDP Socket

Page 3: Pemrograman Jaringan

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

Page 4: Pemrograman Jaringan

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

Page 5: Pemrograman Jaringan

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.

Page 6: Pemrograman Jaringan

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

Page 7: Pemrograman Jaringan

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

Page 8: Pemrograman 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

Page 9: Pemrograman Jaringan

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

Page 10: Pemrograman Jaringan

Client-ServerKebanyakan jaringan komputer

yang ada saat ini memiliki arsitektur client-server

Client melakukan inisiasi proses komunikasi

Server merespon permintaan/request dari client

Page 11: Pemrograman Jaringan

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

Page 12: Pemrograman Jaringan

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

Page 13: Pemrograman Jaringan

TCP Socket ProgrammingModel TCP Client-Server

Page 14: Pemrograman Jaringan

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)

Page 15: Pemrograman Jaringan

TCP Socket ProgrammingTCP Server

socket( )bind( )

+----> listen( )| accept( )| (block until connection from client )

| read( )| write( )+----- close( )

close( )

Page 16: Pemrograman Jaringan

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

Page 17: Pemrograman Jaringan

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)

Page 18: Pemrograman Jaringan

TCP Socket Programming

TCP Clientsocket( )connect( )write( )read( )close( )

Page 19: Pemrograman Jaringan

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

Page 20: Pemrograman Jaringan

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

Page 21: Pemrograman Jaringan

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

Page 22: Pemrograman Jaringan

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()

Page 23: Pemrograman Jaringan

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

Page 24: Pemrograman Jaringan

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

Page 25: Pemrograman Jaringan

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

Page 26: Pemrograman Jaringan

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