Komunikasi data merupakan proses mengirimkan data dari satu komputer ke komputer yang lain. Melalui peralatan Network Interface Card (NIC) atau LAN card, komunikasi data antar komputer biasanya dilakukan. NIC / LAN card yang digunakan sangat bervarisasi tergantung jenis saluran fisik yang digunakan.
Ada beberapa masalah yang harus dipecahkan dalam mengiriman data. Pertama, data harus dapat dikirimkan ke komputer yang tepat, sesuai tujuannya. Hal ini akan menjadi rumit jika komputer tujuan transfer data ini tidak berada pada jaringan lokal, melainkan di tempat yang jauh. Jika lokasi komputer yang saling berkomunikasi "jauh" (secara jaringan) maka terdapat kemungkinan data rusak atau hilang. Karenanya, perlu ada mekanisme yang mencegah rusaknya data ini.
Hal lain yang perlu diperhatikan ialah, pada komputer tujuan transfer data mungkin terdapat lebih dari satu aplikasi yang menunggu datangnya data. Data yang dikirim harus sampai ke aplikasi yang tepat, pada komputer yang tepat, tanpa kesalahan.
Cara alamiah untuk menghadapi setiap masalah yang rumit ialah memecah masalah tersebut menjadi bagian yang lebih kecil. Dalam memecahkan masalah transfer data diatas, para ahli jaringankomputer pun melakukan hal yang sama. Untuk setiap problem komunikasi data, diciptakan solusi khusus berupa aturan-aturan untuk menangani problem tersebut. Untuk menangani semua masalah komunikasi data, keseluruhan aturan ini harus bekerja sama satu dengan lainnya. Sekumpulan aturan untuk mengatur proses pengiriman data ini disebut sebagai protokol komunikasi data. Protokol ini diimplementasikan dalam bentuk program komputer (software) yang terdapat pada komputer dan peralatan komunikasi data lainnya.
TCP/IP adalah sekumpulan protokol yang didesain untuk melakukan fungsi-fungi komunikasi data pada Wide Area Network (WAN). TCP/IP terdiri dari sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dari komunikasi data. Dalam bahasa yang lebih formal-nya, disain protokol TCP/IP sifatnya modular. Berkat prinsip ini, tugas masing-masing protokol menjadi jelas dan sederhana. Protokol yang satu tidak perlu mengetahui cara kerja protokol yang lain, sepanjang ia masih bisa saling mengirim dan menerima data.
Berkat penggunaan prinsip modular ini, TCP/IP menjadi protokol komunikasi data yang fleksibel. Protokol TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan interface jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaringan tertentu. Agar TCP/IP dapat berjalan diatas interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang berhubungan dengan interface jaringan saja.
Sekumpulan protokol TCP/IP ini dimodelkan dengan empat (4) lapisan TCP/IP
Arsitektur jaringan menggunakan protokol TCP/IP pada dasarnya terdiri dari 4 lapis kumpulan protokol yang bertingkat. Peralatan fisik, radio, kabel, modem, card LAN seringkali disebut sebagai lapisan terakhir, lapisan ke lima (5). Jadi ke lima (5) lapis/layer tersebut adalah:
- Application Layer
- Transport Layer
- Network Layer
- Link Layer
- Physical Layer
Di bawah dari ke empat lapisan protokol yang ke semuanya di implementasikan dalam bentuk software adalah lapisan fisik (physical layer) yang dapat berupa modem, kabel LAN, radio, antenna yang sifatnya fisik untuk menyambungkan jaringan. Karena tugasnya ini, protokol pada layer fisik harus mampu menerjemahkan sinyal listrik menjadi data digital yang dimengerti komputer, yang berasal dari peralatan lain yang sejenis.
Kadang kala, kita menyebut arsitektur jaringan TCP/IP sebagai arsitektur dengan lima (5) lapisan, jika physical layer dimasukan. Pada kenyataan di lapangan, jumlah lapisan protokol dapat bervarisasi / berbeda-beda tergantung kepentingan transaksi yang dilakukan. Hal ini akan lebih jelas pada saat kita melakukan sniffing paket data menggunakan Wireshark/ Ethereal di komputer.
Proses enkapsulasi data antar lapisan protokol di perlihatkan pada gambar.
Data yang akan dikirim akan di enkapsulasi oleh setiap lapisan, mulai dari lapisan aplikasi hingga yang terakhir lapisan fisik. Pada saat data di terima oleh setiap lapisan, lapisan akan membuang header data tersebut. Jika data dianggap valid, protokol akan melepas informasi tambahan tersebut, untuk kemudian meneruskan data itu ke protokol lain di lapisan selanjutnya.
Lapisan Network akan mengatur supaya alamat mesin sumber dan yang dituju benar. Lapisan network ini yang akan mengidentifikasi supaya datagram mencapai komputer yang benar. Tapi lapisan network sama sekali tidak menjamin bahwa datagram yang dikirim akan diterima sampai di tujuan dengan selamat.
Lapisan transport mengontrol port sumber dan port tujuan paket, termasuk nomor urut paket yang dikirim. Oleh karenanya, menggunakan mekanisme lapisan protokol transport file yang besar dapat dikirim dalam potongan paket kecil, yang kemudian digabungkan kembali di bagian penerima. Lapisan transport juga berusaha menjamin supaya paket yang diterima sampai ditujuan dengan selamat, jika ada kesalahan / kerusakan paket di jalan, maka lapisan transport ini yang akan berusaha memperbaikinya.
Lapisan Link biasanya di implementasikan di dalam firmware di LAN card, akan menentukan bagaimana frame data dikirim. Termasuk bagaimana pemotongan / fragmentasi paket di kabel dengan Maximum Transmission Unit (MTU) yang lebih kecil, atau menggabungkan beberapa potongan (fragmen) frame menjadi sebuah frame dengan MTU yang lebih besar. Lapisan link juga menentukan komputer mana yang harus menerima frame di jaringan LAN untuk meneruskan frame ke tujuan yang benar.
Lapisan link akan memberikan enkapsulasi datagram dari lapisan network ke dalam frame yang akan di kirim melalui jaringan. Dalam frame akan dimasuk alamat Ethernet, atau MAC address, dari komputer sumber dan komputer selanjutnya (next hop) untuk mencapai tujuan. Alamat-alamat ini akan ditulis ulang untuk setiap hop yang dilewati.
Ada banyak protokol yang saling berinteraksi dalam jaringan komputer berbasis TCP/IP. Sebagian besar protokol yang saling berinteraksi ini diperlihatkan pada tabel. Masing-masing protokol mempunyai kemampuan yang unik dan spesial, oleh karena itu biasanya masing-masing protokol akan menggunakan keluarga protokol yang spesifik.
Untuk mencek apakah sambungan antar komputer terhubung dengan baik, biasanya kita menggunakan aplikasi ping, yang berjalan di atas protokol transport ICMP yang di tumpangkan di atas protokol network IP.
Aplikasi Web dengan protokol HTTP akan membutuhkan sambungan yang reliable menggunakan TCP yang ditumpangkan di atas IP untuk mencapai tujuan.
Jadi, TCP/IP bukan hanya sepasang protokol komunikasi, tapi merupakan sekumpulan protokol, aplikasi dan utiliti. Semakin hari, protokol ini lebih di kenal sebagai keluarga protokol Internet, tapi nama yang lama keluarga protokol TCP/IP tidak akan hilang dalam waktu dekat.
Pada gambar di perlihatkan hubungan berbagai lapisan protokol TCP/IP. Program aplikasi dan utiliti berada di mesin host. TCP memberikan sambungan virtual circuit yang reliable / andal antara dua host.
Terkadang ada aplikasi yang tidak membutuhkan keandalan & keamanan data seketat TCP, tetapi harus cepat / real-time, seperti pengiriman video atau suara di Telepon melalui Internet. Untuk aplikasi jenis ini dapat digunakan UDP sebagai pengganti TCP karena lebih effisien. UDP memberikan sambungan connectionless / datagram end-to-end pada lapisan transport.
IP memberikan dukungan transportasi datagram pada jaringan / subnetwork di bawah termasuk jaringan lokal atau jaringan wide area network. Jaringan paling bawah menggunakan berbagai teknologi jaringan lokal maupun jaringan wide area network. Perhatikan bahwa IP memungkinkan translasi datagram dari subnetwork satu (1) ke subnetwork lainnya (2). Yang berubah terutama hanya header Ethernet-nya saja.
Perlu dicatat bahwa istilah gateway atau router digunakan untuk alat yang menyambungkan dua subnetwork. Di jaringan LAN biasanya digunakan istilah router dalam OSI di kenal sebagai intermediate system. Dalam terminologi OSI, gateway digunakan untuk melakukan konversi protokol antara dua jaringan / aplikasi.