SlideShare uma empresa Scribd logo
1 de 16
1




KOMUNIKASI ANTAR
PROSES
Oleh : ahmad kurniawan
2


Pendahuluan
• Sistem terdistribusi sangat bergantung pada pertukaran data dan
  sinkronisasi diantara proses otonom yang terdistribusi.
• Komunikasi antar proses tersebut dikenal dengan nama IPC ( Inter
  Proses Communication)
• IPC dapat dilakukan dengan menerapkan beberapa teknik berikut :
   • Semaphore, suatu struktur data yang di share beberapa proses untuk
     operasi sinkronisasi pemakaian sesumber secara bersama-sama
   • Shared Memory, memungkinkan beberapa proses untuk membagi
     bersama virtual memory.
   • RPC (Remote Procedure Call), memungkinkan sebuah proses client
     memanggil suatu subrutin beserta parameternya berdasar interface
     yang disediakan oleh proses server
   • Message Passing, komunikasi antar proses di dasarkan pada
     pertukaran suatu format message dengan menggunakan suatu API
     tertentu.
3


Karakteristik IPC
• Pertukaran pesan antar sepasang proses dapat didukung dengan
  dua operasi komunikasi pesan : send dan receive.
• Sebuah proses mengirimkan sebuah pesan (sederetan byte) ke
  tujuan dan proses lain pada tujuan menerima pesan
• Pengiriman Pesan
   • send expression_list to destination_designator
    • expression_list di evaluasi
    • Menambahkan pesan baru ke destination_designator
  • receive variable_list from source_designator
     • ● Menerima pesan ke variable_list
     • ● Menghapus pesan yang diterima
• Aktifitas IPC :
   • komunikasi data dari proses pengirim ke proses penerima
   • Sinkronisasi antar sepasang proses tersebut
• Pada sisi penerima terdapat tumpukan antrian pesan
4


Karakteristik IPC
• Sinkronisasi
  • Diperlukan karena adanya perbedaan kecepatan eksekusi
    proses pada dua komputer yang berbeda
  • Diperlukan oleh suatu proses mempengaruhi komputasi di
    proses lainnya
• Komunikasi Synchronous, proses pengirim dan
  penerima melakukan sinkronisasi untuk tiap pesan
  yang dipertukarkan. Operasi send dan receive
  adalah operasi blocking .
• Komunikasi Asynchronous, operasi send adalah
  operasi non-blocking, sedangkan operasi receive
  dapat blocking ataupun non-blocking.
5


Karakteristik IPC
• Tujuan Pengiriman Pesan
   • Pada protokol internet, pesan dikirim ke (alamat internet, port).
   • Sebuah port dimiliki oleh 1 proses penerima, namun dapat
     memiliki beberapa proses pengirim.
   • Setiap proses yang mengetahui angka port, dapat mengirim
     pesan ke proses tersebut.
• Jika proses client menggunakan alamat Internet tetap
  untuk menunjuk sebuah layanan, maka layanan yang
  diminta harus berada pada alamat tetap tersebut.
• Agar tidak selalu tertuju pada satu alamat tetap saja,
  maka dapat digunakan pedekatan berikut untuk
  transparansi lokasi :
  • Name service
  • Location Independent Identifier
6


Socket dan Port
• Socket dikembangkan dari UNIX BSD, dan saat ini sudah ada pada
  seluruh UNIX (juga Linux), MS Windows, Mac
• Socket
   • Menyediakan endpoint untuk komunikasi antar proses
   • Untuk proses penerima pesan, socket harus di kaitkan dengan port
     lokal dan satu alamat Internet komputer client
   • Pesan yang dikirimkan ke suatu alamat Internet dan port tertentu
     hanya dapat diterima oleh proses yang socketnya dikaitkan dengan
     alamat Internet dan port tersebut
   • Proses mungkin menggunakan socket yang sama untuk pengiriman
     dan penerimaan
   • Setiap komputer dapat memiliki 216 port.
   • Sebuah proses dapat membuat beberapa socket untuk menerima
     pesan
• Port yang sama tidak dapat digunakan oleh dua proses yang
  berbeda (kecuali IP multicasting)
7


Socket dan Port




 Nomor Port dibagi dalam 3 kelompok :
 ● Well known port, antara 0 – 1023
 ● Registered Port , antara 1024 – 49151
 ● Dynamic/Private Port, antara 49152 - 65535
8


API Java untuk Alamat Internet
9


    Komunikasi Datagram UDP
•   Mengirim datagram ke penerima
•   Tidak memerlukan ACK atau pengiriman ulang
•   Menggunakan socket
•   Server menyediakan sebuah port untuk pengiriman
•   Menerima pesan dan id pengirim (ip, port)
•   Permasalahan pada UDP :
     • Ukuran Pesan, proses penerimaan perlu menyediakan sejumlah
       elemen array untuk menerima sebuah pesan. Jika pesan terlalu
       besar akan dipotong sesuai ukuran array. Berdasar protokol IP,
       ukuran paket dapat sampai 64KB, namun biasanya max. 8 KB.
       Aplikasi yang membutuhkan pengiriman paket yang besar, harus
       melakukan pemotongan.
     • Blocking, Socket menyediakan non-blocking send dan blocking
       receive untuk komunikasi datagram.
     • Timeout, operasi block untuk receive sangat cocok untuk menunggu
       permintaan dari client. Namun sangat tidak baik jika terus dalam
       kondisi blocking pada saat menunggu balasan, maka perlu timeout.
10


 Komunikasi Datagram UDP
• Model Kegagalan
   • Omission Failure
      • Pesan terkadang akan dibuang oleh karena buffer penuh atau ada
        kesalahan checksum.
   • Ordering Failure
   • Pesan yang dikirim terkadang tidak sesuai dengan permintaan.
      • Aplikasi yang menggunakan UDP harus menyediakan sendiri suatu
        kualitas komunikasi yang diperlukan.
• Kapan menggunakan UDP?
  • Jika service dapat menerima kondisi omission failure. Contoh: DNS
  • Untuk mengurangi beban terhadap jaminan bahwa pesan harus
    terkirimkan dengan baik :
     • Tidak perlu menyimpan informasi status
     • Tidak perlu transmisi ulang
     • Tidak ada latency pada pengirim (Latency : perlambatan antara waktu awal
      transmisi pengirim dan waktu bit pertama diterima oleh penerima.)
11


Java UDP




•Java menyediakan
    • DatagramPacket, untuk memformat informasi menjadi
    sebuah paket datagram : pesan (array), panjang pesan,
    alamat proses (IP, port)
    •DatagramSocket, untuk membentuk socket penghubung
    dengan proses lain. Beberapa method :
        • send dan receive
        • setSoTimeout
        • connect
12


 Contoh UDP Client
import java.net.*;
import java.io.*;
public class UDPClient{
public static void main(String args[]){
// args berisi isi pesan dan hostname tujuan
try {
         DatagramSocket aSocket = new DatagramSocket(); // buat socket
         byte [] m = args[0].getBytes();
         InetAddress aHost = InetAddress.getByName(args[1]); // DNS lookup
         int serverPort = 6789;
         DatagramPacket request =
                  new DatagramPacket(m, args[0].length(), aHost, serverPort);
         aSocket.send(request); //kirim nessage
         byte[] buffer = new byte[1000];
         DatagramPacket reply = new DatagramPacket(buffer, buffer.length);
         aSocket.receive(reply); //tunggu reply
         System.out.println("Reply: " + new String(reply.getData()));
         aSocket.close();
}catch (SocketException e){System.out.println("Socket: " +
e.getMessage());
}catch (IOException e){System.out.println("IO : " + e.getMessage());}
}
}
13


Contoh UDP Server
import java.net.*;
import java.io.*;
public class UDPServer{
public static void main(String args[]){
  DatagramSocket aSocket = null;
  try{
  aSocket = new DatagramSocket(6789);
  byte[] buffer = new byte[1000];
  while(true){
             DatagramPacket request =
             new DatagramPacket(buffer, buffer.length);
             aSocket.receive(request);
             DatagramPacket reply = new DatagramPacket(request.getData(),
             request.getLength(), request.getAddress(), request.getPort());
             aSocket.send(reply);
  }
  }catch (SocketException e){System.out.println("Socket: " +
  e.getMessage()); }
  catch (IOException e) {System.out.println("IO: " +
  e.getMessage());}
  }finally {if(aSocket != null) aSocket.close();}
}
}
14


