Bagaimana internet bekerja ?


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.

tanda ssl

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