Senin, 30 Desember 2013

UDP dan TCP

UDP ( User Datagram Protocol)

UDP, singkatan dari User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768

UDP memiliki karakteristik-karakteristik berikut:
  • Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak bertukar informasi.
  • Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesanacknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan.
  • UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification.
  • UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP.
UDP tidak menyediakan layanan-layanan antar-host berikut:
  • UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP.
  • UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.
  • UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transpor (baik itu dalam tujuh lapis model referensi OSI atau model DARPA) yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable). TCP dispesifikasikan dalam RFC 793

TCP memiliki karakteristik sebagai berikut:
  • Berorientasi sambungan (connection-oriented): Sebelum data dapat ditransmisikan antara dua host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat sesi koneksi terlebih dahulu. Koneksi TCP ditutup dengan menggunakan proses terminasi koneksi TCP (TCP connection termination).
  • Full-duplex: Untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan yang lebih rendah yang mendukung full-duplex, maka data pun dapat secara simultan diterima dan dikirim. Header TCP berisi nomor urut (TCP sequence number) dari data yang ditransmisikan dan sebuahacknowledgment dari data yang masuk.
  • Dapat diandalkan (reliable): Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket dan akan mengharapkan paket positive acknowledgment dari penerima. Jika tidak ada paket Acknowledgment dari penerima, maka segmen TCP (protocol data unit dalam protokol TCP) akan ditransmisikan ulang. Pada pihak penerima, segmen-segmen duplikat akan diabaikan dan segmen-segmen yang datang tidak sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan segmen-segmen TCP. Untuk menjamin integritas setiap segmen TCP, TCP mengimplementasikan penghitungan TCP Checksum.
  • Byte stream: TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu). Nomor urut TCP dan nomor acknowlegment dalam setiap header TCP didefinisikan juga dalam bentuk byte. Meski demikian, TCP tidak mengetahui batasan pesan-pesan di dalam byte stream TCP tersebut. Untuk melakukannya, hal ini diserahkan kepada protokol lapisan aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP ke dalam "bahasa" yang ia pahami.
  • Memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yang akhirnya membuat "macet" jaringan internetwork IP, TCP mengimplementasikan layanan flow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia dalam pihak penerima.
  • Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model)
  • Mengirimkan paket secara "one-to-one": hal ini karena memang TCP harus membuat sebuah sirkuit logis antara dua buah protokol lapisan aplikasi agar saling dapat berkomunikasi. TCP tidak menyediakan layanan pengiriman data secara one-to-many.
TCP umumnya digunakan ketika protokol lapisan aplikasi membutuhkan layanan transfer data yang bersifat andal, yang layanan tersebut tidak dimiliki oleh protokol lapisan aplikasi tersebut. Contoh dari protokol yang menggunakan TCP adalah HTTP dan FTP.

Lapisan Transport

Lapisan Transport

Lapisan transpor atau transport layer adalah lapisan keempat dari model referensi jaringan OSI. Lapisan transpor bertanggung jawab untuk menyediakan layanan-layanan yang dapat diandalkan kepada protokol-protokol yang terletak di atasnya. Layanan yang dimaksud antara lain:
  • Mengatur alur (flow control) untuk menjamin bahwa perangkat yang mentransmisikan data tidak mengirimkan lebih banyak data daripada yang dapat ditangani oleh perangkat yang menerimanya.
  • Mengurutkan paket (packet sequencing), yang dilakukan untuk mengubah data yang hendak dikirimkan menjadi segmen-segmen data (proses ini disebut dengan proses segmentasi/segmentation), dan tentunya memiliki fitur untuk menyusunnya kembali.
  • Penanganan kesalahan dan fitur acknowledgment untuk menjamin bahwa data telah dikirimkan dengan benar dan akan dikirimkan lagi ketika memang data tidak sampai ke tujuan.
  • Multiplexing, yang dapat digunakan untuk menggabungkan data dari bebeberapa sumber untuk mengirimkannya melalui satu jalur data saja.
  • Pembentukan sirkuit virtual, yang dilakukan dalam rangka membuat sesi koneksi antara dua node yang hendak berkomunikasi.
Contoh dari protokol yang bekerja pada lapisan transport adalah Transmission Control Protocol (TCP) dan User Datagram Protocol(UDP) yang tersedia dari kumpulan protokol TCP/IP.

Perbedaan Gateway dan Router

Perbedaan Gateway dengan router :
Router adalah suatu perangkat jaringan yang bertugas routing paket ke jaringan lain. Atau bisa disebut juga sebuah mesin (bisa berupa desktop atau alat khusus lainnya) yang digunakan untuk mengirimkan paket-paket data dari suatu jaringan ke jaringan lain dengan melakukan filtering terhadap paket-paket yang dikirim hanya dengan protokol TCP/IP. Sebuah jaringan yang dihubungkan router dianggap berbeda sehingga tidak dapat berhubungan secara langsung. Router merupakan pengatur route paket data dan menentukan route mana yang dilewati oleh paket data.

Gateway adalah komputer yang digunakan untuk pengkonversi protokol antara tipe jaringan yang berbeda. Gateway merupakan gerbang untuk ke dunia luar (internet) maka semua jaringan intern keluar ke dunia luar (internet) ini melalui gateway. Sebagai contohnya, jika kita berada dalam suatu kelas, gatewat merupakan pintu utama untuk meninggalkan kelas. Maksudnya gateway adalah suatu host yang dikunjungi jika ingin keluar dari jaringan internal.

Konsep Gateway

Konsep Gateway serta Perbedaan Gateway dan Router

Gateway adalah komputer yang memiliki minimal 2 buah network interface untuk menghubungkan 2 buah jaringan atau lebih. Di Internet suatu alamat bisa ditempuh lewat gateway-gateway yang memberikan jalan/rute ke arah mana yang harus dilalui supaya paket data sampai ke tujuan. Kebanyakan gateway menjalankan routing daemon (program yang meng-update secara dinamis tabel routing). Karena itu gateway juga biasanya berfungsi sebagai router. Gateway/router bisa berbentuk Router box seperti yang di produksi Cisco, 3COM, dll atau bisa juga berupa komputer yang menjalankan Network Operating System plus routing daemon. Misalkan PC yang dipasang Unix FreeBSD dan menjalankan program Routed atau Gated. Namun dalam pemakaian Natd, routing daemon tidak perlu dijalankan, jadi cukup dipasang gateway saja.
Karena gateway/router mengatur lalu lintas paket data antar jaringan, maka di dalamnya bisa dipasangi mekanisme pembatasan atau pengamanan (filtering) paket-paket data. Mekanisme ini disebut Firewall. 
Sebenarnya Firewall adalah suatu program yang dijalankan di gateway/router yang bertugas memeriksa setiap paket data yang lewat kemudian membandingkannya dengan rule yang diterapkan dan akhirnya memutuskan apakah paket data tersebut boleh diteruskan atau ditolak. Tujuan dasarnya adalah sebagai security yang melindungi jaringan internal dari ancaman dari luar. Namun dalam tulisan ini Firewall digunakan sebagai basis untuk menjalankan Network Address Translation (NAT).

Cara kerja router

Sebuah Router memiliki kemampuan Routing, artinya Router secara cerdas dapat mengetahui kemana rute perjalanan informasi (paket) akan dilewatkan, apakah ditujukan untuk host lain yang satu network ataukah berada di network yang berbeda.
Jika paket-paket ditujukan untuk host pada network lain maka router akan meneruskannya ke network tersebut. Sebaliknya, jika paket-paket ditujukan untuk host yang satu network maka router akan menghalangi paket-paket keluar. 

konsep dan algoritma routing

Routing adalah suatu protokol yang digunakan untuk mendapatkan rute dari satu jaringan ke
jaringan yang lain. Rute ini, disebut dengan route dan informasi route secara dinamis dapat diberikan
ke router yang lain ataupun dapat diberikan secara statis ke router lain.

Seorang administrator memilih suatu protokol routing dinamis berdasarkan keadaan topologi
jaringannya. Misalnya berapa ukuran dari jaringan, bandwidth yang tersedia, proses power dalam
router, merek dan model dari router, dan protokol yang digunakan dalam jaringan.

Routing adalah proses dimana suatu router mem-forward paket ke jaringan yang dituju.
Suatu router membuat keputusan berdasarkan IP address yang dituju oleh paket. Semua router
menggunakan IP address tujuan untuk mengirim paket. Agar keputusan routing tersebut benar,
router harus belajar bagaimana untuk mencapai tujuan. Ketika router menggunakan routing dinamis,
informasi ini dipelajari dari router yang lain. Ketika menggunakan routing statis, seorang network
administrator mengkonfigurasi informasi tentang jaringan yang ingin dituju secara manual.

Jika routing yang digunakan adalah statis, maka konfigurasinya harus dilakukan secara
manual, administrator jaringan harus memasukkan atau menghapus rute statis jika terjadi
perubahan topologi. Pada jaringan skala besar, jika tetap menggunakan routing statis, maka akan
sangat membuang waktu administrator jaringan untuk melakukan update table routing. Karena itu
routing statis hanya mungkin dilakukan untuk jaringan skala kecil. Sedangkan routing dinamis bias
diterapkan di jaringan skala besar dan membutuhkan kemampuan lebih dari administrator.

 - Static Routing
Router meneruskan paket dari sebuah network ke network yang lainnya berdasarkan yang ditentukan oleh administrator. Rute pada static routing tidak berubah, kecuali jika diubah secara manual oleh administrator. Berikut ini adalah karakteristik dari static routing:
tidak akan mentolerir jika terjadi kesalahan pada konfigurasi yang ada. Jika terjadi perubahan pada jaringan atau terjadi kegagalan sambungan antara dua atau lebih titik yang terhubung secara langsung, arus lalu lintas tidak akan disambungkan oleh router.
konfigurasi routing jenis ini biasanya dibangun dalam jaringan yang hanya
mempunyai beberapa router, umumnya tidak lebih dari 2 atau 3.
informasi routingnya diberikan oleh orang (biasa disebut administrator jaringan) secara manual.
satu router memiliki satu table routing
Jenis ini biasanya digunakan untuk jaringan kecil dan stabil

 -  Dynamic Routing
