Welcome to my Blog

It's about expressing of my mind

Monday, September 15, 2014

Coming Soon

Komunikasi Data Ala TCP/IP




















Pengantar
Protokol TCP/IP merupakan protokol standar yang digunakan dalam jaringan komputer global yang dikenal
dengan internet. Protokol TCP/IP terdiri dari 4 layer yaitu: aplikasi, transport, internet dan network interfacephysical.
Protokol TCP/IP dibangun mengikuti model referensi OSI (open system interconnect), adapun
perbandingan model referensi OSI dengan implementasi TCP/IP digambarkan dalam bagan berikut
























Gambar 1.







Perbandingan model OSI dengan implementasi TCP/IP
Protokol TCP pada layer transport dan protokol IP pada layer network menjadi tulang punggung komunikasi
data pada protokol TCP/IP. Untuk memahami bagaimana data dikirimkan sampai ke tujuan, kita perlu
"menguliti TCP/IP" sehingga kita memahami proses pengiriman data tersebut. Pembahasan dalam tulisan ini
difokuskan pada kedua protokol tersebut.








Header-header pada TCP (layer transport)
Untuk memahami protokol TCP, kita perlu memahami tiap header yang ada di protokol TCP, perhatikan
datagram protokol TCP di bawah ini!







Gambar 2.

Apa maksud dan fungsi tiap header tersebut? Oke, kita bahas satu persatu ...
• Source Port (16 bit)
Source port (port asal) merupakan port yang akan digunakan untuk melakukan koneksi ke host lain. Dari
gambar diatas terlihat bahwa source port sebesar 16 bit sehingga total jumlah port adalah 2^16=65536.
Source port akan diberikan oleh sistem secara acak dengan nilai diatas 1023. Source port ini digunakan oleh
host tujuan untuk membalas paket ke host yang melakukan request, sehingga host tujuan akan memberikan
paket balasan ke servis yang tepat - tidak nyasar membalas paket ke service yang lain.
• Destination Port (16 bit)
Destination port (port tujuan) merupakan port yang akan dituju dalam sebuah koneksi, destination port
terkait dengan servis apa yang tersedia di host tujuan. Port-port servis/layanan standar yang dalam
komunikasi menggunakan protokol TCP/IP di dalam TCP header didefinisikan sebagai destination port,
seperti FTP pada port 21, SSH pada port 22, telnet pada port 23, HTTP pada port 80 (RFC 1700). Jika sebuah
host terdapat FTP server misalnya, maka berarti port 21 (sebagai destination port) pada host tersebut
terbuka dan siap melakukan koneksi.














Catatan
1. Port secara default tertutup kecuali:
• Terdapat servis yang menyebabkan port (destination port) terbuka, seperti service FTP server akan
membuka port 21, web server membuka port 80, atau ada seseorang yang menanam Backdoor :D
• Host sebagai client melakukan koneksi ke host lain, maka secara otomatis port (source port) di host
tersebut akan membuka untuk request paket dan menerima paket balasan.
2. Untuk mengetahui port berapa saja yang terbuka pada komputer dapat digunakan perintah netstat
seperti contoh di bawah ini
C:\>netstat -na
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING
State listening menunjukkan bahwa di dalam komputer tersebut terdapat port yang terbuka. Contoh
diatas menunjukkan terdapat port 80 dan 3306 terbuka yang berarti bahwa di dalam komputer tersebut
terdapat web server dan MySQL database server yang sedang aktif.



  • Sequence Number (32 bit)
    Sequence number merupakan nomor urut paket dari seluruh paket data. Ketika paket dikirimkan, maka
    setiap paket yang dikirim akan mendapat nomor urut. Paket data bisa saja sampai di tujuan dalam keadaan
    tidak berurut tergantung rute yang ditempuh dan kepadatan traffic nya, ketika sampai di host tujuan, paket
    data akan diurutkan kembali sehingga paket data dapat disusun kembali sehingga akan dihasilkan data
    seperti yang dikirimkan oleh host pengirim.






  • Acknowlegment Number (32 bit)
    TCP merupakan protokol yang connection oriented yang berarti bahwa TCP menjamin bahwa paket data
    sampai host tujuan dengan baik. Host asal tidak akan mengirimkan paket data ke host tujuan jika host asal
    belum menerima konfirmasi dari host tujuan bahwasanya nomor urut paket ke-n dari host asal silahkan
    dikirim ke host tujuan. Nomor urut paket ke-n yang dipersilahkan dikirim itulah yang disebut dengan
    ackownlegment number.






