Assalamu'alaikum....
TCP/IP adalah protokol yang populer
digunakan/diimplementasikan untuk saling mengkoneksikan jaringan lokal
dengan metode “internet” (inget i-nya kecil… = interconnect networking).
Sampai pada suatu saat, seluruh jaringan-jaringan yang ada di dunia ini
telah terkoneksi, sehingga lahirlah produk hebat dari internet bernama The Internet.
(Tapi sekali lagi saya tegaskan, banyak orang, termasuk saya, yang
maksudnya nulis “internet” malah jadi “Internet”. Atau sebaliknya,
maksudnya menulis “Internet” malah jadi “internet”. Gapapa lah, soalnya
sekarang internet & Internet emang udah mengcover seluruh dunia
‘kan…). Mari kita bongkar dan berkarya wisata ke layer-layer pada
TCP/IP!!!
Biar lebih jelas, pertama-tama saya kasih gambar ini nih.. Semua obrolan kita di postingan ini mengacu pada gambar ini:
Gambar ini diambil dari situs Wikipedia.
Ini adalah 4 layer teratas (layer 5, 4, 3, dan 2) dari layer-layer
TCP/IP. Sedangkan layer 1 (Layer Fisik) TCP/IP gak dimasukkan dalam
gambar ini..
TCP/IP disebut juga TCP/IP Suite, atau seperangkat protokol komunikasi data.
Jadi sebenernya yang disebut protokol itu siapa? Apakah “TCP/IP” nya
ATAU protokol-protokol yang ada di tiap layer itu sihh? (Coba lihat
gambar)
Jyah, ini mah sama aja kayak analogi begini:
Microsoft Office Suite 2010 adalah produk office dari Microsoft. Didalam Microsoft Office Suite 2010, terdapat:
- Aplikasi word processing, menggunakan Microsoft Word
- Aplikasi worksheet, matematik, dan matriks, menggunakan Microsoft Excel
- Aplikasi membuat database, menggunakan Microsoft Access
- dan seterusnya
Kalo pake analogi begini, anggap aja
satu bundel Microsoft Office ini adalah “TCP/IP”-nya… sedangkan
Microsoft Word, Excel, Access, Outlook, dkk sebagai protokol-protokol di
tiap layernya.. Paham? Okede…
Ada pertanyaan bagus dari adik kelas,
kenapa nama protokol komunikasi yang dikembangkan ARPA ini disebut
“TCP/IP”? Wah, pertanyaan yang sangat fundamental (haha). Langsung aja
saya jawab begini:
- Tanya ke ARPA, dijamin dapet jawaban yang jelas.. hehehe…
- Kalo kita ga bisa ke Amerika ketemu salah satu Researcher ARPA,
mending kita maen tebak-tebak buah manggis… Kalo kata tebak2an..
menurut saya kenapa dinamakan “TCP/IP” adalah karena dua protokol TCP,
dan IP ini (Coba lihat lagi gambarnya.. TCP ada di layer 4, dan IP ada
di layer 3) adalah protokol yang paling sering digunakan dan jadi
primadona dalam komunikasi data… Mungkin TCP dan IP sudah dianggap
maskot dari sekumpulan geng protokol ini, sehingga dijadikan nama geng
nya.. hehehe…
Oke saatnya karya wisata ke Layer 1 (Layer Fisik)………(1 jam kemudian)…..
*Sopir bisnya gak tau tempat-tempat
di Layer Fisik… jadi kita langsung ke Layer 2 (Layer Data-Link) aja ya
anak-anak??! Iya paaakkk…*
Layer 2 (Layer Data-Link)
Kita karya wisata ke salah satu protokol yang ada di layer ini, ARP:
ARP & RARP (Address Resolution Protocol & Reverse/Inverse Address Resolution Protocol): adalah protokol yang bertugas untuk memetakan IP Address menjadi alamat MAC (Media Access Control) juga untuk sebaliknya, memetakan MAC Address menjadi IP Address.
Untuk melihat alamat IP (Layer 3) dan alamat fisik MAC (Layer 2). Pada shell Linux, ketik perintah “ifconfig” dan untuk cmd Windows, ketik perintah “ipconfig”
root@eniac:/home/inan# ifconfig
eth0 Link encap:Ethernet HWaddr 00:1b:24:2a:3e:e0
inetaddr:192.168.0.2 Bcast:192.168.0.255 Mask 255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:20 Base address:0xa000
wlan0 Link encap:Ethernet HWaddr 00:19:7e:45:99:eb
inetaddr:217.0.0.7 Bcast:217.0.0.255 Mask 255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Yang saya garis bawah adalah alamat MAC (alamat device) dan yang saya
bold adalah alamat IP (Layer 3). Penting nih.. tiap alamat MAC (alamat
device) tidak ada yang sama di dunia ini. Seperti juga contohnya alamat
MAC LAN card saya (eth0) dan Wireless card saya (wlan0). Ini aja udah
beda… Apalagi dengan komputer lain
Nah, sekarang… tugas ARP pada komputer saya adalah mengabarkan kepada seluruh node di dalam jaringan WLAN saya bahwa IP 217.0.0.7 mempunyai alamat MAC 00:19:7e:45:99:eb begitu juga untuk LAN, ARP akan membroadcast informasi ke tiap node bahwa alamat 192.168.0.2 mempunyai alamat MAC 00:1b:24:2a:3e:e0.
Sebenarnya untuk apa alamat MAC? Alamat
MAC diperlukan untuk transfer data yang secara fisik dalam satu
jaringan. Kalau begitu untuk apa alamat IP? Wogh… Alamat IP digunakan
sebagai alamat logic tiap node untuk kebutuhan pengalamatan
jaringan-jaringan karena (nanti akan dijelaskan ketika kita berkarya
wisata ke Layer 3 hehehe…). Kalo peran ARP dalam komunikasi di jaringan
lokal?? Jika anda pernah mengkoneksikan komputer anda ke sebuah jaringan
(pake switch misalnya) maka tanpa peran ARP, mungkin komputer anda
tidak akan pernah mendapatkan paket data karena “kesasar” di jaringan
lokal. Hehe.. Switch bekerja pada layer 2. Sebenernya switch memiliki
“database” ARP table di dalam switch tersebut. Isinya kurang lebih
(contoh) seperti ini:
| IP Address |
MAC Address |
Lewat port switch… |
| 192.168.0.1 |
00:1b:cc:c0:bd:e0 |
Port 1 switch |
| 192.168.0.2 |
00:1b:24:2a:3e:e0 |
Port 2 switch |
| 192.168.0.3 |
00:1c:13:dd:a2:bb |
Port 3 switch |
| 192.168.0.4 |
00:1c:25:1c:ae:4e |
Port 4 switch |
Tabel ARP pada Switch 4 port yang terisi penuh menuju node-node.
Cara switch bekerja adalah dengan
membaca ARP Table nya. Baris-baris pada table tersebut selalu di update
oleh protokol ARP secara periodik. Misalnya ada paket datang ke switch
dari IP 192.168.0.1 yang akan menuju 192.168.0.2. ARP akan me-resolv
alamat 192.168.0.2 menjadi 00:1b:24:2a:3e:e0, sehingga switch mengerti
maksud alamat logic (IP) tersebut maksudnya adalah alamat fisik tertentu
yang berada di port mana, kemudian switch akan meneruskan paket
tersebut menuju port nomer 2 pada switch (ke komputer dengan alamat MAC
00:1b:24:2a:3e:e0 atau beralamat logic 192.168.0.2). Untuk selanjutnya
paket dari 192.168.0.1 tersebut di proses secara lokal oleh komputer
192.168.0.2….
Layer 3 (Layer Network)
Kita karya wisata ke salah satu protokol yang ada di layer ini, IP:
IP (Internet Protocol): adalah
protokol yang bertugas untuk pengalamatan logic node. Selain
pengalamatan fisik, diperlukan juga pengalamatan logic. Mungkin anda
berpikir, untuk apa pengalamatan logic, kenapa kita tidak ber-internet
dengan menggunakan alamat fisik (Layer 2) saja? Toh, alamat fisik tiap Network-Interface-Card berbeda-beda di dunia ini… Jadi ga kan ketuker-tuker kalo misal saya berinternet dengan alamat fisik saja…
Ok… ini karena alamat fisik tidak bisa
di masking. Alamat fisik komputer 00:1b:24:2a:3e:e0 tidak bisa di
masking menjadi 00:1b:24:2a:3e:XX… Karena bisa saja 00:1b:24:2a:3e:e0
tidak berada di network yang sama dengan komputer beralamat fisik
00:1b:24:2a:3e:aa misalnya… (perhatikan bagian terakhir “e0” diganti
menjadi “aa”)
Jadi untuk mengetahui alamat jaringan,
tidak bisa dengan menggunakan alamat fisik. Alamat fisik spesifik untuk
pengalamatan langsung untuk host tertentu saja (Direct-Delivery).
Agar ngerti maksudnya, bisa saya jelaskan bersamaan dengan intro di layer 3 ini…
Dari gambar ini, routing table pada ROUTER bisa saya jelaskan seperti ini:
| Source Network |
Destination Network |
Interface |
| 192.168.0.X (byte terakhir terserah, asal masih berada di sub-net 192.168.0) |
192.168.1.X |
m0 |
| 192.168.1.X |
192.168.0.X |
m1 |
Sekarang, bisa anda bayangkan jika
alamat fisik (host-spesific) yang harus di-handle oleh router… Butuh
berapa entry baris agar router bisa mengerti jika harus ke interface
00:1b:24:2a:3e:e0 harus kemana. (Ini masih interkoneksi dua jaringan…
bagaimana nanti kalo sebesar Internet??? Hadohhhhh) Ok, sudah cukup
berandai-andai. Untuk itu alamat logic SANGAT diperlukan…
Layer 4 (Layer Transport)
Kita karya wisata ke salah satu protokol yang ada di layer ini, TCP dan UDP:
TCP (Transmission Control Protocol):
adalah protokol yang bertugas untuk membentuk koneksi antar node. Sifat
TCP adalah connection-oriented. TCP baru akan membuat koneksi jika
kedua belah pihak telah setuju. Karenanya, TCP dianggap reliable (dapat
diandalkan). Berbeda dengan UDP (User Datagram Protocol) yang connectionless, transmisi data yang berbasis UDP akan bersifat nothing-to-lose (hehe) karena tidak ada kesepakatan dulu antar node yang bertransmisi.
Kalau kita beranalogi, misalnya kita mau
mengirimkan barang dari Bandung ke Surabaya dengan menggunakan jasa si
Upin (TCP) atau Ipin (UDP) nih yah?! Untuk diketahui, Upin lebih teliti
dalam mengirimkan barang. Upin suka nelpon dulu orang yang akan
dikirimkan barang di Surabaya itu, apakah rumahnya di Surabaya bisa
dikunjungi atau engga… Kalau bisa dikunjungi, Upin baru mulai ngirim
barangnya… Selain itu, Upin juga memikirkan jalur yang akan ditempuh,
apakah lewat jalur Pantura atau lewat jalur selatan. Terakhir, Upin
bertanggung jawab dalam mengirimkan barang. Upin suka ngasih tau ke kita
bahwa barang yang kita kirimkan udah sampai ke Surabaya dengan selamat
atau engga. Kalau engga, akan dikirimkan lagi dari Bandung. Secara
periodik Upin memberitahukan ke kita sebagai pengirim di Bandung… Kalau
Ipin, dia sih maen berangkat-berangkat aje… Tapi secara waktu, memang
Ipin lebih cepat prosesnya. Karena mungkin sewaktu Upin masi sibuk
nelpon-nelpon ke Surabaya, si Ipin udah nyampe Cirebon.. Jadi Ipin mah ga
mikirin orang di Surabaya-nya bisa dikunjungi atau tidak, terus ga
mikirin lewat jalur mana aja, yang penting sampe Surabaya.. mo lewat
Garut juga ayo-ayo ajahh.. jyahahahahah…
Pada kenyataannya, TCP digunakan untuk
transmisi yang sifatnya kritikal dan tentu saja, butuh kehandalan.
Sedangkan UDP digunakan untuk komunikasi antar proses yang tidak begitu
memerlukan kehandalan, justeru membutuhkan kecepatan respon.
Layer 5 (Layer Application)
Kita karya wisata ke salah satu protokol yang ada di layer ini, DNS:
DNS (Domain Name Service): adalah protokol yang tugasnya memetakan nama domain yang gampang diingat manusia menjadi alamat IP yang gampang diproses komputer (sesuai dengan framework TCP/IP).
DNS Server (Node yang melakukan pemetaan
alamat domain menjadi alamat IP) tentu saja mempunyai “database” nama
domain ke alamat IP nya. Sesuai pada tabel berikut:
| Nama Domain |
Alamat IP |
| onyon.com |
117.231.21.223 |
| gorilla.com |
193.112.125.88 |
NB: nama domain dan alamat IP-nya
ngasal… tapi ini bukan untuk tujuan menyindir atau apapun… hanya biar
contohnya jelas… hehehe..
Jadi ketika kita menggunakan DNS Server
yang memiliki database seperti ini, dan ketika kita browsing ke
gorilla.com, sebenernya kita sama saja dengan melakukan query ke DNS
Server untuk me-resolv nama gorilla.com menjadi IP 193.112.125.88
kemudian membuat koneksi HTTP ke 193.112.125.88 (ngerti kan?)
Apakah seluruh nama domain di Internet
terekam di DNS Server? Jawabannya Ya, tapi tidak semua nama domain di
rekam (record) di satu komputer yang segede Gaban… Tapi dimanfaatkanlah
distributed system. Bisa saja ada DNS Server yang tidak tau alamat
onyon.com, tapi ketika nanya ke DNS server kita, ter-resolv IP
117.231.21.223. Tiap baris DNS sebenarnya selalu di update tiap subuh
waktu GMT. Ada DNS-Root di Internet yang menghandle gTLD (Top Level
Domain) dan ccTLD (country-code Top Level Domain). Contoh TLD yaitu:
com, net, org, edu, mil. Contoh ccTLD yaitu: co.id, go.uk, or.jp.
DNS-Root ini “hanya” mengatur Top Level Domain… Untuk SLD (Second Level
Domain) di TLD tersebut ada Name Server-Name Server lain yang pastinya
lebih tau. Contoh SLD: google, yahoo, tibandung, detik, kaskus, dsb….
Mungkin analoginya gini aja lah ya (step by step).. Telah di query sama Mr. Lampard seseorang dari Inggris alamat sbb: Gg Mawar no. 12c, Jl. Soekarno-Hatta, Kota Bandung, Provinsi Jabar, Negara Indonesia
- Pertama-tama yang dilakukan Mr. Lampard adalah nanya ke
“Nameserver” PBB.. dimana sih negara Indonesia?? PBB kemudian ngasih
jawabannya…
- Mr. Lampard kemudian ke Indonesia dan nanya ke “Nameserver” di
sana. Dimana sih provinsi Jabar? “Nameserver” Indonesia kemudian
ngasih tau jawabannya… (Untuk dipahami, jika Mr. Lampard nanya ke PBB, BELUM TENTU PBB tau dimana provinsi Jabar. Betul tidak??)
- Terus nanya ke “Nameserver” di Jabar, dimana sih Kota Bandung?
Terus “Nameserver” tersebut ngasih tau jawabannya… (Untuk dipahami,
jika Mr. Lampard nanya ke Indonesia, BELUM TENTU Indonesia tau dimana Kota Bandung. Betul tidak??)
- Terus nanya ke “Nameserver” di Bandung, dimana sih Jl. Soekarno-Hatta…
- Terus nanya ke “Nameserver” di Jl. Soekarno-Hatta, dimana sih Gang Mawar…
- Terus nanya ke “Nameserver” warga di Jl. Mawar, dimana sih rumah no. 12c…
- Akhirnya Mr. Lampard tau alamat tempat bakal tujuannya. Lah, ngapain Lampard nanya-nanya Bandung euy? Pengen ngabela PERSIB inih teh? Hahahah..
Protokol DNS menggunakan layanan Ipin..
eh.. maksudnya layanan UDP. Yang membutuhkan kecepatan dalam respon
ketimbang masalah kehandalan. Bisa dilihat sendiri, kenapa lebih
membutuhkan kecepatan respon ketimbang kehandalan. Lah, data yang
diquery-in juga cuma masalah nama domain… Lagian, banyak node yang
mungkin harus di lewati untuk pemecahan nama domain.. Bisa lama
nungguinnya nehhh…
Contoh “DNS Client” adalah aplikasi
kecil bernama “nslookup”. Ini adalah contoh ketika saya melakukan query
“google.co.id” ke aplikasi ini…
inan@eniac:~$ nslookup
> server
Default server: 192.168.255.3
Address: 192.168.255.3#53
Default server: 10.88.77.6
Address: 10.88.77.6#53
> google.co.id
Server: 192.168.255.3
Address: 192.168.255.3#53
Non-authoritative answer:
Name: google.co.id
Address: 64.233.181.104
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> google.co.id
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.co.id
Address: 64.233.181.104
> exit
inan@eniac:~$
Sedikit keterangan:
Baris 1: saya mengetikkan perintah “nslookup”
Baris 2: saya ingin tau, siapa yang jadi default nameserver di nslookup saya…
Ternyata hasilnya adalah primary adalah 192.168.255.3 dan secondary 10.88.77.6
Ini nameserver punya provider ISP saya…
Baris 7: saya coba query “google.co.id” ke nameserver saya tersebut…
Baris 12: ada jawaban alamat IP google.co.id… yang ngasih jawaban adalah primary NS saya..
Baris 13: coba nanya pake NS yang lain 8.8.8.8 (public DNSnya Google Inc.)
Baris 16: saya coba query “google.co.id” ke nameserver saya tersebut…
Baris 21: ada jawaban alamat IP google.co.id… yang ngasih jawaban adalah 8.8.8.8
Baris 22: keluar dari program “nslookup”
Oke deh… Ini sedikit karya wisata kita ke tiap layer-layer TCP/IP. Untuk selanjutnya bisa diperdalam lagi jobdesc
dari protokol dan manfaat dari jobdesc protokol tersebut untuk
protokol-protokol yang lainnya. Ingat, mereka semua bekerja secara
independen, tapi sesungguhnya hasil kerja mereka merupakan satu kesatuan
mekanisme yang kompleks agar komunikasi data bisa berlangsung. Hebat…
Sumber : http://blog.tibandung.com/
0 komentar:
Posting Komentar