Analisis Komunikasi TCP dengan Socket Programming dan Wireshark - ikbrath/Jaringan-Komputer GitHub Wiki

TCP dan Socket Programming

Pengenalan TCP dan Socket Programming TCP (Transmission Control Protocol) adalah protokol transport yang andal dalam model OSI, digunakan untuk mengatur komunikasi data antara pengirim dan penerima. Dalam socket programming, TCP digunakan untuk membuat koneksi antara dua perangkat dalam jaringan untuk bertukar data secara real-time.

Socket Programming adalah teknik pemrograman jaringan yang memungkinkan aplikasi untuk berkomunikasi melalui jaringan dengan menggunakan API socket. Dalam konteks TCP, socket dibuat untuk:

Server: Mendengarkan koneksi dari client. Client: Memulai koneksi ke server. enggunakan Wireshark atau alat lain. Berikut adalah penjelasan detail mengenai cara kerja protokol HTTP dan aspek teknisnya:

Daftar isi

  • Cara kerja TCP dan Socket
  • Hasil pengerjaan
  • Capture wireshark

Cara kerja TCP dan Socket

  • Cara Kerja TCP TCP (Transmission Control Protocol) adalah protokol yang digunakan untuk menyediakan komunikasi jaringan yang andal. Koneksi diawali dengan proses 3-way handshake, yaitu client mengirim SYN (synchronize), server merespons dengan SYN-ACK, dan client mengonfirmasi dengan ACK untuk membangun koneksi. Setelah koneksi terjalin, data ditransfer dalam bentuk segmen yang diberi nomor urut dan dikonfirmasi oleh penerima dengan ACK. Jika ACK tidak diterima, pengirim akan mengulangi pengiriman segmen. Penutupan koneksi dilakukan melalui 4-step closure, di mana masing-masing pihak saling mengirim FIN dan ACK untuk memastikan koneksi berakhir dengan benar.

  • Cara Kerja Socket Programming Socket programming adalah teknik untuk membuat aplikasi jaringan yang dapat berkomunikasi menggunakan TCP atau UDP. Pada server, socket dibuat dengan fungsi socket(), kemudian diikat ke alamat IP dan port tertentu menggunakan bind(). Server mendengarkan koneksi dengan listen() dan menerima koneksi client melalui accept(). Di sisi client, socket dibuat dengan socket() dan menghubungkan diri ke server menggunakan connect(). Setelah koneksi terbentuk, client dan server bertukar data dengan menggunakan fungsi send() dan recv(). Socket programming memungkinkan implementasi komunikasi dua arah yang andal dengan memanfaatkan protokol TCP.

Hasil pengerjaan pembuatan server sederhana

Server

Analisis Kode Server-Klien Sederhana: Kode yang diberikan merupakan contoh dasar dari sebuah program server-klien yang berkomunikasi menggunakan socket. Berikut adalah ringkasan analisisnya:

  • Kompilasi: Kode sumber C dikompilasi menjadi program yang dapat dieksekusi menggunakan perintah make. Proses kompilasi ini mengikuti aturan yang telah didefinisikan dalam Makefile.
  • Eksekusi Server: Program server dijalankan. Server menunggu koneksi dari klien. Setelah ada koneksi, server menerima data dari klien. Data yang diterima kemudian diproses dan dikirimkan kembali sebagai respons. Proses ini berulang untuk setiap koneksi baru.

kode ini melakukan hal berikut:

  • Menerima koneksi: Server mendengarkan pada port tertentu dan menerima koneksi dari klien.
  • Mengirim dan menerima data: Setelah terhubung, server dan klien dapat saling mengirim dan menerima data.
  • Memproses data: Server memproses data yang diterima dari klien dan mengirimkan respons.

Istilah Penting:

  • Socket: Mekanisme untuk komunikasi antar proses melalui jaringan.
  • Server: Program yang menunggu koneksi dari klien.
  • Klien: Program yang memulai koneksi ke server.

