Minggu, 16 Mei 2010

TCP & UDP

Apa itu TCP ?


TCP (Transmission Control Protocol) adalah protokol yang paling umum digunakan di Internet . Alasan nya karena TCP menawarkan koreksi kesalahan . Ketika protokol TCP digunakan ada klausul “pengiriman terjamin . ” Hal ini disebabkan adanya bagian untuk sebuah metode yang disebut “flow control . ” Flow control menentukan kapan data harus dikirim kembali , dan kapan menghentikan aliran data paket sebelumnya , sampai berhasil ditransfer . Hal ini karena jika paket data berhasil dikirim , tabrakan dapat terjadi . Ketika ini terjadi , maka klien meminta kembali paket dari server sampai seluruh paket lengkap di transfer dan identik dengan aslinya .
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 sebuah acknowledgment 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. 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).
Segmen-segmen TCP akan dikirimkan sebagai datagram-datagram IP (datagram merupakan satuan protocol data unit pada lapisan internetwork). Sebuah segmen TCP terdiri atas sebuah header dan segmen data (payload), yang dienkapsulasi dengan menggunakan header IP dari protokol IP. Sebuah segmen dapat berukuran hingga 65495 byte: 216-(ukuran header IP terkecil (20 byte)+ukuran header TCP terkecil (20 byte)). Datagram IP tersebut akan dienkapsulasi lagi dengan menggunakan header protokol network interface (lapisan pertama dalam DARPA Reference Model) menjadi frame lapisan Network Interface. Gambar berikut mengilustrasikan data yang dikirimkan ke sebuah host.
Di dalam header IP dari sebuah segmen TCP, field Source IP Address diatur menjadi alamat unicast dari sebuah antarmuka host yang mengirimkan segmen TCP yang bersangkutan. Sementara itu, field Destination IP Address juga akan diatur menjadi alamat unicast dari sebuah antarmuka host tertentu yang dituju. Hal ini dikarenakan, protokol TCP hanya mendukung transmisi one-to-one. Port TCP mampu mengindikasikan sebuah lokasi tertentu untuk menyampaikan segmen-segmen TCP yang dikirimkan yang diidentifikasi dengan TCP Port Number. Port TCP merupakan hal yang berbeda dibandingkan dengan port UDP, meskipun mereka memiliki nomor port yang sama. Port TCP merepresentasikan satu sisi dari sebuah koneksi TCP untuk protokol lapisan aplikasi, sementara port UDP merepresentasikan sebuah antrean pesan UDP untuk protokol lapisan aplikasi. Selain itu, protokol lapisan aplikasi yang menggunakan port TCP dan port UDP dalam nomor yang sama juga tidak harus sama. Sebagai contoh protokol Extended Filename Server (EFS) menggunakan port TCP dengan nomor 520, dan protokol Routing Information Protocol (RIP) menggunakan port UDP juga dengan nomor 520. Jelas, dua protokol tersebut sangatlah berbeda! Karenanya, untuk menyebutkan sebuah nomor port, sebutkan juga jenis port yang digunakannya, karena hal tersebut mampu membingungkan (ambigu).
Proses pembuatan koneksi TCP disebut juga dengan “Three-way Handshake”. Tujuan metode ini adalah agar dapat melakukan sinkronisasi terhadap nomor urut dan nomor acknowledgement yang dikirimkan oleh kedua pihak dan saling bertukar ukuran TCP Window. Prosesnya dapat digambarkan sebagai berikut:
• Host pertama (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN diaktifkan kepada host kedua (yang hendak diajak untuk berkomunikasi).
• Host kedua akan meresponsnya dengan mengirimkan segmen dengan acknowledgment dan juga SYN kepada host pertama.
• Host pertama selanjutnya akan mulai saling bertukar data dengan host kedua.
TCP menggunakan proses jabat tangan yang sama untuk mengakhiri koneksi yang dibuat. Hal ini menjamin dua host yang sedang terkoneksi tersebut telah menyelesaikan proses transmisi data dan semua data yang ditransmisikan telah diterima dengan baik. Itulah sebabnya, mengapa TCP disebut dengan koneksi yang reliable.



Apa itu UDP ?
UDP (User Datagram Protocol) adalah protokol umum lainnya yang digunakan di Internet . Namun UDP tidak pernah digunakan untuk mengirim data penting seperti halaman web , informasi database, dll; UDP biasanya digunakan untuk streaming audio dan video . Streaming media seperti Windows Media audio file ( . WMA) , Real Player ( . RM) , dan lain-lain menggunakan UDP karena menawarkan kecepatan! Alasannya UDP lebih cepat daripada TCP adalah karena tidak ada bentuk kontrol aliran atau koreksi kesalahan . Data yang dikirim melalui Internet dipengaruhi oleh tabrakan , dan kesalahan yang muncul . Ingatlah bahwa UDP hanya berkaitan dengan kecepatan . Ini adalah alasan utama mengapa media streaming tidak berkualitas tinggi .
Berita buruknya UDP telah digunakan di beberapa virus trojan horse. Hacker mengembangkan skrip dan trojan untuk menjalankan UDP dalam rangka untuk menutupi kegiatan mereka . Paket-paket UDP juga digunakan dalam serangan DoS (Denial of Service). Penting untuk mengetahui perbedaan antara TCP port 80 dan UDP port 80 . Lebih jelas tentang port silahkan lihat pembahasannya dibawah .

karakteristik-karakteristik UDP berikut:
• Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.
• Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. 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.


Fungsi UDP sebagai berikut:
• Protokol yang “ringan” (lightweight): Untuk menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsi-fungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System.
• Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS)
• Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing Information Protocol (RIP).
• Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service.
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.
• UDP berbeda dengan TCP yang memiliki satuan paket data yang disebut dengan segmen, melakukan pengepakan terhadap data ke dalam pesan-pesan UDP (UDP Messages). Sebuah pesan UDP berisi header UDP dan akan dikirimkan ke protokol lapisan selanjutnya (lapisan internetwork) setelah mengepaknya menjadi datagram IP. Enkapsulasi terhadap pesan-pesan UDP oleh protokol IP dilakukan dengan menambahkan header IP dengan protokol IP nomor 17 (0×11). Pesan UDP dapat memiliki besar maksimum 65507 byte: 65535 (216)-20 (ukuran terkecil dari header IP)-8 (ukuran dari header UDP) byte. Datagram IP yang dihasilkan dari proses enkapsulasi tersebut, akan dienkapsulasi kembali dengan menggunakan header dan trailer protokol lapisan Network Interface yang digunakan oleh host tersebut.
• Dalam header IP dari sebuah pesan UDP, field Source IP Address akan diset ke antarmuka host yang mengirimkan pesan UDP yang bersangkutan; sementara field Destination IP Address akan diset ke alamat IP unicast dari sebuah host tertentu, alamat IP broadcast, atau alamat IP multicast