Data Offset (4 bit)
Header ini digunakan untuk menunjukkan awal field data, data offset berupa jumlah 32 bit word dari
header TCP
• Reserved (6 bit)
Header cadangan. Header ini diset 0 pada host pengirim dan diabaikan oleh penerima.
• Control Bit – URG (1 bit)
Jika kode ini diset (bernilai 1) akan mengindikasikan sebagai data urgent yakni didahulukan dari data atau
transmisi yang lain, sebagai contoh kondisi urgent ketika kita sedang proses download dengan FTP tetapi
kita ingin membatalkannya dengan CTRL+C.
• Control Bit – ACK (1 bit)
Jika kode ini diset akan mengindikasikan bahwa paket data yang akan boleh dikirimkan, nomor paket yang
boleh dikimkan ini didefinisikan dalam header Acknowlegment Number.
• Control Bit- PSH(1 bit)
Jika kode ini diset akan mengubah mode tranmisi dengan mode push yaitu memflush data pada layer TCP,
contoh mode push yaitu pada aplikasi telnet dimana telnet merupakan aplikasi interaktif
• Control Bit- RST (1 bit)
Kode ini digunakan jika koneksi akan direset yaitu membatalkan secara tiba-tiba, hal ini terjadi karena
error dalam koneksi atau oleh interupsi yang lain.
• Control Bit- SYN (1 bit)
Kode ini digunakan jika akan memulai sebuah koneksi TCP (persiapan transmisi data pada TCP/IP) yaitu
untuk mensinkronisasi sequence number .
• Control Bit- FYN (1 bit)
Code ini diset jika seluruh data sudah terkirim dan session transmisi akan disudahi.
• Window (16 bit)
Header ini menunjukkan jumlah blok data yang mampu diterima dalam satu kali transmisi, hal ini
diperlukan agar semua data dapat di terima dengan sebaik-baiknya.
• Checksum (16 bit)
Header ini digunakan untuk mengetahui apakah terjadi perubahan header dan data yang dikirimkan
ketika proses transmisi.
• Urgent Pointer (16 bit)
Header ini bermakna hanya jika URG pada Control Bit diset. Urgent Pointer menunjukkan lokasi data yang
akan ditransmisikan dengan mode urgent
• Option
Saat ini header ini terdapat 3 fungsi, yaitu untuk menunjukkan
• End of option list
• No operation
• Maximum segment size
• Padding
Digunakan untuk memenuhi panjang header merupakan kelipatan 32 bit. Jika terdapat header yang
kurang, maka padding ditambahkan sampai berjumlah 32 bit






Dari header-header diatas dapat kita simpulkan bahwa fungsi utama TPC pada layer transport adalah:
• Mengendalikan transmisi, kapan dimulai, direset, diakhiri, mode transmisi yang digunakan. Pengendalian
transmisi ini dilakukan oleh Control Bit
• Memastikan transmisi sampai ke servis yang benar yaitu dengan pendefinisian port asal dan port tujuan
• Memastikan bahwa data dapat disusun ulang dengan baik karena adanya sequence number
• Mengetahui apakah terjadi kerusakan/perubahan pada header dan data pada proses transmisi melalui
mekanisme checksum
Header-header pada IP (layer network)
TCP sudah kita bahas, sekarang tinggal protokol kedua yang menjadi tulang punggung protokol TCP/IP yaitu
protokol IP. Header-header IP diilustrasikan dalam datagram dibawah ini.

Gambar 3. Datagram pada IP

Sekarang tinggal giliran header-header pada IP yang akan kita kupas, …mudah-mudahan Anda tidak bosan
membaca keterangannya
• Version (4 bit)
Header ini mendefinisikan versi Internet Protocol yang digunakan, versi yang secara luas banyak
digunakan adalah versi 4.
• IHL (4 bit)
Header ini mendefinisikan panjang header IP dalam 32 bit word. Nilai minimum yang valid adalah 5 dan
maksimumnya 6.
• Type of Service (8 bit)
Merupakan header yang menentukan bagaimanan proses transmisi datagram secara benar.
• Packet Length (16 bit)
Header yang mendefinisikan total panjang header dan data pada IP
• Identification (16 bit)
Header ini untuk mendukung fasilitas fragmentasi
• DF (1 bit)
Header ini untuk mendifinisikan agar transmisi tidak di fragmentasi (Don’t Fragment)

