1. Pengenalan TCP/IP
TCP/IP (Transmission Control Protocol / Internet Protocol) adalah kumpulan protokol komunikasi yang menjadi fondasi dari internet dan jaringan komputer modern. Protokol ini memungkinkan perangkat dengan sistem operasi dan arsitektur berbeda untuk saling berkomunikasi.
TCP/IP dikembangkan pada tahun 1970-an oleh Department of Defense (DoD) Amerika Serikat melalui proyek ARPANET. Tujuannya adalah membuat jaringan yang dapat bertahan meskipun sebagian infrastruktur mengalami kerusakan β konsep yang disebut fault tolerance.
Mengapa TCP/IP Penting?
| Aspek | Penjelasan |
|---|---|
| Standar Global | Digunakan oleh seluruh internet β miliaran perangkat saling terhubung via TCP/IP |
| Interoperabilitas | Berbagai OS (Windows, Linux, macOS) dan perangkat bisa saling berkomunikasi |
| Skalabilitas | Dari jaringan kecil (rumah) hingga jaringan global (internet) |
| Layered Architecture | Pisahkan fungsi di setiap layer, memudahkan troubleshooting dan pengembangan |
| Open Standard | Dikembangkan secara terbuka, siapa bisa mengimplementasikannya |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β KOMUNIKASI DATA VIA TCP/IP β β β β ββββββββββββ ββββββββββββ ββββββββββββ β β β Pengirim βββββΆβ Network βββββΆβ Penerima β β β β (Client) β β (Router) β β (Server) β β β ββββββββββββ ββββββββββββ ββββββββββββ β β β β β β ββββββΌβββββ ββββββΌβββββ β β β Aplikasiβ β Aplikasiβ β β β HTTP β β HTTP β β β β TCP β β TCP β β β β IP β β IP β β β β Ethernetβ β WiFi β β β βββββββββββ βββββββββββ β β β β Data dipecah menjadi paket dan dikirim melalui β β berbagai rute menuju tujuan, lalu disusun kembali. β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Sejarah Singkat TCP/IP
| Tahun | Peristiwa |
|---|---|
| 1969 | ARPANET diluncurkan β cikal bakal internet |
| 1974 | Vint Cerf dan Bob Kahn mempublikasikan desain TCP |
| 1978 | TCP dipisah menjadi TCP dan IP (sebelumnya satu protokol) |
| 1983 | ARPANET secara resmi beralih ke TCP/IP |
| 1989 | Tim Berners-Lee mengusulkan World Wide Web |
| 1995 | Internet tersedia secara komersial untuk publik |
2. Model OSI (7 Layer)
OSI (Open Systems Interconnection) adalah model referensi yang dikembangkan oleh ISO pada tahun 1984. Model ini membagi proses komunikasi jaringan menjadi 7 layer, masing-masing dengan fungsi spesifik. Meskipun TCP/IP lebih populer dalam praktik, model OSI sangat penting untuk memahami konsep networking secara teori.
7 Layer OSI Model
| Layer | Nama | Fungsi | Contoh Protokol/Perangkat |
|---|---|---|---|
| 7 | Application | Interface pengguna dengan jaringan | HTTP, FTP, SMTP, DNS |
| 6 | Presentation | Enkripsi, kompresi, translasi data | SSL/TLS, JPEG, ASCII |
| 5 | Session | Menjaga sesi komunikasi | NetBIOS, RPC, PPTP |
| 4 | Transport | Transmisi data end-to-end, flow control | TCP, UDP, SCTP |
| 3 | Network | Routing dan logical addressing | IP, ICMP, Router |
| 2 | Data Link | Framing, error detection, MAC address | Ethernet, Switch, ARP |
| 1 | Physical | Transmisi bit melalui media fisik | Kabel, WiFi, Hub |
ββββββββββββββββββββββββββββββββββββββββββββββββ β OSI 7-LAYER MODEL β β β β Layer 7 ββββββββββββββββββββββββ Applicationβ β β HTTP, FTP, DNS, SMTPβ β β Layer 6 ββββββββββββββββββββββββ€ Present. β β β SSL/TLS, JPEG β β β Layer 5 ββββββββββββββββββββββββ€ Session β β β NetBIOS, RPC β β β Layer 4 ββββββββββββββββββββββββ€ Transport β β β TCP, UDP β β β Layer 3 ββββββββββββββββββββββββ€ Network β β β IP, ICMP, Router β β β Layer 2 ββββββββββββββββββββββββ€ Data Link β β β Ethernet, Switch β β β Layer 1 ββββββββββββββββββββββββ€ Physical β β β Kabel, WiFi, Fiber β β β ββββββββββββββββββββββββ β β β β Mnemonic: "Apa Saja Punya Teknisi β β Network Data Pasrah" β β (Application, Presentation, Session, β β Transport, Network, Data Link, Physical) β ββββββββββββββββββββββββββββββββββββββββββββββββ
Encapsulation dan De-encapsulation
Saat data dikirim dari atas ke bawah (layer 7 β 1), setiap layer menambahkan header sendiri ke data. Proses ini disebut encapsulation. Saat data diterima dari bawah ke atas (layer 1 β 7), header dihapus satu per satu β proses ini disebut de-encapsulation.
| Layer | Unit Data | Proses |
|---|---|---|
| 7-5 (Application, Presentation, Session) | Data | Data dibuat oleh aplikasi |
| 4 (Transport) | Segment (TCP) / Datagram (UDP) | Header TCP/UDP ditambahkan |
| 3 (Network) | Packet | Header IP ditambahkan (src/dst IP) |
| 2 (Data Link) | Frame | Header MAC + trailer FCS ditambahkan |
| 1 (Physical) | Bits | Dikonversi ke sinyal listrik/optik/radio |
3. Model TCP/IP (4 Layer)
Model TCP/IP (juga disebut DoD model atau Internet Protocol Suite) adalah model yang benar-benar digunakan dalam praktik. Model ini memiliki 4 layer yang lebih sederhana dibanding OSI.
Perbandingan OSI vs TCP/IP
| Layer TCP/IP | Setara OSI | Fungsi Utama | Protokol |
|---|---|---|---|
| Application | Layer 5, 6, 7 | Aplikasi, presentasi, sesi | HTTP, DNS, FTP, SSH, SMTP |
| Transport | Layer 4 | Transmisi end-to-end | TCP, UDP |
| Internet | Layer 3 | Addressing dan routing | IP, ICMP, ARP, IGMP |
| Network Access | Layer 1, 2 | Transmisi fisik dan framing | Ethernet, WiFi, PPP |
TCP/IP Model OSI Model βββββββββββ βββββββββ βββββββββββββββββ βββββββββββββββββββββ β Application β β 7. Application β β β βββββββββββββββββββββ€ β (HTTP,DNS) β β 6. Presentation β β β βββββββββββββββββββββ€ β β β 5. Session β βββββββββββββββββ€ βββββββββββββββββββββ€ β Transport β β 4. Transport β β (TCP, UDP) β β β βββββββββββββββββ€ βββββββββββββββββββββ€ β Internet β β 3. Network β β (IP, ICMP) β β β βββββββββββββββββ€ βββββββββββββββββββββ€ β Network β β 2. Data Link β β Access β βββββββββββββββββββββ€ β (Ethernet, β β 1. Physical β β WiFi) β β β βββββββββββββββββ βββββββββββββββββββββ
Model TCP/IP lebih populer karena merupakan model yang benar-benar diimplementasikan. OSI hanyalah model referensi teoritis. Namun, untuk keperluan belajar dan sertifikasi networking, kedua model ini wajib dipahami.
4. Protokol TCP (Transmission Control Protocol)
TCP adalah protokol transport yang bersifat connection-oriented dan reliable. TCP menjamin bahwa data sampai ke tujuan secara utuh, berurutan, dan tanpa error. Protokol ini cocok untuk aplikasi yang membutuhkan keandalan tinggi.
Karakteristik TCP
| Karakteristik | Penjelasan |
|---|---|
| Connection-oriented | Membuat koneksi melalui 3-way handshake sebelum transfer data |
| Reliable | Menjamin data sampai dengan mekanisme ACK dan retransmission |
| Ordered | Data disusun ulang sesuai urutan nomor sequence |
| Flow Control | Mencegah pengirim mengirim data terlalu cepat (windowing) |
| Error Checking | Menggunakan checksum untuk mendeteksi data yang rusak |
| Full-Duplex | Data bisa dikirim dan diterima secara bersamaan |
3-Way Handshake
Sebelum data ditransfer, TCP melakukan proses 3-way handshake untuk membangun koneksi:
Client Server
β β
β ββββ 1. SYN (seq=x) βββββββββββΆ β Client mengirim SYN
β β
β βββ 2. SYN-ACK (seq=y, ack=x+1) βββ Server membalas SYN-ACK
β β
β ββββ 3. ACK (ack=y+1) ββββββββββΆ β Client mengirim ACK
β β
β βββ KONEKSI TERJADI βββ β
β β
β ββββ Data Transfer βββββββββββββΆ β
β ββββ ACK βββββββββββββββββββββββββββ
β β
β ββββ FIN βββββββββββββββββββββββΆ β Koneksi ditutup
β ββββ FIN-ACK βββββββββββββββββββββββ
β β
TCP Header
Header TCP berisi informasi penting yang ditambahkan ke setiap segment:
| Field | Ukuran | Fungsi |
|---|---|---|
| Source Port | 16 bit | Port pengirim |
| Destination Port | 16 bit | Port tujuan |
| Sequence Number | 32 bit | Nomor urut byte pertama dalam segment |
| Acknowledgment Number | 32 bit | Nomor sequence berikutnya yang diharapkan |
| Window Size | 16 bit | Jumlah data yang bisa diterima tanpa ACK |
| Checksum | 16 bit | Error detection untuk header dan data |
| Flags (SYN, ACK, FIN, RST) | 6 bit | Menandai fungsi segment |
Contoh Aplikasi yang Menggunakan TCP
- HTTP/HTTPS β browsing web, mengunduh file
- FTP β transfer file
- SMTP β mengirim email
- SSH β remote server
- Database β koneksi MySQL, PostgreSQL
5. Protokol UDP (User Datagram Protocol)
UDP adalah protokol transport yang bersifat connectionless dan unreliable. UDP tidak membuat koneksi terlebih dahulu dan tidak menjamin data sampai ke tujuan. Namun, UDP lebih cepat dan efisien karena overhead yang lebih kecil.
TCP vs UDP
| Aspek | TCP | UDP |
|---|---|---|
| Koneksi | Connection-oriented (3-way handshake) | Connectionless |
| Keandalan | Reliable (ACK, retransmission) | Unreliable (tidak ada ACK) |
| Urutan | Dijamin berurutan | Tidak dijamin |
| Kecepatan | Lebih lambat (overhead tinggi) | Lebih cepat (overhead rendah) |
| Flow Control | Ada (windowing) | Tidak ada |
| Header Size | 20-60 byte | 8 byte |
| Contoh | HTTP, FTP, SSH, SMTP | DNS, DHCP, VoIP, Streaming |
Kapan Menggunakan UDP?
UDP cocok untuk aplikasi yang membutuhkan kecepatan dan bisa mentolerir kehilangan beberapa data:
- VoIP / Video Call β delay rendah lebih penting dari keandalan
- Online Gaming β latency rendah kritis
- Live Streaming β data lama tidak berguna, lebih baik lewati
- DNS Query β permintaan dan respons kecil, cepat selesai
- DHCP β konfigurasi awal jaringan
- SNMP β monitoring jaringan
Gunakan TCP jika data harus sampai 100% (file transfer, email, web). Gunakan UDP jika kecepatan lebih penting dan kehilangan beberapa paket tidak masalah (video call, gaming, streaming). Beberapa protokol modern seperti QUIC (digunakan oleh HTTP/3) membangun keandalan di atas UDP untuk mendapatkan kecepatan UDP dengan keandalan TCP.
6. IP Addressing
IP Address adalah alat pengenal unik yang diberikan ke setiap perangkat dalam jaringan. IP address memungkinkan perangkat saling menemukan dan berkomunikasi. Saat ini ada dua versi: IPv4 dan IPv6.
IPv4
IPv4 menggunakan 32-bit address yang ditulis dalam format desimal bertitik (dotted decimal), terdiri dari 4 oktet:
| Komponen | Contoh | Penjelasan |
|---|---|---|
| IP Address | 192.168.1.100 | Alamat unik perangkat |
| Subnet Mask | 255.255.255.0 | Memisahkan network ID dan host ID |
| Default Gateway | 192.168.1.1 | Router yang menghubungkan ke jaringan lain |
| DNS Server | 8.8.8.8 | Menerjemahkan nama domain ke IP |
Kelas IP Address
| Kelas | Rentang | Default Mask | Jumlah Host | Penggunaan |
|---|---|---|---|---|
| A | 1.0.0.0 - 126.255.255.255 | /8 (255.0.0.0) | 16.777.214 | Jaringan sangat besar |
| B | 128.0.0.0 - 191.255.255.255 | /16 (255.255.0.0) | 65.534 | Jaringan menengah |
| C | 192.0.0.0 - 223.255.255.255 | /24 (255.255.255.0) | 254 | Jaringan kecil |
| D | 224.0.0.0 - 239.255.255.255 | - | - | Multicast |
| E | 240.0.0.0 - 255.255.255.255 | - | - | Reserved/Experimental |
Private vs Public IP
| Tipe | Rentang | Fungsi |
|---|---|---|
| Private Class A | 10.0.0.0 - 10.255.255.255 | Jaringan internal enterprise besar |
| Private Class B | 172.16.0.0 - 172.31.255.255 | Jaringan internal menengah |
| Private Class C | 192.168.0.0 - 192.168.255.255 | Jaringan rumah / kantor kecil |
| Loopback | 127.0.0.0 - 127.255.255.255 | Testing internal (localhost) |
| APIPA | 169.254.0.0 - 169.254.255.255 | Otomatis saat DHCP gagal |
IPv6
IPv6 menggunakan 128-bit address untuk mengatasi keterbatasan IPv4 (hanya ~4.3 miliar address). Format IPv6 ditulis dalam heksadesimal dengan 8 kelompok, dipisahkan oleh titik dua:
Format IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 Bisa disingkat (hilangkan leading zero): 2001:db8:85a3:0:0:8a2e:370:7334 Bisa disingkat lagi (ganti blok nol dengan ::): 2001:db8:85a3::8a2e:370:7334 Special addresses: ::1 = localhost (loopback) :: = all zeros (unspecified) fe80:: = link-local address
7. Subnetting
Subnetting adalah proses membagi jaringan besar menjadi sub-jaringan (subnet) yang lebih kecil. Subnetting membantu mengelola IP address secara efisien, meningkatkan keamanan, dan mengurangi broadcast domain.
Cara Kerja Subnetting
Subnetting bekerja dengan mengambil bit dari bagian host dan menjadikannya bagian network. Semakin banyak bit yang dipinjam, semakin banyak subnet yang terbentuk tetapi semakin sedikit host per subnet.
| CIDR | Subnet Mask | Jumlah Subnet | Host per Subnet | Total Host |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 1 | 254 | 254 |
| /25 | 255.255.255.128 | 2 | 126 | 252 |
| /26 | 255.255.255.192 | 4 | 62 | 248 |
| /27 | 255.255.255.224 | 8 | 30 | 240 |
| /28 | 255.255.255.240 | 16 | 14 | 224 |
| /29 | 255.255.255.248 | 32 | 6 | 192 |
| /30 | 255.255.255.252 | 64 | 2 | 128 |
Contoh Praktis Subnetting
Network Awal: 192.168.1.0/24 (1 subnet, 254 host) Subnetting /26 β 4 subnet masing-masing 62 host: Subnet 1: 192.168.1.0/26 Network: 192.168.1.0 Hosts: 192.168.1.1 - 192.168.1.62 Broadcast: 192.168.1.63 Subnet 2: 192.168.1.64/26 Network: 192.168.1.64 Hosts: 192.168.1.65 - 192.168.1.126 Broadcast: 192.168.1.127 Subnet 3: 192.168.1.128/26 Network: 192.168.1.128 Hosts: 192.168.1.129 - 192.168.1.190 Broadcast: 192.168.1.191 Subnet 4: 192.168.1.192/26 Network: 192.168.1.192 Hosts: 192.168.1.193 - 192.168.1.254 Broadcast: 192.168.1.255
Rumus Cepat Subnetting
| Rumus | Formula | Contoh /26 |
|---|---|---|
| Jumlah Subnet | 2^n (n = bit dipinjam) | 2^2 = 4 subnet |
| Host per Subnet | 2^h - 2 (h = bit host) | 2^6 - 2 = 62 host |
| Block Size | 256 - subnet mask oktet terakhir | 256 - 192 = 64 |
| Network Address | IP AND Subnet Mask | 192.168.1.0 |
| Broadcast Address | Network + Block Size - 1 | 192.168.1.63 |
8. Port Number
Port number adalah nomor logis yang digunakan untuk mengidentifikasi proses atau layanan tertentu pada perangkat. Kombinasi IP address dan port number disebut socket, yang unik mengidentifikasi koneksi jaringan.
Kategori Port
| Kategori | Rentang | Penjelasan |
|---|---|---|
| Well-Known Ports | 0 - 1023 | Port standar untuk layanan umum (butuh akses admin) |
| Registered Ports | 1024 - 49151 | Port yang didaftarkan oleh aplikasi/software |
| Dynamic/Private Ports | 49152 - 65535 | Port sementara yang digunakan client secara otomatis |
Port yang Sering Digunakan
| Port | Protokol | Layanan | Fungsi |
|---|---|---|---|
| 20/21 | TCP | FTP | Transfer file |
| 22 | TCP | SSH | Remote access terenkripsi |
| 23 | TCP | Telnet | Remote access (tidak aman) |
| 25 | TCP | SMTP | Kirim email |
| 53 | TCP/UDP | DNS | Resolusi nama domain |
| 67/68 | UDP | DHCP | Konfigurasi IP otomatis |
| 80 | TCP | HTTP | Web (tidak terenkripsi) |
| 443 | TCP | HTTPS | Web (terenkripsi TLS/SSL) |
| 3306 | TCP | MySQL | Database MySQL |
| 3389 | TCP | RDP | Remote Desktop Windows |
| 5432 | TCP | PostgreSQL | Database PostgreSQL |
| 8080 | TCP | HTTP Proxy | Proxy server / alternate web |
Port yang terbuka dan tidak digunakan adalah potensi keamanan. Gunakan firewall untuk membuka hanya port yang diperlukan. Hindari menggunakan port well-known untuk layanan non-standar. Selalu nonaktifkan layanan yang tidak digunakan (misalnya Telnet port 23 β gunakan SSH port 22).
9. DHCP dan Konfigurasi Otomatis
DHCP (Dynamic Host Configuration Protocol) adalah protokol yang secara otomatis memberikan IP address dan konfigurasi jaringan ke perangkat yang baru terhubung. Tanpa DHCP, setiap perangkat harus dikonfigurasi manual.
Proses DHCP (DORA)
Client (Baru) DHCP Server
β β
β 1. DHCP Discover (Broadcast) βββββββΆ β Client butuh IP
β "Saya butuh IP address!" β
β β
β βββ 2. DHCP Offer βββββββββββββββββββ Server menawarkan IP
β "Coba pakai 192.168.1.100" β
β β
β 3. DHCP Request (Broadcast) βββββββββΆβ Client meminta IP itu
β "Saya mau 192.168.1.100" β
β β
β βββ 4. DHCP Acknowledgment ββββββββββ Server mengonfirmasi
β "OK, IP itu jadi milikmu" β
β β
Client mendapat: β
- IP: 192.168.1.100 β
- Subnet Mask: 255.255.255.0 β
- Gateway: 192.168.1.1 β
- DNS: 8.8.8.8 β
- Lease Time: 24 jam β
DHCP vs Static IP
| Aspek | DHCP (Dynamic) | Static IP |
|---|---|---|
| Konfigurasi | Otomatis | Manual |
| Kemudahan | Mudah untuk banyak perangkat | Perlu konfigurasi satu per satu |
| Konsistensi | IP bisa berubah | IP tetap |
| Cocok untuk | Client (laptop, HP, printer) | Server, router, perangkat jaringan |
| Troubleshooting | Lebih sulit (IP berubah) | Lebih mudah (IP tetap) |
10. NAT dan Routing
NAT (Network Address Translation) adalah teknik yang digunakan router untuk menerjemahkan IP private ke IP public dan sebaliknya. NAT memungkinkan banyak perangkat di jaringan lokal berbagi satu IP public untuk mengakses internet.
Jenis-jenis NAT
| Jenis NAT | Penjelasan | Penggunaan |
|---|---|---|
| Static NAT | Mapping 1:1 antara private dan public IP | Server yang perlu diakses dari luar |
| Dynamic NAT | Pool IP public dibagi ke beberapa perangkat | Jaringan dengan banyak user |
| PAT (Port Address Translation) | Banyak private IP β 1 public IP dengan port berbeda | Router rumah/kantor (paling umum) |
Dasar-dasar Routing
Routing adalah proses menentukan jalur terbaik agar paket data sampai ke tujuan. Router menggunakan routing table untuk membuat keputusan:
| Jenis Routing | Penjelasan | Contoh |
|---|---|---|
| Static Routing | Rute ditentukan manual oleh admin | Jaringan kecil dengan topologi tetap |
| Dynamic Routing | Rute ditentukan otomatis oleh protokol routing | OSPF, BGP, EIGRP, RIP |
| Default Route | Rute fallback jika tidak ada rute spesifik | 0.0.0.0/0 β gateway |
11. Network Diagnostic Tools
Untuk troubleshooting jaringan, terdapat berbagai tool yang sangat berguna. Berikut adalah tool yang wajib dikuasai oleh setiap network engineer:
1. Ping
Tool untuk menguji konektivitas antara dua perangkat menggunakan protokol ICMP.
| Perintah | Fungsi |
|---|---|
ping google.com | Test konektivitas ke Google |
ping 8.8.8.8 | Test konektivitas ke DNS Google |
ping -t 192.168.1.1 | Ping terus-menerus (Windows) |
ping -c 4 192.168.1.1 | Ping 4 kali (Linux/Mac) |
2. Traceroute
Menampilkan jalur (hop) yang dilalui paket dari sumber ke tujuan.
| Perintah | Fungsi |
|---|---|
tracert google.com | Windows traceroute |
traceroute google.com | Linux/Mac traceroute |
3. nslookup / dig
Query DNS untuk mencari informasi tentang domain.
| Perintah | Fungsi |
|---|---|
nslookup google.com | Cari IP dari domain |
dig google.com | DNS lookup detail (Linux) |
dig MX google.com | Cari mail server domain |
4. ipconfig / ifconfig
Melihat dan mengelola konfigurasi jaringan perangkat.
| Perintah | Fungsi |
|---|---|
ipconfig | Lihat IP address (Windows) |
ipconfig /all | Lihat semua detail jaringan |
ipconfig /release | Lepaskan IP DHCP |
ipconfig /renew | Minta IP baru dari DHCP |
ipconfig /flushdns | Bersihkan cache DNS |
ifconfig | Lihat IP address (Linux/Mac) |
ip addr | Lihat IP address (Linux modern) |
5. Netstat dan ss
Melihat koneksi jaringan aktif dan port yang terbuka.
| Perintah | Fungsi |
|---|---|
netstat -an | Semua koneksi dan port listening |
netstat -tlnp | Port TCP yang sedang listening |
ss -tlnp | Alternatif netstat (Linux modern) |
12. Quiz: Uji Pemahamanmu!
Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang TCP/IP: