Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen

  • Slides: 28
Download presentation
Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012

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

Client-Server � Server, menyediakan sejumlah layanan. � Layanan tersebut mempersilahkan klien untuk menghubungkan diri

Client-Server � 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. 2

Client-Server � Aplikasi instant messaging, masuk client-server atau peer -to-peer ? � Kebanyakan aplikasi

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

Port dan Socket Keduanya merupakan jantung komunikasi jaringan. � Keduanya berkolaborasi dengan hardware komunikasi

Port dan Socket Keduanya merupakan jantung komunikasi jaringan. � Keduanya berkolaborasi dengan hardware komunikasi � � � Port adalah koneksi logik pada komputer (disamping ada koneksi fisik) dan diindentifikasi dengan angka dalam range 1 -65545. � � 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 � 4 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 � � Tetapi keduanya bukan hardware, melainkan konsep abstrak yang menjembatani programmer menggunakan link komunikasi. Kecuali nomor-nomor port tertentu yang sudah diakuisisi program tertentu, seperti: My. SQL (3306 -3308), MS SQL Server (1433)

Port dan Socket � Umumnya, banyak klien secara bersamaan menginginkan layanan yang sama �

Port dan Socket � 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. � � 5 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.

Internet dan IP Addresses � internet (huruf “i” kecil) adalah kumpulan jaringan komputer yang

Internet dan IP Addresses � 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 IPv 4 (32 bit) � Dalam masa transisi ke IPv 6 (128 bit) � � Misal: 6 alamat 131. 12. 3. 219 merupakan sebuah alamat IP

Internet Services, URL dan DNS � URL (Uniform Resource Locator) adalah identifier unik untuk

Internet Services, URL dan DNS � URL (Uniform Resource Locator) adalah identifier unik untuk segala resource yang berada di Internet. � Notasi pemanggilan: <protocol>: //<hostname>[: <port>][/<pathname>][/<filename>[ #<section>]] � 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/j 2 se/1. 5. 0/download. jsp � DNS (Domain Name System) adalah protokol untuk memetakan antara alamat IP dengan nama domain � 7 Umumnya manusia lebih mudah mengingat nama daripada angka.

TCP � Packet-switched, pesan (kiriman data) dipecah menjadi sejumlah blok informasi yang disebut packet

TCP � 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. � 8

TCP � Karena masalah diatas, muncullah protokol TCP (Transmission Control Protocol) � Mebolehkan setiap

TCP � 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. 9

UDP � TCP memberikan mekanisme transmisi yang terjamin, tetapi harus dibayar dengan waktu setup

UDP � 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 � 10 Bekerja secara siginifikan lebih cepat daripada TCP.

Kelas Inet. Address � Salah satu kelas dalam paket java. net adalah Inet. Address

Kelas Inet. Address � Salah satu kelas dalam paket java. net adalah Inet. Address � Menangani alamat Internet baik host name dan alamat IP. � Method statis get. By. Name, menggunakan DNS untuk mendapatkan IP � Harus menambahkan eksepsi Unknown. Host. Exception dalam blok try…. catch, untuk hostname yang tidak dikenali. 11

Contoh: import java. net. *; import java. util. *; public class IPFinder { public

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("nn. Enter host name: "); host = input. next(); try { Inet. Address address = Inet. Address. get. By. Name(host); System. out. println("IP address: " + address. to. String()); } catch (Unknown. Host. Exception uh. Ex) { System. out. println("Could not find " + host); } } } 12

TCP Socket � Link komunikasi yang dibuat vias socket TCP/IP merupakan connection-orientated link. �

TCP Socket � 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. 2. 3. 4. 5. 13 Membuat objeck dari kelas Server. Socket Memposisikan server dalam status menunggu (waiting) Melakukan input dan output stream Mengirim dan menerima data Menutup koneksi (setelah dialog selesai)

TCP Socket di server Membuat objeck dari kelas Server. Socket 1. Keluaran method get.

TCP Socket di server Membuat objeck dari kelas Server. Socket 1. Keluaran method get. Input. Stream ditampung oleh obyek bertipe kelas Scanner Misal: Scanner input = new Scanner(link. get. Input. Stream()); Method get. Output. Stream dilakukan oleh obyek bertipe kelas Print. Writer Misal: Print. Writer output = new Print. Writer(link. get. Output. Stream(), true); Konstruktor meminta nomor port 102465535 Misal: Server. Socket serv. Sock = new Server. Socket(1234); Memposisikan server dalam status menunggu (waiting) 2. Mengunakan method accept dari kelas Server. Socket, yang akan mengembalikan objek ketika hubungan dibentuk. Misal: Socket link = serv. Sock. accept(); 4. Gunakan method next. Line Misal: output. println("Awaiting data. . . "); String input = input. next. Line(); Melakukan input dan output stream 3. Methods get. Input. Stream dan get. Output. Stream dari kelas Socket digunakan menerima masukan dan menngirimkan keluaran ke link komunikasi yang dibuat. 14 Mengirim dan menerima data 5. Menutup koneksi (setelah dialog selesai) Gunakan methos close dari kelas Socket Misal: link. close();

Contoh 15

Contoh 15

TCP Socket di klien 1. 2. Membentuk koneksi dengan server Membuat objek Socket, dengan

TCP Socket di klien 1. 2. Membentuk koneksi dengan server Membuat objek Socket, dengan menyertakan parameter di konstruktor: � Alamat IP server (tipe Inet. Address) � Nomor port yang digunakan di server � Misal: Socket link = new Socket(Inet. Address. get. Local. Host(), 1234); Melakukan input dan output stream Sama dengan di server, menggunakan methods get. Input. Stream dan get. Output. Stream dari objek Socket. Mengirim dan menerima data 3. Sama dengan di server, menggunakan objek dari Scanner dan Print. Writer. Menutup koneksi 4. Sama dengan di server, mengunakan method close dari kelas Socket. 16

Contoh 17

Contoh 17

Contoh Keluaran program di server 18 Keluaran program di klien

Contoh Keluaran program di server 18 Keluaran program di klien

Datagram (UDP) Socket Datagram socket merupakan connectionless, koneksi antara server dan klien tidak dikelola

Datagram (UDP) Socket 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 untuk setiap klien. � Perbedaan dengan socket TCP/IP adalah objek Server. Socket, server membuat obyek Datagram. Socket, sama dengan setiap klien yang ingin mengirim datagram ke server. � � 19 Objek Datagram. Packet dibuat dan dikirim di kedua ujung pihak. � Ada 9 proses di server: 1. 2. 3. 4. 5. 6. 7. 8. 9. Membuat objek Datagram. Socket Membuat buffer untuk datagram yang datang Membuat objek Datagram. Packet untuk datagram yang datang Menerima alamat dan port pengirim dari paket Memindai data dari buffer Membuat datagram jawaban Mengirim datagram jawaban Menutup Datagram. Socket

Datagram (UDP) Socket di server 1. Membuat objek Datagram. Socket Misal: Datagram. Socket datagram.

Datagram (UDP) Socket di server 1. Membuat objek Datagram. Socket Misal: Datagram. Socket datagram. Socket = new Datagram. Socket(1234); 2. Membuat buffer untuk datagram yang datang Membuat array byte Misal: byte[] buffer = new byte[256]; 3. Membuat objek Datagram. Packet untuk datagram yang datang Konstrktur objek membutuhkan 2 argumen: byte array yang sudah dibuat dan ukuran array tersebut. Misal: Datagram. Packet in. Packet = new Datagram. Packet(buffer, buffer. length); 4. Menerima datagram yang datang Menggunakan method receive dari objek Datagram. Socket, diterima dengan objek Datagram. Packet Misal: datagram. Socket. receive(in. Packet); 5. Menerima alamat dan port pengirim dari paket Menggunakan method get. Address dan get. Port dari objek Datagram. Packet Misal: Inet. Address client. Address = in. Packet. get. Address(); int client. Port = in. Packet. get. Port(); 20

Datagram (UDP) Socket di server 6. Memindai data dari buffer Untuk penyederhanaan, disini digunakan

Datagram (UDP) Socket di server 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(in. Packet. get. Data(), 0, in. Packet. get. Length()); 7. Membuat datagram jawaban Membuat objek Datagram. Packet menggunakan overloading konstruktor dengan 4 argumen: array byte yang berisi pesan, ukuran jawaban, alamat klien, dan port klien. Misal: Datagram. Packet out. Packet = new Datagram. Packet(response. get. Bytes(), response. length(), client. Address, client. Port); 8. Mengirim datagram jawaban Menggunakan method send dari objek Datagram. Socket. Misal: datagram. Socket. send(out. Packet); 9. Menutup Datagram. Socket Menggunakan method close dari objek Datagram. Socket. Misal: datagram. Socket. close(); 21

Contoh 22

Contoh 22

Datagram (UDP) Socket di klien 1. 2. 3. 4. 5. 6. 7. 8. 23

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

Datagram (UDP) Socket di klien Membuat objek Datagram. Socket 1. Sama dengan pembuatan objek

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

Datagram (UDP) Socket di klien Membuat objek Datagram. Packet untuk datagram masuk. 5. Sama

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

Contoh 26

Contoh 26

Contoh Keluaran program di server 27 Keluaran program di klien

Contoh Keluaran program di server 27 Keluaran program di klien

Any Question ?

Any Question ?