TCP/IP: apa itu, tumpukan protokol dan transmisi data

Penulis: IT Sectr Diterbitkan: 2026-03-06 Waktu membaca: 8 mnt

TCP/IP adalah tumpukan protokol yang menjadi fondasi internet dan sebagian besar jaringan komputer. Ia menggabungkan protokol TCP, yang bertanggung jawab atas pengiriman data yang andal, dan IP, yang menyediakan routing paket antar node. Menurut data IETF RFC 1180 (2024), tumpukan TCP/IP memproses lebih dari 80% lalu lintas jaringan global, termasuk aplikasi mobile dan web. Tumpukan protokol menentukan bagaimana data dikemas, dialamatkan, dan ditransmisikan antar perangkat di jaringan.

Poin Penting

  • TCP/IP adalah tumpukan protokol yang menggabungkan TCP (transport) dan IP (routing) untuk transmisi data di jaringan
  • Empat lapisan model: aplikasi, transport, jaringan, dan tautan — masing-masing menyelesaikan tugasnya sendiri
  • TCP menjamin pengiriman, urutan paket, dan kontrol kesalahan melalui konfirmasi dan transmisi ulang
  • IP menyediakan routing — pemilihan jalur paket dari pengirim ke penerima melalui node perantara
  • Memahami TCP/IP diperlukan untuk pengembangan aplikasi jaringan, debugging koneksi, dan optimalisasi kinerja

Apa itu TCP/IP?

TCP/IP (Transmission Control Protocol / Internet Protocol) adalah tumpukan protokol yang dikembangkan pada tahun 1970-an untuk ARPANET dan menjadi standar de facto untuk jaringan internet global. Ia menentukan bagaimana data dipecah menjadi paket, dialamatkan, ditransmisikan, dan dirakit di sisi penerima.

Arsitektur TCP/IP dibangun berdasarkan prinsip multi-lapis, di mana setiap lapisan mengabstraksi fungsi-fungsi tertentu. Lapisan aplikasi bekerja dengan data aplikasi, lapisan transport menyediakan keandalan, lapisan jaringan menangani routing, dan lapisan tautan menangani transmisi melalui media fisik. Modularitas memungkinkan penggantian protokol di dalam lapisan tanpa mengubah lapisan yang berdekatan.

Dalam pengembangan mobile, TCP/IP digunakan oleh setiap aplikasi yang melakukan permintaan jaringan. Pustaka URLSession, OkHttp, AFNetworking, dan Alamofire bekerja di atas tumpukan ini, menyembunyikan dari pengembang detail pengemasan dan routing paket. Namun, memahami TCP/IP diperlukan untuk optimalisasi kinerja: konfigurasi parameter TCP melalui URLSessionConfiguration memungkinkan pengelolaan waktu tunggu, pemeliharaan HTTP Persistent Connections, dan pengaturan proxy untuk lingkungan perusahaan.

Memahami TCP/IP diperlukan untuk diagnosis masalah jaringan: jika aplikasi tidak dapat terhubung ke server, masalahnya bisa berada di lapisan mana pun dari tumpukan — dari saluran fisik hingga protokol aplikasi. Alat seperti tcpdump, Wireshark, dan Charles Proxy memungkinkan analisis lalu lintas di setiap lapisan dan menemukan titik hambatan. Untuk pengembang mobile, Xcode menyediakan Network Debug Dashboard, dan Android Studio menyediakan Network Inspector untuk analisis koneksi TCP secara real-time.

Lapisan model TCP/IP

Model TCP/IP mencakup empat lapisan, yang masing-masing menjalankan fungsi yang ditentukan secara ketat saat mentransmisikan data. Memahami hierarki ini diperlukan untuk diagnosis masalah jaringan dan optimalisasi aplikasi.

Lapisan aplikasi

Pada lapisan aplikasi bekerja protokol-protokol yang berinteraksi langsung dengan aplikasi: HTTP, HTTPS, FTP, SMTP, DNS, WebSocket. Lapisan ini membentuk data dalam format yang dapat dipahami oleh aplikasi dan meneruskannya ke lapisan transport. Pengembang aplikasi mobile bekerja tepat pada lapisan ini melalui pustaka jaringan.

Lapisan transport

Lapisan transport menyediakan transmisi data antar aplikasi pada perangkat yang berbeda. Protokol utama: TCP (transmisi andal dengan konfirmasi) dan UDP (transmisi cepat tanpa jaminan). TCP menambahkan port pengirim dan penerima ke data, mengelola urutan paket, dan mengontrol kemacetan jaringan.

