100% menganggap dokumen ini bermanfaat (1 suara)
462 tayangan19 halaman

Socket TCP Dan UDP

Makalah ini membahas tentang Socket TCP dan UDP. Secara singkat, Socket merupakan cara berkomunikasi antar program atau node menggunakan file deskriptor. Ada dua jenis Socket yaitu TCP yang bersifat connection oriented dan reliable, serta UDP yang bersifat connectionless dan unreliable. Makalah ini menjelaskan pengertian, karakteristik, contoh aplikasi dari kedua jenis Socket.

Diunggah oleh

HendrixKepleng
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
462 tayangan19 halaman

Socket TCP Dan UDP

Makalah ini membahas tentang Socket TCP dan UDP. Secara singkat, Socket merupakan cara berkomunikasi antar program atau node menggunakan file deskriptor. Ada dua jenis Socket yaitu TCP yang bersifat connection oriented dan reliable, serta UDP yang bersifat connectionless dan unreliable. Makalah ini menjelaskan pengertian, karakteristik, contoh aplikasi dari kedua jenis Socket.

Diunggah oleh

HendrixKepleng
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 19

Pemrograman

Socket TCP dan Socket UDP


Makalah ini disusun guna memenuhi tugas mata kuliah Pemrograman
jaringan Yang diampu oleh Bapak Mahmudi, S.Kom

Oleh
Amalia Eka Hasti Adhana (8010022)
Devi Mega Sari (8010039)
Hendrik Hidayat (8010063)
Ita Amalia (8010073)

FAKULTAS TEKNIK DAN ILMU KOMPUTER


UNIVERSITAS SAINS AL-QURAN JAWA TENGAH
DI WONOSOBO
2013
PENDAHULUAN

A. Latar Belakang Masalah

Perkembangan teknologi informasi tidak lepas dari pesatnya pertumbuhan


pengguna internet. Internet adalah sistem jaringan komputer yang terhubung
secara global yang dapat melakukan pertukaran data. Dalam melakukan
transkasinya dikenal paradigma client-server; yang menitikberatkan pada
pendistribusian data ke dua pihak: kepada klien maupun server. Klien adalah
komponen yang meminta request panggilan kepada server. Sementara server
adalah komponen yang memproses request dari klien; dan langsung
mengembalikan hasilnya kepada klien. Sebuah server dapat menerima banyak
request dari klien.

Client-Server merupakan sebuah model komputerisasi dimana sebuah


aplikasi client dijalankan di komputer desktop atau komputer pribadi yang
mengakses informasi pada server atau host yang terletak di lain tempat. Bagian
dari aplikasi yang dijalankan di client biasanya digunakan untuk mengoptimalkan
interaksi dengan user, dimana server menyediakan proses tersentralisasi dan
bekerja secara multiuser

Socket adalah sebuah cara untuk berkomunikasi dengan program atau


node lain menggunakan file deskriptor. Penggunaan socket programming
memungkinkan adanya komunikasi antara client dan server. Salah satu contoh
sederhana penggunaan socket programming adalah pembuatan program untuk
chatting. ada dua jenis socket yang bisa digunakan untuk membangun aplikasi,
yakni TCP Socket dan UDP Socket. Perbedaan utamanya adalah, di model TCP
digunakan konsep connection oriented dan reliable data transfer, sedangkan di
model UDP digunakan konsep connectionless oriented dan unreliable data
transfer.
B. Rumusan Masalah

Rumusan Masalah yang dapat diambil dari aar belakang diatas adalah:

1. Apa pengertian socket


2. Bagaimana pengaplikasian Socket pada Java
3. Apa pengertian socket UDP dan TCP (pengertian, karakteristik, kelebihan
dan kekurangan, cara penggunaan, contoh pengaplikasiannya)
4. Apa Perbedaan Socket TCP dan UDP
5. Contoh Aplikasi TCP dan UDP dengan Java

BAB II
PEMBAHASAN

A. Pengertian Socket

Socket adalah salah satu cara untuk komunikasi antar komputer, umumnya
lewat network atau internet. Socket biasa digunakan untuk pemrograman berbasis
client-server yang dapat menggunakan socket TCP/IP atau socket UDP

Socket berfungsi sebagai jalan untuk melakukan komunikasi antar mesin


