You are on page 1of 13

Komunikasi (TCP/IP, Remote Procedure Call)

Oleh:
Djoko Tri W (18109011)
Tresna (18109036)
Ali ( )
Mata kuliah Sistem Terdistribusi

Pengertian sederhana dari komunikasi adalah hubungan antara dua atau lebih sumber. Dalam
sistem terdistribusi komunikasi dapat diartikan sebagai jalinan hubungan antara sistem satu dengan dua
atau lebih sistem lainnya atau hubungan antar sistem melalui suatu perangkat dan metode. Dalam contoh
sistem terdistribusi komunikasi dapat diimplementasikan oleh beberapa metode atau media, diantaranya
protokol dan RPC.

Protokol

Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan,
komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada
perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol
mendefinisikan koneksi perangkat keras.
Dahulu, komunikasi antar komputer dari vendor yang berbeda adalah sangat sulit dilakukan, karena
mereka mengunakan protokol dan format data yang berbeda-beda. Sehingga International Standards
Organization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System
Interconnection (OSI), model yang mendefinisikan standar untuk menghubungkan komputer-komputer dari
vendor-vendor yang berbeda. Model-OSI tersebut terbagi atas 7 layer, yaitu: Physical Layer, Data Link,
Network, Transport, Session, dan Application.
Saat ini telah ada protocol yang universal dan banyak digunakan dibandingkan protocol TCP/IP
(Transfer Control Protocol / internet Protocol). TCP/IP diadopsi sebagai standar yang digunakan di seluruh
dunia dalam komunikasi Internet. Adapun layer yang tersedia pada protokol TCP/IP, yaitu: Network Access,
Internet, Transport, Application. Perbandingan secara umum antara protokol TCP/IP dan OSI, diantaranya:

– Pada TCP/IP, kontrol reliabilty dikonsentrasikan pada layer Transport. Layer Transport menangani
semua kesalahan yang terdeteksi dan memulihkannya. Layer Transport TCP/IP menggunakan
checsum, acknowledgment, dan timeout untuk mengontrol transmisi dan menyediakan verifikasi
end-to-end.

– Sebuah standard yang diadopsi seluruh dunia (Internet)


– Protocol ada dulu, model TCP/IP menyesuaikan dengan protocol yang ada.
– Sebagai standard yang terkenal untuk internetworking karena:

1
• Relatif sederhana dan tahan banting daripada OSI

• Tersedia secara gratis pada setiap hardware dan platform sistem operasi

• Digunakan pada internet

– OSI Jarang diimplementasikan (kompleks, mahal), lebih cenderung digunakan sebagai bahan
pelajaran

– OSI ada, baru protocol ada sehingga protocol di OSI dapat dengan mudah diganti ketika teknologi
juga berganti.

Berikut layer yang terdapat pada protokol OSI:

Layer-layer tersebut disusun sedemikian sehingga perubahan pada satu layer tidak membutuhkan
perubahan pada layer lain. Layer teratas (5, 6 and 7) adalah lebih cerdas dibandingkan dengan layer yang
lebih rendah; Layer Application dapat menangani protocol dan format data yang sama yang digunakan oleh
layer lain, dan seterusnya. Jadi terdapat perbedaan yang besar antara layer Physical dan layer Aplication.
Suatu permintaan, dihasilkan dari atas (contohnya Application Layer) diteruskan keenam layer di bawahnya
yang setiap layer memiliki tugasnya masing-masing.

1. Physical Layer
Ini adalah layer yang paling sederhana berkaitan dengan electrical (dan optical) koneksi antar
peralatan. Data biner dikodekan dalam bentuk yang dapat ditransmisi melalui media jaringan,
sebagai contoh kabel, transceiver dan konektor yang berkaitan dengan layer Physical. Peralatan
seperti repeater, hub dan network card adalah berada pada layer ini.