Lapisan jaringan dan tautan

Lapisan jaringan diimplementasikan oleh protokol IP, yang menentukan pengalamatan (IPv4, IPv6) dan routing paket. Setiap paket berisi alamat IP pengirim dan penerima, dan router di jalur transmisi memutuskan node berikutnya berdasarkan tabel routing. IPv4 menggunakan alamat 32-bit (sekitar 4,3 miliar), dan IPv6 menggunakan alamat 128-bit, yang memecahkan masalah kehabisan alamat.

Lapisan tautan bekerja dengan media transmisi fisik: Ethernet, Wi-Fi, Bluetooth. Lapisan ini mengubah paket menjadi sinyal dan sebaliknya, mengelola akses ke media transmisi melalui alamat MAC, dan mendeteksi kesalahan lapisan fisik menggunakan checksum bingkai (FCS).

Pada lapisan tautan bekerja protokol seperti ARP (Address Resolution Protocol), yang mengubah alamat IP menjadi alamat MAC perangkat di jaringan lokal, dan PPP (Point-to-Point Protocol), yang digunakan dalam koneksi VPN dan jaringan transmisi data mobile.

LapisanProtokolFungsi
AplikasiHTTP, HTTPS, DNS, FTP, WebSocketPembentukan data aplikasi
TransportTCP, UDPTransmisi antar aplikasi, kontrol kesalahan
JaringanIP, ICMP, ARPRouting dan pengalamatan paket
TautanEthernet, Wi-Fi, PPPTransmisi melalui media fisik

Bagaimana protokol TCP bekerja

TCP (Transmission Control Protocol) adalah salah satu protokol utama dari lapisan transport. Ia menyediakan pengiriman aliran byte yang andal, terurut, dan dapat diverifikasi antar aplikasi. Sebelum transmisi data, TCP membangun koneksi melalui jabat tangan tiga langkah.

Jabat tangan tiga langkah (three-way handshake) dimulai dengan pengiriman paket SYN oleh klien. Server merespons dengan paket SYN-ACK, mengonfirmasi penerimaan. Klien menyelesaikan jabat tangan dengan paket ACK, setelah itu transmisi data dimulai. Proses ini menjamin bahwa kedua pihak siap untuk bertukar data dan tersinkronisasi dalam hal nomor urut.

python
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('example.com', 80))
sock.send(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')
response = sock.recv(4096)
print(response.decode())
sock.close()

Dalam contoh, dibuat soket TCP dengan tipe SOCK_STREAM, yang secara otomatis melakukan jabat tangan tiga langkah saat connect dipanggil. Metode send mengirim permintaan HTTP, recv menerima respons. Setelah selesai, close mengirim paket FIN untuk menutup koneksi dengan benar.

Server TCP dengan penanganan klien

Mari kita lihat contoh server TCP dalam Python yang menerima beberapa klien melalui thread. Setiap koneksi diproses dalam thread terpisah, memungkinkan banyak klien dilayani secara bersamaan tanpa memblokir loop utama.

python
import socket
import threading

def handle_client(conn, addr):
    print(f'Klien terhubung: {addr}')
    with conn:
        while True:
            data = conn.recv(1024)
            if not data:
                break
            conn.sendall(data.upper())
    print(f'Klien {addr} terputus')

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 9090))
server.listen(5)
print('Server TCP berjalan di port 9090')

while True:
    conn, addr = server.accept()
    thread = threading.Thread(target=handle_client, args=(conn, addr))
    thread.start()

Server TCP memproses setiap koneksi dalam thread terpisah, memanggil accept dalam loop tak terbatas. Fungsi handle_client menerima data, mengubahnya menjadi huruf kapital, dan mengirimnya kembali melalui sendall. Saat loop recv berakhir (ketika klien menutup koneksi), thread berakhir dan soket otomatis ditutup. Dalam aplikasi mobile, pekerjaan tingkat rendah dengan soket seperti ini tidak digunakan secara langsung — pustaka HTTP mobile mengelola koneksi melalui kumpulan thread dan secara otomatis menggunakan kembali koneksi TCP.

Perbedaan TCP dan UDP

Pilihan antara TCP dan UDP adalah salah satu keputusan kunci dalam merancang interaksi jaringan. TCP menjamin pengiriman, urutan, dan integritas data dengan mengorbankan latensi tambahan. UDP mengorbankan keandalan demi latensi minimal dan beban saluran yang lebih rendah.