DM (1 bit)
Header ini untuk mendifinisikan bahwa ada paket yang difragmentasi pada paket-paket berikutnya (More
Fragment)
• Fragment Offset (13 bit)
Header ini mendefinisikan lokasi dari paket-paket yang mengalami fragmentasi dalam urutan keseluruhan
paket
• TTL (16 bit)
Time to Live merupakan header yang mendefiniskan umur paket data, TTL akan berkurang 1 jika melewati
sebuah router, demikian seterusnya sampai paket sampai ke host tujuan. Dengan mekanisma ini, dapat
diantisipasi dimana paket bergentayangan terus di internet sehingga banyak terdapat paket sampah di
internet jika ternyata host tujuan tidak ditemukan. Jika TTL telah habis (bernilai 0) sedangkan paket data
belum sampai ke host tujuan, maka paket data akan dibuang.
• Transport (8 Bit)
Header ini mendefiniskan protokol pada layer transport yang digunakan, header ini bisa berupa TCP atau
UDP
• Header Checksum (32 Bit)
Header ini digunakan untuk mengecek apakah terjadi perubahan/kerusakan pada header IP. Header
Checksum dikalkulasi pada tiap router.
• Sending Address (32 Bit)
Sending Address atau Source Address merupakan header yang mendefinisikan IP address dari host asal
• Destionation Address (32 Bit)
Destination Address merupakan header yang mendefinisikan IP address dari host tujuan.
• Option (32 Bit)
Header ini digunakan untuk mendefinisikan informasi tambahan pada layer transport seperti source
routing.
• Padding (32 Bit)
Header ini sama dengan padding pada TCP, yaitu digunakan untuk memenuhi panjang header sehingga
merupakan kelipatan 32 bit. Jika terdapat header yang kurang, maka padding ditambahkan sampai
berjumlah 32 bit
Dari penjelasan header-header diatas dapat disimpulkan bahwa fungsi utama IP pada layer network adalah
menjamin paket data agar sampai ketujuan dengan selamat - tidak nyasar ke host yang lain.
Analisa Transmisi TCP/IP
Untuk lebih memahami proses transmisi data dengan protokol TCP/IP, kita akan membahas sebuah kasus
transmisi dengan menggunakan protokol TCP/IP. Sebagai contoh host 10.1.3.1 terhubung ke host 10.1.3.2
secara LAN dengan teknologi ethernet 802.3, kemudian host 10.1.3.1 melakukan telnet ke host 10.1.3.2. Host
10.1.3.1 melakukan telnet dengan port asal 1028, karena melakukan telnet, maka port yang dituju adalah port
23. Kasus di atas diilustrasikan sebagai berikut:




Sehingga header-header dalam TCP/IP secara global sebagai berikut
Aplikasi Port AsalT ransporPto rt tujuan IP asal NetworkI P tujuan Phisycal
telnet 1028 23 10.1.3.1 10.1.3.2 Ethernet 802.3
Analisa dengan DOS
Untuk mengetahui seluruh koneksi yang sedang terjadi di sebuah komputer dapat dilakukan dengan DOS
malalui perintah netstat seperti contoh berikut
Output di atas menyatakan bahwa terjadi koneksi dengan status established dengan protokol TCP dengan IP
asal 10.1.3.1 dan port asal 1028 ke IP tujuan 10.1.3.2 dengan port tujuan 23 (telnet)
Keterangan
• Proto, protokol yang digunakan TCP atau UDP
• Local Address, IP address dan port komputer lokal/asal (tempat perintah netstat dijalankan)
• Foreign Address, IP address dan port komputer tujuan
• Status, status koneksi dapat berupa listening, established, close-wait, time-wait
Seluruh koneksi TCP maupun UDP akan terlihat dengan netstat, termasuk misalnya terdapat host yang
menyusup ke komputer Anda dapat diketahui dengan perintah netstat ini.
Analisa dengan TCPdump
Dalam TCP/IP, sebelum data dikirimkan selalu melalui tahapan persiapan transmisi. Persiapan tersebut
diilustrasikan pada gambar berikut