Pemrograman
Internet Dengan
Socket dan Indy
Pemrograman internet adalah proses mengimplementasikan algoritma dengan
menggunakan pemrograman sehingga sebuah computer dapat saling vberkomunikasi
dalam suatu jaringan melalui protokol, antarmuka basis data, pemrograman GUI
atau struktur infiramsi.
Salah satu pemrograman yang penting dalam lingkup client-server ini
adalah pemrograman socket. Dengan mempelajari teknik pemrograman socket, dapat
diketahui bagaimana cara sebuah computer dapat mengirim pesan berupa teks,
citra video, musik dan lainnya melalui internet.
Apa itu Socket?
Socket adalah salah satu titik akhir dari jalur komunikasi dua
arah antara dua program yang berjalan pada jaringan dengan protocol TCP/IP atau
UDP. Socket terhubung pada sebuah nomor port sehingga lapisan TCP dapat
mengidentifikasi aplikasi di mana pengiriman data ditujukan. Socket
merupakan sebuah aplikasi yang dibuat, dikontrol, antarmuka system operasi di
mana aplikasi dapat saling mengirim dan menerima pesan dari atau pada aplikasi
yang lain.
Definisi tentang socket sebagai berikut:
a.
Mengizinkan suatu proses unik untuk berkomunikasi satu
dengan yang lain.
b.
Memberitahukan proses mana untuk menulis atau membaca.
c.
Komunikasi pada mesin yang sama, jaringan dan internet.
d.
Komunikasi dua arah membuatnya cocok untuk model
client-server
e.
Dibentuk tahun 1980an oleh Berkeley Unix Distribution.
a.
TCP, bersifat connection –oriented dan reliable.
o
Connection-oriented, untuk melakukan komunikasi
diperlukan koneksi terlebih dahulu.
o
Reliable, menjamin sampainya paket data ke
computer tujuan dan melakukan pengecekan. Apabila data paket data yang hilang
atau rusak maka socket TCP akan meminta paket data yang rusak sampai semua
paket data yang diterima dalam kondisi yang baik.
b.
UDP, bersifat connectionilist, menjamin komunikasi.
Konsep lain yang berhubungan dengan soket, yaitu PORT.
Port digunakan untuk memberikan alamat koneksi pada suatu komputer. Dengan kata
lain, jika alamat IP digunakan untuk memberikan alamt pada komputer yang
berbeda, port digunakan untuk memberikan alamat pada komputer yang sama.
Standar port:
80 à HTTP (Hypertext
Transfer Protocol)
23 à Telnet
25 à SMTP (Simple Mail
Transfer Protokol)
21 à FTP (File Transfer
Protocol)
110 à
POP3 (Post Office Protocol, versi 3)
69 à TFTP
161 à
SNMP
Komunikasi socket jaringan memang tidak mengenal lelah, pertukaran data
terjadi terus-menerus dan memegang peranan vital. Jika oleh karena suatu hal
komunikasi berhenti karena maintenance, kerusakan, ataupun sebab lainnya, maka
dapat dipastikan para penggunanya akan kecewa.
Maka dari itu, komunikasi jaringan selalu diusahakan tidak terhenti.
Demikianlah tugas berat yang harus dilakukan socket jaringan. Sebelum membahas
lebih jauh, apakah sebenarnya pengertian socket itu?
Pengertian socket adalah interface pada jaringan yang menjadi titik
komunikasi antarmesin pada Internet Protocol, dan tentunya tanpa komunikasi
ini, tidak akan ada pertukaran data dan informasi jaringan.
Socket terdiri
dari elemen-elemen utama sebagai berikut:
1. Protokol.
2. Local IP.
3. Local Port.
4. Remote IP.
5. Remote Port.
Dalam komunikasi antara dua pihak, tentunya harus digunakan kesepakatan
aturan dan format yang sama agar komunikasi dapat dimengerti. Seperti halnya
dua orang yang menggunakan bahasa yang sama, maka bahasa di sini berfungsi
sebagai protokol. Protokol yang digunakan dalam socket dapat menggunakan TCP
ataupun UDP.
Contoh komunikasi sederhana adalah komunikasi antara komputer A dan
komputer B. Baik komputer A maupun komputer B harus memiliki identitas unik,
yang direpresentasikan oleh IP masing-masing.
Komunikasi yang terjadi melalui port, sehingga baik komputer A maupun
komputer B harus memiliki port yang dapat diakses satu sama lain.
Tipe Socket
Untuk tipe socket ada 2 macam, Stream socket dan Datagram socket:
a.
Stream socket, adalah komunikasi continous stream dari
karakter (menggunakan protocol TCP)
b.
Datagram socket, adalah pembacaan seluruh pesan dengan
segera (menggunakan protocol UDP)
TCP dan
UDP
Pemrograman socket adalah cara untuk menggunakan komponen/API
(Application Programming Interface) socket untuk membuat sebuah aplikasi.
Aplikasi socket umumnya terdiri dari dua kategori berdasarkan pengiriman
datanya, yaitu:
a.
Datagram socket (menggunakan UDP).
b.
Stream socket (menggunakan TCP).
Terdapat perlakuan yang berbeda antara UDP dan TCP, walaupun sama-sama
berfungsi sebagai protokol pertukaran data.
UDP tidak memerlukan proses koneksi terlebih dahulu untuk dapat
mengirimkan data, paket-paket data yang dikirimkan UDP bisa jadi melalui rute
yang berbeda-beda, sehingga hasil yang diterima bisa jadi tidak berurutan.
Contohnya jika aplikasi socket pengirim mengirimkan berturut-turut pesan
1, pesan 2, dan pesan 3, maka aplikasi socket penerima belum tentu mendapatkan
pesan yang berurutan dimulai dari pesan 1, pesan 2, dan terakhir pesan 3. Bisa
saja pesan 2 terlebih dulu diterima, menyusul pesan-pesan yang lain, atau
berbagai kemungkinan lainnya. Bahkan, dapat terjadi pesan yang dikirimkan tidak
sampai ke penerima karena kegagalan pengiriman paket data.
Tidak demikian halnya dengan stream socket yang menggunakan TCP. Jenis
ini mengharuskan terjadinya koneksi terlebih dahulu, kemudian mengirimkan
paket-paket data secara berurutan, penerima juga dijamin akan menerima data
dengan urutan yang benar, dimulai dari data pertama yang dikirimkan hingga data
terakhir. TCP dapat menangani data yang hilang, rusak, terpecah, ataupun
terduplikasi.
Dari sekilas perbedaan ini, kita dapat menarik kesimpulan bahwa aplikasi
socket yang menggunakan TCP memerlukan pertukaran data dua arah yang valid.
Sedangkan, aplikasi socket yang menggunakan UDP lebih memprioritaskan pada
pengumpulan data.
Karena itu aplikasi socket dengan TCP sering diterapkan untuk aplikasi
chat, transfer file, ataupun transaksi-transaksi penting. Sedangkan aplikasi
socket dengan UDP cocok diterapkan untuk aplikasi monitoring jaringan, game
online, dan aplikasi-aplikasi broadcast.
Port
Salah satu
elemen penting yang digunakan dalam aplikasi socket adalah port. Port merupakan
sebuah koneksi data virtual yang digunakan aplikasi untuk bertukar data secara
langsung.
Terdapat banyak port di dalam sebuah sistem komputer dengan fungsinya
masing-masing. Sebagai contoh, dalam mengirim e-mail digunakan service SMTP
yang umumnya menggunakan port 25. Sementara service POP3 untuk menerima e-mail
menggunakan port 110, port 80 digunakan untuk HTTP, port 443 digunakan untuk
HTTPS, dan seterusnya.
Nomor-nomor port dikategorikan dalam tiga jenis sebagai berikut:
- Well-known ports.
Merupakan port yang telah digunakan secara internal oleh sistem Windows,
misalnya port untuk koneksi Internet, service FTP, dan seterusnya. Port yang
telah digunakan ini adalah port 0 sampai dengan port 1023.
- Registered ports.
Port ini dapat digunakan dalam aplikasi Anda, range-nya adalah port 1024
hingga port 49151, cukup banyak port yang tersedia yang bebas Anda pilih
sehingga Anda tidak perlu kuatir kekurangan port untuk aplikasi Anda.
- Dynamic/Private ports.
Dari port 49152 sampai dengan port 65535.
Winsock
Untuk
pemrograman aplikasi socket berbasis Windows, maka komponen API yang sering
digunakan adalah Winsock (Win-dows Socket API) yang mendukung interface standar
TCP/IP, yang merupakan protokol jaringan paling popular saat ini (contoh
protokol jaringan yang lain adalah NetBIOS, IPX dari Novell, AppleTalk dari
Apple, dan seterusnya).
Pengertian TCP/IP (TCP over IP) mungkin dapat menjadi sedikit rancu jika
diartikan TCP/IP hanya mengizinkan pengiriman TCP (dan tidak UDP), padahal
seperti yang telah kita bahas, pengiriman socket dapat melalui TCP maupun UDP.
Pengertian TCP/IP di sini sebenarnya digunakan untuk menunjukkan
teknologi jaringan/Internet, termasuk di dalamnya adalah UDP. Jika Anda
menggunakan UDP, dapat juga disebut sebagai UDP/IP (UDP over IP), tetapi
umumnya istilah ini jarang digunakan dan istilah TCP/IP telah mencakup, baik
TCP maupun UDP.
Pada bahasa pemrograman visual seperti Visual Basic/Delphi, Anda dapat
menggunakan control Winsock yang telah disediakan untuk mengembangkan aplikasi
socket.
Walaupun kita akan mencontohkan aplikasi socket dalam environment
Windows, Anda tidak perlu khawatir jika aplikasi socket yang menggunakan
Winsock tidak dapat berkomunikasi dengan aplikasi socket berbasis Unix/Linux,
karena kolunikasi tetap dapat terjadi selama aplikasi tersebut menggunakan
protokol jaringan yang sama.
Kalau demikian, untuk mencoba aplikasi socket, apakah mutlak diperlukan
setidaknya jaringan dengan minimal dua komputer yang saling terkoneksi? Bagi
Anda yang terpaksa hanya menggunakan satu komputer, dapat memanfaatkan alamat
localhost atau 127.0.0.1 yang mengizinkan dua aplikasi berjalan pada satu mesin
komputer dan berkomunikasi satu sama lain.
Indy ( Internet Direct )
Lalu apa indy itu ?
indy adalah komponen open source yang terdiri dari protocol internet yang sudah
begitu popular, seperti HTTP, FTP, SMTP, TCP, UDP, Gopher, Whois dan lain-lain,
karena open source maka kita dapat mempelajari semua kode program yang ada
untuk dikembangkan. kemudahan yang lain adalah indy mendukung protocol sampai
120 protokol, sebelumya protocol adalah aturan standar atau ketentuan dalam
komunikasi jaringan, jadi dalam komunikasi jaringan sudah dibentuk aturan baku
dalam proses data.
Untuk pemograman indy
dapat menggunakan bahasa pemograman seperti Borland Delphi, Borland C++
builder, Visual Studio.net, C#, dan untuk platform (berbeda system operasi )
dapat digunakan pula di Linux, .Net Framework, dan Win32.
Tidak ada komentar:
Posting Komentar