seperti transfer data dan informasi jaringan.

Untuk berkomunikasi dengan server, client harus tahu nomor IP server


begitu juga nomor port yang dituju, nomor port menunjukkan service yang
dijalankan. Contoh port 23 untuk Telnet Server, port 25 untuk Mail Server dan
port 80 untuk Web Server. Dalam hal ini aplikasi di client sudah mengetahui port
yang akan dituju. Contoh program aplikasi di client yang meminta service di
server adalah ftp, telnet, ssh.

Program yang berjalan di server, akan berjalan sepanjang waktu (disebut


sebagai daemon) sampai mesin/service dimatikan, menunggu request dari client
sesuai service yang diminta

B. Socket Java
Model pemrograman client-server menggunakan dari dua macam koneksi
pada layer 4/ layer transport OSI, yaitu connection oriented dan connectionless
oriented. Untuk connection oriented menggunakan protokol TCP (Transmission
Control Protocol). Sedangkan connectionless oriented menggunakan UDP (User
Datagram Protocol ).

Pada beberapa aplikasi java telah disediakan paket java.net yang berisi
kelas-kelas dan interface yang menyediakan API (Application Programming
Interface) level rendah (Socket, ServerSocket,DatagramSocket) dan level tinggi
(URL, URLConnection). Berikut adalah contoh dari kelas Socket berikut method
dan eksepsi error yang tersedia.

Socket (String host, int port, InetAddress localAddr, intlocalPort);

membuat sebuah socket dan mengkoneksikannya ke port yang dituju pada


alamat IP yang disebutkan pada parameter address atau nama host. Selain
itu juga akan dilakukan bind socket ke alamat lokal dan port lokal. Hal ini
dilakukan jika koneksi antara client dan server membutuhkan nomor port
yang sudah ditentukan.

Methods :

getInetAddress() : untuk mendapatkan nama host yang dituju dan alamat


IPnya
getPort() : untuk mendapatkan nomor remote host
getLocalPort(): untuk mendapatkan nomor port localhost
getLocalAddress(): untuk mendapatkan alamat local dimana socket
digunakan
getInputStream(): mengembalikan objek input stream dari socket
getOutputStream(): mengembalikan objek output stream ke socket
setSoTimeout(int timeout) dan getSoTimeOut() : Kedua method tersebut
digunakan untuk memberi (set) dan mengambil (get) nilai opsi Socket
untuk time out block (dalam milidetik) reading dari socket
(SO_TIMEOUT).
Jika dalam waktu timeout tidak mendapat suatu nilai maka, akan dilemparkan
ke exception java.net.SocketTimeoutException. Nilai default timeoutnya
adalah 0, yang berarti tanpa batas.

Exceptions :

SocketException : Kelas ini merupakan kelas yang diturunkan dari kelas


IOException. Kelas exception ini dipanggil atau dipicu ketika ada
kegagalan dalam pemakaian socket, sebagai contoh adalah kegagalan
dalam protokol TCP. Salah satu penyebabnya yang mungkin terjadi adalah
ketika port yang akan digunakan sudah digunakan sebelumnya pada
localhost. Penyebab yang lain adalah user tidak dapat melakukan bind ke
port yang dituju. Misalnya saja, Anda ingin menggunakan port 80 untuk
aplikasi Anda, namun ternyata pada komputer Anda tersebut sudah
berjalan HTTP Server yang juga menggunakan port 80. Bila hal ini terjadi,
maka JVM akan melemparkan kegagalan yang ada ke kelas exception
SocketException.
BindException : Exception ini akan dipanggil ketika ada port lokal yang
akan digunakan sudah terpakai oleh yang lain, atau ada kegagalan dalam
permintaan untuk menggunakan alamat.
ConnectException : Exception ini akan dipanggil ketika sebuah koneksi
ditolak oleh host yang dituju, oleh karena tidak ada proses yang siap
menerima data pada port yang dituju.
NoRouteToHostException: Koneksi yang akan dibangun tidak dapat
dipenuhi oleh karena melebihi waktu timeout yang tersedia atau host yang
dituju tidak dapat dicapai (unreachable).

C. Tipe-tipe Socket

1. User Datagram Protocol ( UDP )

a. Apa itu UDP


