Bagaimana internet bekerja ?
Photo by Markus Spiske on Unsplash |
Internet adalah hal yang saat ini selalu melekat pada kita. Mengakses web
untuk mencari informasi menggunakan internet. Tapi tau gak sih bagaimana
internet bekerja ? Saya mendapatkan bacaan yang bagus ketika berselancar di
internet, dan kupikir kalian harus membacanya agar kalian sedikit lebih tau
tentang internet.
Bagaiaman internet bekerja ?
Internet bekerja melalui rangkaian jalur paket yang diatur dengan beberapa
protokol seperti Internet Protocol, Transfer Protocol, dan
protokol-protokol lainnya.
Lalu apa itu protokol ?
Protokol adalah sekumpulan aturan yang mengatur bagaimana 2 komputer dapat
berkomunikasi didalam jaringan. Sebagai contoh,
Transfer Protocol mempunyai aturan dimana jika satu komputer mengirim
data ke komputer lainnya, komputer tujuan harus membiarkan komputer asal
untuk mengetahui apakah terdapat data yang hilang, jadi komputer asal bisa
mengirim ulang data tersebut. Atau Internet Protokol yang mengatur
bagaimana komputer harus merutekan informasi/data yang dikirimkannya dengan
melampirkan alamat pada data yang dikirimkan.
Apa itu paket (packet) ?
Data yang dikirimkan di dalam internet disebut message . Sebelum
message dikirim, pertama-tama message dipecah menjadi beberapa
fragment yang kita sebut packet . packet ini dikirim
secara terpisah. Besar ukuran paket biasanya maksimal antara 1000 sampai
3000 karakter. Internet Protocol mengatur bagaimana
message harus dipaketkan.
Apa itu jalur rute paket (packet routing network) ?
Ini merupakan kumpulan jalur paket (network) dari komputer asal ke komputer
tujuan. Inernet terbuat dari kumpulan jaringan komputer khusus yang disebut
router. Pekerjaan router adalah mengetahui bagaimana
memindahkan packet agar sampai dari komputer asal ke komputer tujuan.
Sebuah packet akan berpindah di banyak router dalam
perjalanannya. Ketika packet berpindah dari satu router ke
router lainnya ini disebut hop. Di windows kita dapat mengecek
list hop dengan mengetikan perintah tracert domain tujuan di cmd.
Internet Protocol menentukan bagaimana alamat jaringan (network address) harus dilampirkan di packet header, yaitu ruang tertentu di
paket yang berisi meta data. Internet Protocol juga menentukan
bagaimana router harus meneruskan paket berdasarkan alamat yang ada
di header.
Darimana internet router datang ? dan siapa yang memilikinya ?
router-router ini awal mulanya adalah proyek militer yang dibuat
pada tahun 1960 dengan nama ARPANET. Proyek militer yang memiliki tujuan
membuat suatu jaringan komputer yang terdesentralisasi yang dapat berbagi
informasi walau dalam keadaan bencana. Sejak saat itu, sejumlah perusahaan
penyedia layanan internet menambahkan router mereka ke
router ARPANET.
Tidak ada pemilik tunggal dari router internet ini, tapi beberapa
kepemilikan: agensi pemerintahan dan universitas yang bergabung membuat
ARPANET diawal, dan penyedia jasa internet yang menambahkan
router mereka.
Apakah paket selalu tiba sesuai urutan ?
Paket dapat tiba ditujuan mereka dalam keadaan tidak berurutan. Ini
terjadi ketika packet menemukan jalur yang lebih cepat menuju ke
destinasi daripada packet terdahulunya. Tapi
packet header memiliki informasi tentang urutan
packet sesuai dengan keseluruhan
messages. Transport Control Protocol menggunakan info ini untuk
merekonstruksi messages pada tempat tujuan.
Apakah packet selalu sampai pada tujuan ?
Internet Protocol tidak menjamin paket akan selalu sampai tujuan.
Ketika ada packet yang hilang ini disebut packet loss. Ini
biasanya terjadi ketika router menerima packet lebih banyak dari
yang ia bisa tangani. Jadi tidak ada pilihan lain selain me-drop beberapa packet.
Bagaimanapun, Transport Control Protocol menangani kehilangan
packet dengan melakukan re-transmission. Ini dilakukan
dengan cara komputer tujuan mengirimkan kembali
acknowledge packet secara periodik ke komputer asal yang
menjelaskan berapa banyak pesan yang diterima dan di rekontruksi. Jika
komputer tujuan menemukan adanya packet yang hilang dia akan
meminta komputer asal untuk mengirim ulang packet yang
hilang.
Ketika 2 komputer berkomunikasi melalui
Transport Control Protocol, kita katakan ada TCP Connection antara
keduanya.
Seperti apa terlihatnya IP Address ?
address yang dipanggil IP address memiliki 2 standar.
Yang pertama adalah IPv4 yang terlihat seperti ini 212.78.1.25 . Tapi karena IPv4 hanya support 2 pangkat 32 (sekitar 4 miliyar)
kemungkinan alamat IP. Internet task force membuat standar baru
yang disebut IPv6 yang terlihat seperti ini 3ffe:1893:3452:345 dengan support 2 pangkat 128 kemungkinan alamat IP. Jadi lebih
banyak device yang terakomodir.
Oleh karena itu ada pemetaan dari satu ke satu antara IPv4 ke IPv6. Catat
perpindahan dari IPv4 ke IPv6 masih dalam progress dan butuh waktu yang
lama. Pada tahun 2014, Google mencatat hanya ada traffic sebesar 3%
yang merupakan IPv6.
Bagaimana terdapat 8 miliar device dalam jaringan jika hanya ada sekitar 4 miliar alamat IPv4 ?
Ini karena terdapat private address dan
public address. Beberapa device dalam satu jaringan lokal
yang terhubung dengan internet akan berbagi public IP address yang
sama. Dalam local network , device ini akan dibedakan dengan yang
lainnya menggunakan private IP address, biasanya seperti 192.168.x.x atau 172.16.x.x dimana x adalah angka dari 1 sampai 255. Private IP address ini diisikan
oleh Dynamic Host Configuration Protocol (DHCP).
Sebagai contoh, jika ada laptop dan smartphone berada di
local network yang sama lalu melakukan request ke
google.com, sebelum packet meninggalkan modem, modem akan
memodifikasi packet headers dan memasukkan satu dari
port-nya ke packet tersebut. Ketika google server memberi
balasan, ia akan mengirimkan data kembali ke modem pada port yang
spesifik sehingga modem tau ke arah mana harus merutekan
packet, apakah ke laptop atau ke smartphone.
Dalam hal ini, IP address tidak menspesifikan sebuah
computer, tapi lebih ke koneksi komputer dengan internet.
Address yang benar-benar menspesifikasikan komputermu adalah
MAC address, alamat ini tidak akan pernah berubah.
Protokol yang me-mapping private IP address ke
public IP address disebut Network Address Translation (NAT).
Ini yang memungkinkan membuat untuk memungkinkan adanya 8 miliyar lebih
device hanya dengan 4 miliyar IP address dari IPv4.
Bagaimana router tau harus ke arah mana sebuah packet dikirimkan ? Apakah harus tau semua IP address yang ada di internet ?
Setiap router tidak harus tau semua IP address yang ada di
internet, dia hanya perlu tau IP address milik tetangga yang mana dia
harus mengoperkan packet (outbond link). Perlu dicatat bahwa
IP address dapat dipecah menjadi , network prefix dan
host identifier. Sebagai contoh, 129.42.13.69 dapat dipecah menjadi 129.42.x.x (network prefix) dan x.x.13.69 (host identifier).
Semua perangkat yang terhubung ke internet melalui
single connection (contohnya kampus, kantor bisnis) akan berbagi
network prefix yang sama.
router akan mengirimkan semua packet dengan alamat 129.42.x.x ke lokasi yang sama. Jadi alih-alih melacak miliyaran IP address ,
router hanya butuh melacak kurang dari se-juta network prefix.
Tapi router tetap butuh melacak banyak network prefix. Jika sebuah router baru ditambahkan ke internet bagaimana dia mengetahui bagaimana menangani paket untuk semua network prefix ini ?
router baru mungkin datang dengan beberapa rute yang telah dikonfigurasikan
sebelumnya. Tapi jika ia mendapat sebuah packet yang ia tidak tau
bagaimana merutekan packet tersebut, dia akan menanyakan ke
router tetangga, jika router tetangga tau bagaimana merutekan
packet itu, dia akan mengirimkan info rute nya ke router yang
bertanya. router yang bertanya tadi akan menyimpan info tersebut
untuk digunakan di masa depan. Dengan cara ini router membangun tabel
pe-rute-annya (sebuah database berisi network prefix ke
outbond link) sendiri. Jika router tetangga tidak tau, ia
akan bertanya ke tetangganya dan seterusnya sampai menemukan info
peruteannya. Bagus ya budayanya.
Bagaimana aplikasi berkomunikasi melalui internet ?
Seperti kebanyakan projek engineering yang kompleks, Internet dapat dipecah
menjadi beberapa komponen kecil tersendiri, dimana mereka bekerja bersama
melalui antarmuka yang terdefinisi dengan baik.
Komponen-komponen ini disebut dengan internet network layer yang
terdiri dari link layer, internet layer, transport layer dan
application layer. Mereka disebut layer karena mereka dibangun diatas
layer yang lain. Setiap layer menggunakan kemampuan layer dibawahnya tanpa
khawatir tentang detail implementasinya.
Aplikasi internet bekerja di application layer dan tidak perlu
khawatir tentang detail yang ada pada layer-layer dibawahnya. Sebagai
contoh sebuah aplikasi terhubung ke aplikasi lainnya dalam jaringan via
TCP menggunakan konstruksi yang disebut socked, yang meringkas
rincian kasar dari packet routing dan merakit kembali
packet menjadi message. Intinya setiap layer sudah punya
tugasnya masing-masing.
Apa yang dilakukan setiap internet layers ?
Pada level yang paling bawah terdapat link layer dimana merupakan
"physical layer" dari internet. link layer berkaitan dengan pengiriman bit
data melalui beberapa media fisik seperti fiber optik atau sinyal radio
wifi.
Diatas link layer terdapat internet layer/network layer. Internet layer
berkaitan dengan merutekan paket menuju destinasi mereka.
internet protocl yang telah disebutkan sebelumnya bekerja pada
layer ini. Internet protokol secara dinamis menyesuaikan dan merutekan
kembali berdasarkan network load dan outages. Catatan, ini
tidak menjamin paket akan selalu sampai ke destinasi mereka, ini hanya
percobaan untuk melakukan yang terbaik untuk membuat paket sampai
tujuan.
Diatas layer ini terdapat transport layer . layer ini ada untuk
mengimbangi kenyataan bahwa data dapat hilang di internet layer dan
link layer. Transport control protocol yang sebelumnya
disebutkan bekerja pada layer ini, dan pekerjaan utamanya adalah untuk
merakit kembali packet menjadi message dan mengirimkan
kembali packet yang hilang.
Application layer berada di paling atas. Lapisan ini menggunakan
semua layer yang dibawahnya untuk meng-handle detail perpindahan
packet yang kompleks didalam internet. Ini memungkinkan aplikasi
dengan mudah membuat koneksi dengan aplikasi lain di internet dengan
abstraksi sederhana seperti socket. HTTP protocol yang
menentukan web browser dan web server berinteraksi bekerja di layer ini.
FTP protocol yang menentukan protokol transfer-file antara
file-downloading client dan file-hosting server juga berada pada layer
ini.
Apa perbedaan client dan server ?
Client dan server keduanya adalah aplikasi yang berkomunikasi melalui
internet, client bersifat "closer to the user" dimana mereka
berhadapan langsung dengan pengguna seperti web browser, email client,
atau aplikasi smartphone. Server adalah aplikasi yang berjalan di
remote computer dimana client akan berkomunikasi dengannya jika
memerlukan sesuatu.
Bagaimana data sensitif seperti kartu kredit bisa ditransmisikan secara aman di internet ?
Pada masa awal-awal adanya internet, internet cukup dipastikan aman. Tapi
dengan pertumbuhan ukuran internet , lebih banyak router berarti lebih
banyak kerentanan. Selanjutnya dengan munculnya teknologi nirkabel seperti
wifi, hackers dapat meng-intersep paket, internet sekarang tidak cukup aman.
Solusinya adalah enkripsi dan autentikasi SSL/TLS.
Apa itu SSL/TLS ?
SSL kependekan dari secure socket layers. TLS kependekan dari
transport layer security. SSL pertama kali dikembangkan oleh Netscape
pada tahun 1994, lalu versi yang lebih aman dikembangkan kemudian namanya
diganti dengan TLS. Kita akan menyebut mereka bersama-sama sebagai
SSL/TLS.
SSL/TLS adalah optional layer yang berada antara transport layer dan
application layer. Ini menyediakan komunikasi internet tentang informasi
sensitif melalui enkripsi dan autentikasi.
Enkripsi berarti client dapat meminta TCP connection ke server untuk
di enkripsi. Ini berarti semua pesan yang dikirim antara client dan server
dienkripsi terlebih dahulu sebelum dipecah menjadi paket-paket. Jika hacker
meng-intersep paket-paket ini mereka tidak bisa me-rekonstruksi ulang pesan
aslinya.
Autentikasi berarti client dapat mempercayai sebuah server. Ini melindungi
dari ancaman man-in the-middle , yaitu ketika ada pihak jahat yang
menyadap koneksi kita antara client dan server untuk menguping dan merusak
koneksi kita.
Kita dapat melihat SSL ketika kita mengakses website yang menggunakan SSL
pada modern Browser. Ketika browser website menggunakan https protokol bukan
http, ini memberitahu web server bahwa ia menginginkan koneksi yang
terenkripsi SSL. Jika web server mendukung SSL, koneksi yang terenkripsi
akan dibuat dan kita akan melihat tanda gembok di samping alamat url web
yang kita buka.
Bagaimana SSL mengautentikasi identitas sebuah server dan mengenkripsi komunikasi mereka ?
Ini menggunakan asymetric encryption dan SSL certificate. Asymetric
encryption adalah sebuah skema enkripsi yang menggunakan public key dan
private key. Key ini pada dasarnya hanya angka yang berasal dari bilangan
prima besar. Private key digunakan untuk men-dekripsi data dan menandai
sebuah dokumen, dan public key digunakan untuk men-enkripsi data dan
memverifikasi tanda dari sebuah dokumen. Tidak seperti symetric
encryption, asymetric encryption berkemampuan untuk men-enkripsi data tapi
tidak secara otomatis memiliki kemampuan untuk men-dekripsi data. Ini
dilakukan dengan menggunakan prinsip-prinsip dalam cabang matematika yang
disebut teori bilangan.
SSL sertifikat adalah dokumen digital yang berisi public key yang
ditetapkan untuk web server. SSL sertifikat ini dikeluarkan oleh
certificate authoritize. Sistem operasi, mobile device dan browser
datang dengan beberapa certificate authoritize. Jadi ini dapat
memverifikasi SSL certificate.
Ketika client meminta koneksi SSL-encrypted dengan server, server
mengirim kembali SSL certificate, lalu client mengecek SSL
certificate:
- Apakah SSL certificate ini dikeluarkan untuk server ini ?
- Apakah ditandai oleh certificate authoritize yang terpercaya ?
- Sudah kadaluarsa atau belum ?
Client kemudian menggunakan public key untuk meng-enkripsi deretan
secret key acak dan mengirimkannya kembali ke server. Karena server
memiliki private key yang cocok, maka dia dapat men-dekripsi secret key
tadi. Sekarang antara client dan server mengetahui secret key ini, jadi
mereka dapat menggunakannya untuk meng-enkripsi pesan mereka. Mereka
akan menghapus secret key ini ketika sesi abis.
Apa yang terjadi jika seorang hacker meng-intersep komunikasi SSL-encrypted ?
Misalkan seorang hacker menyadap setiap pesan yang dikirim antara client
dan server. Hacker melihat sertifikat yang dikirim server serta secret key
yang dienkripsi oleh client. Tapi karena dia tidak punya private key dia
tidak bisa men-dekripsi secret key yang didapat. Dan karena tidak memiliki
secret key, dia tidak bisa men-dekripsi apapun pesan antara client dan
server.
Nah gimana bacaannya ? semoga menambah wawasan kita tentang bagaimana
internet bekerja walaupun hanya sedikit (maaf ya kalo terjemahannya agak
aneh, saya terjemahin sendiri soalnya). Kalo mau lebih jelas kalian bisa
baca langsung dari sumbernya.
sumber :
medium Steven Li.
loading...
Comments
Post a Comment