2
2. Data-link Layer
Layer ini sedikit lebih "cerdas" dibandingkan dengan layer physical, karena menyediakan transfer
data yang lebih nyata. Sebagai penghubung antara media network dan layer protocol yang lebih
high-level, layer data link bertanggung-jawab pada paket akhir dari data binari yang berasal dari
level yang lebih tinggi ke paket diskrit sebelum ke layer physical. Akan mengirimkan frame (blok dari
data) melalui suatu network. Ethernet (802.2 & 802.3), Tokenbus (802.4) dan Tokenring (802.5)
adalah protocol pada layer Data-link.

3. Network Layer
Tugas utama dari layer network adalah menyediakan fungsi routing sehingga paket dapat dikirim
keluar dari segment network lokal ke suatu tujuan yang berada pada suatu network lain. IP, Internet
Protocol, umumnya digunakan untuk tugas ini. Protocol lainnya seperti IPX, Internet Packet
eXchange. Perusahaan Novell telah memprogram protokol menjadi beberapa, seperti SPX
(Sequence Packet Exchange) & NCP (Netware Core Protocol). Protokol ini telah dimasukkan ke
sistem operasi Netware. Beberaoa fungsi yang mungkin dilakukan oleh Layer Network:

• Membagi aliran data biner ke paket diskrit dengan panjang tertentu

• Mendeteksi Error

• Memperbaiki error dengan mengirim ulang paket yang rusak

• Mengendalikan aliran

4. Transport Layer
Layer transport data, menggunakan protocol seperti UDP, TCP dan/atau SPX (Sequence Packet
eXchange, yang satu ini digunakan oleh NetWare, tetapi khusus untuk koneksi berorientasi IPX).
Layer transport adalah pusat dari mode-OSI. Layer ini menyediakan transfer yang reliable dan
transparan antara kedua titik akhir, layer ini juga menyediakan multiplexing, kendali aliran dan

pemeriksaan error serta memperbaikinya.


Fungsi layer ini adalah menyediakan transfer data yang transparan dari sumber ke tujuannya.
Transport bertanggung jawab untuk menciptakan dan memelihara end-to-end koneksi, memastikan
bahwa bit-bit yang diterima adalah sama dengan bit- bit yang dikirimkan dengan urutan yang sama
dan tanpa modifikasi, hilang atau duplikasi.

Fungsi layer Transport pada TCP/IP yaitu Mendefinisikan dua protocol standard, yaitu TCP and
UDP, TCP mengimplementasikan protocol data-stream yang reliable connection oriented, UDP
mengimplementasikan protocol data-stream yang unreliable connectionless

5. Session Layer
Layer Session, sesuai dengan namanya, sering disalah artikan sebagai prosedur logon pada
network dan berkaitan dengan keamanan. Layer ini menyediakan layanan ke dua layer diatasnya,
Melakukan koordinasi komunikasi antara entiti layer yang diwakilinya. Beberapa protocol pada layer

3
ini: NETBIOS: suatu session interface dan protocol, dikembangkan oleh IBM, yang menyediakan
layanan ke layer presentation dan layer application. NETBEUI, (NETBIOS Extended User Interface),
suatu pengembangan dari NETBIOS yang digunakan pada produk Microsoft networking, seperti
Windows NT dan LAN Manager. ADSP (AppleTalk Data Stream Protocol). PAP (Printer Access
Protocol), yang terdapat pada printer Postscript untuk akses pada jaringan AppleTalk.
Layer ini mengatur dialog dua komputer yang berkomunikasi dalam jaringan yang disebut dengan
SESSION.Pada TCP/IP,karakteristik ini disediakan oleh protocol TCP Layer Transport.

6. Presentation Layer
Layer presentation dari model OSI melakukan hanya suatu fungsi tunggal: translasi dari berbagai
tipe pada syntax sistem. Sebagai contoh, suatu koneksi antara PC dan mainframe membutuhkan
konversi dari EBCDIC character-encoding format ke ASCII dan banyak faktor yang perlu
dipertimbangkan. Kompresi data (dan enkripsi yang mungkin) ditangani oleh layer ini.
Layer ini menangani informasi tentang format data untuk komunikasi pada jaringan. Hal ini dapat
terjadi dengan mengonversi data ke dalam format generik yang dimengerti oleh kedua belah pihak.
Pada TCP/IP fungsi ini disediakan oleh Layer Application.

