PRAKTIKUM SOCKET PROGRAMMING (TCP dan UDP)

dokumen-dokumen yang mirip
PERCOBAAN 6 Pemrograman Socket Transport Control Protocol (TCP)

UDP (User Datagram Protocol) SOCKET PROGRAMMING

SERVER socket CLIENT socket bind pengalamatan recvfrom sendto close close Gambar. Algorithma pemrograman datagram socket Pada socket datagram algoritm

PRAKTIKUM 10 DATAGRAM SOCKET PROGRAMMING

PERCOBAAN IV Socket Programming User Datagram Protocol (UDP)

PRAKTIKUM 9 STREAM SOCKET PROGRAMMING

Konsep Socket. Interface (API). API didefinisikan sebagai suatu kumpulan instruksi

EL-695 KEAMANAN SISTEM INFORMASI

TCP (Transfer Control Protocol) SOCKET PROGRAMMING

Pemrograman Socket dengan C

Di dunia free software,

Pemrograman Jaringan

PRAKTIKUM 11 APPLICATION LAYER

PEMROGRAMAN JARINGAN

PRAKTIKUM 13 APPLICATION LAYER (SNMP)

Modul 1 Network Scanner & Probing

TASK V OBSERVING TCP/IP, PORT USING COMMAND PROMPT AND WIRESHARK

PRAKTIKUM 12 APPLICATION LAYER (DNS)

MODUL 2 WIRESHARK Protokol TCP

JARINGAN KOMPUTER. Disusun Oleh : Nama : Febrina Setianingsih NIM : Dosen Pembimbing : Dr. Deris Stiawan, M.T., Ph.D.

PEMROGRAMAN SOCKET TUGAS SISTEM TERDISTRIBUSI

A.3. Tool network traceroute Untuk mengecek koneksi digunakan protokol ICMP dengan perintah ping atau traceroute.

Pemrograman Jaringan 9. Connectionless Oriented Programming

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

LAPORAN RESMI ADMINISTRASI & MANAGEMENT JARINGAN. PRAKTIKUM 3 Pemrograman Socket dengan TCP

Transport Layer. Oleh : Akhmad Mukhammad

ADMINISTRASI DAN MANAGEMEN JARINGAN TUGAS TELNET DAN SSH SERVER

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

JARINGAN KOMPUTER JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA : MARINI SUPRIANTY NIM :

Minggu 6 Transport Layer

Pemrograman Jaringan

Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini :

Transport Layer. Muhammad Zen S. Hadi, ST. MSc.

LAPORAN RESMI KEAMANAN JARINGAN. PRAKTIKUM 2 Perbedaan Macam-Macam Tipe Jaringan pada Virtual Box dan Analisa Telnet dan SSH menggunakan Wireshark

MODUL 4 KONFIGURASI FIREWALL [TCP WRAPPER]

MODUL 3 PRAKTIKUM ADMINISTRASI JARINGAN. DHCP Server. Oleh: Nani Setyo Wulan S.Pd. Nelyetti S.Kom.

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM II (a) PROSES

PERALATAN YANG DIBUTUHKAN: 1. Beberapa PC yang akan dihubungkan dalam jaringan. 2. Hub sebagai penghubung jaringan. 3. Kabel jaringan secukupnya.

PRAKTIKUM ADMINISTRASI JARINGAN KOMPUTER DHCP SERVER

PRAKTIKUM 3 Dynamic Host Configuration protocol pada Linux (Ubuntu) dan Windows 1. Praktikum 4. Dynamic Host Configuration Protocol

MODUL 8 STREAMING SERVER

INSTALASI, KONFI- GURASI DAN PENGUJIAN FTP SERVER

LAMPIRAN C PEDOMAN PRAKTIKUM TOPIK 3 PENGUJIAN JARINGAN IPSEC DENGAN JENIS SERANGAN DENIAL OF SERVICE MENGGUNAKAN SOFTWARE LOIC

BAB III PERANCANGAN. Bab ini berisi perancangan sistem audio streaming dengan server shoutcast dan icecast.

Praktikum Jaringan Komputer 2. Modul 3 BRIDGE FIREWALL dengan Netfilter

MODUL 2 WIRESHARK Protokol TCP

MODUL 7 NAT dan PROXY

Inter Process Communication. Pratikum SO

Koneksi TCP sebelum Spoofing

IP Subnetting dan Routing (1)

VARIABEL & TIPE DATA PEMROGRAMAN C++

PRAKTIKUM KEAMANAN JARINGAN : Tugas Telnet dan SSH

INSTALASI PC SERVER INSTALASI & KONFIGURASI SSH. Ardi Maharta / Heri Widayat /

Modul 5 Cisco Router