UDP (User Datagram Protocol) adalah salah satu protocol lapisan
transport TCP/IP yang mendukung komunikasi yang tidak andal (unreliable),
tanpa koneksi (connectionless) antar host dalam jaringan yang mengunakan
TCP/IP. Dalam UDP tidak ada kontrol kemacetan koneksi (congestion
control), artinya UDP dapat mengirimkan per segment tanpa dipengaruhi oleh
kesibukan jaringan.

UDP digunakan untuk pengiriman data secara cepat tanpa memperhatikan


ketepatan pengiriman data. UDP tidak pernah digunakan untuk mengirim data
penting seperti halaman web , informasi database, dan lain-lain. UDP biasanya
digunakan untuk streaming audio dan video.

b. Karakteristik UDP
Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan
tanpa harus dilakukan proses negosiasi koneksi antara dua host yang
hendak berukar informasi. Hal ini berarti bahwa suatu paket yang
dikirim melalui jaringan dan mencapai komputer lain tanpa membuat
suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang
karena tidak ada koneksi langsung antara kedua host.
Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai
datagram tanpa adanya nomor urut atau pesan acknowledgment.
Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan
pemulihan terhadap pesan-pesan yang hilang selama transmisi.
Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP
mengimplementasikan layanan keandalan mereka masing-masing, atau
mengirim pesan secara periodik atau dengan menggunakan waktu yang
telah didefinisikan.
c. Aplikasi UDP
Digunakan untuk multimedia streaming, yang sangat memberikan
toleransi kehilangan segment cukup baik dan yang sangat tidak
sensitive terhadap kerusakan atau kehilangan segment.
Contoh protokol aplikasi yang menggunakan UDP :
o DNS (Domain Name System) 53
o SNMP, (Simple Network Management Protocol) 161, 162
o TFTP (Trivial File Transfer Protocol) 69
o SunRPC port 111.
d. Kelebihan UDP
Tidak perlu adanya setup koneksi terlebih dahulu (hal ini dapat
menyebabkan tambahan delay)
sederhana, artinya antara penerima dan pengirim tidak perlu menjaga
session atau status koneksi
ukuran header segment sederhana
tidak perlu kontrol kemacetan koneksi, artinya UDP dapat
mengirimkan per segment tanpa dipengaruhi oleh kesibukan jaringan
e. Kelemahan UDP
segmen UDP mungkin akan hilang
paket diterima mungkin dalam keadaan yang tidak urut. Jika paket
yang diterima tidak urut, paket akan dibuang.
f. Pemrograman Socket mengguanakan UDP
1) Client membaca inputan dari keyboard, kemudian mengirimkan
hasilnya ke server melalui socket-nya.
2) Server membaca data yang dikirim oleh client di connection socket
3) Server mengubah data menjadi huruf besar
4) Server mengirimkan data yang telah diubah menuju client melalui
socket-nya.
5) Client membaca data yang dikirim oleh server dari client socket-
nya. Kemudian menampilkan data tersebut di monitor

2. Transport Layer Protocol ( TCP )


a. Apa Itu TCP

TCP adalah komunikasi yang berorientasi koneksi (Connection oriented


communication). karena TCP menerapkan model koneksi connection oriented,
maka ketika setup data sudah terbentuk, antara pengirim dan penerima dapat
saling mempertukarkan data secara full duplex dengan tetap menjaga session
koneksi diantara penerima dan pengirim (stateful). Untuk dapat melaksanakan
mekanisme tersebut, di bawah ini adalah contoh, bagaimana mekanisme three-
way handshake terjadi pada TCP dengan menggunakan field sequence number
dan acknowledge number :

b. Karakteristik TCP
Connection-oriented : Suatu arsitektur/mekanisme komunikasi data di
mana dua perangkat yang akan saling berkomunikasi diharuskan untuk
membuat sebuah sesi (session) terlebih dahulu.
Reliabel : Keandalan yang dimiliki oleh protokol ini disebabkan
karena beberapa mekanisme seperti : Checksum, Duplicate Data
Detection, Retransmisson, Sequencing, Timers.
Stream data transfer : TCP akan mengelompokkan byte-byte yang
sebelumnya tidak terstruktur ke dalam bentuk segmen untuk kemudian
dikirimkan ke IP. Layanan ini memberikan keuntungan bagi aplikasi-
aplikasi karena mereka tidak perlu lagi membuat blok- blok data.
Efficient flow control : Ketika mengirim ulang acknowledgement ke
alamat asal, proses TCP yang menerima mengindikasikan nomor
urutan yang bisa diterimanya tanpa harus meng-over flow buffer
internal miliknya.
Full-duplex operation : TCP bisa mengirim dan menerima dalam
waktu yang bersamaan.
Multiplexing : Komunikasi antar upper-layer yang terjadi secara
simultan bisa dimultiplexikan melalui satu koneksi tunggal
c. Kelebihan TCP adalah
Error Recovery
Pengirim dan penerima juga melengkapi data dengan sejumlah
informasi yang bisa digunakan untuk memeriksa data yang dikirimkan
bebas dari kesalahan. Jika ditemukan kesalahan pada paket data yang
diterima, maka penerima tidak akan menerima data tersebut. Pengirim
akan mengirim ulang paket data yang mengandung kesalahan tadi.
Namun hal ini dapat menimbulkan delay yang cukup berarti.

Flow Control
Flow control menentukan kapan data harus dikirim kembali , dan
kapan menghentikan aliran data paket sebelumnya , sampai berhasil
ditransfer . Hal ini karena jika paket data berhasil dikirim , tabrakan
dapat terjadi . Ketika ini terjadi , maka klien meminta kembali paket
dari server sampai seluruh paket lengkap di transfer dan identik dengan
aslinya.
d. Kelemahan TCP
Memungkinkan buffer overflow attack. Korban adalah aplikasi yang
tidak di tulis dengan baik, memanfaatkan kesalahan programming
untuk mengeksekusi kode sisipan, dapat dieksploitasi secara remote
atau lokal (tergantung aplikasi), dan spesifik pad prosesor dan system
operasi tertentu.
Memungkinkan terjadinya denial of service. Denial of sevice
menjadikan servis tidak dapat di gunakan lagi. Target denial of service,
yaitu koneksi jaringan penghubung antarservis dan user, system
operasi yang di gunakan dan aplikasi yang menyediakan servis.
e. Contoh protokol aplikasi yang menggunakan TCP
Telnet/TeleNetwork adalah remote login yang dapat terjadi di internet
karena ada service dari protocol TELNET. Dengan Telnet
memungkinkan kita untuk mengakses komputer lain secara remote
melalui internet.
FTP (File Transfer Protocol)
f. Pemrograman Socket Menggunakan TCP
Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini :
Detail dari proses tersebut adalah :

1. Untuk bisa melakukan koneksi client server, program server harus


berjalan terlebih dahulu
2. Di sisi server disediakan sebuah socket, yang disebut welcoming
socket yang fungsinya untuk mendeteksi adanya permintaan koneksi dari
sisi client.
3. Di sisi client terdapat client socket. Jika ingin menghubungi server,
maka melalui client socket-nya, client membuat inisialisai koneksi ke
welcoming socket milik server, dengan mode three-way handshake.
4. Setelah welcoming socket menerima inisialisasi koneksi dari client
socket, aplikasi server akan membuat connection socket di sisi server.
Dengan connection socket ini, client socket dan connection socket
berinteraksi satu sama lain untuk mengirim dan menerima data.
5. Client membaca data yang dikirim oleh server dari client socket-
nya. Kemudian menampilkan data tersebut di monitor.

D. Perbedaan TCP dan UDP

TCP UDP

Connection-Oriented (koneksi Connectionless (tanpa koneksi):


bersambungan) : Sebelum data dapat Pesan-pesan UDP akan dikirimkan
ditransmisikan antara dua host, dua proses tanpa harus dilakukan proses
yang berjalan pada lapisan aplikasi harus negosiasi koneksi antara dua host
melakukan negosiasi untuk membuat sesi yang hendak berukar informasi.
koneksi terlebih dahulu. Koneksi TCP
ditutup dengan menggunakan proses
terminasi koneksi TCP (TCP connection
termination).

Reliable (dapat diandalkan): Data yang Unreliable (tidak andal): Pesan-