Komunikasi Datagram TCP

•   Byte stream
•   Baca dan tulis ke stream
•   Connection oriented
•   Permasalahan pada UDP :
    • Pencocokan Data, dua proses yang berkomunikasi harus
      sepakat tentang format dan tipe data yang dipertukarkan.
    • Blocking, Socket menyediakan blocking send dan blocking
      receive untuk komunikasi stream.
    • Thread, ketika server menerima sebuah koneksi, biasanya
      dibuatkan sebuah thread untuk melayani koneksi tersebut,
      sehingga dapat melayani beberapa client, jika tidak ada
      thread, pada satu waktu hanya 1 koneksi client yang dapat
      terlayani
15


 Komunikasi Datagram TCP
• Model Kegagalan
  • Untuk menyediakan komunikasi yang handal, TCP menggunakan
    checksum untuk pendeteksian error dan sequence number untuk
    pendeteksian duplikasi data
  • Untuk menyediakan validitas, TCP menggunakan timeout dan
    retransmisi terhadap data yang hilang
  • Ketika hubungan terputus, proses yang menggunakan TCP akan
    diinformasikan hal tersebut, dengan kelemahan :
    • Proses tidak dapat membedakan antara kegagalan pada jaringan dan
      kegagalan proses pasangannya
    • Proses komunikasi tidak dapat memberitahukan apakah pesan terakhir
      diterima atau tidak
  • Sehingga dengan TCP pun tidak menjamin kehandalan pengiriman
     data
• Kapan menggunakan TCP?
   • Kebutuhan pengiriman paket data yang dinamis tanpa harus
     menyesuaikan dengan ukuran paket TCP
   • Jika memang dapat menerima operasi blocking
16

Aplikasi Client            Aplikasi Server

                                New:        Server
                                                         JAVA
                  Socket

                                Accept0:
                                            Socket
                                                         TCP
                                               return
                                                        Socket
                               Request :


                                Response:



Java menyediakan
•Server Socket, menyatakan suatu koneksi TCP yang berfungsi untuk
listen yang siap menerima suatu permintaan dari proses lain
•Socket, membuat sebuah stream socket dan koneksi ke suatu nomor
port pada sebuah komputer

Mais conteúdo relacionado

Mais procurados

Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpKali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Xerpox Gar
 
Konfigurasi DHCP
Konfigurasi DHCPKonfigurasi DHCP
Konfigurasi DHCP
zelvi
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap rest
Asfiyuli Wulandari
 
Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3
sulaiman yunus
 
4 dhcp server
4 dhcp server4 dhcp server
4 dhcp server
vanderbow
 
transport layer protocol
transport layer protocoltransport layer protocol
transport layer protocol
ahmad amiruddin
 

Mais procurados (19)

Modul 2
Modul 2Modul 2
Modul 2
 
Jarkom - Jilid V.3
Jarkom - Jilid V.3Jarkom - Jilid V.3
Jarkom - Jilid V.3
 
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpKali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
 
Konfigurasi DHCP
Konfigurasi DHCPKonfigurasi DHCP
Konfigurasi DHCP
 
Transpot layer
Transpot layerTranspot layer
Transpot layer
 
L3 dhcp fadlysatriyagunawan
L3 dhcp fadlysatriyagunawanL3 dhcp fadlysatriyagunawan
L3 dhcp fadlysatriyagunawan
 
Rbj 3.15 description tingkat perusahaan
Rbj 3.15 description tingkat perusahaanRbj 3.15 description tingkat perusahaan
Rbj 3.15 description tingkat perusahaan
 
Squid apache
Squid apacheSquid apache
Squid apache
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap rest
 
Instalasi dan Konfigurasi DHCP Server pada Linux
Instalasi dan Konfigurasi DHCP Server pada LinuxInstalasi dan Konfigurasi DHCP Server pada Linux
Instalasi dan Konfigurasi DHCP Server pada Linux
 
Tentang port
Tentang portTentang port
Tentang port
 
