SOCKET UDP (JAVA) PDF

Title SOCKET UDP (JAVA)
Author Ismo Broto
Pages 9
File Size 244.3 KB
File Type PDF
Total Downloads 651
Total Views 750

Summary

PEMOGRAMAN SOCKET (UDP) Kelompok 3 (MataKuliah Sistem Terditribusi) Oleh: Gatot Broto Ismoyo 11101152630022 Muhammad Hasbi 11101152630022 Hendri Ronaldi 11101152630022 Lia Indra Mayu 11101152630022 Fabiola Lazuardi 11101152630022 Rosa Batamiyur 11101152630022 Program Studi Teknik Informatika (FILKOM...


Description

PEMOGRAMAN SOCKET (UDP) Kelompok 3 (MataKuliah Sistem Terditribusi)

Oleh: Gatot Broto Ismoyo

11101152630022

Muhammad Hasbi

11101152630022

Hendri Ronaldi

11101152630022

Lia Indra Mayu

11101152630022

Fabiola Lazuardi

11101152630022

Rosa Batamiyur

11101152630022

Program Studi Teknik Informatika (FILKOM) Universitas Putra Indonesia YPTK Padang 2014

PEMOGRAMAN SOCKET (UDP) A.

PENGENALAN SOCKET PROGRAMMING Socket adalah Saluran komunikasi antarkomputer yang berbasis protocol internet.

Socket programming adalah bagaimana cara menggunakan socket API (Application Socket Programming), untuk menghubungkan komunikasi antara proses remote dan local. Sedangkan API adalah sebuah library atau fungsi windows untuk mengeksekusi sebuah perintah yang ada di dalam semua tampilan windows, sebagai contoh untuk tampilan desktop, screen saver, shutdown computer dll.

B.

JENIS PROTOCOL Ada dua jenis protokol yang digunakan untuk berkomunikasi antar computer, yaitu : 1. TCP (Transmission Control Protocol) TCP (Transmission Control Protocol) adalah protokol yang paling umum digunakan di Internet. Alasan untuk ini adalah karena TCP menawarkan koreksi kesalahan Ketika protokol TCP digunakan ada guara teed deli ery. yaitu ja i a terkirim. Hal ini disebabkan metode yang disebut flo

ah a pa ket aka

o trol. Flow control menentukan

kapan data harus dikirim kembali, dan menghentikan aliran data paket sebelumnya sampai berhasil ditransfer. Saat paket data dikirim, tabrakan dapat terjadi. Ketika ini terjadi, client akan meminta kembali paket dari server sampai seluruh paket lengkap dan identik dengan aslinya.

2. UDP (User Datagram Protocol) UDP (User Datagram Protocol) adalah protokol yang umum digunakan di Internet. Namun, UDP tidak pernah digunakan untuk mengirim data penting seperti halaman web, informasi database, dll. UDP umumnya digunakan untuk streaming audio dan video. Media streaming seperti Windows Media audio files (.WMA), Real Player (.RM), dan lain-lain menggunakan UDP karena menawarkan kecepatan! Alasan UDP lebih cepat daripada TCP

adalah karena tidak ada bentuk flow control atau koreksi kesalahan. Data yang dikirim melalui Internet dipengaruhi oleh tabrakan, dan error akan muncul. Ingatlah bahwa UDP hanya berkaitan dengan kecepatan. Ini adalah alasan utama mengapa media streaming tidak berkualitas tinggi.

C.

USER DATAGRAM PROTOCOL (UDP) UDP, singkatan dari User Datagram Protocol, adalah salah satu protokol lapisan transpor

TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.

1. Karakteristik UDP UDP memiliki karakteristik-karakteristik berikut: a.

Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak bertukar informasi.

b.

Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan.

c.

UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification.

d.

UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP.

2. Penggunaan UDP UDP sering digunakan dalam beberapa tugas berikut: a. Protokol yang "ringan" (lightweight): Untuk menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsifungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System. b. Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS). c.

Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing Information Protocol (RIP).

d. Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service.

3.

Port UDP Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host,

yang disebut dengan UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai sebuah multiplexed message queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port berbeda

dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara luas.

Nomor Port UDP

Digunakan oleh

53 Domain Name System (DNS) Name Query 67 BOOTP client (Dynamic Host Configuration Protocol [DHCP]) 68 BOOTP server (DHCP) 69 Trivial File Transfer Protocol (TFTP) 137 NetBIOS Name Service 138 NetBIOS Datagram Service 161 Simple Network Management Protocol (SNMP) 445 Server Message Block (SMB) 520 Routing Information Protocol (RIP) 1812/1813 Remote Authentication Dial-In User Service (RADIUS) 4. Perbedaan antara UDP dan TCP a. UDP adalah

