'TCP/IP (singkatan dari Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack
Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal
1980-an sebagai sebuah protokol standar untuk menghubungkan
komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas
(WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat
independen terhadap mekanisme transport jaringan fisik yang digunakan,
sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema
pengalamatan yang sederhana yang disebut sebagai 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 berbeda (seperti Microsoft Windows dan keluarga UNIX) untuk membentuk jaringan yang heterogen.
Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society (ISOC), Internet Architecture Board (IAB), dan Internet Engineering Task Force
(IETF). Macam-macam protokol yang berjalan di atas TCP/IP, skema
pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen yang disebut
sebagai Request for Comments (RFC) yang dikeluarkan oleh IETFSistem Protokol TCP/IP
TCP/IP adalah sebuah sistem yang terdiri dari sekumpulan protokol, dan protokol adalah sebuah sistem yang terdiri dari beberapa aturan dan prosedur. Kali ini kita akan mengulas tentang Sistem Protokol TCP/IP dan menunjukkan bagaimana komponen-komponen TCP/IP bekerja sama mengirimkan dan menerima data melalui network.
Sebuah sistem protokol seperti TCP/IP harus bertanggung jawab untuk melaksanakan tugas-tugas seperti berikut :
Memecah data menjadi bagian-bagian kecil sehingga data bisa melewati medium transmisi dengan efisien.
Menjadi antarmuka dengan hardware network adapter/kartu jaringan
Addressing/Pengalamatan: Komputer pengirim harus mampu mengarahkan data kepada komputer penerima. Komputer penerima harus bisa mengenali pesan yang seharusnya dia terima.
Routing (mengarahkan) data menuju subnet dimana komputer tujuan berada, meski physical network subnet dari komputer pengirim tidak sama dengan physical network subnet dari komputer penerima.
Menyediakan fungsi error control, flow control, dan acknowledgment (konfirmasi diterimanya data penerima kepada pengirim) : agar komunikasi bisa diandalkan (reliable) komputer pengirim dan penerima harus bisa mengidentifikasi dan mengoreksi kesalahan transmisi dan juga mengontrol aliran data.
Menerima data dari sebuah aplikasi dan menyampaikannya pada network.
Menerima data dari network dan menyampaikannya pada aplikasi.
Sistem protokol TCP/IP dibagi-bagi menjadi beberapa layer yang masing-masing menjalankan tugas yang spesifik. Model berupa protocol stack (tumpukan protokol layer) ini bermula sejak pertama kali TCP/IP dibuat. Berikut adalah layer-layer protokol TCP/IP secara official.
Network Access layer: Berfungsi sebagai perantara/antarmuka dengan jaringan fisik. Memformat data disesuaikan dengan medium transmisi dan juga mengalamatkan data pada kepada subnet berdasarkan address fisik hardwarenya. Menyediakan error control pada data yang akan dikirim kedalam network.
Internet layer: Menyediakan pengalamatan logik terlepas dari jenis hardwarenya sehingga data bisa dikirim melewati subnet-subnet yang berbeda arsitektur fisiknya. Menyediakan fungsi routing untuk mengurangi traffik dan mendukung pengiriman data melalui internetwork. (istilah internetwork dipakai untuk menggambarkan beberapa LAN yang lebih besar yang terhubung seperti yang kita temui dalam perusahaan besar atau dalam internet). Mengkorelasikan physical address/alamat fisik (yang berada pada Network Access Layer) dengan logical address.
Transport layer: Menyediakan fungsi flow control (mengontrol aliran data), error control, dan juga acknowledgment (konfirmasi diterimanya data penerima kepada pengirim). Berperan sebagai interface untuk aplikasi network.
Application layer: menyediakan aplikasi-aplikasi untuk troubleshooting network, transfer file, remote control, dan aktivitas-aktivias internet yang lainnya. Juga mendukung Network Application Programming Interface (API) yang memungkinkan program dalam operating sistem untuk mengakses network.
Saat software protokol TCP/IP menyiapkan data untuk pengiriman kedalam network, setiap layer dalam komputer pengirim akan menambahkan informasi kedalam data yang relevan dengan layer yang bersesuain (layer yang sama) pada komputer penerima. Misalnya, Internet Layer dari komputer pengirim menambahkan header berisi informasi-informasi penting bagi internet layer pada komputer penerima. Proses ini kadang disebut sebagai encapsulation.
TCP/IP dan Model OSI
TCP/IP sudah berada dalam tahap pengembangan ketika arsitektur standard OSI muncul, dan pada hakekatnya, TCP/IP tidak menyesuaikan dengan model OSI. Akan tetapi, kedua model tersebut memiliki tujuan yang sama.
Berikut definisi dari setiap layer pada OSI:
Physical layer: Mengkonversi data menjadi arus listrik yang akan dikirimkan melewati media transmisi, juga mengatur proses transmisi data.
Data Link layer: Sebagai interface dengan network adapter (kartu jaringan), juga memelihara link-link logik pada subnet.
Network layer: Mendukung logical addressing dan proses routing.
Transport layer: Menyediakan fungsi error control dan flow control.
Session layer: Menetapkan session diantara aplikasi-aplikasi yang berkomunikasi dalam komputer.
Presentation layer: men-translate data kedalam format standar; mengatur enkripsi dan kompresi data.
Application layer: Sebagai interface antara network dan aplikasi/software; membantu aplikasi-aplikasi network untuk transfer file, komunikasi dan sebagainya.
Perlu diingat bahwa model TCP/IP dan OSI adalah sebuah standard, bukan implemenasi. Dalam dunia nyata, implementasi TCP/IP tidak selalu dipetakan persis seperti gambar diatas.
Paket-Paket Data
Hal yang penting untuk diingat mengenai protokol stack TCP/IP adalah bahwa setiap layer memainkan perannya dalam proses komunikasi. Setiap layer menjalankan servis-servis yang diperlukan untuk memainkan perannya. Ketika data yang akan dikirimkan turun melewati stack, setiap layer akan menyertakan kedalam data sebuah bundel yang berisi informasi yang relevan yang disebut header. Bungkusan data yang berupa data+header tersebut menjadi data baru yang akan dibungkus lagi pada layer berikut yang lebih rendah dengan header yang sesuai pada layer tersebut.
Pada komputer penerima, enkapsulasi/bungkusan data tersebut akan dibuka, satu persatu setiap kali data menaiki protokol stack. Internet layer pada komputer penerima akan menggunakan informasi pada header internet layer. Transport layer akan memanfaatkan informasi yang ada pada header transport layer.
Paket data nampak berbeda-beda pada setiap layer, dan pada tiap layer disebut dengan nama yang berbeda pula. Nama-nama tersebut seperti berikut :
Paket data yang dibuat pada application layer dinamakan message.
Paket data yang dibuat pada transport layer, yang membungkus message dari application layer dinamakan segment jika datang melalui protokol TCP dan disebut datagram jika datang melalui protokol UDP.
Paket data pada Internet layer, yang membungkus segment dari transport layer, dinamakan datagram.
Paket data pada Network Access Layer, yang membungkus dan mungkin memecah-mecah datagram menjadi bagian-bagian yang lebih kecil dinamakan frame. Frame inilah yang akan dirubah menjadi arus listrik pada sublayer paling bawah dari Network Access Layer.
Sekilas Networking TCP/IP
Gambar berikut memaparkan dasar dari sistem networking protokol TCP/IP. Tentu saja tidak sedetail yang sebenarnya, tapi gambar dibawah sudah cukup mewakili sebagian besarnya.
Skenario dasarnya seperti berikut :
Data disampaikan dari aplikasi TCP/IP, atau dari interface program dari network application, melewati port TCP atau UDP untuk kemudian diterima oleh protokol TCP atau UDP pada transport layer. Program dapat mengakses network melalui salah satu dari TCP atau UDP, tergantung requirement dari program bersangkutan.
TCP adalah protokol yang connection-oriented. Protokol connection-oriented menyediakan fitur flow control dan error checking yang lebih canggih daripada protokolconnectionless. TCP memberikan usaha yang besar untuk menjamin sampainya data. TCP lebih bisa diandalkan daripada UDP, tapi dengan tambahan fitur error checking dan flow control membuat TCP lebih lambat daripada UDP.
UDP adalah protokol yang connectionless. Ia lebih cepat dibandingkan dengan TCP, namun kurang bisa diandalkan. UDP menyerahkan tanggung jawab fungsi error-checking kepada program/aplikasi.
Segment data kemudian diserahkan pada Internet Level, dimana protokol IP menyediakan informasi logical-addressing dan membungkus data menjadi sebuah datagram.
IP datagram memasuki Network Access layer, dimana dia akan diserahkan pada komponen software yang di desain sebagai antarmuka dengan physical network. Network Access layer membuat satu atau lebih data frames yang di desain untuk dimasukkan kedalam physical network. Jika physical network berupa sistem LAN seperti ethernet, kemungkinan frame akan mengandung informasi physical address yang diperoleh dari sebuah tabel lookup yang di maintain menggunakan protokol ARP dan RARP.
Data frame dikonversi menjadi arus listrik (aliran bit-bit) yang akan ditransmisikan melewati media jaringan.
Arsitektur
Arsitektur TCP/IP tidaklah berbasis model referensi tujuh lapis OSI, tetapi menggunakan model referensi 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, mengingat TCP/IP merupakan protokol yang awalnya dikembangkan dari proyek ARPANET yang dimulai oleh Departemen Pertahanan Amerika Serikat.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))
Pengalamatan
Protokol TCP/IP menggunakan dua buah skema pengalamatan yang dapat digunakan untuk mengidentifikasikan sebuah komputer dalam sebuah jaringan atau jaringan dalam sebuah internetwork, yakni sebagai berikut:
- Pengalamatan IP: yang berupa alamat logis yang terdiri atas 32-bit (empat oktet berukuran 8-bit) yang umumnya ditulis dalam format
www.xxx.yyy.zzz
. Dengan menggunakan subnet mask yang diasosiasikan dengannya, sebuah alamat IP pun dapat dibagi menjadi dua bagian, yakni Network Identifier (NetID) yang dapat mengidentifikasikan jaringan lokal dalam sebuah internetwork dan Host identifier (HostID) yang dapat mengidentifikasikan host dalam jaringan tersebut. Sebagai contoh, alamat205.116.008.044
dapat dibagi dengan menggunakan subnet mask255.255.255.000
ke dalam Network ID205.116.008.000
dan Host ID 44. Alamat IP merupakan kewajiban yang harus ditetapkan untuk sebuah host, yang dapat dilakukan secara manual (statis) atau menggunakan Dynamic Host Configuration Protocol (DHCP) (dinamis). - Fully qualified domain name (FQDN): Alamat ini merupakan alamat yang direpresentasikan dalam nama alfanumerik yang diekspresikan dalam bentuk <nama_host>.<nama_domain>,
di mana <nama_domain> mengindentifikasikan jaringan di mana
sebuah komputer berada, dan <nama_host> mengidentifikasikan sebuah
komputer dalam jaringan. Pengalamatan FQDN digunakan oleh skema
penamaan domain Domain Name System (DNS). Sebagai contoh, alamat FQDN
id.wikipedia.org
merepresentasikan sebuah host dengan nama "id" yang terdapat di dalam domain jaringan "wikipedia.org
". Nama domainwikipedia.org
merupakan second-level domain yang terdaftar di dalam top-level domain.org
, yang terdaftar dalam root DNS, yang memiliki nama "." (titik). Penggunaan FQDN lebih bersahabat dan lebih mudah diingat ketimbang dengan menggunakan alamat IP. Akan tetapi, dalam TCP/IP, agar komunikasi dapat berjalan, FQDN harus diterjemahkan terlebih dahulu (proses penerjemahan ini disebut sebagai resolusi nama) ke dalam alamat IP dengan menggunakan server yang menjalankan DNS, yang disebut dengan Name Server atau dengan menggunakan berkas hosts (/etc/hosts
atau%systemroot%\system32\drivers\etc\hosts
) yang disimpan di dalam mesin yang bersangkutan.Layanan
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.)
Request for Comments
RFC (Request For Comments) merupakan standar yang digunakan dalam Internet, meskipun ada juga isinya yg merupakan bahan diskusi ataupun omong kosong belaka. Diterbitkan oleh IAB yang merupakan komite independen yang terdiri atas para peneliti dan profesional yang mengerti teknis, kondisi dan evolusi Internet. Sebuah surat yg mengikuti nomor RFC menunjukan status RFC :
- S: Standard, standar resmi bagi internet
- DS: Draft standard, protokol tahap akhir sebelum disetujui sebagai standar
- PS: Proposed Standard, protokol pertimbangan untuk standar masa depan
- I: Informational, berisikan bahan-bahan diskusi yg sifatnya informasi
- E: Experimental, protokol dalam tahap percobaan tetapi bukan pada jalur standar.
- H: Historic, protokol-protokol yg telah digantikan atau tidak lagi dipertimbankan utk standardisasi.
Bagaimanakah bentuk arsitektur dari TCP/IP itu ?
Dikarenakan TCP/IP adalah serangkaian protokol di mana setiap protokol melakukan sebagian dari keseluruhan tugas komunikasi jaringan, maka tentulah implementasinya tak lepas dari arsitektur jaringan itu sendiri. Arsitektur rangkaian protokol TCP/IP mendifinisikan berbagai cara agar TCP/IP dapat saling menyesuaikan.
Karena TCP/IP merupakan salah satu lapisan protokol Model OSI, berarti bahwa hierarki TCP/IP merujuk kepada 7 lapisan OSI tersebut. Tiga lapisan teratas biasa dikenal sebagai "upper level protocol" sedangkan empat lapisan terbawah dikenal sebagai "lower level protocol". Tiap lapisan berdiri sendiri tetapi fungsi dari masing-masing lapisan bergantung dari keberhasilan operasi layer sebelumnya. Sebuah lapisan pengirim hanya perlu berhubungan dengan lapisan yang sama di penerima (jadi misalnya lapisan data link penerima hanya berhubungan dengan lapisan data link pengirim) selain dengan satu layer di atas atau di bawahnya (misalnya lapisan network berhubungan dengan lapisan transport di atasnya atau dengan lapisan data link di bawahnya).
Model dengan menggunakan lapisan ini merupakan sebuah konsep yang penting karena suatu fungsi yang rumit yang berkaitan dengan komunikasi dapat dipecahkan menjadi sejumlah unit yang lebih kecil. Tiap lapisan bertugas memberikan layanan tertentu pada lapisan diatasnya dan juga melindungi lapisan diatasnya dari rincian cara pemberian layanan tersebut. Tiap lapisan harus transparan sehingga modifikasi yang dilakukan atasnya tidak akan menyebabkan perubahan pada lapisan yang lain. Lapisan menjalankan perannya dalam pengalihan data dengan mengikuti peraturan yang berlaku untuknya dan hanya berkomunikasi dengan lapisan yang setingkat. Akibatnya sebuah layer pada satu sistem tertentu hanya akan berhubungan dengan lapisan yang sama dari sistem yang lain. Proses ini dikenal sebagai Peer process. Dalam keadaan sebenarnya tidak ada data yang langsung dialihkan antar lapisan yang sama dari dua sistem yang berbeda ini. Lapisan atas akan memberikan data dan kendali ke lapisan dibawahnya sampai lapisan yang terendah dicapai. Antara dua lapisan yang berdekatan terdapat interface (antarmuka). Interface ini mendifinisikan operasi dan layanan yang diberikan olehnya ke lapisan lebih atas. Tiap lapisan harus melaksanakan sekumpulan fungsi khusus yang dipahami dengan sempurna. Himpunan lapisan dan protokol dikenal sebagai "arsitektur jaringan".