title | author | date |
---|---|---|
Komunikasi Data dan Jaringan Komputer Praktikum 06 |
Auriza Akbar |
2017 |
Tujuan: mahasiswa dapat memahami cara kerja protokol layer aplikasi berbasis teks.
Protokol komunikasi adalah prosedur dan aturan standar dalam berkomunikasi.
Klien yang ingin berkomunikasi dengan server harus mengikuti protokol tersebut.
Misalnya klien untuk web seperti Firefox, harus menggunakan protokol HTTP untuk berkomunikasi dengan server.
Namun, mekanisme protokol sangat jarang diperlihatkan pada aplikasi berbasis GUI.
Untuk melihatnya, kita akan menggunakan program netcat
dan openssl s_client
.
Umumnya protokol pada layer aplikasi ini berbasis teks, sehingga mudah dipahami.
Hypertext transfer protocol (HTTP) adalah dasar komunikasi pada world wide web. Server HTTP menggunakan transport layer TCP pada port 80. Spesifikasi HTTP versi 1.1 didefinisikan pada RFC 2616.
GET
: mengambil dataHEAD
: mengambil header-nya sajaPOST
: menambahkan data, misalnya form submission- ...
100 Continue
200 OK
206 Partial Content
301 Moved Permanently
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
- ...
Header HTTP dapat diamati menggunakan 'Network Monitor' (Ctrl
+Shift
+Q
) pada Firefox.
$ netcat ipb.ac.id 80
GET / HTTP/1.0
Host: ipb.ac.id
HTTP/1.1 200 OK
Date: Wed, 15 Mar 2017 09:48:03 GMT
Server: Apache/2.4.7 (Ubuntu)
X-Powered-By: PHP/5.5.9-1ubuntu4.19
...
$ netcat 172.18.12.13 80
POST /pesan.php HTTP/1.0
Host: 172.18.12.13
Content-type: application/x-www-form-urlencoded
Content-length: 51
nama=Adam&email=adam@earth&pesan=Hola&tambah=Tambah
File transfer protocol (FTP) adalah protokol standar untuk transfer file via jaringan. FTP menggunakan transport layer TCP. Server menerima perintah melalui port 21. Server mengirimkan data ke port 20 (mode aktif) atau port ephemeral (mode pasif). Mode pasif lebih banyak dipakai oleh klien FTP karena tidak terhalang oleh firewall^[lihat http://slacksite.com/other/ftp.html]. Spesifikasi FTP didefinisikan pada RFC 959.
USER
: otentikasi nama penggunaPASS
: otentikasi passwordSTAT
: status koneksiCWD
: ganti direktoriPWD
: cetak nama direktoriPASV
: masuk ke mode pasif (dilakukan sebelum transfer data)LIST
: list isi direktoriRETR
: mengunduh fileSTOR
: mengunggah fileQUIT
: memutus koneksi
$ netcat ftp.debian.org 21
220 ftp.debian.org FTP server
USER anonymous
331 Please specify the password.
PASS
230 Login successful.
STAT
211-FTP server status:
...
211 End of status
CWD debian
250 Directory successfully changed.
PWD
257 "/debian"
PASV
227 Entering Passive Mode (130,89,148,12,147,101).
LIST
150 Here comes the directory listing.
226 Directory send OK.
PASV
227 Entering Passive Mode (130,89,148,12,179,98).
RETR README
150 Opening BINARY mode data connection for README (1060 bytes).
226 Transfer complete.
QUIT
221 Goodbye.
Setelah masuk mode PASV
, buka satu klien lain ke alamat yang dikembalikan mode
tersebut untuk menangkap transfer data dari server.
(130,89,148,12,147,101) -> 130.89.148.12 $((147*256+101))
$ netcat 130.89.148.12 $((147*256+101))
-rw-rw-r-- 1 1176 1176 1060 Jan 14 10:44 README
-rw-rw-r-- 1 1176 1176 1290 Jun 26 2010 README.CD-manufacture
-rw-rw-r-- 1 1176 1176 2588 Jan 14 10:44 README.html
-rw-r--r-- 1 1176 1176 291 Mar 04 20:08 README.mirrors.html
-rw-r--r-- 1 1176 1176 86 Mar 04 20:08 README.mirrors.txt
...
Simple mail transfer protocol (SMTP) adalah standar untuk pengiriman email melalui Internet. SMTP menggunakan transport layer TCP port 25, 465 (SSL), atau 587 (TLS). SSL atau TLS digunakan oleh SMTPS untuk mengenkripsi pesan. Spesifikasi SMTP didefinisikan pada RFC 5321.
HELO
: intro ke serverAUTH
: otentikasiMAIL
: alamat pengirimRCPT
: alamat penerimaDATA
: isi pesan, diakhiri dengan sebaris yang berisi satu titikQUIT
: mengakhiri sesi
$ printf "\0komdatjarkom2@gmail.com\0ilkomerz2" | base64
AGtvbWRhdGphcmtvbTJAZ21haWwuY29tAGlsa29tZXJ6Mg==
$ openssl s_client -connect smtp.gmail.com:465 -crlf -ign_eof -quiet
...
220 smtp.google.com ESMTP
HELO localhost
250 smtp.google.com at your service
AUTH PLAIN AGtvbWRhdGphcmtvbTJAZ21haWwuY29tAGlsa29tZXJ6Mg==
235 2.7.0 Accepted
MAIL FROM: <komdatjarkom2@gmail.com>
250 2.1.0 OK
RCPT TO: <auriza.akbar@gmail.com>
250 2.1.5 OK
DATA
354 Go ahead
Subject: SMTP test
From: "Komdat Jarkom" <komdatjarkom2@gmail.com>
To: "Auriza Akbar" <auriza.akbar@gmail.com>
Hello, this mail is sent from my terminal.
.
250 2.0.0 OK 1489590573
QUIT
221 2.0.0 closing connection
Post office protocol versi 3 (POP3) digunakan oleh klien untuk mengambil email dari server. POP3 menggunakan transport layer TCP port 110 atau 995 (POP3S). POP3S menggunakan SSL/TLS untuk mengenkripsi pesan. Spesifikasi POP3 didefinisikan pada RFC 1939.
USER
: nama penggunaPASS
: passwordSTAT
: status inboxLIST
: list inboxRETR
: membaca suratDELE
: menghapus suratRSET
: reset, batalkan semua modifikasiQUIT
: mengakhiri sesi
$ openssl s_client -connect pop.gmail.com:995 -crlf -ign_eof -quiet
...
+OK Gpop ready
USER komdatjarkom2@gmail.com
+OK send PASS
PASS ilkomerz2
+OK Welcome.
STAT
+OK 4 22204
LIST
+OK 4 messages (22204 bytes)
1 6920
2 4836
...
.
RETR 4
+OK message follows
...
Subject: New Email
From: Auriza Akbar <auriza.akbar@gmail.com>
To: komdatjarkom2@gmail.com
Test.
.
DELE 4
+OK marked for deletion
RSET
+OK
QUIT
+OK Farewell.
Internet message access protocol (IMAP) digunakan oleh klien untuk mengambil email dari server. IMAP menggunakan transport layer TCP port 143 atau melalui SSL pada port 993 (IMAPS). Spesifikasi IMAP didefinisikan pada RFC 3501. IMAP memiliki fitur yang lebih canggih dan kompleks daripada POP3.
LOGIN
: nama dan password penggunaLIST
: list mailboxSELECT
: memilih mailboxFETCH
: membaca suratSTORE
: mengubah atribut suratLOGOUT
: mengakhiri sesi
$ openssl s_client -connect imap.gmail.com:993 -crlf -ign_eof -quiet
...
* OK Gimap ready
t1 LOGIN komdatjarkom2@gmail.com ilkomerz2
...
t1 OK komdatjarkom2@gmail.com authenticated (Success)
t2 LIST "" "*"
...
t2 OK Success
t3 SELECT INBOX
...
t3 OK [READ-WRITE] INBOX selected. (Success)
t4 FETCH 311 ALL
* 311 FETCH (ENVELOPE
("Tue, 21 Mar 2017 21:04:17 -0700 (PDT)" "SMTP G64130108"
(("Mastur Fatullah" NIL "masturfatullah808" "gmail.com")) ...
(("Komdat Jarkom" NIL "komdatjarkom2" "gmail.com")) ...
)
FLAGS (\Seen) ...
)
t4 OK Success
t5 FETCH 311 BODY[TEXT]
* 311 FETCH (BODY[TEXT] {44}
Hello, this mail is sent from my terminal.
)
t5 OK Success
t6 STORE 311 +FLAGS \Flagged
* 311 FETCH (FLAGS (\Seen \Flagged))
t6 OK Success
t7 LOGOUT
* BYE LOGOUT Requested
t7 OK 73 good day (Success)
Gunakan protokol SMTP langsung untuk mengirim email dari akun email kalian masing-masing ke komdatjarkom2@gmail.com dengan isi sebagai berikut (sesuaikan dengan nama dan NIM kalian):
Subject: SMTP G6...
From: ...
To: komdatjarkom2@gmail.com
Hello, ...
.