Laporan Tugas Akhir OpenVPN
Laporan Tugas Akhir OpenVPNLaporan Tugas Akhir OpenVPN
Laporan Tugas Akhir OpenVPN
 
Tugas praktikum xi tkj 2 abdul gofur
Tugas praktikum xi tkj 2 abdul gofurTugas praktikum xi tkj 2 abdul gofur
Tugas praktikum xi tkj 2 abdul gofur
 
Tabel port protokol jaringan tcp
Tabel port protokol jaringan tcpTabel port protokol jaringan tcp
Tabel port protokol jaringan tcp
 
Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3
 
4 dhcp server
4 dhcp server4 dhcp server
4 dhcp server
 
Cbq
CbqCbq
Cbq
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
transport layer protocol
transport layer protocoltransport layer protocol
transport layer protocol
 

Destaque (19)

Materi 1
Materi 1Materi 1
Materi 1
 
Materi 3
Materi 3Materi 3
Materi 3
 
Materi 5
Materi 5Materi 5
Materi 5
 
06 struktur looping
06 struktur looping06 struktur looping
06 struktur looping
 
Materi 8
Materi 8Materi 8
Materi 8
 
Jumpa 11
Jumpa 11Jumpa 11
Jumpa 11
 
Materi 4
Materi 4Materi 4
Materi 4
 
Materi 5
Materi 5Materi 5
Materi 5
 
02 notasi algoritma
02   notasi algoritma02   notasi algoritma
02 notasi algoritma
 
Materi 11
Materi 11Materi 11
Materi 11
 
Materi 6
Materi 6Materi 6
Materi 6
 
Pengantar ilmu komputer1
Pengantar ilmu komputer1Pengantar ilmu komputer1
Pengantar ilmu komputer1
 
Jumpa 8
Jumpa 8Jumpa 8
Jumpa 8
 
Materi 11
Materi 11Materi 11
Materi 11
 
Materi 8
Materi 8Materi 8
Materi 8
 
Pert.3 metode simpleks lanjutan
Pert.3 metode simpleks lanjutanPert.3 metode simpleks lanjutan
Pert.3 metode simpleks lanjutan
 
Materi 2
Materi 2Materi 2
Materi 2
 
Jumpa 6
Jumpa 6Jumpa 6
Jumpa 6
 
Materi 9
Materi 9Materi 9
Materi 9
 

Semelhante a Materi 2

Bab3 protocol secured
Bab3 protocol securedBab3 protocol secured
Bab3 protocol secured
indra47
 
Transport Layer: Protocol UDP dan Protocol TCP
Transport Layer: Protocol UDP dan Protocol TCPTransport Layer: Protocol UDP dan Protocol TCP
Transport Layer: Protocol UDP dan Protocol TCP
Materi Kuliah Online
 
Pengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ipPengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ip
broajox
 
Transport layer
Transport layerTransport layer
Transport layer
rosmida
 
Slide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptxSlide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptx
untuk1
 

Semelhante a Materi 2 (20)

Komunikasi Antar Proses.pdf
Komunikasi Antar Proses.pdfKomunikasi Antar Proses.pdf
Komunikasi Antar Proses.pdf
 
PPT TRANSPORT LAYER PROTOCOL Transport_layer.pptx
PPT TRANSPORT LAYER PROTOCOL Transport_layer.pptxPPT TRANSPORT LAYER PROTOCOL Transport_layer.pptx
PPT TRANSPORT LAYER PROTOCOL Transport_layer.pptx
 
Kkpi ip address
Kkpi ip addressKkpi ip address
Kkpi ip address
 
Bab3 protocol secured
Bab3 protocol securedBab3 protocol secured
Bab3 protocol secured
 
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdf
 
Jeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 JaringanJeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 Jaringan
 
4 protokol jaringan komputer
4 protokol jaringan komputer4 protokol jaringan komputer
4 protokol jaringan komputer
 
07 tk 1073 layer transport
07   tk 1073 layer transport07   tk 1073 layer transport
07 tk 1073 layer transport
 
Transport Control Protokol / Internet Protokol
Transport Control Protokol / Internet ProtokolTransport Control Protokol / Internet Protokol
Transport Control Protokol / Internet Protokol
 