datagra -orie ted , seda gka

TCP adalah

sessio -orie ted .

Datagram adalah paket informasi self-contained. UDP berhubungan dengan datagram atau paket individu yang dikirim dari client ke server dan atau sebaliknya. b. UDP adalah connection-less. Client tidak membangun koneksi ke server sebelum mengirim data, client hanya mengirim data secara langsung. c. UDP adalah protokol yang tidak andal, dalam artian :

 Paket dapat hilang. UDP tidak dapat mendeteksinya, sehingga pada program aplikasi client - server, metode transmisi ulang dikarenakan data rusak atau hilang harus dilakukan pada level aplikasi. Biasanya aplikasi menunggu hingga timeout habis, dan kemudian mencoba lagi.

 Paket dapat mengalami kerusakan. Paket UDP berisi checksum semua data dalam paket. Checksum ini memungkinkan UDP mendeteksi kapan suatu paket mengalami kerusakan. Jika hal ini terjadi, maka paket tersebut dikeluarkan, dan sebagaimana biasa aplikasilah yang mendeteksi hal ini dan melakukan transmisi ulang seperlunya.

 Karena UDP adalah datagram-oriented dan pada level protokol setiap paket berdiri sendiri, maka UDP tidak memiliki konsep paket sesuai urutan, yang selanjutnya berarti tidak memerlukan nomor urut pada paket tersebut.



Karena UDP tidak memerlukan mekanisme kontrol yang rumit, maka UDP dapat dianggap lebih mudah dan lebih kecil ( dalam hal baris data dan memori ) untuk diimplementasikan. Namun hal tersebut juga membuat UDP tidak cocok untuk sejumlah besar data.

D.

KELEBIHAN DAN KEKURANGAN PROTOKOL UDP 1. Kelebihan UDP a. Dapat melakukan pesan broadcast (karena memang dalam UDP tidak membutuhkan handshaking) jadi akan dikirim secara keseluruhan b. Lebih cepat koneksinya karena tidak harus bernegosiasi (handshaking) dan juga tidak berurutan pengirimannya c. Hemat Memori, karena tidak ribet tidak harus memecah data terlebih dulu, membuat acknowledge dll. 2. Kekurangan UDP a. Tidak bisa mengirim data yang besar, karena UDP tidak bisa memecah-mecah data yang dikirim, tidak boleh lebih dari kapasitas transfer jaringannya. b. Tidak mendukung buffering c. Tidak menyediakan mekanisme flow control

E.