Router mempelajari sendiri Rute yang terbaik yang akan ditempuhnya untuk meneruskan paket dari sebuah network ke network lainnya. Administrator tidak menentukan rute yang harus ditempuh oleh paket-paket tersebut. Administrator hanya menentukan bagaimana cara router mempelajari paket, dan kemudian router mempelajarinya sendiri. Rute pada dynamic routing berubah, sesuai dengan pelajaran yang didapatkan oleh router. Karakteristik dynamic routing:
informasi routingnya tidak lagi diberikan oleh orang (manual), melainkan diberikan oleh software.
apabila salah satu jalur yang ada mengalami gangguan atau kerusakan peralatan, maka router akan secara otomatis akan mencari ganti dari jaluryang tidak bisa dipakai lagi.
menangani jaringan yang lebih kompleks dan luas, atau jaringan yang konfigurasinya sering berubah ubah (koneksi putus-nyambung)
jaringannya cerdas (sudah menggunakan komputasi)
memerlukan routing protokol untuk membuat table routing dan routing protokol ini bisa memakan sumber daya komputer.


Routing algoritma akan membuat sebuah table local forwarding yang akan menentukan router manakah yang akan dijadikan output dari router tujuan.
Routing algoritma memiliki 2 classification berdasarkan algoritma, algoritma tersebut adalah link state dengan distance vector algoritma, dan apakah perbedaan antara algoritma link state dengan distance vector ? untuk link state router harus memahami atau mengetahui semua informasi berkaitan topologi jaringan yang dilakukan secara broadcast antara router satu terhadap router lainnya

Pada link state memiliki dijkstra algoritma yang menentukan suatu jalur mana yang memiliki bobot terkecil dan setiap nodenya harus terpenuhi
Pada distance vector memiliki bellman-ford algoritma yang menentuhkan jalur manakah yang memiliki bobot terkecil dan setiap nodenya tidak harus terpenuhi,
Dan apa perbedaan antara dijkstra dengan bellman-ford ? ya , seperti apa yang saya sebutkan di atas bahwa dijkstra menentukan jalur mana yg memiliki bobot terkecil dengan semua node harus terpenuhi tetapi bellman-ford tidak harus terpenuhi

Network Layer

Lapisan jaringan atau Network layer adalah lapisan ketiga dari bawah dalam model referensi jaringan OSI. Lapisan ini bertanggung jawab untuk melakukan beberapa fungsi berikut:
  • Pengalamatan logis dan melakukan pemetaan (routing) terhadap paket-paket melalui jaringan.
  • Membuat dan menghapus koneksi dan jalur koneksi antara dua node di dalam sebuah jaringan.
  • Mentransfer data, membuat dan mengkonfirmasi penerimaan, dan mengeset ulang koneksi.
Lapisan jaringan juga menyediakan layanan connectionless dan connection-oriented terhadap lapisan transport yang berada di atasnya. Lapisan jaringan juga melakukan fungsinya secara erat dengan lapisan fisik (lapisan pertama) dan lapisan data-link (lapisan kedua) dalam banyak implementasi protokol dunia nyata.
Dalam jaringan berbasis TCP/IP, alamat IP digunakan di dalam lapisan ini. Router IP juga melakukan fungsi routing-nya di dalam lapisan ini.
Alamat IP versi 4 (sering disebut dengan Alamat IPv4) adalah sebuah jenis pengalamatan jaringan yang digunakan di dalam protokol jaringan TCP/IP yang menggunakan protokol IP versi 4. Panjang totalnya adalah 32-bit, dan secara teoritis dapat mengalamati hingga 4 miliar host komputer atau lebih tepatnya 4.294.967.296 host di seluruh dunia, jumlah host tersebut didapatkan dari 256 (didapatkan dari 8 bit) dipangkat 4(karena terdapat 4 oktet) sehingga nilai maksimal dari alamt IP versi 4 tersebut adalah 255.255.255.255 dimana nilai dihitung dari nol sehingga nilai nilai host yang dapat ditampung adalah 256x256x256x256=4.294.967.296 host, bila host yang ada di seluruh dunia melebihi kuota tersebut maka dibuatlah IP versi 6 atauIPv6. Contoh alamat IP versi 4 adalah 192.168.0.3.
Alamat IP versi 4 umumnya diekspresikan dalam notasi desimal bertitik (dotted-decimal notation), yang dibagi ke dalam empat buahoktet berukuran 8-bit. Dalam beberapa buku referensi, format bentuknya adalah w.x.y.z. Karena setiap oktet berukuran 8-bit, maka nilainya berkisar antara 0 hingga 255 (meskipun begitu, terdapat beberapa pengecualian nilai).