Jaringan Komputer : Konsep TCP/IP
Jaringan Komputer : Konsep TCP/IPJaringan Komputer : Konsep TCP/IP
Jaringan Komputer : Konsep TCP/IP
 
Socket Programming TCP Echo Client Server (Python)
Socket Programming  TCP Echo Client Server  (Python)Socket Programming  TCP Echo Client Server  (Python)
Socket Programming TCP Echo Client Server (Python)
 
Materi 3 maret_2014
Materi 3 maret_2014Materi 3 maret_2014
Materi 3 maret_2014
 
Transport Layer: Protocol UDP dan Protocol TCP
Transport Layer: Protocol UDP dan Protocol TCPTransport Layer: Protocol UDP dan Protocol TCP
Transport Layer: Protocol UDP dan Protocol TCP
 
Osi layer
Osi layerOsi layer
Osi layer
 
Part 1 Osi Layer.pdf
Part 1 Osi Layer.pdfPart 1 Osi Layer.pdf
Part 1 Osi Layer.pdf
 
Protokol_jaringan.ppt
Protokol_jaringan.pptProtokol_jaringan.ppt
Protokol_jaringan.ppt
 
Pengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ipPengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ip
 
Protokol ip
Protokol ipProtokol ip
Protokol ip
 
Transport layer
Transport layerTransport layer
Transport layer
 
Slide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptxSlide-IST104-IST104-Slide-10-11.pptx
Slide-IST104-IST104-Slide-10-11.pptx
 

Mais de wawankoerniawan (20)

Print screen
Print screenPrint screen
Print screen
 
Materi 6
Materi 6Materi 6
Materi 6
 
Materi 6
Materi 6Materi 6
Materi 6
 
Materi 12
Materi 12Materi 12
Materi 12
 
Materi 10
Materi 10Materi 10
Materi 10
 
Materi 8
Materi 8Materi 8
Materi 8
 
Materi 7
Materi 7Materi 7
Materi 7
 
Materi 5
Materi 5Materi 5
Materi 5
 
Materi 4
Materi 4Materi 4
Materi 4
 
Materi 3
Materi 3Materi 3
Materi 3
 
Materi 1
Materi 1Materi 1
Materi 1
 
Materi 11
Materi 11Materi 11
Materi 11
 
Materi 4
Materi 4Materi 4
Materi 4
 
Materi 10
Materi 10Materi 10
Materi 10
 
Materi 10
Materi 10Materi 10
Materi 10
 
Materi 12
Materi 12Materi 12
Materi 12
 
Materi 9
Materi 9Materi 9
Materi 9
 
Materi 7
Materi 7Materi 7
Materi 7
 
Materi 6
Materi 6Materi 6
Materi 6
 
Materi 3
Materi 3Materi 3
Materi 3
 