dikirimkan ke sebuah koneksi TCP akan pesan UDP akan dikirimkan sebagai
diurutkan dengan sebuah nomor urut datagram tanpa adanya nomor urut
paket dan akan mengharapkan paket atau pesan acknowledgment.
positive acknowledgment dari penerima. Protokol lapisan aplikasi yang
Jika tidak ada paket Acknowledgment dari berjalan di atas UDP harus
penerima, maka segmen TCP (protocol melakukan pemulihan terhadap
data unit dalam protokol TCP) akan pesan-pesan yang hilang selama
ditransmisikan ulang. Pada pihak transmisi. Umumnya, protokol
penerima, segmen-segmen duplikat akan lapisan aplikasi yang berjalan di
diabaikan dan segmen-segmen yang atas UDP mengimplementasikan
datang tidak sesuai dengan urutannya layanan keandalan mereka masing-
akan diletakkan di belakang untuk masing, atau mengirim pesan secara
mengurutkan segmen-segmen TCP. Untuk periodik atau dengan menggunakan
menjamin integritas setiap segmen TCP, waktu yang telah didefinisikan.
TCP mengimplementasikan penghitungan
TCP Checksum.
Memiliki layanan flow control: Untuk UDP tidak menyediakan
mencegah data terlalu banyak dikirimkan mekanisme flow-control, seperti
pada satu waktu, yang akhirnya membuat yang dimiliki oleh TCP.
"macet" jaringan internetwork IP, TCP
mengimplementasikan layanan flow
control yang dimiliki oleh pihak pengirim
yang secara terus menerus memantau dan
membatasi jumlah data yang dikirimkan
pada satu waktu. Untuk mencegah pihak
penerima untuk memperoleh data yang
tidak dapat disangganya (buffer), TCP
juga mengimplementasikan flow control
dalam pihak penerima, yang
mengindikasikan jumlah buffer yang
masih tersedia dalam pihak penerima
Melakukan segmentasi terhadap data UDP tidak menyediakan
yang datang dari lapisan aplikasi. mekanisme segmentasi data yang
besar ke dalam segmen-segmen
data, seperti yang terjadi dalam
protokol TCP.

E. Contoh Pemrograman Socket TCP dan UDP pada Java


1. UTPProfilClient
import java.io.*;
import java.net.*;
import java.util.*;

public class TCPprofilClient {


//private static String strHost;
private static InetAddress host;
private static final int PORT = 1745;
UTPProfilServer
import java.io.*;
import java.net.*;
import java.util.*;

public class TCPprofilServer {


private static ServerSocket servSock;
private static final int PORT = 1745;

public static void main(String[] args) {


System.out.println("Membuka Socket...\n");
try{
2. UDPserver
import java.net.*;
import java.io.*;
import java.util.*;

public class UDPServer {

public static void main(String[] args) {


UDPClient
import java.net.*;
import java.io.*;
import java.util.*;
public class UDPClient {
public static void main (String args[ ]) {
try{
// buat socket UDP untuk port 2000
DatagramSocket socket = new DatagramSocket(2000);
// buat paket UDP yang berisi buffer 256 byte
DatagramPacket packet =
new DatagramPacket( new byte[256], 256 );
// terima paket ini adalah operasi terblok
socket.receive(packet);
// tampilkan informasi paket
InetAddress remote_addr = packet.getAddress();
System.out.println ("Pengirim : " +
remote_addr.getHostAddress( ) );
System.out.println ("dari Port: " + packet.getPort());
// tampilkan isi paket
ByteArrayInputStream bin =
new ByteArrayInputStream(packet.getData());
for (int i=0; i < packet.getLength(); i++) {
int data = bin.read();
if (data == -1)
break;
else
System.out.print ( (char) data) ;
}
socket.close( );
}
catch (IOException e) {
System.out.println ("Error - " + e);
}
} //akhir dari main()
} //akhir dari class

BAB III
PENUTUP

A. Kesimpulan

Socket adalah salah satu cara untuk komunikasi antar komputer, umumnya lewat
network atau internet.

UDP (User Datagram Protocol) adalah salah satu protocol lapisan transport
TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi
(connectionless) antar host dalam jaringan yang mengunakan TCP/IP.

TCP adalah komunikasi yang berorientasi koneksi (Connection oriented


communication).

Perbedaan utamanya antara keduanya adalah, di model TCP digunakan konsep


connection oriented dan reliable data transfer, sedangkan di model UDP
digunakan konsep connectionless oriented dan unreliable data transfer.

Anda mungkin juga menyukai