Pengenalan TCP dan UDP
3.1 Dasar Teori
Dalam konsep komunikasi data suatu jaringan komputer, ada mekanisme pengiriman data dari komputer sumber ke komputer tujuan dimana proses pengiriman paket data tersebut sampai dengan benar ke komputer yang dituju. Tentunya dalam proses pengiriman yang terjadi tidak semudah yang dipikirkan. Alasan pertama, komputer tujuan berada jauh dari komputer sumber sehingga paket data yang dikirimkan bisa saja hilang atau rusak di tengah jalan.
Alasan lainnya, mungkin komputer tujuan sedang menunggu/mengirimkan paket data dari/ke komputer yang lain. Tentunya paket data yang akan dikirimkan diharapkan sampai dengan tepat tanpa terjadi kerusakan. Untuk mengatur mekanisme komunikasi data tersebut dibutuhkan pengaturan proses pengiriman data yang dikenal sebagai protocol. Protokol di sini adalah sebuah perangkat lunak yang melekat pada setiap sistem operasi tertentu.
3.2 Layer TCP/IP
Protokol TCP/IP (Transmision Control Protocol / Internet Protocol) merupakan sekumpulan layer yang di desain untuk melakukan fungsi-fungsi komunikasi data pada sebuah jaringan komputer, masing-masing layer bertanggung jawab atas bagian-bagian tertentu dari proses komunikasi data, sehingga masing-masing layer memiliki tugas yang berbeda satu sama lainya, dimana suatu layer tidak perlu mengetahi kerja dari layer yang lain selama masih dapat melakukan proses masing-masing.
Protokol TCP/IP memiliki sifat yang sangat fleksibel, sehingga dapat dengan mudah untuk di implementasikan pada berbagai platform komputer dan interface jaringan. Karena tidak melakukan spesifikasi terhadap suatu platform komputer atau interface jaringan tertentu.
Gambar 3.1TCP/IP Layer
Fungsi dari masing-masing layer :
Aplication Layer, layer ini terdapat pada bagian teratas dari susunan layer, disini semua aplikasi yang mengunakan protokol TCP/IP ditempatkan
Transport Layer, layer ini bertanggung jawab mengadakan komunikasi antara dua host atau komputer. Layer ini mengatur aluran informasi dan mungkin menyediakan pemeriksaan error. Data dibagi kedalam beberapa paket yang dikirim ke internet layer dengan sebuah header. Header mengandung alamat tujuan, alamat sumber dan checksum. Checksum diperiksa oleh mesin penerima untuk melihat apakah paket tersebut ada yang hilang pada rute.
Internetwork Layer, layer ini bertanggung jawab untuk komunikasi antara mesin. Layer ini meng-encapsul paket dari transport layer ke dalam IP datagrams dan menggunakan algoritma routing untuk menentukan kemana datagaram harus dikirim. Masuknya datagram diproses dan diperiksa kesahannya sebelum melewatinya pada Transport layer.
Network Interface Layer, adalah level yang paling bawah dari susunan TCP/IP. Layer ini adalah device driver yang memungkinkan datagaram IP dikirim ke atau dari physical network. Jaringan dapat berupa sebuah kabel, Ethernet, frame relay, Token ring, ISDN, ATM jaringan, radio, satelit atau alat lain yang dapat mentransfer data dari sistem ke sistem. Layer network interface adalah abstraksi yang memudahkan komunikasi antara multitude arsitektur network.
Gambar 3.2 Layer Jaringan Komputer
3.3 Enkapsulasi
Jika suatu protocol menerima data dari protocol lain di layer atasnya, ia akan menambahkan informasi tambahan miliknya ke data tersebut. Informasi ini memiliki fungsi yang sesuai dengan fungsi protocol tersebut. Setelah itu, data ini diteruskan lagi ke protocol pada layer dibawahnya. Hal yang sebaliknya terjadi jika suatu protocol menerima data dari protocol lain yang berada pada layer dibawahnya. Jika data ini dianggap valid, protocol akan melepas informasi tambahan tersebut, yang berada pada layer di atasnya.
Gambar 3.3 Enkapsulasi
Lapisan/layer terbawah, yaitu Network Interface layer bertanggung jawab mengirim dan menerima data ke dan dari media fisik. Media fisiknya dapat berupa kabel,
serta optik atau gelombang radio. Karena tugasnya ini, protocol pada layer ini harus mampu menerjemahkan sinyal listrik menjadi data digital yang dimengerti komputer, yang berasal dari peralatan lain yang sejenis.
Lapisan/layer protocol berikutnya ialah Internet Layer. Protocol yang berada pada
layer ini bertanggung jawab dalam proses pengiriman paket ke alamat yang tepat. Pada layer ini terdapat tiga macam protocol, yaitu IP, ARP dan ICMP.
IP (Internet Protocol) berfungsi untuk menyampaikan paket data ke lamat yang tepat. ARP (Address Resolution Protocol) ialah protocol digunakan untuk menemukan alamat hardware dari host/komputer yang terletak pada network yang sama. Sedangkan ICMP (Internet Control Message Protocol) ialah protocol yang digunakan untuk mengirimkan pesan & melaporkan kegagalan pengiriman data Layer berikutnya yaitu Transport layer berisi protocol yang bertanggung jawab untuk mengadakan komunikasi antara dua host/komputer. Kedua
protocol tersebut ialah TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). Layer teratas, ialah Application Layer. Pada layer inilah terletak semua aplikasi yang menggunakan protocol TCP/IP ini.
3.4 Protokol Data Unit TCP
Sebagaimana telah dijelaskan di atas, TCP harus berkomunikasi dengan IP pada lapisan di bawahnya (dengan menggunakan metode IP yang telah dijelaskan pada bab sebelumnya) dan aplikasi pada layer di atasnya (menggunakan ULP TCP).. TCP juga harus berkomunikasi dengan implementasi TCP lainnya dalam jaringan. Untuk melakukan ini, digunakan protocol data unit (PDU), yang telak kita sebut sebagai segman TCP. Layout PDU TCP (biasanya disebut sebagai header) direpresentasikan pada gambar berikut
Gambar 3.4 Segmen TCP
Bidang-bidang tersebut adalah sebagai berikut:
Source port : field 16-bit yang mengidentifikasi pemakai lokal TCP (biasanya sebuah aplikasi upper layer).
Destination port : field 16-bit yang mengidentifikasi mesin remote pemakai TCP.
Sequence number : nomor yang menandakan posisi blok di dalam message secara keseluruhan. Nomor ini juga digunakan antara dua implementasi TCP untuk menyediakan initial sequence number (ISS) yang dikirim.
Acknowledgement number : nomor yang menandai nomor urutan yang berikutnya yang diperlukan. Dengan kata lain, sequence number ini merupakan sequence number data tarakhir yang dikirim kemudian ditambah 1 kemudian dikirim kembali ke mesin pengirim.
Data offset : 32-bit word yang ada di dalam header TCP. Field ini digunakan untuk mengidentifikasi awal field data.
Reserved : field 6-bit digunakan untuk kebutuhan mendatang. Keenam bit
harus di-set menjadi 0.
Urg flag : jika on (nilainya 1), menunjukkan bahwa field urgent pointer significant.
ACK flag : jika on, menunjukkan bahwa field ACK significant.
Psh flag : jika on, menunjukkan bahwa fungsi push akan dilakukan.
Rst flag : jika on, menunjukkan bahwa koneksi akan reset.
Syn flag : jika on, menunjukkan bahwa sequence number akan disinkronisasi. Flag ini digunakan ketika koneksi sedang ditetapkan.
Fin flag : jika on, menunjukkan bahwa pengirim tidak punya lagi data untuk dikirimkan. Ini merupakan pesan bahwa komunikasi akan diakhiri.
Window : sebuah angkan yang menunjukkan banyaknya blok data yang dapat diterima oleh mesin penerima.
Checksum : dihitung dengan mengambil 16-bit satu komplemen dari penjumlahan satu komplemen dari 16-bit word dalam header (termasuk pseudo-header) dan teks. (diperlukan suatu proses yang agak panjang untuk mencocokkan checksum dengan baik dengan header).
Urgent pointer : digunakan jika URG Flag set, ini menandakan porsi message data yang urgent dengan membuat spesifikasi offset dari sequence number dalam header.
Option: sama dengan header option pada IP, field ini digunakan untuk membuat spesifikasi option TCP. Setia option terdiri atas sebuah oprtion number ( 1 byte)
0 akhir dari option list
1 tidak ada operasi
2 ukuran maksimum segmen
Padding : diisi untuk memastikan bahwa header berukuran multiple 32-bit.
3.5 Protokol Data Unis UDP
TCP merupakan protokol berorientasi connection. Ada kalanya dimana protokol berorientasi connectionless dibutuhkan, makanya UDP digunaka. UDP digunakan untuk trivial file transfer protocol (TFTP) dan remote call procedure (RCP). Komunikasi connectionless tidak mendukung reliabilitas, artinya tidak ada informasi yang yang diterima oleh mesin pengirim yang mengindikasikan data diterima oleh mesin penerima dengan benar. Protokol connctionless juga tidak memiliki kemampuan untuk melakukan recover terhadap data yang mengalami error. UDP lebih sederhana dinbanding TCP. UDP berhubungan langsung dengan IP tanpa adanya mekanisme flow control dan error-recovery.
Header message UDP lebih sederhana dibandingkan TCP. Sebagaimana
terlihat pada gambar 6.10. Field padding dapat ditambahkan ke datagram untuk memastikan bahwa message terdiri atas multiple 16-bit.
Gambar 3.5 Layer UDP
Field-fieldnya adalah sebagai berikut:
Source port: field optional dengan nomor port. Jika tidak ada nomor port yang ditentukan, field tersebut diset menjadi 0.
Destination port: nomor port mesin tujuan.
Length: panjang datagram, termasuk header dan data.
Checksum: field dengan 16-bit komplement satu dari jumlah komplemen satu dari datagram, termasuk pseudoheadewr yang sama dengan TCP.
Field checksum pada UDP hanya merupakan optional, tetapi jika tidak digunakan, maka tidak akan ada checksum pada segmen data karena checksum IP hanya digunakan pada header IP. Jika checksum tidak digunakan, field ini akan diset menjadi 0.
UDP adalah protokol transport yang digunakan secara luas pada lapisan di atas IP. Seperti TCP, UDP menggunakan port dan menyediakan konektivitas end-to-end antara aplikasi client dan server. UDP merupakan protokol yang kecil dan efisien. Tetapi, berbeda dengan TCP, UDP tidak menjamin pengiriman – aplikasi harus mengimplementasikan mekanisme error recovery-nya sendiri — jika memerlukan mekanisme tersebut. Hal ini membuatnya cocok untuk beberapa aplikasi, tetapi tidak untuk beberapa yang lain.
Dalam beberapa hal, UDP mirip dengan TCP :
UDP adalah protokol transport : UDP hanya berhubungan dengan komunikasi antara dua end point (misalnya aplikasi client pada mesin Anda, dan aplikasi server pada mesin remote). Intermediate router tidak berhubungan dengan data UDP dalam paket yang dikirimkannya – router hanya beroperasi pada layer IP atau network lower-down.
UDP menggunakan port untuk membedakan antara trafic dari banyak aplikasi UDP pada mesin yang sama, dan untuk mengirim paket yang tepat ke aplikasi
yang sesuai (ini disebut demultiplexing). UDP dan port-nya menyediakan interface antara program aplikasi dan layar networking IP.
UDP berbeda dari TCP dalam beberapa hal penting, karena:
UDP adalah ―datagram oriented‖, TCP adalah ―session-oriented‖. Datagram adalah paket informasi self-contained; UDP berhubungan dengan datagram atau paket individu yang dikirim dari client ke server, atau sebaliknya.
UDP adalah connectionless. Client tidak membangun koneksi ke server sebelum mengirim data – client hanya mengirim data secara langsung.
UDP ―tidak andal‖ dalam pengertian jaringan formal :
Paket dapat hilang. UDP tidak dapat mendeteksinya.
Program aplikasi – client atau server – (sebagai kebalikan TCP/IP stack sendiri) harus mendeteksi paket yang hilang dan menangani transmisi ulang, dan lain-lain. Aplikasi sering menunggu hingga timeout habis, dan kemudian mencoba lagi.
Paket dapat mengalami kerusakan. Paket UDP berisi checksum semua data dalam paket. Checksum ini memungkinkan UDP mendeteksi kapan suatu paket mengalami kerusakan. Jika hal ini terjadi, maka paket tersebut dikeluarkan, dan sebagaimana biasa aplikasi-lah yang harus mendeteksi hal ini dan melakukan transmisi ulang sepenuhnya.
Operasi checksum ini dapat dihentikan, dan beberapa aplikasi melakukannya untuk alasan unjuk kerja. Akan tetapi hal ini dapat berarti paket yang rusak tidak terdeteksi atau layer aplikasi harus melakukan pemeriksaan integritas data sendiri, hal ini merupakan false economy (penghematan finansial yang sebenarnya menuju pada pengeluaran yang lebih besar)
Karena UDP adalah datagram-oriented dan pada level protokol setiap paket berdiri sendiri, maka UDP tidak memiliki konsep paket sesuai urutan, yang selanjutnya berarti tidak memerlukan nomor urut pada paket tersebut.
Sejak pertama kali dikembangkan, TCP telah dilengkapi dengan mekanisme yang sangat canggih untuk mengendalikan kecepatan aliran dalam koneksinya, untuk menghindari kemacetan dan kehilangan paket yang berlebihan. Karena UDP hanya mengirim paket tunggal, yang berdiri sendiri, maka UDP tidak memerlukan mekanisme kontrol yang rumit. Hal ini membuat UDP lebih mudah dan lebih kecil (dalam baris data dan memori) untuk diimplementasikan, tetapi juga membuatnya tidak cocok untuk sejumlah besar data.
Jika suatu aplikasi diimplementasikan menggunakan UDP, bukannya TCP, maka aplikasi tersebut harus memiliki sendiri deteksi paket-hilang, retry, dan lain sebaginya.
UDP mewarisi sifat IP, yaitu connectionless dan tidak andal. UDP sebagai layer transport sangat tipis di atas IP untuk memberikan akses aplikasi ke
fasilitas networking dasar IP, tanpa menambahkan fungsionalitas tambahan yang sangat banyak selain port dan checksum. (sebaliknya, TCP juga merupakan layer transport tetapi tidak melakukan banyak hal selain komunikasi paket IP dasar)
Pada kehidupan sehari-hari UDP dianalogikan seperti proses pengiriman pesan pada alat komunikasi telepon selular dengan menggunakan fasilitas SMS (Short Messsage Service) dimana kita tidak harus selalu berada ditempat untuk menunggu pesan karena pesan yang dikirim melalui fasilitas SMS akan sampai sekalipun telepon selular itu tidak diaktifkan. Sedang TCP dianalogikan seperti proses komunikasi langsung pada telepon dimana kita harus berada ditempat untuk menjawab langsung telepon dari seseorang yang berada ditempat lain.
3.6 Melihat Segmen TCP
Melihat Segment TCP yang ada dalam jaringan bisa dilakukan dengan beberapa aplikasi, salah satu contohnya adalah wireshark. Berikut adalah syarat-syarat yang harus dipenuhi untuk melakukan penangkapan paket di jaringan menggunakan wireshark :
1. Mempunyai/bertindak sebagai user administrator.
2. Memiliki network card untuk melakukan penangkapan paket dan memilih network card yang tepat untuk melakukan penangkapan paket.
3. Menentukan tempat atau jaringan yang tepat untuk melakukan penangkapan paket.
Berikut adalah langkah-langkah penggunaan Wireshark untuk menangkap paket yang ada di jaringan :
1. Buka aplikasi wireshark
Gambar 3.6 Wireshark Main Window
2. Pilih menu ‖capture‖ atau
Gambar 3.7 Capture
3. Buka ‖Capture Option Dialog‖
Gambar 3.8 Capture Option
4. Klik Start Capture
Gambar 3.9 Capture Form
5. Setelah slesei hasil capture dapat dilihat sebagai berikut :
Gambar 3.10 Detail View
Dari hasil capture tersebut kita bisa melihat data apa saja yang ditangkap oleh ethernet card kita.






0 komentar:
Posting Komentar