TCP/IP merupakan dasar dari internet, tanpa mempelajari TCP/IP
kemungkinan kita tidak dapat melakah maju memahami baik keamanan maupun hacking internet.
Dengan kata lain, TCP/IP merupakan awal dari segalanya. Banyak orang
yang menyepelekan pentingnya mempelajari TCP/IP, mereka mengaku dirinya
“hacker” tetapi tidak mengerti sama sekali apa itu TCP/IP. Merasa
hacker hanya apabila bisa men-crash ataupun menjebol server, tetapi
sebetulnya bukan itulah maksud dari segala itu. Hacker itu adalah
orang yg haus akan pengetahuan, bukan haus akan penghancuran. Untuk
menjadi hacker dibutuhkan kerja keras, semangat, motivasi yg tinggi
serta pemahaman seluk-beluk internet itu sendiri, tanpa hal-hal
tersebut mustahil anda dapat menjadi seorang hacker yang tangguh.
TCP/IP (Transmission Control
Protocol/Internet Protocol) adalah standar komunikasi data yang
digunakan oleh komunitas internet dalam tukar-menukar data dari satu
komputer ke komputer lain di dalam jaringan internet. Protokol TCP/IP
dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai
sebuah standar untuk menghubungkan komputer-komputer dengan jaringan
untuk membentuk sebuah jaringan yang luas. Protokol ini menggunakan
skema pengalamatan yang sederhana yang disebut alamat IP (IP Address)
yang mengizinkan hingga beberapa ratus juta komputer untuk dapat
saling berhubungan satu sama lainnya di internet. Protokol ini juga
bersifat routable yang berarti protokol ini cocok untuk menghubungkan
sistem-sistem yang berbeda untuk membentuk jaringan yang heterogen.
Arsitektur TCP/IP tidaklah berbasis
modelreferensi tujuh lapis OSI (Open System Interconnections), tetapi
menggunakan modelreferensi DARPA. Seperti diperlihatkan dalam diagram, TCP/IP
merngimplemenasikan arsitektur berlapis yang terdiri atas empat
lapis. Empat lapis ini, dapat dipetakan (meski tidak secara langsung)
terhadap model referensi OSI. Empat lapis ini, kadang-kadang disebut
sebagai DARPA Model, Internet Model, atau DoD Model.
Arsitektur TCP/IP diperbandingkan
dengan
DARPA
Reference Model dan OSI
Reference Model
|
Setiap lapisan yang dimiliki oleh kumpulan protokol (protocol
suite) TCP/IP diasosiasikan dengan protokolnya masing-masing.
Protokol utama dalam protokol TCP/IP adalah sebagai berikut:
- Protokol lapisan aplikasi: bertanggung jawab untuk menyediakan akses kepada aplikasi terhadap layanan jaringan TCP/IP. Protokol ini mencakup protokol Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Telnet, Simple Mail Transfer Protocol (SMTP), Simple Network Management Protocol (SNMP), dan masih banyak protokol lainnya. Dalam beberapa implementasi stack protokol, seperti halnya Microsoft TCP/IP, protokol-protokol lapisan aplikasi berinteraksi dengan menggunakan antarmuka Windows Sockets (Winsock) atau NetBIOS over TCP/IP (NetBT).
- Protokol lapisan antar-host: berguna untuk membuat komunikasi menggunakan sesi koneksi yang bersifat connection-oriented atau broadcast yang bersifat connectionless. Protokol dalam lapisan ini adalah Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP).
- Protokol lapisan internetwork: bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), dan Internet Group Management Protocol (IGMP).
- Protokol lapisan antarmuka jaringan: bertanggung jawab untuk meletakkan
frame-frame jaringan di atas media jaringan yang digunakan. TCP/IP
dapat bekerja dengan banyak teknologi transport, mulai dari
teknologi transport dalam LAN
(seperti halnya Ethernet
dan Token Ring),
MAN dan WAN
(seperti halnya dial-up modem yang berjalan di atas Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN), serta Asynchronous Transfer Mode (ATM)).
Cara kerja TCP/IP
Seperti yang telah dikemukakan
diatas TCP/IP hanyalah merupakan suatu lapisan
protokol (penghubung) antara satu
komputer dengan yang lainnya dalam network, meskipun ke dua komputer
tersebut memiliki OS yang berbeda. Untuk mengerti lebih jauh marilah
kita tinjau pengiriman sebuah email. Dalam pengiriman email ada
beberapa prinsip dasar yang harus dilakukan. Pertama, mencakup
hal-hal umum berupa siapa yang mengirim email, siapa yang menerima
email tersebut serta isi dari email tersebut. Kedua, bagaimana cara
agar email tersebut sampai pada tujuannya.Dari konsep ini kita dapat
mengetahui bahwa pengirim email memerlukan “perantara” yang
memungkinkan emailnya sampai ke tujuan (seperti layaknya pak pos).
Dan ini adalah tugas dari TCP/IP. Antara TCP dan IP ada pembagian
tugas masing-masing.
TCP merupakan
connection-oriented, yang berarti bahwa kedua komputer yang ikut
serta dalam pertukaran data harus melakukan hubungan terlebih dulu
sebelum pertukaran data ( dalam hal ini email) berlangsung. Selain
itu TCP juga bertanggung jawab untuk menyakinkan bahwa email tersebut
sampai ke tujuan, memeriksa kesalahan dan mengirimkan error ke
lapisan atas hanya bila TCP tidak berhasil melakukan hubungan (hal
inilah yang membuat TCP sukar untuk dikelabuhi). Jika isi email
tersebut terlalu besar untuk satu datagram , TCP akan membaginya
kedalam beberapa datagram.
IP bertanggung jawab setelah hubungan berlangsung, tugasnya adalah
untuk me-route data paket . didalam network. IP hanya bertugas
sebagai kurir dari TCP dalam penyampaian datagram dan “tidak
bertanggung jawab” jika data tersebut tidak sampai dengan utuh (hal
ini disebabkan IP tidak memiliki informasi mengenai isi data yang
dikirimkan) maka IP akan mengirimkan pesan kesalahan ICMP*. Jika hal
ini terjadi maka IP hanya akan memberikan pesan kesalahan (error
message) kembali ke sumber data. Karena IP “hanya” mengirimkan
data “tanpa” mengetahui mana data yang akan disusun berikutnya
menyebabkan IP mudah untuk dimodifikasi daerah “sumber dan tujuan”
datagram. Hal inilah penyebab banyak paket hilang sebelum sampai
kembali ke sumber awalnya. (jelas ! sumber dan tujuannya sudah
dimodifikasi)
Kalimat Datagram dan paket sering dipertukarkan penggunaanya.
Secara teknis, datagram adalah kalimat yang digunakan jika kita
hendak menggambarkan TCP/IP. Datagram adalah unit dari data, yang
tercakup dalam protokol.
(*) ICPM adalah kependekan dari Internet Control Message Protocol yang bertugas memberikan pesan dalam IP. Berikut adalah beberapa pesan potensial sering timbul (lengkapnya lihat RFC 792):
a. Destination unreachable, terjadi jika host,jaringan,port atau
protokol tertentu tidak dapat dijangkau.
b. Time exceded, dimana datagram tidak bisa dikirim karena time to live habis.
c. Parameter problem, terjadi kesalahan parameter dan letak oktert dimana kesalahan terdeteksi.
d. Source quench, terjadi karena router/host tujuan membuang datagram karena batasan ruang buffer atau karena datagram tidak dapat diproses.
e. Redirect, pesan ini memberi saran kepada host asal datagram mengenai router yang lebih tepat untuk menerima datagram tsb.
f. Echo request dan echo reply message, pesan ini saling mempertukarkan data antara host.
b. Time exceded, dimana datagram tidak bisa dikirim karena time to live habis.
c. Parameter problem, terjadi kesalahan parameter dan letak oktert dimana kesalahan terdeteksi.
d. Source quench, terjadi karena router/host tujuan membuang datagram karena batasan ruang buffer atau karena datagram tidak dapat diproses.
e. Redirect, pesan ini memberi saran kepada host asal datagram mengenai router yang lebih tepat untuk menerima datagram tsb.
f. Echo request dan echo reply message, pesan ini saling mempertukarkan data antara host.
Selain RFC 792 ada juga RFC 1256 yg isinya berupa ICMP router
discovery message dan merupakan perluasan dari ICMP, terutama
membahas mengenai kemampuan bagi host untuk menempatkan rute ke
gateway.
Berikut ini adalah layanan tradisional yang dapat berjalan di
atas protokol TCP/IP:
- Pengiriman berkas (file transfer). File Transfer Protocol (FTP) memungkinkan pengguna komputer yang satu untuk dapat mengirim ataupun menerima berkas ke sebuah host di dalam jaringan. Metode otentikasi yang digunakannya adalah penggunaan nama pengguna (user name) dan password'', meskipun banyak juga FTP yang dapat diakses secara anonim (anonymous), alias tidak berpassword. (Keterangan lebih lanjut mengenai FTP dapat dilihat pada RFC 959.)
- Remote login. Network terminal Protocol (telnet) memungkinkan pengguna komputer dapat melakukan log in ke dalam suatu komputer di dalam suatu jaringan secara jarak jauh. Jadi hal ini berarti bahwa pengguna menggunakan komputernya sebagai perpanjangan tangan dari komputer jaringan tersebut. (Keterangan lebih lanjut mengenai Telnet dapat dilihat pada RFC 854 dan RFC 855.)
- Computer mail. Digunakan untuk menerapkan sistem surat elektronik. (Keterangan lebih lanjut mengenai e-mail dapat dilihat pada RFC 821 RFC 822.)
- Network File System (NFS). Pelayanan akses berkas-berkas yang dapat diakses dari jarak jauh yang memungkinkan klien-klien untuk mengakses berkas pada komputer jaringan, seolah-olah berkas tersebut disimpan secara lokal. (Keterangan lebih lanjut mengenai NFS dapat dilihat RFC 1001 dan RFC 1002.)
- Remote execution. Memungkinkan pengguna komputer untuk menjalankan suatu program tertentu di dalam komputer yang berbeda. Biasanya berguna jika pengguna menggunakan komputer yang terbatas, sedangkan ia memerlukan sumber yg banyak dalam suatu sistem komputer.
Ada beberapa jenis remote execution, ada yang berupa perintah-perintah dasar saja, yaitu yang dapat dijalankan dalam system komputer yang sama dan ada pula yg menggunakan sistem Remote Procedure Call (RPC), yang memungkinkan program untuk memanggil subrutin yang akan dijalankan di sistem komputer yg berbeda. (sebagai contoh dalam Berkeley UNIX ada perintahrsh
danrexec
.) - Name server yang berguna sebagai penyimpanan
basis data
nama host
yang digunakan pada Internet (Keterangan lebih lanjut dapat dilihat
pada RFC 822 dan RFC 823 yang menjelaskan mengenai penggunaan protokol name server
yang bertujuan untuk menentukan nama host di Internet.)
Bagaimanakah bentuk format header protokol UDP,TCP,IP
?
1. UDP
UDP memberikan alternatif transport untuk proses yg tidak
membutuhkan pengiriman yg handal. Seperti yg telah dibahas
sebelumnya, UDP merupakan protokol yg tidak handal, karena tidak
menjamin pengiriman data atau perlindungan duplikasi. UDP tidak
mengurus masalah penerimaan aliran data dan pembuatan segmen yg
sesuai untuk IP.Akibatnya, UDP adalah protokol sederhana yg berjalan
dengan kemampuan jauh dibawah TCP. Header UDP tidak mengandung banyak
informasi, berikut bentuk headernya :
source port, adalah port asal dimana system mengirimkan datagram. Destination port, adalah port tujuan pada host penerima.
Length, berisikan panjang datagram dan termasuk data. Checksum, bersifat optional yg berfungsi utk meyakinkan bahwa data tidak
akan mengalami rusak (korup)
source port, adalah port asal dimana system mengirimkan datagram. Destination port, adalah port tujuan pada host penerima.
Length, berisikan panjang datagram dan termasuk data. Checksum, bersifat optional yg berfungsi utk meyakinkan bahwa data tidak
akan mengalami rusak (korup)
2. TCP
Seperti yg telah dibahas sebelumnya, TCP merupakan protokol yg handal dan bertanggung jawab untuk mengirimkan aliran data ke tujuannya secara handal dan berurutan. Untuk memastikan diterimanya data, TCP menggunakan nomor urutan segmen dan acknowlegement (jawaban). Misalkan anda ingin mengirim file berbentuk seperti berikut :
TCP kemudian akan memecah pesan itu menjadi beberapa datagram (untuk melakukan hal ini, TCP tidak mengetahui berapa besar datagram yg bisa ditampung jaringan. Biasanya, TCP akan memberitahukan besarnya datagram yg bisa dibuat, kemudian mengambil nilai yg terkecil darinya, untuk memudahkan).
TCP kemudian akan meletakan header di depan setiap datagram tersebut. Header ini biasanya terdiri dari 20 oktet, tetapi yg terpenting adalah oktet ini berisikan sumber dan tujuan “nomor port (port number)” dan “nomor urut (sequence number)”. Nomor port digunakan untuk menjaga data dari banyaknya data yg lalu lalang. Misalkan ada 3 orang yg mengirim file. TCP anda akan mengalokasikan nomor port 1000, 1001, dan 1002 untuk transfer file. Ketika datagram dikirim, nomor port ini menjadi “sumber port (source port)” number untuk masing-masing jenis transfer. Yg perlu diperhatikan yaitu bahwa TCP perlu mengetahui juga port yg dapat digunakan oleh tujuan (dilakukan diawal hubungan). Port ini diletakan pada daerah “tujuan port (destination port)”. Tentu saja jika ada datagram yg kembali, maka source dan destination portnya akan terbalik, dan sejak itu port anda menjadi destination port dan port tujuan menjadi source port.
Seperti yg telah dibahas sebelumnya, TCP merupakan protokol yg handal dan bertanggung jawab untuk mengirimkan aliran data ke tujuannya secara handal dan berurutan. Untuk memastikan diterimanya data, TCP menggunakan nomor urutan segmen dan acknowlegement (jawaban). Misalkan anda ingin mengirim file berbentuk seperti berikut :
TCP kemudian akan memecah pesan itu menjadi beberapa datagram (untuk melakukan hal ini, TCP tidak mengetahui berapa besar datagram yg bisa ditampung jaringan. Biasanya, TCP akan memberitahukan besarnya datagram yg bisa dibuat, kemudian mengambil nilai yg terkecil darinya, untuk memudahkan).
TCP kemudian akan meletakan header di depan setiap datagram tersebut. Header ini biasanya terdiri dari 20 oktet, tetapi yg terpenting adalah oktet ini berisikan sumber dan tujuan “nomor port (port number)” dan “nomor urut (sequence number)”. Nomor port digunakan untuk menjaga data dari banyaknya data yg lalu lalang. Misalkan ada 3 orang yg mengirim file. TCP anda akan mengalokasikan nomor port 1000, 1001, dan 1002 untuk transfer file. Ketika datagram dikirim, nomor port ini menjadi “sumber port (source port)” number untuk masing-masing jenis transfer. Yg perlu diperhatikan yaitu bahwa TCP perlu mengetahui juga port yg dapat digunakan oleh tujuan (dilakukan diawal hubungan). Port ini diletakan pada daerah “tujuan port (destination port)”. Tentu saja jika ada datagram yg kembali, maka source dan destination portnya akan terbalik, dan sejak itu port anda menjadi destination port dan port tujuan menjadi source port.
Setiap datagram mempunyai nomor urut (sequence number)
masing-masing yg berguna agar datagram tersebut dapat tersusun pada
urutan yg benar dan agar tidak ada datagram yg hilang. TCP tidak
memberi “nomor” datagram, tetapi pada oktetnya. Jadi jika ada 500
oktet data dalam setiap datagram, datagram yg pertama mungkin akan
bernomor urut 0, kedua 500, ketiga 1000, selanjutnya 1500 dan
eterusnya. Kemudian semua susunan oktet didalam datagram akan
diperiksa keadaannya benar atau salah, dan biasa disebut dg
“checksum”. Hasilnya kemudian diletakan ke header TCP. Yg perlu
diperhatikan ialah bahwa checksum ini dilakukan di kedua
komputer yg melakukan hubungan. Jika nilai keberadaan susunan oktet antara satu checksum dg checksum yg lain tidak sama, maka sesuatu yg tidak diinginkan akan terjadi pada datagram tersebut, yaitu gagalnya koneksi (lihat bahasan sebelumnya). Jadi inilah bentuk datagram tersebut:
komputer yg melakukan hubungan. Jika nilai keberadaan susunan oktet antara satu checksum dg checksum yg lain tidak sama, maka sesuatu yg tidak diinginkan akan terjadi pada datagram tersebut, yaitu gagalnya koneksi (lihat bahasan sebelumnya). Jadi inilah bentuk datagram tersebut:
Jika kita misalkan TCP header sebagai “T”, maka seluruh file
akan berbentuk sebagai berikut :
T—- T—- T—- T—- T—- T—- T—- T—- T—- T—- T—-
Ada beberapa bagian dari header yg belum kita bahas. Biasanya
bagian header ini terlibat sewaktu hubungan berlangsung.
- Seperti ‘acknowledgement number’ misalnya, yg bertugas untuk
menunggu jawaban apakah datagram yg dikirim sudah sampai atau belum.
Jika tidak ada jawaban (acknowledgement) dalam batas waktu tertentu,
maka data akan dikirim lagi.
- Window berfungsi untuk mengontrol berapa banyak data yg bisa
singgah dalam satu waktu. Jika Window sudah terisi, ia akan segera
langsung mengirim data tersebut dan tidak akan menunggu data yg
terlambat, karena akan menyebabkan hubungan menjadi lambat.
- Urgent pointer menunjukan nomor urutan oktet menyusul data yg
mendesak. Urgent pointer adalah bilangan positif berisi posisi
dari
nomor urutan pada segmen. Reserved selalu berisi nol. Dicadangkan untuk penggunaan mendatang.
nomor urutan pada segmen. Reserved selalu berisi nol. Dicadangkan untuk penggunaan mendatang.
- Control bit (disamping kanan reserved, baca dari atas ke bawah).
Ada enam kontrol bit :
a. URG, Saat di set 1 ruang urgent pointer memiliki makna, set 0
diabaikan.
b. ACK saat di set ruang acknowledgement number memiliki arti.
c. PSH, memulai fungsi push.
d. RST, memaksa hubungan di reset.
e. SYN, melakukan sinkronisasi nomor urutan untuk hubungan. Bila diset maka hubungan di buka.
f. FIN, hubungan tidak ada lagi.
b. ACK saat di set ruang acknowledgement number memiliki arti.
c. PSH, memulai fungsi push.
d. RST, memaksa hubungan di reset.
e. SYN, melakukan sinkronisasi nomor urutan untuk hubungan. Bila diset maka hubungan di buka.
f. FIN, hubungan tidak ada lagi.
3. IP
TCP akan mengirim setiap datagram ke IP dan meminta IP untuk
mengirimkannya ke tujuan(tentu saja dg cara mengirimkan IP
alamat
tujuan). Inilah tugas IP sebenarnya. IP tidak peduli apa isi dari datagram, atau isi dari TCP header. Tugas IP sangat sederhana, yaitu
hanya mengantarkan datagram tersebut sampai tujuan (lihat bahasan sebelumnya). Jika IP melewati suatu gateway, maka ia kemudian akan menambahkan header miliknya. Hal yg penting dari header ini adalah “source address” dan “Destination address”, “protocol number” dan “checksum”. “source address” adalah alamat asal datagram. “Destination address” adalah alamat tujuan datagram (ini penting agar gateway mengetahui ke mana datagram akan pergi). “Protocol number” meminta IP tujuan untuk mengirim datagram ke TCP. Karena meskipun jalannya IP menggunakan TCP, tetapi ada juga protokol tertentu yg dapat menggunakan IP, jadi kita harus memastikan IP menggunakan protokol apa untuk mengirim datagram tersebut. Akhirnya, “checksum” akan meminta IP tujuan untuk meyakinkan bahwa header tidak mengalami kerusakan. Yang perlu dicatat yaitu bahwa TCP dan IP menggunakan checksum yang berbeda.
Berikut inilah tampilan header IP :
Jika kita misalkan IP header sebagai “I”, maka file sekarang akan berbentuk :
tujuan). Inilah tugas IP sebenarnya. IP tidak peduli apa isi dari datagram, atau isi dari TCP header. Tugas IP sangat sederhana, yaitu
hanya mengantarkan datagram tersebut sampai tujuan (lihat bahasan sebelumnya). Jika IP melewati suatu gateway, maka ia kemudian akan menambahkan header miliknya. Hal yg penting dari header ini adalah “source address” dan “Destination address”, “protocol number” dan “checksum”. “source address” adalah alamat asal datagram. “Destination address” adalah alamat tujuan datagram (ini penting agar gateway mengetahui ke mana datagram akan pergi). “Protocol number” meminta IP tujuan untuk mengirim datagram ke TCP. Karena meskipun jalannya IP menggunakan TCP, tetapi ada juga protokol tertentu yg dapat menggunakan IP, jadi kita harus memastikan IP menggunakan protokol apa untuk mengirim datagram tersebut. Akhirnya, “checksum” akan meminta IP tujuan untuk meyakinkan bahwa header tidak mengalami kerusakan. Yang perlu dicatat yaitu bahwa TCP dan IP menggunakan checksum yang berbeda.
Berikut inilah tampilan header IP :
Jika kita misalkan IP header sebagai “I”, maka file sekarang akan berbentuk :
IT—- IT—- IT—- IT—– IT—– IT—– IT—– IT—-
Selanjutnya berikut ringkasan mengenai bagian header yg belum
dibahas :
a. Total length, merupakan panjang keseluruhan datagram dalam oktet, termasuk header dan data IP.
b. Identification, digunakan untuk membantu proses penggabungan kembali pecahan-pecahan dari sebuah datagram.
c. Flag,berisi tiga kontrol flag.
- bit 0, dicadangkan, harus 0.
- Bit 1, tidak boleh pecah.
- Bit 2, masih ada fragment lagi.
d. Fragment offset, menunjukan posisi fragment di dalam datagram.
e. Time to live, menunjukan batas waktu maksimal bagi sebuah datagram untuk berada pada jaringan.
f. Option, lihat RFC 791.
a. Total length, merupakan panjang keseluruhan datagram dalam oktet, termasuk header dan data IP.
b. Identification, digunakan untuk membantu proses penggabungan kembali pecahan-pecahan dari sebuah datagram.
c. Flag,berisi tiga kontrol flag.
- bit 0, dicadangkan, harus 0.
- Bit 1, tidak boleh pecah.
- Bit 2, masih ada fragment lagi.
d. Fragment offset, menunjukan posisi fragment di dalam datagram.
e. Time to live, menunjukan batas waktu maksimal bagi sebuah datagram untuk berada pada jaringan.
f. Option, lihat RFC 791.
Sumber:
Tidak ada komentar:
Posting Komentar
Komentar disini....