Connection Oriented. Kholid F.

I.1. MEMBUAT PROGRAM C DENGAN VISUAL C

MODUL 1 NETWORK SCANNING DAN PROBING

KOMUNIKASI ANTAR PROSES

TUGAS V JARINGAN KOMPUTER

Fungsi Lapis Transport

Praktikum Jaringan Komputer 2. Modul 2 Quagga dan Routing Protocol

DAFTAR ISI. Kata Pengantar...i. Daftar Gambar...ix. Daftar Tabel...xi Latar Belakang Rumusan Masalah Batasan Masalah...

TASK 5 JARINGAN KOMPUTER

Cara instal dan konfigurasi FTP SERVER

PRAKTIKUM 14 ANALISA QoS JARINGAN

NETWORK PROGRAMMING. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

Admin Jaringan Komputer APACHE WEB SERVER

Struct Lanjutan: Studi Kasus

A. TUJUAN : Dapat mengimplementasi-kan kelas-kelas Java yang digunakan dalam pemrogaman jaringan.

ROUTER PENGGUNAAN BANYAK ROUTER MENUJU IP ADDRESS TUJUAN. PROYEK 3 Praktikum Jaringan Komputer 1

BAB II LANDASAN TEORI

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

A. INSTALLASI SOFTWARE

Silahkan ikuti langkah-langkah berikut :

Transport Layer El E ectro ect n ro ic En E gineerin ri g Pol o ytech tec nic In I stitu sti t of o Surabaya ITS Kampus ITS Sukolilo Surabaya 60111

PRAKTIKUM 1 TELNET DAN SSH SERVER

Lapisan Transport. Menjamin komunikasi yang handal antara dua buah komputer yang terhubung Terdiri atas :

Linked List 6.3 & 7.3 NESTED LOOP

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

JOB SHEET. PRAKTIK MATA PELAJARAN Troubleshooting Jaringan PAKET KEAHLIAN TEKNIK KOMPUTER DAN JARINGAN KELAS XII

2.2 Dasar Teori. Layer # Nama Unit. Dimana setiap layer memiliki fungsi dan contoh masing-masing.

BAB 4 IMPLEMESTASI DAN EVALUASI. permasalahan yang telah dilakukan pada bab sebelumnya.

PRAKTIKUM VI TELNET DAN FTP

TRANSPORT LAYER. Fikri Fadlillah, ST

PRAKTIKUM 3 Konfigurasi Firewall [iptables]

NETWORK SCANNING DAN PROBING

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mengangkat kasus dan penggunaan teknologi yang berbeda-beda, pada table 2.1

Modul 4 Telnet dan File Transfer Protocol (FTP)

Algoritma dan Struktur Data. Ramos Somya

MODUL 8 STREAMING SERVER

CAPTURE DAN ANALISIS PAKET PROTOKOL MENGGUNAKAN WIRESHARK

JARINGAN KOMPUTER MODUL 3

LAPORAN RESMI PRAKTIKUM KEAMANAN DATA LAPORAN RESMI KONFIGURASI FIREWALL [IPTABLES]

Reza Muhammad

PRAKTIKUM 9 Konfigurasi Keamanan File-sharing (SFTP)

Koneksi TCP sebelum Spoofing

A. TUJUAN PEMBELAJARAN

BAB I PENDAHULUAN I.1. Latar Belakang

A. TUJUAN 1. Menjelaskan tentang konsep dari variabel pointer. zzzz. Address. Gambar 8.1 Variabel pointer px menunjuk ke variabel x

Transkripsi:

PRAKTIKUM SOCKET PROGRAMMING (TCP dan UDP) I. Tujuan 1. Mahasiswa memahami konsep aplikasi client server di jaringan. 2. Mahasiswa memahami konsep pemprograman socket. 3. Mahasiswa memahami jenis jenis socket programming 4. Mahasiswa mampu membangun program socket sederhana II. III. Peralatan Yang Dibutuhkan 1. Beberapa komputer yang berfungsi sebagai server. 2. Beberapa komputer yang berfungsi sebagai client. 3. Hub/switch sebagai penghubung jaringan. 4. Kabel jaringan secukupnya. Dasar Teori Setiap aplikasi di jaringan, transaksinya didasarkan pada konsep client server. Sebuah server dan sebuah atau beberapa client yang meminta/request pelayanan ke server. Fungsi server sebagai pengatur resource yang ada, yang menyediakan pelayanan dengan memanfaatkan resource yang untuk kebutuhan client. Proses ini (proses client server) bisa dijalankan pada sebuah komputer (komputer tunggal) atau bisa juga satu komputer berfungsi sebagai server dan sebuah atau beberapa komputer berfungsi sebagai client. Gambar 1 Ilustrasi TCP socket

Algorithma Program Client-Server menggunakan Datagram Socket Server socket() bind() Client socket() recvfrom() blocks until server receives data from client data sendto() sendto() data recvfrom() close() close() Gambar 2. Ilustrasi UDP socket IV. Tugas Pendahuluan 1. Jelaskan secara singkat tentang 3 way handshake di aplikasi TCP 2. Jelaskan perbedaan TCP dan UDP V. Percobaan A. SOCKET PROGRAMMING UDP PROGRAM CLIENT /* ** clientudp.c program client sederhana menggunakan datagram socket */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #define MYPORT 4950

#define MAXBUFLEN 100 int main() char no[16], dt[30]; printf(" PROGRAM CHATTING \n"); printf("to : "); scanf("%s", no); while(1) printf("me : "); scanf("%s", dt); kirim(no, dt); terima(); int kirim(char no[], char dt[]) int sockfd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; struct hostent *he; int addr_len, numbytes; if((he = gethostbyname(no)) == NULL) perror("gethostbyname"); if((sockfd = socket(af_inet, SOCK_DGRAM, 0)) == 1) their_addr.sin_family = AF_INET; their_addr.sin_port = htons(myport); their_addr.sin_addr = *((struct in_addr *)he >h_addr); memset(&(their_addr.sin_zero), '\0', 8); == 1) if((numbytes=sendto(sockfd, dt,strlen(dt),0,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))) perror("sendto");

close(sockfd); int terima() int sockfd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; struct hostent *he; int addr_len, numbytes; char buf[maxbuflen]; if((sockfd = socket(af_inet, SOCK_DGRAM, 0)) == 1) my_addr.sin_family = AF_INET; my_addr.sin_port = htons(myport); my_addr.sin_addr.s_addr = INADDR_ANY; memset(&(my_addr.sin_zero),'\0',8); if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == 1) perror("bind"); 1) addr_len = sizeof(struct sockaddr); if((numbytes = recvfrom(sockfd,buf,maxbuflen 1,0,(struct sockaddr *)&their_addr,&addr_len)) == perror("recvfrom"); buf[numbytes]='\0'; printf("%s : \"%s\"\n", inet_ntoa(their_addr.sin_addr), buf); close(sockfd);

PROGRAM SERVER /* ** serverudp.c program client sederhana menggunakan datagram socket */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #define MYPORT 4950 #define MAXBUFLEN 100 char noip[50]; //untuk mendapatkan no ip dari client int main() char no[16], dt[30]; printf(" PROGRAM CHATTING \n"); terima(); strcpy (no, noip); //copy data dari variable noip ke variabel no while(1) printf("me : "); scanf("%s", dt); kirim( dt); terima(); int kirim( char dt[30]) int sockfd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; struct hostent *he; int addr_len, numbytes; if((sockfd = socket(af_inet, SOCK_DGRAM, 0)) == 1)

their_addr.sin_family = AF_INET; their_addr.sin_port = htons(myport); their_addr.sin_addr = *((struct in_addr *)he >h_addr); memset(&(their_addr.sin_zero), '\0', 8); == 1) if((numbytes=sendto(sockfd, dt,strlen(dt),0,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))) close(sockfd); perror("sendto"); int terima() int sockfd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; struct hostent *he; int addr_len, numbytes; char buf[maxbuflen]; if((sockfd = socket(af_inet, SOCK_DGRAM, 0)) == 1) my_addr.sin_family = AF_INET; my_addr.sin_port = htons(myport); my_addr.sin_addr.s_addr = INADDR_ANY; memset(&(my_addr.sin_zero),'\0',8); if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == 1) perror("bind"); 1) addr_len = sizeof(struct sockaddr); if((numbytes = recvfrom(sockfd,buf,maxbuflen 1,0,(struct sockaddr *)&their_addr,&addr_len)) ==

perror("recvfrom"); buf[numbytes]='\0'; printf("%s : \"%s\"\n", inet_ntoa(their_addr.sin_addr), buf); strcpy (no, inet_ntoa(their_addr.sin_addr); //copy data ke varibel no close(sockfd); LANGKAH PERCOBAAN 1. Setelah selesai menulis dan menyimpan program, pastikan gcc sudah terinstall pada system operasi linux anda. Jalankan perintah : # dpkg l grep gcc Jika belum terinstall lakukan installasi paket gcc beserta librarynya. # apt-get install gcc gcc-4.3 Jika standard library belum terinstall, maka diinstall juga : # apt-get install libc6-dev atau # apt-get install build-essential 2. Kompilasi dan jalankan program diatas a. Pada sisi server # gcc o serverudp serverudp.c #./serverudp b. Pada sisi client # gcc o clientudp clientudp.c #./clientudp NB: Sebelum menjalankan program diatas, jalankan dulu wireshark di sisi Client. 3. Amati output yang dihasilkan dari program diatas. Catat informasi yang dihasilkan oleh wireshark. 4. Cek port yang digunakan oleh server # netstat nlptu grep serverudp B. SOCKET PROGRAMMING TCP PROGRAM CLIENT /* ** clienttcp.c program client sederhana menggunakan stream socket */ #include <stdio.h> #include <stdlib.h> #include <unistd.h>

#include <errno.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #define PORT 3333 // nomer port yang digunakan // jumlah bytes maximal yang dikirimkan #define MAXDATASIZE 100 int main() int sockfd, numbytes; char buf[maxdatasize]; char nilai[maxdatasize]; struct hostent *he; struct sockaddr_in their_addr; // informasi alamat server char no[50]; printf("to : "); scanf("%s", no); printf(" Anda adalah Client \n"); printf(" silahkan memulai pembicaraan \n"); if ((he=gethostbyname(no)) == NULL) // mencari info tentang host perror("gethostbyname"); if ((sockfd = socket(af_inet, SOCK_STREAM, 0)) == 1) their_addr.sin_family = AF_INET; // host byte order their_addr.sin_port = htons(port); // short, network byte order their_addr.sin_addr = *((struct in_addr *)he >h_addr); memset(&(their_addr.sin_zero), '\0', 8); // lainnya diisi 0 if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == 1) perror("connect"); while(1) printf("client : "); scanf("%s",nilai); if (send(sockfd,nilai,50, 0)== 1) perror("send"); exit(0); //data yang akan dikirim ke server

numbytes=0; if ((numbytes=recv(sockfd, buf, MAXDATASIZE 1, 0)) == 1) perror("recv"); exit(0); if(numbytes > 1) buf[numbytes] = '\0'; printf("server: %s \n",buf); //data dari server close(sockfd); //menutup socket PROGRAM SERVER /* ** servertcp.c program server sederhana menggunakan stream socket */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/wait.h> #include <signal.h> #define MYPORT 3333 // nomer port yang digunakan #define BACKLOG 10 // jumlah koneksi yang diperbolehkan #define MAXDATASIZE 40 // jumlah bytes maximal yang dikirimkan int main(void) int sockfd, new_fd,numbytes; // sock_fd > koneksi saat ini, new_fd >kon baru struct sockaddr_in my_addr; // ip address server char buf[maxdatasize],nilai[maxdatasize]; struct sockaddr_in their_addr; // ip address client int sin_size; struct sigaction sa; int yes=1; if ((sockfd = socket(af_inet, SOCK_STREAM, 0)) == 1) if (setsockopt(sockfd,sol_socket,so_reuseaddr,&yes,sizeof(int)) == 1)

perror("setsockopt"); my_addr.sin_family = AF_INET; // host byte order atau (big endian) my_addr.sin_port = htons(myport); // short, network byte order my_addr.sin_addr.s_addr = INADDR_ANY; // diisi dengan ip address server memset(&(my_addr.sin_zero), '\0', 8); // lainya diisi 0 if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== 1) perror("bind"); if (listen(sockfd, BACKLOG) == 1) perror("listen"); sin_size = sizeof(struct sockaddr_in); if ((sockfd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == 1) perror("accept"); printf(" Anda adalah Server \n"); printf("server mendapat koneksi dari %s\n",inet_ntoa(their_addr.sin_addr)); while(1) numbytes=0; if ((numbytes=recv(sockfd,buf, MAXDATASIZE 1, 0)) == 1) perror("recv"); if(numbytes!= 0) buf[numbytes]=='\0'; printf("client : %s \n",buf); close(sockfd); printf("server : "); scanf("%s",nilai); if (send(sockfd, nilai, 50, 0) == 1) perror("send"); LANGKAH PERCOBAAN 1. Lakukan kompilasi program client dan server, dengan cara : # cd /home # gcc o clienttcp clienttcp.c

# gcc o servertcp servertcp.c 2. Jalankan program server dan selanjutnya jalankan program client, dengan cara berikut ini : #./servertcp #./clienttcp NB: Sebelum menjalankan program diatas, jalankan dulu wireshark di sisi Client. 3. Amati output yang dihasilkan. Catat informasi yang dihasilkan oleh wireshark. 4. Catat proses terjadinya 3 way handshake dari wireshark. 5. Cek port yang digunakan oleh server # netstat nlptu grep servertcp 6. Editlah program untuk TCP diatas agar sama dengan program aplikasi untuk UDP. Buat dalam bentuk fungsi.