7. Application Layer
Layer ini adalah yang paling cerdas, gateway berada pada layer ini. Gateway melakukan pekerjaan
yang sama seperti sebuah router, tetapi ada perbedaan diantara mereka. Layer Application adalah
penghubung utama antara aplikasi yang berjalan pada satu komputer dan resources network yang
membutuhkan akses padanya.
Layer ini merupakan layer teratas pada model referensi. Layer ini menyediakan kumpulan interface
untuk aplikasi supaya dapat memperoleh akses ke layanan jaringan yang mendukung aplikasi
secara langsung Interface ini sering disebut dengan API (Application Programming Interface)

4
Perbandingan OSI dan TCP/IP:

OSI TCP / IP
Application (layer 7) Application
Presentation (layer 6)
Session (layer 5) Transport
Transport (layer 4)
Network (layer 3) Internet
Data Link (layer 2) Network Access
Physical (layer1)

5
Arsitektur TCP/IP pada Internet Layer:

Arsitektur TCP/IP pada Network Layer:

6
Gambaran komunikasi antar layer protokol TCP/IP:

RPC (Remote Procedure Call)

Remote Procedure Call (RPC) adalah sebuah metoda yang memungkinkan kita untuk mengakses
sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah komputer (server) harus
menyediakan layanan remote prosedur. Pendekatan yang dilakukan adalah, sebuah server membuka
socket, menunggu client yang meminta prosedur yang disediakan oleh server. RPC masih menggunakan
cara primitive dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu
membuat kita sulit ketika menyediakan banyak remote procedure.
RPC adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang
mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada
sistem yang jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol transportasi seperti
TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun
diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam
komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.
Protokol RPC mengijinkan pengguna (users) untuk bekerja dengan prosedur remote sebagaimana
bekerja dengan prosedur lokal. Prosedur panggilan remote (remote procedure calls) didefinisikan melalui
rutin yang terkandung didalam protokol RPC. Tiap message dari panggilan akan disesuaikan dengan
message balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan pesan” yang
mengimplemntasikan protokol non- RPC lain seperti panggilan remote batching dan broadcasting. Protokol
ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server.

7
RPC menggunakan soket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN,
RPC secara default sudah terinstall kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi
sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari
mana saja, selama sistemnya terhubung ke jaringan. Umumnya protokol RPC yang digunakan pada saat ini
adalah DCOM (Distributed Component Object Model). Saat ini ada alternatif protokol baru, yakni SOAP
(Simple Object Access Protocol), yang berdasarkan pada teknologi XML.

1. Protokol Message RPC


Protokol Message RPC didefinisikan dengan menggunakan deskripsi data eXternal Data
Representation ( XDR ) yang meliputi struktur, enumerasi dan union. Pembahasan lebih lanjut akan
diterangkan pada bab berikutnya mengenai implementasi RPC. Protokol Message ini membutuhkan
faktor- faktor pendukung sebagai berikut:
1. Spesifikasi yang unik untuk tiap prosedur call
2. Respon message yang sesuai untuk tiap message yang diminta
3. Otentifikasi klien untuk tiap layanan dan sebaliknya

Protokol Message RPC memiliki dua ( 2 ) struktur yang berbeda, yaitu call message dan reply
message. Tiap klien yang akan melakukan RPC pada suatu server di jaringan akan menerima
balasan (reply) berupa hasil dari eksekusi prosedur tersebut. Dengan menggunakan spesifikasi yang
unik untuk tiap prosedure remote, maka RPC dapat mencocokkan message balasan untuk tiap call
message yang diminta klien.

1. Call message
Tiap call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan untuk
mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah

• Nomor Program

• Nomor Versi dari Program

• Nomor Prosedur

