Lapisan Transport (TCP dan UDP)
Lapisan Transport adalah Layer 4 dalam Model OSI, bertanggung jawab atas transfer data end-to-end antar proses pada host yang berbeda. Dua protokol utamanya adalah TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). Halaman ini membahas fungsi lapisan transport, session multiplexing, port number, karakteristik TCP dan UDP beserta header-nya, serta kapan masing-masing dipakai.
| Atribut | Nilai |
|---|---|
| Layer (OSI) | 4 (Transport) |
| PDU | Segment (TCP) / Datagram (UDP) |
| Pengalamatan | Port number (16-bit) |
| Protokol utama | TCP, UDP |
Fungsi lapisan transport
Lapisan transport menyediakan transfer data yang transparan antar host dan menangani:
- Error recovery (pemulihan kesalahan) end-to-end.
- Flow control — menyesuaikan laju pengiriman dari pengirim agar penerima sanggup menampung seluruh data tanpa kewalahan.
- Session multiplexing — mengelola banyak sesi sekaligus melalui satu jalur.
Session multiplexing
Session multiplexing memungkinkan satu host menjalankan banyak sesi secara bersamaan dan mengelola tiap aliran lalu lintas secara terpisah melalui satu link. Misalnya, satu komputer dapat membuka sesi HTTP, mengirim email via SMTP, dan menjalankan SSH pada saat yang sama. Yang memisahkan tiap aliran adalah port number.
Port number
- Destination port mengidentifikasi protokol/aplikasi tujuan (mis. HTTP=80, SMTP=25). Server "mendengarkan" pada port yang telah disepakati.
- Source port ditambahkan pengirim, umumnya berupa angka tinggi acak (ephemeral port), untuk menandai sesi di sisi klien.
Kombinasi source dan destination port dipakai untuk melacak sesi. Identitas lengkap sebuah koneksi sebenarnya adalah 5-tuple: protokol, source IP, source port, destination IP, dan destination port. Pasangan IP+port di tiap ujung inilah yang disebut socket.
| Rentang | Kategori |
|---|---|
| 0–1023 | Well-known (port server umum) |
| 1024–49151 | Registered |
| 49152–65535 | Dynamic / ephemeral (umumnya source port) |
Contoh pertukaran: klien mengirim ke server dengan DST: 80, SRC: 1500; server membalas dengan DST: 1500, SRC: 80 (source dan destination tertukar pada arah balik).
TCP
TCP bersifat connection-oriented dan reliable. Karakteristik utamanya:
- Connection-oriented — koneksi dibangun lebih dulu (lihat three-way handshake); setelah terbentuk, data mengalir dua arah.
- Sequencing — tiap segment diberi nomor urut sehingga penerima dapat menyusun ulang urutan yang benar dan mendeteksi segment yang hilang.
- Reliable — penerima mengirim acknowledgment (ACK) kembali; segment yang hilang dikirim ulang.
- Flow control — laju pengiriman disesuaikan dengan kapasitas penerima.
Three-way handshake
Sebelum data dikirim, TCP membangun koneksi melalui tiga langkah:
Klien Server
│ ── SYN (seq=x) ──────────────► │ "buka koneksi"
│ ◄──── SYN-ACK (seq=y, ack=x+1) ─ │ "diterima"
│ ── ACK (ack=y+1) ────────────► │ "siap"
│ │
└────── koneksi terbentuk ──────────┘
transfer data dua arah
Flag kontrol pada header TCP yang terlibat: SYN, ACK, FIN, RST, PSH, URG.
Header TCP
Header TCP berukuran minimal 20 byte.
| Field | Ukuran (bit) | Fungsi |
|---|---|---|
| Source Port | 16 | Port pengirim |
| Destination Port | 16 | Port tujuan |
| Sequence Number | 32 | Nomor urut segment (untuk sequencing) |
| Acknowledgment Number | 32 | Byte berikutnya yang diharapkan (untuk reliability) |
| Header Length | 4 | Panjang header (data offset) |
| Reserved | 6 | Dicadangkan |
| Control bits (flags) | 6 | SYN, ACK, FIN, RST, PSH, URG |
| Window | 16 | Jumlah byte yang sanggup diterima (flow control) |
| Checksum | 16 | Deteksi error |
| Urgent Pointer | 16 | Penanda data mendesak |
| Options | 0 atau 32 | Opsi tambahan (jika ada) |
| Data | bervariasi | Muatan |
UDP
UDP mengirim lalu lintas secara best-effort dan merupakan kebalikan dari TCP:
- Tidak connection-oriented — tidak ada handshake.
- Tidak ada sequencing — urutan dan kelengkapan segment tidak dijamin.
- Tidak reliable — penerima tidak mengirim acknowledgment.
- Tidak ada flow control.
Jika deteksi dan pemulihan error dibutuhkan, hal itu menjadi tanggung jawab lapisan di atasnya (aplikasi).
Header UDP
Header UDP jauh lebih ramping, hanya 8 byte — inilah sumber overhead-nya yang rendah.
| Field | Ukuran (bit) | Fungsi |
|---|---|---|
| Source Port | 16 | Port pengirim |
| Destination Port | 16 | Port tujuan |
| Length | 16 | Panjang datagram |
| Checksum | 16 | Deteksi error |
| Data | bervariasi | Muatan |
TCP vs UDP
| Aspek | TCP | UDP |
|---|---|---|
| Koneksi | Connection-oriented (handshake) | Connectionless (best-effort) |
| Reliability | Reliable (ACK + retransmit) | Tidak reliable |
| Sequencing | Ya | Tidak |
| Flow control | Ya | Tidak |
| Ukuran header | 20 byte | 8 byte |
| Overhead | Tinggi | Rendah |
| Cocok untuk | Data yang butuh keutuhan (web, file, email) | Real-time (voice, video, game) |
Pengembang aplikasi memilih TCP untuk lalu lintas yang membutuhkan keandalan. Aplikasi real-time seperti suara dan video tidak sanggup menanggung overhead TCP, sehingga memakai UDP — paket yang terlambat lebih merugikan daripada paket yang hilang. Sebagian aplikasi dapat memakai keduanya.
Port aplikasi umum
| Aplikasi | Port | Protokol |
|---|---|---|
| FTP (data / kontrol) | 20 / 21 | TCP |
| SSH | 22 | TCP |
| Telnet | 23 | TCP |
| SMTP | 25 | TCP |
| DNS | 53 | TCP dan UDP |
| DHCP | 67 / 68 | UDP |
| TFTP | 69 | UDP |
| HTTP | 80 | TCP |
| NTP | 123 | UDP |
| SNMP | 161 | UDP |
| HTTPS | 443 | TCP |
Posisi dalam enkapsulasi
Sebagai Layer 4, lapisan transport menerima data dari lapisan atas, menambahkan header TCP/UDP (termасuk port), lalu menyerahkan segment/datagram ke Layer 3 (Network) untuk dibungkus menjadi packet. Lihat Model OSI untuk gambaran lengkap proses enkapsulasi.
Lihat pula