Klien

Analisis Potongan Kode dan Output: Dari potongan kode dan output yang diberikan, dapat disimpulkan bahwa pengguna sedang berinteraksi dengan sebuah program sederhana yang memungkinkan pengguna untuk mengirim pesan dan menerima balasan dari server. Program ini tampaknya telah dikompilasi dan siap digunakan.

Proses yang Terjadi:

  • Program klien dijalankan: Pengguna menjalankan program klien yang akan terhubung ke server.
  • Pengguna memasukkan pesan: Program meminta pengguna untuk memasukkan pesan yang ingin dikirim ke server.
  • Pesan dikirim ke server: Pesan yang dimasukkan pengguna kemudian dikirim ke server melalui jaringan.
  • Server memproses pesan: Server menerima pesan dari klien dan memprosesnya. Dalam kasus ini, server tampaknya hanya mengembalikan pesan yang sama persis.
  • Server mengirim balasan: Server mengirimkan balasan ke klien.
  • Klien menampilkan balasan: Program klien menampilkan balasan yang diterima dari server di layar.

Komunikasi Server-Klien

Analisis Potongan kode di atas menunjukkan aktivitas seorang pengguna yang sedang bekerja dengan sebuah program komputer yang disebut "server-klien". Program ini memungkinkan pengguna untuk berkomunikasi dengan sebuah server (komputer lain) melalui jaringan.

Langkah-langkah yang Terjadi:

  • Program dijalankan: Pengguna menjalankan program untuk memulai komunikasi dengan server.
  • Pengguna mengirim pesan: Pengguna mengirimkan pesan teks kepada server melalui program tersebut.
  • Server membalas pesan: Server menerima pesan dari pengguna dan mengirimkan balasan.
  • Pengguna melihat balasan: Program menampilkan balasan dari server di layar komputer pengguna.

Kesimpulan: Secara sederhana, potongan kode ini menggambarkan proses dasar komunikasi antara pengguna dan sebuah server melalui sebuah program komputer. Program ini memungkinkan pengguna untuk mengirimkan pesan dan menerima balasan dari server.

Capture Wireshark

Analisis Data Tangkapan Wireshark

Memahami Data Tangkapan

Data tangkapan Wireshark yang ditampilkan memberikan gambaran tentang lalu lintas jaringan yang terjadi pada sebuah perangkat. Dalam kasus ini, perangkat tersebut tampaknya sedang melakukan sejumlah permintaan DNS (Domain Name System). DNS adalah layanan yang menerjemahkan nama domain (seperti www.google.com) menjadi alamat IP (seperti 192.168.1.1) yang dapat dimengerti oleh komputer.

Rincian Analisis

  • Jenis Lalu Lintas: Hampir seluruh lalu lintas yang ditangkap adalah permintaan DNS. Ini menunjukkan bahwa perangkat yang sedang diamati sedang aktif melakukan pencarian nama domain.
  • Tujuan Permintaan: Permintaan DNS yang dilakukan sebagian besar ditujukan ke alamat IP 10.255.255.254. Ini kemungkinan adalah alamat IP dari server DNS lokal atau server DNS yang digunakan oleh jaringan tersebut.

Nama Domain yang Dicari:

Beberapa nama domain yang dicari antara lain:

  • wireshark.org
  • gitlab.com
  • motd.ubuntu.com

Respons DNS: Untuk setiap permintaan DNS, terdapat respons DNS yang berisi alamat IP yang sesuai dengan nama domain yang diminta.

Kesimpulan Berdasarkan data tangkapan ini, dapat disimpulkan bahwa perangkat yang sedang diamati sedang melakukan aktivitas browsing atau mengakses layanan jaringan yang membutuhkan resolusi nama domain. Perangkat tersebut secara aktif mencari alamat IP dari berbagai nama domain untuk dapat terhubung ke server yang bersangkutan.