CONTOH APLIKASI (JAVA) DENGAN MENGGUNAKAN SOCKET UDP 1. Aplikasi Server (File: UDPServer.java) /* UDPServer Berfungsi sebagai server menggunakan protokol UDP. Tugasnya untuk menerima koneksi dari client, kemudian apabila klien memasukkan kata kunci, maka dicompare dengan string yang sudah ditentukan sebelumnya, yaitu NAMA, NIM, kemudian memberikan output yang sesuai. Terbagi dalam 11 step : step 1: Membuat datagram socket. step 2: Membuat buffer untuk packet yang masuk. step 3: Membuat datagram packet untuk packet yang masuk. step 4: Menerima datagram yang masuk. step 5: Memilah data dari datagram yang masuk. Kemudian mengambil data address. step 6: Memilah data dari datagram yang masuk. Kemudian mengambil data port. step 7: Memilah data dari datagram yang masuk. Kemudian mengambil data isi. step 8: Membandingkan isi datagram yang masuk dengan string yang sudah ditentukan sebelumnya, dan mengisi variable messageOut dengan string yang sesuai.

step 9: Membuat datagram untuk dikirimkan ke server berisi messageOut, adress client, port client. step10: Mengirimkan datagram yang telah dibuat pada step 9 ke klien. step11: Apabila terjadi exception, maka koneksi akan diputus. Author ISMO http://ismopapers.wordpress.com/ (Desktop Site) http://ismolha.onbile.com/ (Mobile Site) */ import java.io.*; import java.net.*; public class UDPServer { private static final int PORT = 1234; private static DatagramSocket datagramSocket; private static DatagramPacket inPacket, outPacket; private static byte[] buffer; public static void main(String[] args) { System.out.print("Membuka Port...\n"); try { datagramSocket = new DatagramSocket(PORT); //Step 1. System.out.println("Berhasil membuka port!\n\nServer hidup. Menunggu koneksi dari klien!"); } catch(SocketException sockEx) { System.out.println("Tidak dapat membuka port!"); System.exit(1); } handleClient(); } private static void handleClient() { try { String messageIn,messageOut; int numMessages = 0; do { buffer = new byte[256]; //Step 2. inPacket = new DatagramPacket(buffer, buffer.length); //Step 3. datagramSocket.receive(inPacket);//Step 4. InetAddress clientAddress = inPacket.getAddress(); //Step 5. int clientPort = inPacket.getPort(); //Step 6. messageIn = new String(inPacket.getData(),0,inPacket.getLength()); //Step7. System.out.println("Message received : " + messageIn); numMessages++; //step 8........ if(messageIn.compareTo("NAMA")==0){ messageOut = "NAMA : Gatot Broto Ismoyo"; } else if(messageIn.compareTo("NOBP")==0){ messageOut = "NOBP : 11101152630022";

} else { messageOut="Kata kunci ulangi kembali. ( NAMA / NOBP / EXIT )"; // }

anda

salah.

Mohon

outPacket = new DatagramPacket(messageOut.getBytes(), messageOut.length(), clientAddress, clientPort); //Step 9. datagramSocket.send(outPacket); //Step 10. } while (true); } catch(IOException ioEx) { ioEx.printStackTrace(); } finally //jika terjadi exception maka akan menutup koneksi. { System.out.println("\n* Menutup koneksi... *"); datagramSocket.close(); //Step 11. } } }

2. Aplikasi Clinet (File: UDPClient.java) /* UDPClient Menggunakan protokol UDP Berfungsi sebagai klien dari UDPServer yang akan menjadi interface bagi user. Untuk memasukkan kata kunci yang telah disepakati sebelumnya, yaitu NAMA, NOBP, EXIT. Dan mengirimkan setiap message yang dimasukkan oleh user ke server, kemudian menampilkan jawaban yang dikirimkan server. Terbagi dalam 8 step: Pertama dicheck apakah string yang dimasukkan oleh user sama dengan "EXIT", kalau sama maka akan langsung menuju step 8, akan tetapi kalau tidak dimulai dari step 1 step 1: Membuat datagram socket. step 2: Membuat datagram packet outgoing. Ini merupakan packet datagram yang dikirimkan ke server. step 3: Mengirimkan packet datagram yang telah di buat dalam step 2 ke server. step 4: Membuat buffer untuk packet yang masuk. step 5: Membuat datagram packet untuk packet yang masuk. step 6: Menerima datagram yang masuk. step 7: Memilah data dari datagram yang masuk. Kemudian menampilkan data isi/content. step 8: Menutup koneksi ke server. author ISMO http://ismopapers.wordpress.com/ http://ismolha.onbile.com/ */ import java.io.*; import java.net.*;

(Desktop Site) (Mobile Site)

import java.util.*; public class UDPClient { private static InetAddress host; private static final int PORT = 1234; private static DatagramSocket datagramSocket; private static DatagramPacket inPacket, outPacket; private static byte[] buffer; public static void main(String[] args) { try { host = InetAddress.getLocalHost(); } catch(UnknownHostException uhEx) { System.out.println("Host ID tidak ditemukan!"); System.exit(1); } accessServer(); } private static void accessServer() { try { //step 1 datagramSocket = new DatagramSocket(); //men set up stream untuk masukan dari keyboard... Scanner userEntry = new Scanner(System.in); String message="", response=""; System.out.println("Selamat Datang di Client App.\nSilahkan Masukkan kata kunci:\n NAMA : untuk melihat data nama.\n NOBP : untuk melihat data NOBP. \n EXIT : untuk keluar dari Client App. \n Kata kunci anda : "); do { message = userEntry.nextLine(); if (!message.equals("EXIT")) { outPacket = new DatagramPacket( message.getBytes(), message.length(), host, PORT); //Step 2. //Step 3... datagramSocket.send(outPacket); buffer = new byte[256]; //Step 4. inPacket = new DatagramPacket( buffer, buffer.length);//Step 5. //Step 6... datagramSocket.receive(inPacket); response = new String(inPacket.getData(),0, inPacket.getLength()); //Step 7. System.out.println( "SERVER> "+response); } } while (!message.equals("EXIT")); } catch(IOException ioEx) { ioEx.printStackTrace(); } finally { System.out.println( "\n* Menutup koneksi ke server... *"); datagramSocket.close(); //Step 8. } } }...


Similar Free PDFs