Cara Kerja Internet · Pelajaran 3 dari 8
Data dikirim dalam paket
7 menit baca · BelajarCode
Data di internet tidak dikirim utuh sekaligus. Sebuah foto atau pesan dipecah menjadi paket-paket kecil. Setiap paket berisi:
- Header: alamat pengirim, alamat tujuan, dan nomor urut paket.
- Isi: potongan data yang sebenarnya.
Setiap paket bisa menempuh jalur yang berbeda melewati router-router internet. Paket bisa tiba dengan urutan acak, bahkan ada yang hilang. Di tujuan, paket disusun ulang berdasarkan nomor urutnya.
Simulasi dengan Python
1pesan = "Besok upacara pukul tujuh"2ukuran = 63paket = []4for i in range(0, len(pesan), ukuran):5 paket.append((i // ukuran, pesan[i:i + ukuran]))6print("Dikirim:", paket)78tiba = [paket[2], paket[0], paket[4], paket[1], paket[3]]9print("Tiba acak:", [p[0] for p in tiba])1011tersusun = sorted(tiba)12hasil = ""13for nomor, isi in tersusun:14 hasil += isi15print("Disusun ulang:", hasil)Dikirim: [(0, 'Besok '), (1, 'upacar'), (2, 'a puku'), (3, 'l tuju'), (4, 'h')] Tiba acak: [2, 0, 4, 1, 3] Disusun ulang: Besok upacara pukul tujuh
sorted mengurutkan paket berdasarkan nomor urutnya, sehingga pesan kembali utuh walaupun paket tiba acak.
TCP dan UDP
| TCP | UDP | |
|---|---|---|
| Cara kerja | Memastikan semua paket sampai dan urut, paket yang hilang dikirim ulang | Mengirim secepatnya tanpa memastikan |
| Kelebihan | Data utuh dan benar | Cepat, jeda kecil |
| Dipakai untuk | Halaman web, email, unduhan file | Panggilan video, siaran langsung, game online |
Pada panggilan video, lebih baik satu potongan gambar hilang sesaat daripada seluruh percakapan tertunda menunggu paket yang dikirim ulang.
Cek pemahaman
Kenapa setiap paket data diberi nomor urut?
Latihan
Paket yang hilang
Pada pengiriman dengan TCP, penerima perlu tahu paket mana yang belum tiba supaya bisa meminta dikirim ulang. Diberikan 8 paket bernomor 0 sampai 7, dan yang tiba adalah nomor [0, 1, 3, 4, 6, 7]. Tulis program yang menampilkan nomor paket yang hilang.
Pembahasan
1total = 82tiba = [0, 1, 3, 4, 6, 7]3hilang = []4for nomor in range(total):5 if nomor not in tiba:6 hilang.append(nomor)7print("Minta kirim ulang paket:", hilang)Minta kirim ulang paket: [2, 5]
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.