1 / 28

Pengenalan Pemrograman Jaringan Materi 1

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 ke host server untuk tujuan mengakses layanan .

Télécharger la présentation

Pengenalan Pemrograman Jaringan Materi 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PengenalanPemrogramanJaringanMateri 1 PemrogramanJaringan Dosen: EkoPrasetyo TeknikInformatika UMG 2012

  2. Client-Server • Server, menyediakansejumlahlayanan. • Layanantersebutmempersilahkanklienuntukmenghubungkandirike host server untuktujuanmengakseslayanan. • Klien, menginisialisasi dialog dengan server • Kliendisiniberupa program (software) bukanklienorang. • Layananumum yang disediakan server: web server, FTP server, database server, dsb. • Klienpenggunalayanan: web browser, ftp client, dsb.

  3. Client-Server • Aplikasi instant messaging, masuk client-server atau peer-to-peer ? • Kebanyakanaplikasi messaging menggunakan model P2P, tapiuntukaplikasi yang lain halinitidakmungkindigunakanmengingatbanyaknyakoneksisimultan • Menggunakan server sebagaiperantaraantaraklienuntukmenabstraksikoneksi P2P antarklien.

  4. Port dan Socket • Keduanyamerupakanjantungkomunikasijaringan. • Keduanyaberkolaborasidengan hardware komunikasi • Tetapikeduanyabukan hardware, melainkankonsepabstrak yang menjembatani programmer menggunakan link komunikasi. • Port adalahkoneksilogikpadakomputer (disampingadakoneksifisik) dandiindentifikasidenganangkadalam range 1-65545. • Port akandiimplementasikanselamasemuakomputerterhubungkejaringan • Hanyakomputerdengan program server saja yang mengunakansecaraeksplisitnomor port. • Port dengan range 1-1023 digunakanuntuklayananstandart • 80 : HTTP • 21: File Transfer Protocol (FTP) • 23: Telnet remote login service • 53: Domain Name System (DNS) service • Aplikasiumumnyamenggunakannomor port 1024-65535 • Kecualinomor-nomor port tertentu yang sudahdiakuisisi program tertentu, seperti: MySQL (3306-3308), MS SQL Server (1433)

  5. Port dan Socket • Umumnya, banyakkliensecarabersamaanmenginginkanlayanan yang sama • Misal, banyak browser (ribuanmungkin) menginginkanhalaman web dari server yang sama. • Server perlumembedakandiantarakliendanmenjaga dialog denganmasing-masingsecaraterpisahsatusama lain. • Untukkebutuhanini, dicapaidenganmenggunakansocket. • Socket, merupakankonsepabstrak, bukanelemen hardware komputer. • Socket digunakanuntukmenandaisatudaridua end-point link komunikasiantaraduaproses. • Ketikaadasebuahklienmembuatkoneksike server, makaklienmembuat socket untuk link komunikasi. • Setelahditerimanyainisial request klien (padanomor port tertentu), server akanmembuat socket baruuntukklientersebutdankhususdigunakanuntukberkomunikasihanyauntukklientersebut. • Hanyasatu link hardware ke server yang dapatdiasosiasikandenganbanyak port, sehinggasatu port yang dapatdiasosiasikandenganbanyak socket.

  6. Internet dan IP Addresses • internet (huruf “i” kecil) adalahkumpulanjaringankomputer yang mempersilahkansemuakomputer yang terhubungkejaringanberkomunikasidengankomputer lain yang berlokasidimanapun yang terhubungjugakejaringan (termasukjaringanlokal). • Protokol yang digunakanuntukberkomunikasiadalah Internet Protocol. • Internet (huruf “I” besar) adalahjaringanberbasis IP terbesardidunia. • Setiapkomputerpunya IP unik • Versi yang digunakansaatini IPv4 (32 bit) • Dalammasatransisike IPv6 (128 bit) • Misal: alamat 131.12.3.219 merupakansebuahalamat IP

  7. Internet Services, URL dan DNS • URL (Uniform Resource Locator) adalah identifier unikuntuksegala resource yang beradadi Internet. • Notasipemanggilan: <protocol>://<hostname>[:<port>][/<pathname>][/<filename>[#<section>]] • Nomor port bolehtidakdisertakanjika server menggunakannomor port standart. • Jikanama file tidakdisertakanmakadiasumsikanmemanggil file index.html atau default.html. • Misal: http://java.sun.com/j2se/1.5.0/download.jsp • DNS (Domain Name System) adalahprotokoluntukmemetakanantaraalamat IP dengannama domain • Umumnyamanusialebihmudahmengingatnamadaripadaangka.

  8. TCP • Packet-switched, pesan (kiriman data) dipecahmenjadisejumlahblokinformasi yang disebut packet • Setiappaketditanganisecaraterpisah • Memungkinkanmelintasijalurruteberbedadaripaket yang lain untukpesan yang sama. • IP bertugasmeneruskanpaket-paketmelewatijaringan • Tidakpeduliurutan, karenadiajugabertanggungjawabterhadaptrafikdisekitarnya. • Akibatnya: • Pakettidaksampaiditujuan (mungkinhilangdijalan), tapitidakadainformasidaripenerimamengenaiketidaksampaianpakettersebut. • Pakettibaditujuandenganbenartidak error), bisajuga error. • Tibaditujuandalamkondisitidakurutsepertisemula.

  9. TCP • Karenamasalahdiatas, muncullahprotokol TCP (Transmission Control Protocol) • Mebolehkansetiapujungkoneksiuntukmengetahui status penerimaanpaket IP dan/ataupermintantransmisiulangpaket yang hilangataurusakdisisipenerima. • Kolaborasi IP dan TCP (manjadi TCP/IP) merupakanduaprotokolterbanyak yang digunakandalamaplikasijaringan.

  10. UDP • TCP memberikanmekanismetransmisi yang terjamin, tetapiharusdibayardenganwaktu setup danpenggunaan overhead yang besarsehinggakapasitastransmisirelatifkecil. • Untukaplikasi transfer file, paketharusditerimautuhdenganurutan yang benar. • Untukaplikasi streaming, keutuhandanurutanpaketbukanhalpentingmelainkankapasitastransmisi data yang lebihdiutamakan. • Kebutuhantersebutdipenuhioleh User Datagram Protocol (UDP). • UDPmerupakanprotokolunreliable, karena: • Tidakmenjaminbahwasetiappaketakansampaiditujuan • Tidakmenjaminpakettibadenganurutan yang benar. • UDPtidakmelakukanpengirimanulangpaket yang error dantidakmengurutkankembalipaket-paket yang datang • Bekerjasecarasiginifikanlebihcepatdaripada TCP.

  11. KelasInetAddress • Salahsatukelasdalampaket java.net adalahInetAddress • Menanganialamat Internet baik host name danalamat IP. • Method statisgetByName, menggunakan DNS untukmendapatkan IP • HarusmenambahkaneksepsiUnknownHostExceptiondalamblok try….catch, untuk hostname yang tidakdikenali.

  12. Contoh 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 (UnknownHostExceptionuhEx) { System.out.println("Could not find " + host); } } }

  13. TCP Socket • Link komunikasi yang dibuatvias socket TCP/IP merupakanconnection-orientated link. • Artinya, hubunganantara server danklienakanterbukasepanjangdurasi dialog, danakanditutup (dalamsituasi normal) ketikasalahsatupihakmemintapemberhentianhubungan. • Keduanyamempunyaiprosesmasing-masing. • Ada 5 langkahdi server: • MembuatobjeckdarikelasServerSocket • Memposisikan server dalam status menunggu (waiting) • Melakukan input dan output stream • Mengirimdanmenerima data • Menutupkoneksi (setelah dialog selesai)

  14. TCP Socket di server • MembuatobjeckdarikelasServerSocket Konstruktormemintanomor port 1024-65535 Misal: ServerSocketservSock = new ServerSocket(1234); • Memposisikan server dalam status menunggu (waiting) Mengunakan method accept darikelasServerSocket, yang akanmengembalikanobjekketikahubungandibentuk. Misal: Socket link = servSock.accept(); • Melakukan input dan output stream Methods getInputStreamdangetOutputStreamdarikelas Socket digunakanmenerimamasukandanmenngirimkankeluaranke link komunikasi yang dibuat. Keluaran method getInputStreamditampungolehobyekbertipekelas Scanner Misal: Scanner input = new Scanner(link.getInputStream()); Method getOutputStreamdilakukanolehobyekbertipekelasPrintWriter Misal: PrintWriter output = new PrintWriter(link.getOutputStream(),true); • Mengirimdanmenerima data Gunakan method nextLine Misal: output.println("Awaiting data..."); String input = input.nextLine(); • Menutupkoneksi (setelah dialog selesai) Gunakanmethos close darikelas Socket Misal: link.close();

  15. Contoh

  16. TCP Socket diklien • Membentukkoneksidengan server Membuatobjek Socket, denganmenyertakan parameter dikonstruktor: • Alamat IP server (tipeInetAddress) • Nomor port yang digunakandi server • Misal: Socket link = new Socket(InetAddress.getLocalHost(),1234); • Melakukan input dan output stream Samadengandi server, menggunakan methods getInputStreamdangetOutputStreamdariobjek Socket. • Mengirimdanmenerima data Samadengandi server, menggunakanobjekdariScannerdanPrintWriter. • Menutupkoneksi Samadengandi server, mengunakan method closedarikelasSocket.

  17. Contoh

  18. Contoh Keluaran program di server Keluaran program diklien

  19. Datagram (UDP) Socket • Datagram socket merupakan connectionless, koneksiantara server danklientidakdikelolaselamat dialog. Setiappaket datagram dikirimsecaraterpisahkapanpundibutuhkan. • Karenakoneksitidakdikelolaselamatransmisi, server tidakmembuatobjekSocketsendiri-sendiriuntuksetiapklien. • Perbedaandengan socket TCP/IP adalahobjekServerSocket, server membuatobyekDatagramSocket, samadengansetiapklien yang inginmengirim datagram ke server. • ObjekDatagramPacketdibuatdandikirimdikeduaujungpihak. • Ada 9 prosesdi server: • MembuatobjekDatagramSocket • Membuat buffer untuk datagram yang datang • MembuatobjekDatagramPacketuntuk datagram yang datang • Menerima datagram yang datang • Menerimaalamatdan port pengirimdaripaket • Memindai data dari buffer • Membuat datagram jawaban • Mengirim datagram jawaban • MenutupDatagramSocket

  20. Datagram (UDP) Socket di server • MembuatobjekDatagramSocket Misal: DatagramSocketdatagramSocket = new DatagramSocket(1234); • Membuat buffer untuk datagram yang datang Membuat array byte Misal: byte[] buffer = new byte[256]; • MembuatobjekDatagramPacketuntuk datagram yang datang Konstrkturobjekmembutuhkan 2 argumen: byte array yang sudahdibuatdanukuran array tersebut. Misal: DatagramPacketinPacket = new DatagramPacket(buffer, buffer.length); • Menerima datagram yang datang Menggunakan method receive dariobjekDatagramSocket, diterimadenganobjekDatagramPacket Misal: datagramSocket.receive(inPacket); • Menerimaalamatdan port pengirimdaripaket Menggunakan method getAddressdangetPortdariobjekDatagramPacket Misal: InetAddressclientAddress = inPacket.getAddress(); intclientPort = inPacket.getPort();

  21. Datagram (UDP) Socket di server • Memindai data dari buffer Untukpenyederhanaan, disinidigunakan string untuk data yang dikirim. Ada 3 argumen yang dibutuhkan: array byte, posisiawaldalam array (=0), danjumlah byte (=ukuran total buffer) Misal: String message = new String(inPacket.getData(), 0,inPacket.getLength()); • Membuat datagram jawaban MembuatobjekDatagramPacketmenggunakan overloading konstruktordengan 4 argumen: array byte yang berisipesan, ukuranjawaban, alamatklien, dan port klien. Misal: DatagramPacketoutPacket = new DatagramPacket(response.getBytes(), response.length(),clientAddress, clientPort); • Mengirim datagram jawaban Menggunakan method senddariobjekDatagramSocket. Misal: datagramSocket.send(outPacket); • MenutupDatagramSocket Menggunakan method closedariobjekDatagramSocket. Misal: datagramSocket.close();

  22. Contoh

  23. Datagram (UDP) Socket diklien • MembuatobjekDatagramSocket • Membuat datagram keluar • Mengirimpesan datagram • Membuat buffer untuk datagram masuk • MembuatobjekDatagramPacketuntuk datagram masuk. • Menerima datagram masuk • Membaca data dari buffer • MenutupDatagramSocket

  24. Datagram (UDP) Socket diklien • MembuatobjekDatagramSocket SamadenganpembuatanobjekDatagramSocketdi server, tapitidakmemakaiargumen. Misal: DatagramSocketdatagramSocket = new DatagramSocket(); • Membuat datagram keluar Samadenganlangkah 7 di server Misal: DatagramPacketoutPacket = new DatagramPacket(message.getBytes(), message.length(), host, PORT); • Mengirimpesan datagram Denganmemanggilmethod senddariobjekDatagramSocketdanargumennyaobjekdariDatagramPacket Misal: datagramSocket.send(outPacket); • Membuat buffer untuk datagram masuk Samadenganlangkah 2 di server Misal: byte[] buffer = new byte[256];

  25. Datagram (UDP) Socket diklien • MembuatobjekDatagramPacketuntuk datagram masuk. Samadenganlangkah 3 di server Misal: DatagramPacketinPacket = new DatagramPacket(buffer, buffer.length); • Menerima datagram masuk Samadenganlangkah 4 di server Misal: datagramSocket.receive(inPacket); • Membaca data dari buffer Samadenganlangkah 6 di server Misal: String response = new String(inPacket.getData(),0, inPacket.getLength()); Langkah 2-7 bisadiulangsebanyak yang diinginkan. • MenutupDatagramSocket Samadenganlangkah 9 di server Misal: datagramSocket.close();

  26. Contoh

  27. Contoh Keluaran program di server Keluaran program diklien

  28. Any Question ?

More Related