2. Reply Message
Reply message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call
messages yang diminta klien diterima atau ditolak. Reply message mengandung informasi yang
digunakan untuk membedakan kondisi-kondisi yang diminta sesuai dengan call messages.
Informasi ini antara lain:

• RPM mengeksekusi call message dengan sukses

• Implementasi remote tidak sesuai dengan protokol yang digunakan. Versi yang lebih rendah
atau tinggi akan ditolak.

• Program remote tidak tersedia pada sistem remote

• Program remote tidak mendukung versi yang diminta klien

8
• Nomor prosedur yang diminta tidak ada.

2. Fitur dalam RPC


RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting calls, callbackprocedures dan
using the select subroutine.

1. Batching Calls
Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah
besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte seperti
TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu server untuk
memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server yang tidak
pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur
RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada proses
menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi error
yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila terjadi
error pada message yang dikirim.

2. Broadcasting Calls
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu
balasan dari network. FItur ini menggunakan protokol yang berbasiskan paket data seperti
UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC untuk
mengimplementasikan fungsinya.

3. Callback Procedures
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan melakukanRPC
callback ke proses yang dijalankan oleh klien.

4. Menggunakan select subrutin


Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk melihat
apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam kondisi
ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas,
memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.

3. Otentikasi RPC
Proses otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan klien pada
RPC. Untuk setiap prosedur remote yang dilakukan protokol RPC menyediakan slot yang dipakai
sebagai parameter otentifikasi yang berfungsi agar pemanggil (caller) dapat memberikan
identitasnya kepada server. Parameter otentifikasi ini dibuat di paket klien.
Otentifikasi RPC terdiri atas beberapa bagian. Berikut ini adalah bagian-bagian pada otentifikasi
RPC:

9
1. Protokol Otentifikasi RPC
Protokol Otentifikasi RPC disediakan sebagai bagian dari protokol RPC. Untuk setiap prosedur
remote, semuanya diotentifikasi oleh paket RPC pada server. Parameter yang digunakan adalah
respon verifier. Sedangkan pada pihak klien, setiap paket RPC diberikan parameter otentifikasi
dan parameter yang digunakan adalah credential dan verifier.

2. Otentikasi NULL
Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui
identitasnya sendiri dan server tidak membutuhkan identitas pemanggil..

3. Otentifikasi UNIX
Otentifikasi Unix digunakan pada prosedur remote di sistem UNIX. Jenis otentifikasi ini dibagi dua
(2) yaitu otentifikasi pada sisi klien dan otentifiksi pada sisi server. Pada sisi klien, otentifikasi ini
akan membuat otentifikasi handle dengan AIX permissions agar dapat berasosiasi dengan
parameter credentials pada sistem UNIX. Sedangkan pada sisi server, server harus dapat
menentukan tipe otentifikasi yang diberikan oleh pemanggil RPC. Penentuan dukungan terhadap
tipe otentifikasi akan memberikan reply yang berbeda.

4. Otentifikasi Data Encryption Standard ( DES )


Otentifikasi DES membutuhkan keyserv daemon yang harus berjalan baik di sisi server maupun
klien. Tiap pengguna pada sistem ini harus memiliki kunci publik ( public key yang disahkan pada
database kunci publik oleh Administrator jaringan tersebut.

5. Protokol Otentikasi DES


Protokol Otentifikasi DES meliputi protokol penanganan DES pada proses otentifikasi RPC.
Protokol ini mencakup 64-bit blok data DES yang terenkripsi dan menentukan panjang
maksimum untuk user name pada jaringan yang digunakan.

6. Enkripsi Diffie-Hellman
Enkripsi Diffie-Hellman digunakan pada pembuatan kunci public pada otentifikasi DES dengan
menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variabel konstan, yaitu BASE dan
MODULUS yang digunakan pada protokol otentifikasi DES.

RPC berhubungan hanya dengan proses otentifikasi, tidak dengan kontrol akses terhadap
services/layanan individual yang diberikan. Tiap layanan mengimplementasikan peraturan mengenai
kontrol akses masing-masing. Subsistem otentifikasi pada paket RPC bersifat open-ended, artinya
beberapa otentifikasi dapat diasosiasikan pada RPC klien.

10
4. Implementasi RPC
Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR (eXternal Data
Representation) standard, UDP atau TCP transport protocol. Xerox Courier : RPC model, Data
representation standard, XNS (Xerox Network Systems) SPP (Sequenced Packet Protocol) sbg
transport protocol, Apollo s Network Computing Architecture (NCA), RPC protocol, NDR (Network
Data Representation).

5. Kelebihan RPC
Relatif mudah digunakan:
Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure.
Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level
details seperti soket, marshalling & unmarshalling.

Robust (Sempurna):
Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-critical application yg
memerlukan scalability, fault tolerance, & reliability

6. Kekurangan RPC
Tidak fleksibel terhadap perubahan :
1. Static relationship between client & server at run-time.
2. Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan
OOP.
Kurangnya location transparency:
1. Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.
2. Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).
3. Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yg terpisah.

