-Network Forensic- Part 4
Socket
Apa
itu Socket?
Socket adalah mekanisme komunikasi
yang memungkinkan terjadinya pertukaran data antar program atau proses baik
dalam satu mesin maupun antar mesin.
Di UNIX (dimana socket diciptakan) kita sering mendengar slogan: “everything is a file”, jadi untuk berkomunikasi dengan program atau node lain semudah kita membaca dan menulis file deskriptor. Antarmuka socket dan file adalah mirip, jika pada file kita membukanya dengan open() sedangkan pada socket kita manggunakan socket(). Pada file deskriptor yang menjadi tujuan adalah sebuah file, sedangkan pada socket adalah komputer atau node lain. Intinya ketika kita telah terhubung dengan socket(), maka antarmukanya sama saja dengan sebuah file. Sebuah abstraksi perangkat lunak yang digunakan sebagai suatu “terminal” dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi
Di UNIX (dimana socket diciptakan) kita sering mendengar slogan: “everything is a file”, jadi untuk berkomunikasi dengan program atau node lain semudah kita membaca dan menulis file deskriptor. Antarmuka socket dan file adalah mirip, jika pada file kita membukanya dengan open() sedangkan pada socket kita manggunakan socket(). Pada file deskriptor yang menjadi tujuan adalah sebuah file, sedangkan pada socket adalah komputer atau node lain. Intinya ketika kita telah terhubung dengan socket(), maka antarmukanya sama saja dengan sebuah file. Sebuah abstraksi perangkat lunak yang digunakan sebagai suatu “terminal” dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi
Keunggulan
Socket
Keunggulan dari penggunaan socket
ini dibanding apabila menggunakan pipes biasa adalah anda dapat melakukan
komunikasi antar proses/program melalui jaringan berbasis yang TCP/IP tentunya,
bahkan dengan program lain yang berjalan pada platform non-unix seperti
Microsoft Windows, sepanjang program tersebut berbicara dalam protokol transfer
yang sama. Fasilitas-fasilitas yang disediakan oleh mesin unix seperti rlogin,
ssh, ftp, dan lain-lain menggunakan socket sebagai sarana komunikasi mereka.
Socket dibentuk dan digunakan dengan cara yang berbeda dengan proses pipes di unix.
Komunikasi socket terutama diciptakan untuk tujuan menjembatani komunikasi
antara dua buah program yang dijalankan pada mesin yang berbeda. Jangan
khawatir, ini tentu saja berarti dua program pada mesin yang sama dapat juga
saling berkomunikasi. Kelebihan lain dari komunikasi socket adalah mampu
menangani banyak klien sekaligus (multiple clients).
Penggunaan Socket
Penggunaan socket memungkinkan
adanya komunikasi antara client dan server. Salah satu contoh sederhana
penggunaan socket programming adalah pembuatan program untuk chatting. Program
tersebut sebenarnya merupakan bentuk aplikasi berupa komunikasi antara client
dan server. Ketika seorang user(client) melakukan koneksi ke chat
server,program akan membuka koneksi ke port yang diberikan, sehingga server
perlu membuka socket pada port tersebut dan “mendengarkan” koneksi yang datang.
Socket sendiri merupakan gabungan antara host-adress dan port adress. Dalam hal
ini socket digunakan untuk komunikasi antara client dan server.
Soket merupakan fasilitas IPC (Inter Proses Communication) untuk aplikasi jaringan. Agar suatu soket dapat berkomunikasi dengan soket lainnyanya, maka soket butuh diberi suatu alamat unik sebagai identifikasi. Alamat soket terdiri atas Alamat IP dan Nomer Port. Contoh alamat soket adalah 192.168.29.30: 3000, dimana nomer 3000 adalah nomer portnya. Alamat IP dapat menggunakan alamat Jaringan Lokal (LAN) maupun alamat internet. Jadi soket dapat digunakan untuk IPC pada LAN maupun Internet.
Jenis Socket
Ada dua golongan socket di Unix yang paling umum dipakai yaitu:
- Socket Lokal atau AF_UNIX
- Socket Networking atau AF_INET
Socket Lokal adalah socket yang
melakukan komunikasi dengan perantaraan sebuah file yang biasanya diletakkan
pada direktori /tmp atau /usr/tmp ataupun /var/tmp. Socket semacam ini
digunakan umumnya terbatas untuk komunikasi antar aplikasi dalam satu mesin.
Socket Networking ditujukan untuk komunikasi antar aplikasi antar mesin dalam lingkungan jaringan TCP/IP. Identifikasi socket dilakukan dengan sebuah service identifier yaitu berupa nomor port TCP/IP yang dapat di sambung oleh client. Socket Networking memiliki beberapa jenis, yang paling umum digunakan yaitu:
Socket Networking ditujukan untuk komunikasi antar aplikasi antar mesin dalam lingkungan jaringan TCP/IP. Identifikasi socket dilakukan dengan sebuah service identifier yaitu berupa nomor port TCP/IP yang dapat di sambung oleh client. Socket Networking memiliki beberapa jenis, yang paling umum digunakan yaitu:
- Socket Stream atau SOCK_STREAM
- Socket Datagram atau SOCK_DGRAM
Socket Stream adalah socket komunikasi
full-duplex berbasis aliran (stream) data. Pada model komunikasi Socket Stream,
koneksi dua aplikasi harus dalam kondisi tersambung dengan benar untuk dapat
bertukar data. Ini dapat dianalogikan seperti komunikasi telepon. Jika
sambungan telepon di salah satu titik putus, maka komunikasi tidak dapat
terjadi. Koneksi model seperti ini akan menjamin data dapat dipertukarkan
dengan baik, namun memiliki kelemahan dalam hal penggunaan jalur data yang
relatif besar dan tidak boleh terputus.
Socket Datagram berkomunikasi dengan cara yang berbeda. Socket ini tidak membutuhkan koneksi yang tersambung dengan benar untuk mengirimkan dan menerima data. Model koneksi semacam ini tidak dapat menjamin data dapat dipertukarkan dengan baik, namun memiliki keunggulan dalam hal penggunaan jalur data yang minimal. Socket Datagram dapat dianalogikan dengan komunikasi yang terjadi pada kelas, misalnya pada saat guru melakukan broadcasting materi pelajaran untuk diterima oleh setiap murid. Tidak ada yang dapat menjamin materi pelajaran dapat diterima oleh semua murid dengan baik, kecuali diterapkan metoda rechecking. Rechecking ini dapat dilakukan baik oleh guru maupun murid. Guru bertanya untuk memastikan jawaban dari murid benar, atau murid bertanya untuk memastikan kebenaran materi yang diterimanya. Socket Datagram pun menggunakan metoda ini untuk menjamin pengiriman data dapat dilakukan dengan baik.
* Network Forensik Part 1 : http://laras-kamisamma.blogspot.com/2012/11/network-forensic-1.html
* Network Forensic part 2 http://hidupbuta.blogspot.com/2012/11/network-forensic-part-2-server-forensic.html
Share
No comments:
Post a Comment