Materi 2

  • 2. 2 Pendahuluan • Sistem terdistribusi sangat bergantung pada pertukaran data dan sinkronisasi diantara proses otonom yang terdistribusi. • Komunikasi antar proses tersebut dikenal dengan nama IPC ( Inter Proses Communication) • IPC dapat dilakukan dengan menerapkan beberapa teknik berikut : • Semaphore, suatu struktur data yang di share beberapa proses untuk operasi sinkronisasi pemakaian sesumber secara bersama-sama • Shared Memory, memungkinkan beberapa proses untuk membagi bersama virtual memory. • RPC (Remote Procedure Call), memungkinkan sebuah proses client memanggil suatu subrutin beserta parameternya berdasar interface yang disediakan oleh proses server • Message Passing, komunikasi antar proses di dasarkan pada pertukaran suatu format message dengan menggunakan suatu API tertentu.
  • 3. 3 Karakteristik IPC • Pertukaran pesan antar sepasang proses dapat didukung dengan dua operasi komunikasi pesan : send dan receive. • Sebuah proses mengirimkan sebuah pesan (sederetan byte) ke tujuan dan proses lain pada tujuan menerima pesan • Pengiriman Pesan • send expression_list to destination_designator • expression_list di evaluasi • Menambahkan pesan baru ke destination_designator • receive variable_list from source_designator • ● Menerima pesan ke variable_list • ● Menghapus pesan yang diterima • Aktifitas IPC : • komunikasi data dari proses pengirim ke proses penerima • Sinkronisasi antar sepasang proses tersebut • Pada sisi penerima terdapat tumpukan antrian pesan
  • 4. 4 Karakteristik IPC • Sinkronisasi • Diperlukan karena adanya perbedaan kecepatan eksekusi proses pada dua komputer yang berbeda • Diperlukan oleh suatu proses mempengaruhi komputasi di proses lainnya • Komunikasi Synchronous, proses pengirim dan penerima melakukan sinkronisasi untuk tiap pesan yang dipertukarkan. Operasi send dan receive adalah operasi blocking . • Komunikasi Asynchronous, operasi send adalah operasi non-blocking, sedangkan operasi receive dapat blocking ataupun non-blocking.
  • 5. 5 Karakteristik IPC • Tujuan Pengiriman Pesan • Pada protokol internet, pesan dikirim ke (alamat internet, port). • Sebuah port dimiliki oleh 1 proses penerima, namun dapat memiliki beberapa proses pengirim. • Setiap proses yang mengetahui angka port, dapat mengirim pesan ke proses tersebut. • Jika proses client menggunakan alamat Internet tetap untuk menunjuk sebuah layanan, maka layanan yang diminta harus berada pada alamat tetap tersebut. • Agar tidak selalu tertuju pada satu alamat tetap saja, maka dapat digunakan pedekatan berikut untuk transparansi lokasi : • Name service • Location Independent Identifier
  • 6. 6 Socket dan Port • Socket dikembangkan dari UNIX BSD, dan saat ini sudah ada pada seluruh UNIX (juga Linux), MS Windows, Mac • Socket • Menyediakan endpoint untuk komunikasi antar proses • Untuk proses penerima pesan, socket harus di kaitkan dengan port lokal dan satu alamat Internet komputer client • Pesan yang dikirimkan ke suatu alamat Internet dan port tertentu hanya dapat diterima oleh proses yang socketnya dikaitkan dengan alamat Internet dan port tersebut • Proses mungkin menggunakan socket yang sama untuk pengiriman dan penerimaan • Setiap komputer dapat memiliki 216 port. • Sebuah proses dapat membuat beberapa socket untuk menerima pesan • Port yang sama tidak dapat digunakan oleh dua proses yang berbeda (kecuali IP multicasting)
  • 7. 7 Socket dan Port Nomor Port dibagi dalam 3 kelompok : ● Well known port, antara 0 – 1023 ● Registered Port , antara 1024 – 49151 ● Dynamic/Private Port, antara 49152 - 65535
  • 8. 8 API Java untuk Alamat Internet
  • 9. 9 Komunikasi Datagram UDP • Mengirim datagram ke penerima • Tidak memerlukan ACK atau pengiriman ulang • Menggunakan socket • Server menyediakan sebuah port untuk pengiriman • Menerima pesan dan id pengirim (ip, port) • Permasalahan pada UDP : • Ukuran Pesan, proses penerimaan perlu menyediakan sejumlah elemen array untuk menerima sebuah pesan. Jika pesan terlalu besar akan dipotong sesuai ukuran array. Berdasar protokol IP, ukuran paket dapat sampai 64KB, namun biasanya max. 8 KB. Aplikasi yang membutuhkan pengiriman paket yang besar, harus melakukan pemotongan. • Blocking, Socket menyediakan non-blocking send dan blocking receive untuk komunikasi datagram. • Timeout, operasi block untuk receive sangat cocok untuk menunggu permintaan dari client. Namun sangat tidak baik jika terus dalam kondisi blocking pada saat menunggu balasan, maka perlu timeout.
  • 10. 10 Komunikasi Datagram UDP • Model Kegagalan • Omission Failure • Pesan terkadang akan dibuang oleh karena buffer penuh atau ada kesalahan checksum. • Ordering Failure • Pesan yang dikirim terkadang tidak sesuai dengan permintaan. • Aplikasi yang menggunakan UDP harus menyediakan sendiri suatu kualitas komunikasi yang diperlukan. • Kapan menggunakan UDP? • Jika service dapat menerima kondisi omission failure. Contoh: DNS • Untuk mengurangi beban terhadap jaminan bahwa pesan harus terkirimkan dengan baik : • Tidak perlu menyimpan informasi status • Tidak perlu transmisi ulang • Tidak ada latency pada pengirim (Latency : perlambatan antara waktu awal transmisi pengirim dan waktu bit pertama diterima oleh penerima.)
  • 11. 11 Java UDP •Java menyediakan • DatagramPacket, untuk memformat informasi menjadi sebuah paket datagram : pesan (array), panjang pesan, alamat proses (IP, port) •DatagramSocket, untuk membentuk socket penghubung dengan proses lain. Beberapa method : • send dan receive • setSoTimeout • connect
  • 12. 12 Contoh UDP Client import java.net.*; import java.io.*; public class UDPClient{ public static void main(String args[]){ // args berisi isi pesan dan hostname tujuan try { DatagramSocket aSocket = new DatagramSocket(); // buat socket byte [] m = args[0].getBytes(); InetAddress aHost = InetAddress.getByName(args[1]); // DNS lookup int serverPort = 6789; DatagramPacket request = new DatagramPacket(m, args[0].length(), aHost, serverPort); aSocket.send(request); //kirim nessage byte[] buffer = new byte[1000]; DatagramPacket reply = new DatagramPacket(buffer, buffer.length); aSocket.receive(reply); //tunggu reply System.out.println("Reply: " + new String(reply.getData())); aSocket.close(); }catch (SocketException e){System.out.println("Socket: " + e.getMessage()); }catch (IOException e){System.out.println("IO : " + e.getMessage());} } }
  • 13. 13 Contoh UDP Server import java.net.*; import java.io.*; public class UDPServer{ public static void main(String args[]){ DatagramSocket aSocket = null; try{ aSocket = new DatagramSocket(6789); byte[] buffer = new byte[1000]; while(true){ DatagramPacket request = new DatagramPacket(buffer, buffer.length); aSocket.receive(request); DatagramPacket reply = new DatagramPacket(request.getData(), request.getLength(), request.getAddress(), request.getPort()); aSocket.send(reply); } }catch (SocketException e){System.out.println("Socket: " + e.getMessage()); } catch (IOException e) {System.out.println("IO: " + e.getMessage());} }finally {if(aSocket != null) aSocket.close();} } }
  • 14. 14 Komunikasi Datagram TCP • Byte stream • Baca dan tulis ke stream • Connection oriented • Permasalahan pada UDP : • Pencocokan Data, dua proses yang berkomunikasi harus sepakat tentang format dan tipe data yang dipertukarkan. • Blocking, Socket menyediakan blocking send dan blocking receive untuk komunikasi stream. • Thread, ketika server menerima sebuah koneksi, biasanya dibuatkan sebuah thread untuk melayani koneksi tersebut, sehingga dapat melayani beberapa client, jika tidak ada thread, pada satu waktu hanya 1 koneksi client yang dapat terlayani
  • 15. 15 Komunikasi Datagram TCP • Model Kegagalan • Untuk menyediakan komunikasi yang handal, TCP menggunakan checksum untuk pendeteksian error dan sequence number untuk pendeteksian duplikasi data • Untuk menyediakan validitas, TCP menggunakan timeout dan retransmisi terhadap data yang hilang • Ketika hubungan terputus, proses yang menggunakan TCP akan diinformasikan hal tersebut, dengan kelemahan : • Proses tidak dapat membedakan antara kegagalan pada jaringan dan kegagalan proses pasangannya • Proses komunikasi tidak dapat memberitahukan apakah pesan terakhir diterima atau tidak • Sehingga dengan TCP pun tidak menjamin kehandalan pengiriman data • Kapan menggunakan TCP? • Kebutuhan pengiriman paket data yang dinamis tanpa harus menyesuaikan dengan ukuran paket TCP • Jika memang dapat menerima operasi blocking
  • 16. 16 Aplikasi Client Aplikasi Server New: Server JAVA Socket Accept0: Socket TCP return Socket Request : Response: Java menyediakan •Server Socket, menyatakan suatu koneksi TCP yang berfungsi untuk listen yang siap menerima suatu permintaan dari proses lain •Socket, membuat sebuah stream socket dan koneksi ke suatu nomor port pada sebuah komputer