EL4120-tugas1-13210140
-
Upload
erich-pratama-saputra -
Category
Documents
-
view
214 -
download
0
Transcript of EL4120-tugas1-13210140
-
7/24/2019 EL4120-tugas1-13210140
1/16
EL4120 Jaringan Komputer
Tugas 1
Oleh : Erich Pratama Saputra / 13210140
Deskripsi Tugas
Deskripsi tugas terdapat pada lamanhttp://kerja.stei.itb.ac.id/mod/assign/view.php?id=54
DESIGN :
A.Hardware
End-point dari jaringan ini merupakan dua unit komputer masing-masing menggunakan
sistem operasi Linux Ubuntu 14. Kedua komputer terhubung dengan wireless adapter ke sebuah
gateway/router dengan jaringan IP 192.168.0.0/24.
Gateway/Router
http://kerja.stei.itb.ac.id/mod/assign/view.php?id=54http://kerja.stei.itb.ac.id/mod/assign/view.php?id=54http://kerja.stei.itb.ac.id/mod/assign/view.php?id=54http://kerja.stei.itb.ac.id/mod/assign/view.php?id=54 -
7/24/2019 EL4120-tugas1-13210140
2/16
B. Software
Source code untuk server dan client terlampir pada bagian akhir laporan. Algoritma dan
fungsi pada socket-programming sepenuhnya menggunakan interface dari Berkeley Socket
Interface. Adapun beberapa fungsi atau prosedur ditambahkan agar kedua komputer dapat saling
mengirim pesan terus menerus serta untuk menampilkan waktu saat pesan terkirim.
Hasil Percobaan :
Percobaan 1 : Mengecek network yang dipakai dengan perintah 'ifconfig'
Komputer 1 :
Dari gambar di atas terlihat bahwa IP adress endpoint 1 pada interface wlan0 adalah 192.168.0.2.
MAC address ditunjukkan oleh parameter Hwaddr yaitu 10:fe:ed:18:3a:f6
Komputer 2 :
-
7/24/2019 EL4120-tugas1-13210140
3/16
Dari gambar di atas terlihat bahwa IP adress endpoint 2 pada interface wlan0 adalah 192.168.0.3.
MAC address ditunjukkan oleh parameter Hwaddr yaitu 48:5d:60:df:0f:b5.
Berdasarkan percobaan ini terlihat bahwa endpoint 1 dan enpoint dua berada pada jaringan IP yang
sama. Percobaan selanjutnya akan menguji konektivitas keduanya.
Percobaan 2 : Mengecek sambungan antar komputer melalui jaringan dengan software
'PING'
Ping merupakan utility software yang digunakan untuk menguji konektivitas pada jaringan IP.
Perintah ini akan mengembalikan total waktu yang diperlukan untuk mengirim message dari sender
dan dari receiver kembali ke sender
Skema 1 : Komputer 1 melakukan PING ke komputer 2
Skema 2 : Komputer 2 melakukan PING ke komputer 1
-
7/24/2019 EL4120-tugas1-13210140
4/16
Dari kedua hasil percobaan di atas dapat dipastikan bahwa komputer 1 dan komputer 2 terhubung
melalui jaringan yang telah dibuat.
Percobaan 3 : Mengirim data antar komputer dengan software UDP client-server
Pada percobaan ini akan diimplementasikan sebuah software UDP client-server chat. Sebuah
komputer akan bertindak sebagai sebuah server dan komputer lain bertindak sebagai client. Client
akan menginisiasi koneksi dengan mengirim data berupa chat (string) dan server akan menerima
data tersebut dan menampilkannya di layar. Selanjutnya server akan mengirim chat balasan pada
client yang ditampilkan pada layar client. Protokol Transport layer yang digunakan adalah UDP.
Software yang dibuat baik pada sisi client maupun server terlampir pada bagian akhir dokumen.Sebagian besar fungsi dan prosedur menggunakan library socket programming (Berkeley Socket
Interface).
Skema : Komputer 1 akan bertindak sebagai client dan komputer 2 sebagai server.
Cl ient sent message :
Tampilan Terminal Window Pada Komputer 1 (Client)send message
Server receive message :
Tampilan Terminal Window Pada Komputer 2 (Server)receive message
-
7/24/2019 EL4120-tugas1-13210140
5/16
Server reply :
Tampilan Terminal Window Pada Komputer 2 (Server)send reply
Cli ent receive reply :
Tampilan Terminal Window Pada Komputer 1 (Client)receive reply
Dari hasil percobaan tersebut terlihat bahwa kedua endpoint dapat terhubung dan bertukar data pada
jaringan yang telah dibuat.
Percobaan 4 : Membuat paket data UDP dengan software Ostinato dan Melakukan
Penyadapan Paket Ostinato
Pada percobaan ini akan dibuat paket data dengan software Ostinato. Beberapa parameter paket
yang dibuat adalah sebagai berikut :
Protokol : UDP IPV4
Source MAC : 10:FE:ED:18:3A:F6
Source IP : 192.168.0.3
Destination MAC : 48:5D:60:DF:0F:B5
Destination IP : 192.168.0.2
Source Port : 5000
Destination Port : 5001
Payload Data menggunakan type increment byte.
-
7/24/2019 EL4120-tugas1-13210140
6/16
Setting parameter pada ostinato :
Pemilihan Protokol
Pengaturan MAC Address
-
7/24/2019 EL4120-tugas1-13210140
7/16
Pengaturan protokol IPV4
Isi paket yang telah dibuat
Setelah dibuat, paket tersebut kemudian dikirim melalui stream. Selanjutnya, paket tersebut akan
dicapture kembali menggunakan Wireshark untuk dibandingkan.
-
7/24/2019 EL4120-tugas1-13210140
8/16
Hasil Capture Stream dengan Wireshark
Dari hasil tersebut dapat terlihat bahwa frame yang dicapture sama dengan yang dikirim baik pada
protokol, source dan dest IP, dan parameter lainnya.
Percobaan 5 : Melakukan penyadapan paket data 'PING' dengan Wireshark
Pada percobaan ini komputer 2 (192.168.0.3) akan mengirimkan PING pada komputer 1
(192.168.0.2). Selanjutnya Wireshark pada komputer 2 digunakan untuk menganalisis paket data
yang masuk dan keluar. Interface yang dicapture adalah wlan0 karena kedua komputer terhubung
melalui Wireless LAN.
-
7/24/2019 EL4120-tugas1-13210140
9/16
Hasil Capture Paket pada interface wlan0 komputer 1
Gambar di atas memperlihatkan paket-paket data yang berhasil dicapture serta isi dari sebuah paket
data. Sebelum melakukan PING, komputer1 dan komputer2 harus saling mengetahui alamat dan
MAC address masing-masing. Untuk mengetahui alamat dari sebuah endpoint pada jaringan maka
digunakan protokol Address Resolution Protocol. Salah satu contoh paket data ARP ini adalah
-
7/24/2019 EL4120-tugas1-13210140
10/16
paket yang ditandai dengan warna kuning dengan info Who has 192.168.0.3? Tell 192.168.0.2.
Apabila enpoint dengan IP Address tersebut ditemukan maka protokol ARP akan mengembalikan
MAC Address dari alamat tersebut.
Selanjutnya, setelah kedua endpoint terhubung dan mengetahui address masing-masing, maka
komputer 2 (192.168.0.3) melakukan request PING ke komputer 1 (192.168.0.2). Paket data yang
dikirimkan menggunakan protokol Internet Control Message Protocol ditandai dengan warna merah
muda. Adapun isi dari paket tersebut antara lain :
Source Address : 192.168.0.3
Source MAC Address : 48:5d:60:df:0f:b5
Destination Address : 192.168.0.2
Destination MAC Address : 10:fe:ed:18:3a:f6
Time to live : 64 berupa tenggat waktu alamat tujuan untuk merespon sebelum timeout
Checksum : unik untuk setiap paket. Untuk memverifikasi data yang dikirim sama dengan
yang diterima. Correct jika data yang dikirim sama dengan data yang diterima
Data : terdiri dari 48 bytes dengan isi
08:09:0a:0b:0c:0d:0e:0f:10:11:12:13:14:15:16:17:18:19:1a:1b:1c:1d:1e:1f:20:21:22:23:24:2
5:26:27:28:29:2a:2b:2c:2d:2e:2f:30:31:32:33:34:35:36:37
Response Time : bervariasi. Waktu yang diperlukan paket untuk sampai pada destination
Setelah menerima request, komputer 1 akan mengirim reply PING kembali ke komputer 2. Isi paket
datanya mirip dengan paket PING request hanya saja address source dan destination ditukar. Time
to live tetap sama dan checksum tetap unik untuk setiap paket. Isi data tetap sama.
Percobaan 6 : Melakukan penyadapan paket data UDP client-server
Pada percobaan ini akan dilakukan penyadapan paket UDP dari koneksi antara client server dengan
aplikasi chatting. Skema percobaan sama seperti pada percobaan 3 di mana client memulai koneksidan direply oleh server, dst.
Untuk keperluan ini maka kedua komputer akan menjalankan wireshark masing-masing untuk
melihat dan memverifikasi data yang dikirim. Paket yang dikirim menggunakan protokol UDP pada
layer transport sehingga paket-paket data dapat difilter berdasarkan protokol nya untuk
memudahkan menganalisa paket.
-
7/24/2019 EL4120-tugas1-13210140
11/16
Hasil Capture Packet Komputer 1 (Client 192.168.0.2)
-
7/24/2019 EL4120-tugas1-13210140
12/16
Gambar di atas merupakan isi dari paket data yang masuk dan keluar melalui interface wlan0 pada
komputer1. Setelah dibandingkan dengan paket data yang dicapture pada komputer 2 isinya juga
sama. Paket data tersebut isinya sebagian besar mirip dengan hasil percobaan sebelumnya yakni
header Ethernet dan header IPv4. Karena program chat menggunakan protokol Udp maka terdapat
juga header UDP yang berisi source dan destination port. Selain itu pada header ini juga terdapat
checksum 2 bytes yang unik untuk setiap paket namun tidak divalidasi. Terakhir merupakan isi dari
pesan yang ukurannya tergantung dari seberapa besar ukuran character/string yang diketikkan. Isi
pesan dapat terlihat dalam format ASCII pada jendela packet byte di bagian bawah.
Berdasarkan hasil percobaan-percobaan di atas, wireshark merupakan tools yang dapat digunakan
untuk menganalisis paket data yang masuk dan keluar pada sebuah interface. Paket-paket data
tersebut tidak hanya berisi isi pesan tetapi juga berisi header dari protokol-protokol yang digunakan
misalnya ethernet, IPv4, UDP, dan lain-lain.
-
7/24/2019 EL4120-tugas1-13210140
13/16
Lampiran
Source Code Clientchatudp :
#include #include #include #include #include #include
#define MAXBUF 1024
int main(int argc, char* argv[]){
time_t rawtime;struct tm * timeinfo;int udpSocket;int returnStatus;int addrlen;struct sockaddr_in udpClient, udpServer;
char buf[MAXBUF];char mymessage[MAXBUF];
if (argc < 3){
fprintf(stderr, "Usage: %s \n", argv[0]);exit(1);
}
/* create a socket */udpSocket = socket(AF_INET, SOCK_DGRAM, 0); //Sock_Dgram digunakan untuk UDPif (udpSocket == -1){
fprintf(stderr, "Could not create a socket!\n");exit(1);
}else {
printf("Socket created.\n");}
/* Address untuk Client *//* INADDR_ANY untuk assign IP Address lokal ke soket */udpClient.sin_family = AF_INET;udpClient.sin_addr.s_addr = INADDR_ANY;udpClient.sin_port = 0;returnStatus = bind(udpSocket, (struct sockaddr*)&udpClient,sizeof(udpClient));if (returnStatus == 0) {
fprintf(stderr, "Bind completed!\n");
}else {fprintf(stderr, "Could not bind to address!\n");close(udpSocket);exit(1);
}
while(1){/* Pesan yang akan dikirim */printf("Me : ");fgets(mymessage,MAXBUF,stdin);strcpy(buf,mymessage);
/* server address */
udpServer.sin_family = AF_INET;udpServer.sin_addr.s_addr = inet_addr(argv[1]);udpServer.sin_port = htons(atoi(argv[2])); //konversi ke BigEndian
-
7/24/2019 EL4120-tugas1-13210140
14/16
returnStatus = sendto(udpSocket, buf, strlen(buf)+1, 0,(struct sockaddr*)&udpServer, sizeof(udpServer)); //Pesan pada buffer dikirim
dengan fungsi Sendtoif (returnStatus == -1) {
fprintf(stderr, "Pesan tidak terkirim!\n");}else {
//ambil waktu saat ini dari system clock untuk ditampilkantime (&rawtime);timeinfo = localtime(&rawtime);printf(" Message sent %s
\n",asctime(timeinfo));
/* Menunggu pesan balasan */addrlen = sizeof(udpServer);returnStatus = recvfrom(udpSocket, buf, MAXBUF, 0,(struct sockaddr*)&udpServer, &addrlen);
buf[returnStatus] = 0;printf("Friend : %s", buf); //tampilkan pesan balasan dari buffer
}
}/* cleanup */close(udpSocket);return 0;
}
-
7/24/2019 EL4120-tugas1-13210140
15/16
Source Code Serverchatudp :
#include #include #include #include #include #include
#define MAXBUF 1024
int main(int argc, char* argv[]){
time_t rawtime;struct tm * timeinfo;int udpSocket;int returnStatus = 0;int addrlen = 0;struct sockaddr_in udpServer, udpClient;char buf[MAXBUF];char mymessage[MAXBUF];/* check for the right number of arguments */if (argc < 2)
{ fprintf(stderr, "Usage: %s \n", argv[0]);exit(1);
}
/* create a socket */udpSocket = socket(AF_INET, SOCK_DGRAM, 0); //sock_dgram digunakan untuk UDPif (udpSocket == -1){
fprintf(stderr, "Could not create a socket!\n");exit(1);
}else {
printf("Socket created.\n");}
/* set up the server address and port *//* use INADDR_ANY to bind to all local addresses */udpServer.sin_family = AF_INET;udpServer.sin_addr.s_addr = htonl(INADDR_ANY);
/* use the port passed as argument */udpServer.sin_port = htons(atoi(argv[1]));
/* bind to the socket */returnStatus = bind(udpSocket, (struct sockaddr*)&udpServer,sizeof(udpServer));if (returnStatus == 0) {
fprintf(stderr, "Bind completed!\n");}else {
fprintf(stderr, "Could not bind to address!\n");close(udpSocket);exit(1);
}
while (1){
addrlen = sizeof(udpClient);returnStatus = recvfrom(udpSocket, buf, MAXBUF, 0,(struct sockaddr*)&udpClient, &addrlen); //menerima request/pesan dari
client
printf("Friend : %s", buf); //tampilkan pesan dari bufferprintf("Me : "); //tulis pesan balasanfgets(mymessage,MAXBUF,stdin);strcpy(buf,mymessage);
-
7/24/2019 EL4120-tugas1-13210140
16/16
returnStatus = sendto(udpSocket, buf, strlen(buf)+1, 0,(struct sockaddr*)&udpClient,sizeof(udpClient)); //kirim pesan
if (returnStatus == -1) {fprintf(stderr, "Pesan tidak terkirim\n");
}else {
//ambil waktu dari system clock dan tampilkantime(&rawtime);timeinfo = localtime (&rawtime);printf(" Message sent %s \n",
asctime(timeinfo));}
}
/*cleanup */close(udpSocket);return 0;
}