KarakteristikTCPUDP
KoneksiMembangun (handshake)Tidak membangun
KeandalanMenjamin pengirimanTidak menjamin
Urutan paketMengurutkanTidak mengurutkan
KecepatanLebih rendahLebih tinggi
PenggunaanWeb, email, fileStreaming, game, DNS

Untuk aplikasi mobile, pilihan protokol tergantung pada skenario: REST-API dan unduhan data memerlukan TCP, sedangkan panggilan video dan game online mendapat manfaat dari kecepatan UDP. Beberapa aplikasi menggabungkan kedua protokol — TCP untuk kontrol dan UDP untuk aliran media. Protokol modern QUIC, yang bekerja di atas UDP dan digunakan dalam HTTP/3, menggabungkan keunggulan kedua pendekatan dan sudah didukung di iOS dan Android melalui URLSession secara otomatis.

Contoh kode TCP/IP

Mari kita lihat contoh klien TCP dalam Python dengan penanganan kesalahan dan waktu tunggu. Pendekatan ini digunakan dalam aplikasi mobile untuk koneksi yang andal ke server.

python
import socket
import sys

def tcp_client(host, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(10)
        sock.connect((host, port))
        print(f'Terhubung ke {host}:{port}')
        return sock
    except socket.error as err:
        print(f'Kesalahan koneksi: {err}')
        sys.exit(1)

sock = tcp_client('api.example.com', 443)
sock.close()

Fungsi tcp_client menerima host dan port, membuat soket dengan waktu tunggu 10 detik, dan mencoba terhubung. Jika terjadi kesalahan koneksi — misalnya, server tidak tersedia atau diblokir oleh firewall — exception dilemparkan dengan deskripsi masalah. Dalam aplikasi mobile, waktu tunggu koneksi sangat penting: terlalu pendek menyebabkan kesalahan palsu di jaringan lambat, terlalu lama menyebabkan interface membeku. Nilai yang disarankan untuk jaringan mobile adalah 10–15 detik untuk timeoutIntervalForRequest dan 30–60 detik untuk timeoutIntervalForResource dalam konfigurasi URLSession.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara TCP dan IP?

IP bertanggung jawab untuk routing — pengiriman paket dari pengirim ke penerima melalui node perantara. TCP menyediakan perakitan data yang andal: mengontrol urutan, memeriksa integritas, dan meminta transmisi ulang paket yang hilang. Bersama-sama mereka membentuk tumpukan TCP/IP.

Port apa yang digunakan TCP/IP secara default?

TCP/IP tidak menggunakan port tetap — port ditetapkan oleh aplikasi. Port standar: 80 (HTTP), 443 (HTTPS), 22 (SSH), 25 (SMTP). Port 443 adalah port utama untuk lalu lintas web aman dalam aplikasi mobile.

Apa itu koneksi TCP?

Koneksi TCP adalah saluran logis antara dua aplikasi, dibangun melalui jabat tangan tiga langkah (SYN, SYN-ACK, ACK). Koneksi diidentifikasi oleh pasangan (alamat IP, port) pengirim dan penerima. Jabat tangan menjamin bahwa kedua pihak siap untuk bertukar data.

Bisakah TCP/IP digunakan dalam aplikasi mobile tanpa internet?

Ya, TCP/IP bekerja di jaringan lokal (LAN) tanpa akses internet. Perangkat terhubung melalui Wi-Fi Direct, Bluetooth PAN, atau Ethernet dan bertukar data melalui alamat IP lokal. TCP/IP lokal digunakan dalam perangkat IoT dan aplikasi peer-to-peer.

Mengapa TCP lebih lambat dari UDP?

TCP lebih lambat karena mekanisme tambahan: jabat tangan tiga langkah sebelum transmisi, konfirmasi setiap paket, pengiriman ulang segmen yang hilang, kontrol kemacetan. UDP mengirim datagram tanpa pemeriksaan ini, yang mengurangi latensi dengan mengorbankan kemungkinan kehilangan.

Kesimpulan

  • TCP/IP — tumpukan protokol fundamental yang menyediakan transmisi data di internet dan jaringan lokal
  • Empat lapisan (aplikasi, transport, jaringan, tautan) mengabstraksi berbagai aspek transmisi
  • TCP menjamin pengiriman andal dengan kontrol kesalahan dan konfirmasi
  • IP bertanggung jawab untuk routing paket dan pengalamatan node di jaringan
  • Pilihan TCP atau UDP tergantung pada kebutuhan: keandalan versus kecepatan
  • Setiap aplikasi mobile yang melakukan permintaan jaringan menggunakan tumpukan TCP/IP

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga