Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012.

Presentasi serupa


Presentasi berjudul: "Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012."— Transcript presentasi:

1 Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012

2 Client-Server 2  Server, menyediakan sejumlah layanan.  Layanan tersebut mempersilahkan klien untuk menghubungkan diri ke host server untuk tujuan mengakses layanan.  Klien, menginisialisasi dialog dengan server  Klien disini berupa program (software) bukan klien orang.  Layanan umum yang disediakan server: web server, FTP server, database server, dsb.  Klien pengguna layanan: web browser, ftp client, dsb.

3 Client-Server 3  Aplikasi instant messaging, masuk client-server atau peer- to-peer ?  Kebanyakan aplikasi messaging menggunakan model P2P, tapi untuk aplikasi yang lain hal ini tidak mungkin digunakan mengingat banyaknya koneksi simultan  Menggunakan server sebagai perantara antara klien untuk menabstraksi koneksi P2P antar klien.

4 Port dan Socket 4  Keduanya merupakan jantung komunikasi jaringan.  Keduanya berkolaborasi dengan hardware komunikasi  Tetapi keduanya bukan hardware, melainkan konsep abstrak yang menjembatani programmer menggunakan link komunikasi.  Port adalah koneksi logik pada komputer (disamping ada koneksi fisik) dan diindentifikasi dengan angka dalam range 1-65545.  Port akan diimplementasikan selama semua komputer terhubung ke jaringan  Hanya komputer dengan program server saja yang mengunakan secara eksplisit nomor port.  Port dengan range 1-1023 digunakan untuk layanan standart  80 : HTTP  21: File Transfer Protocol (FTP)  23: Telnet remote login service  53: Domain Name System (DNS) service  Aplikasi umumnya menggunakan nomor port 1024-65535  Kecuali nomor-nomor port tertentu yang sudah diakuisisi program tertentu, seperti: MySQL (3306-3308), MS SQL Server (1433)

5 Port dan Socket 5  Umumnya, banyak klien secara bersamaan menginginkan layanan yang sama  Misal, banyak browser (ribuan mungkin) menginginkan halaman web dari server yang sama.  Server perlu membedakan diantara klien dan menjaga dialog dengan masing-masing secara terpisah satu sama lain.  Untuk kebutuhan ini, dicapai dengan menggunakan socket.  Socket, merupakan konsep abstrak, bukan elemen hardware komputer.  Socket digunakan untuk menandai satu dari dua end-point link komunikasi antara dua proses.  Ketika ada sebuah klien membuat koneksi ke server, maka klien membuat socket untuk link komunikasi.  Setelah diterimanya inisial request klien (pada nomor port tertentu), server akan membuat socket baru untuk klien tersebut dan khusus digunakan untuk berkomunikasi hanya untuk klien tersebut.  Hanya satu link hardware ke server yang dapat diasosiasikan dengan banyak port, sehingga satu port yang dapat diasosiasikan dengan banyak socket.

6 Internet dan IP Addresses 6  internet (huruf “i” kecil) adalah kumpulan jaringan komputer yang mempersilahkan semua komputer yang terhubung ke jaringan berkomunikasi dengan komputer lain yang berlokasi dimanapun yang terhubung juga ke jaringan (termasuk jaringan lokal).  Protokol yang digunakan untuk berkomunikasi adalah Internet Protocol.  Internet (huruf “I” besar) adalah jaringan berbasis IP terbesar didunia.  Setiap komputer punya IP unik  Versi yang digunakan saat ini IPv4 (32 bit)  Dalam masa transisi ke IPv6 (128 bit)  Misal: alamat 131.12.3.219 merupakan sebuah alamat IP

7 Internet Services, URL dan DNS 7  URL (Uniform Resource Locator) adalah identifier unik untuk segala resource yang berada di Internet.  Notasi pemanggilan: :// [: ][/ ][/ [# ]]  Nomor port boleh tidak disertakan jika server menggunakan nomor port standart.  Jika nama file tidak disertakan maka diasumsikan memanggil file index.html atau default.html.  Misal: http://java.sun.com/j2se/1.5.0/download.jsp  DNS (Domain Name System) adalah protokol untuk memetakan antara alamat IP dengan nama domain  Umumnya manusia lebih mudah mengingat nama daripada angka.

8 TCP 8  Packet-switched, pesan (kiriman data) dipecah menjadi sejumlah blok informasi yang disebut packet  Setiap paket ditangani secara terpisah  Memungkinkan melintasi jalur rute berbeda dari paket yang lain untuk pesan yang sama.  IP bertugas meneruskan paket-paket melewati jaringan  Tidak peduli urutan, karena dia juga bertanggung jawab terhadap trafik disekitarnya.  Akibatnya:  Paket tidak sampai ditujuan (mungkin hilang dijalan), tapi tidak ada informasi dari penerima mengenai ketidaksampaian paket tersebut.  Paket tiba ditujuan dengan benar tidak error), bisa juga error.  Tiba ditujuan dalam kondisi tidak urut seperti semula.

9 TCP 9  Karena masalah diatas, muncullah protokol TCP (Transmission Control Protocol)  Mebolehkan setiap ujung koneksi untuk mengetahui status penerimaan paket IP dan/atau permintan transmisi ulang paket yang hilang atau rusak disisi penerima.  Kolaborasi IP dan TCP (manjadi TCP/IP) merupakan dua protokol terbanyak yang digunakan dalam aplikasi jaringan.

10 UDP 10  TCP memberikan mekanisme transmisi yang terjamin, tetapi harus dibayar dengan waktu setup dan penggunaan overhead yang besar sehingga kapasitas transmisi relatif kecil.  Untuk aplikasi transfer file, paket harus diterima utuh dengan urutan yang benar.  Untuk aplikasi streaming, keutuhan dan urutan paket bukan hal penting melainkan kapasitas transmisi data yang lebih diutamakan.  Kebutuhan tersebut dipenuhi oleh User Datagram Protocol (UDP).  UDP merupakan protokol unreliable, karena:  Tidak menjamin bahwa setiap paket akan sampai ditujuan  Tidak menjamin paket tiba dengan urutan yang benar.  UDP tidak melakukan pengiriman ulang paket yang error dan tidak mengurutkan kembali paket-paket yang datang  Bekerja secara siginifikan lebih cepat daripada TCP.

11 Kelas InetAddress 11  Salah satu kelas dalam paket java.net adalah InetAddress  Menangani alamat Internet baik host name dan alamat IP.  Method statis getByName, menggunakan DNS untuk mendapatkan IP  Harus menambahkan eksepsi UnknownHostException dalam blok try….catch, untuk hostname yang tidak dikenali.

12 Contoh 12 Contoh: import java.net.*; import java.util.*; public class IPFinder { public static void main(String[] args) { String host; Scanner input = new Scanner(System.in); System.out.print("\n\nEnter host name: "); host = input.next(); try { InetAddress address = InetAddress.getByName(host); System.out.println("IP address: " + address.toString()); } catch (UnknownHostException uhEx) { System.out.println("Could not find " + host); }

13 TCP Socket 13  Link komunikasi yang dibuat vias socket TCP/IP merupakan connection-orientated link.  Artinya, hubungan antara server dan klien akan terbuka sepanjang durasi dialog, dan akan ditutup (dalam situasi normal) ketika salah satu pihak meminta pemberhentian hubungan.  Keduanya mempunyai proses masing-masing.  Ada 5 langkah di server: 1. Membuat objeck dari kelas ServerSocket 2. Memposisikan server dalam status menunggu (waiting) 3. Melakukan input dan output stream 4. Mengirim dan menerima data 5. Menutup koneksi (setelah dialog selesai)

14 TCP Socket di server 14 1. Membuat objeck dari kelas ServerSocket Konstruktor meminta nomor port 1024- 65535 Misal: ServerSocket servSock = new ServerSocket(1234); 2. Memposisikan server dalam status menunggu (waiting) Mengunakan method accept dari kelas ServerSocket, yang akan mengembalikan objek ketika hubungan dibentuk. Misal: Socket link = servSock.accept(); 3. Melakukan input dan output stream Methods getInputStream dan getOutputStream dari kelas Socket digunakan menerima masukan dan menngirimkan keluaran ke link komunikasi yang dibuat. Keluaran method getInputStream ditampung oleh obyek bertipe kelas Scanner Misal: Scanner input = new Scanner(link.getInputStream()); Method getOutputStream dilakukan oleh obyek bertipe kelas PrintWriter Misal: PrintWriter output = new PrintWriter(link.getOutputStream(),tr ue); 4. Mengirim dan menerima data Gunakan method nextLine Misal: output.println("Awaiting data..."); String input = input.nextLine(); 5. Menutup koneksi (setelah dialog selesai) Gunakan methos close dari kelas Socket Misal: link.close();

15 Contoh 15

16 TCP Socket di klien 16 1. Membentuk koneksi dengan server Membuat objek Socket, dengan menyertakan parameter di konstruktor:  Alamat IP server (tipe InetAddress)  Nomor port yang digunakan di server  Misal: Socket link = new Socket(InetAddress.getLocalHost(),1234); 2. Melakukan input dan output stream Sama dengan di server, menggunakan methods getInputStream dan getOutputStream dari objek Socket. 3. Mengirim dan menerima data Sama dengan di server, menggunakan objek dari Scanner dan PrintWriter. 4. Menutup koneksi Sama dengan di server, mengunakan method close dari kelas Socket.

17 Contoh 17

18 Contoh 18 Keluaran program di serverKeluaran program di klien

19 Datagram (UDP) Socket 19  Datagram socket merupakan connectionless, koneksi antara server dan klien tidak dikelola selamat dialog. Setiap paket datagram dikirim secara terpisah kapanpun dibutuhkan.  Karena koneksi tidak dikelola selama transmisi, server tidak membuat objek Socket sendiri- sendiri untuk setiap klien.  Perbedaan dengan socket TCP/IP adalah objek ServerSocket, server membuat obyek DatagramSocket, sama dengan setiap klien yang ingin mengirim datagram ke server.  Objek DatagramPacket dibuat dan dikirim di kedua ujung pihak.  Ada 9 proses di server: 1. Membuat objek DatagramSocket 2. Membuat buffer untuk datagram yang datang 3. Membuat objek DatagramPacket untuk datagram yang datang 4. Menerima datagram yang datang 5. Menerima alamat dan port pengirim dari paket 6. Memindai data dari buffer 7. Membuat datagram jawaban 8. Mengirim datagram jawaban 9. Menutup DatagramSocket

20 Datagram (UDP) Socket di server 20 1. Membuat objek DatagramSocket Misal: DatagramSocket datagramSocket = new DatagramSocket(1234); 2. Membuat buffer untuk datagram yang datang Membuat array byte Misal: byte[] buffer = new byte[256]; 3. Membuat objek DatagramPacket untuk datagram yang datang Konstrktur objek membutuhkan 2 argumen: byte array yang sudah dibuat dan ukuran array tersebut. Misal: DatagramPacket inPacket = new DatagramPacket(buffer, buffer.length); 4. Menerima datagram yang datang Menggunakan method receive dari objek DatagramSocket, diterima dengan objek DatagramPacket Misal: datagramSocket.receive(inPacket); 5. Menerima alamat dan port pengirim dari paket Menggunakan method getAddress dan getPort dari objek DatagramPacket Misal: InetAddress clientAddress = inPacket.getAddress(); int clientPort = inPacket.getPort();

21 Datagram (UDP) Socket di server 21 6. Memindai data dari buffer Untuk penyederhanaan, disini digunakan string untuk data yang dikirim. Ada 3 argumen yang dibutuhkan: array byte, posisi awal dalam array (=0), dan jumlah byte (=ukuran total buffer) Misal: String message = new String(inPacket.getData(), 0,inPacket.getLength()); 7. Membuat datagram jawaban Membuat objek DatagramPacket menggunakan overloading konstruktor dengan 4 argumen: array byte yang berisi pesan, ukuran jawaban, alamat klien, dan port klien. Misal: DatagramPacket outPacket = new DatagramPacket(response.getBytes(), response.length(),clientAddress, clientPort); 8. Mengirim datagram jawaban Menggunakan method send dari objek DatagramSocket. Misal: datagramSocket.send(outPacket); 9. Menutup DatagramSocket Menggunakan method close dari objek DatagramSocket. Misal: datagramSocket.close();

22 Contoh 22

23 Datagram (UDP) Socket di klien 23 1. Membuat objek DatagramSocket 2. Membuat datagram keluar 3. Mengirim pesan datagram 4. Membuat buffer untuk datagram masuk 5. Membuat objek DatagramPacket untuk datagram masuk. 6. Menerima datagram masuk 7. Membaca data dari buffer 8. Menutup DatagramSocket

24 Datagram (UDP) Socket di klien 24 1. Membuat objek DatagramSocket Sama dengan pembuatan objek DatagramSocket di server, tapi tidak memakai argumen. Misal: DatagramSocket datagramSocket = new DatagramSocket(); 2. Membuat datagram keluar Sama dengan langkah 7 di server Misal: DatagramPacket outPacket = new DatagramPacket(message.getBytes(), message.length(), host, PORT); 3. Mengirim pesan datagram Dengan memanggil method send dari objek DatagramSocket dan argumennya objek dari DatagramPacket Misal: datagramSocket.send(outPacket); 4. Membuat buffer untuk datagram masuk Sama dengan langkah 2 di server Misal: byte[] buffer = new byte[256];

25 Datagram (UDP) Socket di klien 25 5. Membuat objek DatagramPacket untuk datagram masuk. Sama dengan langkah 3 di server Misal: DatagramPacket inPacket = new DatagramPacket(buffer, buffer.length); 6. Menerima datagram masuk Sama dengan langkah 4 di server Misal: datagramSocket.receive(inPacket); 7. Membaca data dari buffer Sama dengan langkah 6 di server Misal: String response = new String(inPacket.getData(),0, inPacket.getLength()); Langkah 2-7 bisa diulang sebanyak yang diinginkan. 8. Menutup DatagramSocket Sama dengan langkah 9 di server Misal: datagramSocket.close();

26 Contoh 26

27 Contoh 27 Keluaran program di serverKeluaran program di klien

28 Any Question ? 28


Download ppt "Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012."

Presentasi serupa


Iklan oleh Google