Struktur frame TCP dan UDP
Sebagai data yang bergerak di sepanjang jaringan , berbagai atribut ditambahkan ke file untuk membuat bingkai . Proses ini disebut enkapsulasi . Ada beberapa metode yang berbeda dari enkapsulasi tergantung pada protokol dan topologi yang sedang digunakan . Akibatnya , paket struktur rangka ini berbeda juga . Gambar berikut ini menunjukkan struktur bingkai TCP dan UDP. ( lihat gambarnya disini dan disini )

Payload area berisi data sebenarnya . Perhatikan bahwa TCP memiliki struktur bingkai yang lebih kompleks . Hal ini terutama disebabkan oleh fakta bahwa TCP merupakan protokol berorientasi koneksi . Bidang tambahan yang perlu untuk memastikan “jaminan pengiriman” yang ditawarkan oleh TCP



IP Ports
Port dikembangkan agar komputer dapat menerima data dari berbagai sumber melalui alamat IP yang sama . Pikirkan seperti ini; Anda adalah layanan TV Internet , dan port adalah saluran Anda . Anda memiliki banyak bentuk hiburan , berita , dan informasi yang tersedia melalui berbagai saluran yang berbeda . Pikirkan tentang hal ini , katakanlah MTV adalah saluran 35 di TV . Hal yang sama berlaku untuk web server yang berjalan pada port 80 . Setiap port memiliki tujuan khusus melayani masing-masing saluran program televisi yang berbeda . Meskipun Anda hanya punya 1 kabel TV berlangganan , Anda masih dapat menerima beberapa saluran .
Dua jenis utama port: TCP dan UDP . TCP singkatan dari Transmission Control Protocol . UDP adalah singkatan dari User Data Protocol . Beberapa program di komputer Anda akan menggunakan port TCP untuk komunikasi dan lainnya dapat menggunakan UDP . Penting untuk mengetahui perbedaan bagaimana cara keduanya beroperasi .
Ada 65.535 TCP dan UDP port yang tersedia untuk mengirimkan data . Port 0-1.023 dicadangkan untuk penggunaan umum . Port ini ditugaskan oleh IANA (Internet Assigned Numbering Authority) . Ini berarti , bahwa setiap port 0-1.023 akan sama pada setiap sistem . Sebagai contoh , katakanlah server di New York menggunakan port 80 , dan lainnya adalah server Texas . Karena port 80 jatuh di kisaran reserved Port , kita tahu kedua server menggunakan port 80 untuk koneksi HTTP . Melihat daftar port yang diketahui dapat membantu Anda menentukan jenis koneksi yang terdapat pada mesin Anda . Untuk melihat daftar nomor port yang umum digunakan dan penjelasannya klik di sini .
Server atau mesin dalam hal “mengakses” port tertentu . Sebagai contoh , menjalankan server web , FTP , dan layanan Telnet akan mengakses pada port masing-masing . Tindakan mengakses ini berarti mesin sedang menunggu perangkat lain tersambung. Lihat ilustrasi di sini:
Anda dapat melihat bagaimana server mengakses 3 port lebih dari satu alamat IP (192.168.0.15). Anda juga harus tahu bahwa adalah mungkin untuk beberapa perangkat untuk terhubung ke satu port. Artinya , telnet server mungkin menerima lebih dari 100 koneksi simultan ke port 23.

sumber :
http://www.skullbox.net/ports.php
http://www.bahrul-ulum.com/tcp-dan-udp
http://hari.narmadi.net/internet/transmission-control-protocol-tcp
http://standardisasi.wordpress.com/tag/udp/

1 komentar:

Rangga S mengatakan...

cerahin warnanya

Posting Komentar

 
Copyright © Anang Fahlevi
Convert By NewBloggerTemplates Wordpress by WpThemesCreator