Prinsip RPC dalam Client – Server

11
Langkah – langkah dalam RPC

Object Remote

Pendekatan kedua yang akan kita bahas adalah Remote Method Invocation (RMI), sebuah teknik
pemanggilan method remote yang lebih secara umum lebih baik daripada RPC. RMI menggunakan
paradigma pemrograman berorientasi obyek (OOP). Dengan RMI memungkinkan kita untuk mengirim obyek
sebagai parameter dari remote method. Dengan dibolehkannya program java memanggil method pada
remote obyek, RMI membuat pengguna dapat mengembangkan aplikasi java yang terdistribusi pada
jaringan.
Untuk membuat remote method dapat diakses RMI mengimplementasikan remote object
menggukan stub dan skleton. Stub bertindak sebagai proxy disisi client, yaitu yang menghubungkan client
dengan skleton yang berada disisi server. Stub yang ada disisi client bertanggung-jawab untuk membungkus
nama method yang akan diakses, dan parameternya, hal ini biasa dikenal dengan marshalling. Stub
mengirim paket yang sudah dibungkus ini ke server dan akan di buka (unmarshalling) oleh skleton. Skleton
akan menerima hasil keluaran yang telah diproses oleh method yang dituju, lalu akan kembali dibungkus
(marshall) dan dikirim kembali ke client yang akan diterima oleh stub dan kembali dibuka paketnya
(unmarshall).
Untuk membuat remote obyek kita harus mendefinisikan semua method yang akan kita sediakan
pada jaringan, setelah itu dapat digunakan RMI compiler untuk membuat stub dan skleton. Setelah itu kita
harus mem-binding remote obyek yang kita sediakan kedalam sebuah RMI registry. Setelah itu client dapat
mengakses semua remote method yang telah kita sediakan menggunkan stub yang telah dicompile
menggunakan RMI compiler tersebut.

12
Akses ke Obyek Remote
Sekali obyek didaftarkan ke server, client dapat mengakses remote object dengan menjalankan
Naming.lookup() method. RMI menyediakan url untuk pengaksesan ke remote obyek yaitu rmi://host/obyek,
dimana host adalah nama server tempat kita mendaftarkan remote obyek dan obyek adalah parameter yang
kita gunakan ketika kita memanggil method Naming.rebind(). Client juga harus menginstall
RMISecurityManager untuk memastikan keamanan client ketika membuka soket ke jaringan.
Java memiliki sistem security yang baik sehingga user dapat lebih nyaman dalam melakukan
komunikasi pada jaringan. Selain itu java sudah mendukung pemorograman berorientasi object, sehingga
pengembangan software berskala besar sangat dimungkinkan dilakukan oleh java. RMI sendiri merupakan
sistem terdistribusi yang dirancang oleh SUN pada platfrom yang spesifik yaitu Java, apabila anda tertarik
untuk mengembangkan sistem terdistribusi yang lebih portable dapat digunakan CORBA sebagai solusi
alternatifnya.

13

You might also like