User Datagram Protocol (UDP) merupakan protokol yang bersifat connectionless. UDP tidak dapat menjamin pengiriman maupun urutan paket. Sealain itu juga tidak ada mekanisme handshaking. Sehingga, reliabilitas UDP tidak sebaik TCP. UDP menyediakan checksum untuk integritas data dan port number sebagai pengalamatan. UDP diperlukan untuk aplikasi yang membutuhkan komunikasi efisien dan cepat tanpa mempermasalahkan packet loss.
Socket Programming UDP Echo Client Server (Python)
1. LAPORAN PRAKTIKUM JARINGAN KOMPUTER
SOCKET PROGRAMMING: UDP ECHO CLIENT/SERVER
(PYTHON)
LUSIANA DIYAN NINGRUM (2210181051)
2 D4 TEKNIK KOMPUTER B
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA
2020
2. SOCKET PROGRAMMING: UDP ECHO CLIENT/SERVER
(PYTHON)
A. TUJUAN
1. Mahasiswa dapat menjelaskan konsep jaringan berbasis client-server
2. Mahasiswa dapat menjelaskan konsep pemrograman socket berbasis UDP
3. Mahasiswa dapat menjelaskan cara kerja program UDP echo client/server
B. PENDAHULUAN
User Datagram Protocol (UDP) merupakan protokol yang bersifat
connectionless. UDP tidak dapat menjamin pengiriman maupun urutan paket. Sealain
itu juga tidak ada mekanisme handshaking. Sehingga, reliabilitas UDP tidak sebaik
TCP. UDP menyediakan checksum untuk integritas data dan port number sebagai
pengalamatan. UDP diperlukan untuk aplikasi yang membutuhkan komunikasi efisien
dan cepat tanpa mempermasalahkan packet loss.
Pada gambar 1 menunjukkan proses pengiriman data untuk komunikasi
menggunakan protokol UDP. Bila dilihat pada gambar ataupun pada prosedur
percobaan, pada sisi server tidak ada proses listen dan accept seperti pada TCP.
Namun, hanya ada proses bind untuk menghubungkan socket dengan port dan proses
menunggu pesan yang dikirim dari client. Sedangkan pada sisi client menggunakan
sendto() untuk mengirimkan pesan secara langsung ke server, dan recvfrom() untuk
menerima pesan balasan dari server.
Gambar 1. UDP Socket
4. 3. Jalankan program server.py terlebih dulu. Tampilkan hasil pengujian anda.
(Catatan : port tersebut adalah port server, dimana client nantinya akan
menggunakan port tersebut agar terhubung ke server, gunakan non privileged
ports)
4. Jalankan program echo client secara terpisah terminal atau command prompt dari
program echo server. Tampilkan hasil pengujian anda.
Sedangkan pada server akan tampil seperti berikut:
Beberapa saat kemudian akan tampil tulisan seperti berikut pada sisi client
5. Pada pengujian di prosedur 3 dan 4 menggunakan localhost, anda dapat juga
menggunakan host yang berbeda dengan menyesuaikan IP address tujuan.
5. 6. Lakukan packet analysis menggunakan aplikasi Wireshark untuk mengamati
pengiriman datamenggunakan protokol UDP
6. 7. Lakukan packet analysis menggunakan aplikasi Wireshark untuk mengamati
pengiriman data menggunakan protokol TCP, gunakan program TCP socket pada
praktikum sebelumnya
8. Lakukan analisa dari pengamatan yang sudah anda lakukan menggunakan
protokol TCP dan UDP. Jelaskan apa saja yang dapat anda analisa dari capture
paket pada Wireshark, dan apa saja perbedaan pada paket data yang dikirimkan
menggunaakan TCP dan UDP.
ANALISA
Jaringan client server didefinisikan sebagai suatu arsitektur jaringan komputer dimana
perangkat client melakukan proses meminta data, dan server yang memiliki tugas untuk
memberikan respon berupa data terhadap request tersebut. Perangkat client biasanya berupa
perangkat komputer dengan aplikasi software jaringan yang telah terinstal guna untuk
meminta dan menerima data melalui jaringan. Server merupakan sebuah komputer yang
dirancang khusus untuk melayani client dengan memproses request yang telah diterima dari
client lalu kemudian mengirimkan kembali respon data kepada client melalui jaringan. Server
menyimpan informasi dan data yang kompleks yang mungkin dibutuhkan client, oleh karena
itu biasanya server terdiri dari komputer dengan performa yang tinggi baik dari segi
pemrosesan maupun dari segi memori, hal tersebut agar server mampu melayani request dari
banyak client secara bersamaan.
Socket programming adalah pemrograman yang menggunakan socket. Socket ini
semacam terowongan/tunnel yang bisa dipakai untuk komunikasi/pertukaran arah secara
bolak-balik. Dengan socket programming, komunikasi dapat terjalin antara bahasa
pemrograman yang berbeda, antara tingkatan user yang berbeda, bahkan antar komputer yang
berbeda atau gabungan ketiganya.
Secara garis besar langkah–langkah yang dilakukan pada client adalah sebagai berikut
dimulai dengan membuka koneksi client ke server, yang di dalamnya adalah membuat socket
dengan perintah socket(), kemudian melakukan pengalamatan ke server. Setelah itu
melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah
7. recvfrom() dan sendto(). Dan terakhir menutup hubungan dengan perintah close(). Untuk
menampilkan hasil pada terminal menggunakan perintah echo().
Sama halnya dengan langkah – langkah yang dilakukan pada client, untuk membuat
server yang harus dilakukan antara lain dimuali dengan membuat socket dengan perintah
socket(). Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan
perintah recvfrom() dan sendto( ). Dan untuk menampilkan hasil pada terminal menggunakan
perintah echo().
Jaringan komputer dalam melakukan pengiriman data bisa diilustrasikan sebagai
pengiriman surat. Supaya surat bisa terkirim secara benar maka alamat pengirim dan
penerima harus tertulis dengan jelas dan lengkap. Begitu juga dalam koneksi di socket,
diperlukan variable yang dipakai untuk menyimpan address client dan server.
Proses dari kerja aplikasi yang menggunakan UDP adalah untuk bisa melakukan
koneksi client server, program server harus berjalan terlebih dahulu. UDP memiliki sebuah
saluran (channel) yang berguna untuk menghubungkan host antar host untuk saling berkirim
informasi. Channel ini kemudian disebut dengan port UDP. Agar dapat terhubung dengan
protokol UDP, aplikasi pada komputer terlebih dahulu perlu menyediakan alamat IP serta
nomor port UDP dari host yang ingin dituju. Port UDP ini berguna sebagai sebuah
multiplexed message queue. Artinya, port UDP tersebut kemudian mampu bekerja dengan
menerima beberapa pesan secara bersamaan. Setiap port UDP memiliki identifikasi dengan
nomor yang unik, namun memiliki pembagian tersendiri seperti yang telah dijelaskan
sebelumnya. Pada kehidupan sehari-hari UDP dianalogikan seperti proses pengiriman pesan
pada alat komunikasi telepon selular dengan menggunakan fasilitas SMS (Short Messsage
Service) dimana kita tidak harus selalu berada ditempat untuk menunggu pesan karena pesan
yang dikirim melalui fasilitas SMS akan sampai sekalipun telepon selular itu tidak diaktifkan.
Wireshark adalah program Network Protocol Analyzer atau penganalisa protokol
jaringan yang lengkap. Program ini dapat merakam semua paket yang lewat serta menyeleksi
dan menampilkan data tersebut sedetail mungkin. Wireshark bekerja dengan cara merekam
semua paket yang melewati interface yang dipilih (Interface adalah perangkat penghubung
antar jaringan, bisa melalui wifi atau ethernet / lan card). Hasil rekaman tadi dapat dianalisa.
disini kita dapat memfilter protocol apa yang kita inginkan seperti tcp, http, udp dan
sebagainya. Wireshark juga dapat mencatat cookie, post dan request.
KESIMPULAN
Berdasarkan praktikum dan analisa dapat ditarik kesimpulan sebagai berikut :
1. Jaringan client server merupakan suatu arsitektur jaringan komputer dimana perangkat
client melakukan proses meminta data, dan server yang memiliki tugas untuk
memberikan respon berupa data terhadap request tersebut.
8. 2. User Datagram Protocol (UDP) merupakan protokol yang bersifat connectionless
sehingga client tidak membangun koneksi ke server sebelum mengirim data – client
hanya mengirim data secara langsung.
TUGAS PERTANYAAN
1. Jelaskan beberapa keunggulan protokol UDP
Dapat disiarkan dengan cepat karena tidak memerlukan handshaking
Koneksi lebih cepat karena mereka tidak perlu bernegosiasi (berjabat tangan) dan juga
pengirimannya tidak berurutan
Hemat memori karena tanpa memecah data, membuat acknowledge, dan lainnya
2. Sebutkan beberapa contoh penerapan protokol UDP pada pengiriman data di
jaringan internet, serta jelaskan mengapa aplikasi tersebut menggunakan UDP.
UDP adalah kependekan dari User Datagram Protocol metupakan bagian dari internet
protocol. Dengan UDP, aplikasi komputer dapat mengirimkan pesan kepada komputer
lain dalam jaringan lain tanpa melakukan komunikasi awal. UDP melakukan
komunikasi secara sederhana dengan mekanisme yang sangat minimal. UDP
digunakan untuk komunikasi yang sederhana seperti query DNS (Domain Name
System), NTP (Network Time Protocol), DHCP (Dinamic Host Configuration
Protocol), dan RIP (Routing Information Protocol).
Pada query DNS, komputer meminta informasi suatu data dari suatu domain kepada
DNS server. Data ini mungkin alamat web server, alamat mail server dan data-data
yang lain terkait domain. DNS server akan membalas dengan memberikan informasi
yang diinginkan client Pada NTP, client meminta informasi waktu kepada NTP
server. NTP server akan membalas waktu pada saat itu. Dengan demikian maka client
akan memiliki system waktu yang akurat. Pada DHCP, client akan menghubungi
DHCP server untuk meminta alamat IP untuk dia pakai sendiri. DHCP server akan
memberikan informasi alamat IP supaya digunakan oleh client tersebut. Pada RIP,
server RIP akan melakukan broadcast informasi routing kepada router-router yang
lain.
UDP cocok untuk pengiriman informasi yang lebih menekankan kecepatan daripada
kehandalan. Contoh aplikasi ini adalah audio streaming dan video streaming.
9. 3. Jelaskan perbedaan TCP dan UDP
Perbedaan TCP UDP
Jenis Koneksi
Connection-oriented : semua
paket data yang dikirimkan
akan diperiksa kembali. Jika
terdapat informasi yang
hilang / tidak sesuai dengan
paket yang dikirimkan, maka
paket data akan dikirimkan
kembali.
Connectionless : semua paket
data dikirimkan tanpa adanya
pengecekan hingga semua
data sampai ke tujuan. Hal
ini menyebabkan, jika ada
informasi yang hilang akan
diabaikan.
Basis koneksi
Connection based :
pengiriman paket data
melalui internet dari satu
komputer ke komputer lain.
(dalam jaringan)
Not connection based : paket
data akan langsung
dikirimkan ke tujuan. (host-
to-host tidak dalam jaringan
TCP/IP)
Penggunaan
Cocok untuk aplikasi yang
memerlukan keandalan tinggi
dengan waktu yang kurang
cepat.
Cocok untuk aplikasi yang
membutuhkan transmisi
cepat, efisien dan
mengijinkan adanya sedikit
informasi yang hilang.
Contoh aplikasi / port
Telnet, FTP (File Transfer
Protocol), SMTP (Simple
Mail Transfer Protocol)
Game, DNS (Domain Name
System), SNMP (Simple
Network Management
Protocol), Remote Procedure
Call (RPC), Lightweight
Directory Access Protocol
(LDAP), TFTP dan SunRPC.
Overhead
Digunakan untuk
memaksimalkan performansi.
Membutuhkan overhead
yang lebih kecil.
Ukuran header 20 byte 8 byte
Pembuatan koneksi
Membutuhkan three-way-
handshake*.
Tidak membutuhkan
pembuatan koneksi.
Keandalan (reliability)
Data terjamin akan sampai
sesuai urutannya dan tidak
ada data yang hilang (utuh).
Tidak terjamin data akan
sama persis dengan yang
dikirimkan.
Besar paket
Dapat mengijinkan transfer
dengan data yang besar per
paketnya.
Hanya mengijinkan transfer
data untuk data kecil per
paketnya.
Keamanan
Menawarkan keamanan yang
lebih baik untuk spoofing
attack.
Tidak dapat menawarkan
keamanan pada data yang
dikirimkan.
Data flow control Memiliki flow control. Tidak memiliki flow control.
Karakteristik
TCP adalah protokol yang
memiliki karakteristik
berdasarkan koneksi atau
berorientasi koneksi.
UDP tidak berbasis koneksi
Komunikasi
TCP memungkinkan
beberapa komputer berbeda
UDP kurang dapat
diandalkan dalam
10. untuk berkomunikasi dan
bertukar data.
memfasilitasi komunikasi
tanpa koneksi antara
beberapa komputer host,
yang berada di jaringan TCIP
/ IP.
Port
TCP menggunakan port yang
mengadopsi bilangan bulat
16-bit (antara 0-65535), yang
harus unik atau berbeda antar
port.
UDP menggunakan port
integer 16-bit tetapi juga
dibagi menjadi tiga bagian,
yaitu port 1-1023 untuk port
terkenal, port 1024-49151
untuk port terdaftar, dan
sisanya untuk port ephemeral
di nomor 49152-65535.
Transmisi Data
TCP dapat menggunakan
jalur data dupleks penuh,
yang berarti bahwa antara
titik masuk dan keluar data
dipisahkan menjadi dua
baris. Sehingga proses
pengiriman dan penerimaan
dapat dilakukan secara
bersamaan.
UDP dapat mengirim data
dalam bentuk paket
datagram, tanpa nomor
pengenal. Ini berarti bahwa
kemungkinan besar data
yang diperoleh tidak
berurutan, dan mungkin
rusak atau bahkan hilang
selama proses pengiriman
dari host asli ke tujuan.