Seperti yang telah kita bahas di tulisan tentang TCP & UDP, kita tahu TCP (Transmission Control Protocol) adalah connection-oriented protocol yang berarti bahwa TCP melacak berapa banyak data yang telah dikirimkan. Pengirim akan mengirimkan beberapa data dan penerima harus membalas dengan Acknowledgement. Ketika pengirim tidak menerima Acknowledgement dari penerima maka pengirim akan mengirim ulang data tersebut.
TCP menggunakan "windowing" yang berarti bahwa pengirim akan mengirim satu atau lebih segment data dan penerima akan membalas dengan Acknowledgement untuk satu atau semua segment. Saat kita memulai koneksi TCP, host akan menggunakan receive buffer untuk menyimpan data secara sementara sebelum aplikasi dapat memprosesnya.
Ketika penerima mengirim Acknowledgement, ia akan memberi tahu pengirim berapa banyak data yang dapat ditransmisikan sebelum penerima akan mengirim Acknowledgement. Itu disebut window size. Pada dasarnya, window size menunjukkan besarnya receive buffer.
Biasanya koneksi TCP akan dimulai dengan window size kecil dan setiap kali ada Acknowledgement yang berhasil, window size akan meningkat.
Mari kita lihat sebuah contoh:
Di contoh tsb, PC1 mengirim satu segment dan PC2 membalas dengan mengirim Acknowledgement. Karena Acknowledgement berhasil, maka window size akan meningkat:
Kini PC1 mengirim dua segment sekaligus dan PC2 akan membalas dengan satu Acknowledgement. Semuanya berjalan dengan lancar sehingga window size akan meningkat lagi:
Kini PC1 mengirim empat segment sekaligus dan PC2 merespons dengan satu Acknowledgement.
Pada contoh di atas, window size terus meningkat selama penerima mengirimkan Acknowledgement untuk semua segment dari pengirim atau ketika window size mencapai batas maksimum tertentu. Ketika penerima tidak mengirim Acknowledgement dalam periode waktu tertentu (disebut round trip time) maka window size akan berkurang.
Ketika sebuah interface mengalami congestion (kemacetan) maka ada kemungkinan paket IP akan di-drop. Untuk mengatasinya, TCP memiliki algoritma yang berhubungan dengan congestion control. Salah satunya disebut TCP slow start.
Congestion bisa terjadi ketika sebuah interface harus mengirimkan lebih banyak data daripada yang bisa ditangani. Queue (antrian) akan mencapai batasnya dan paket akan di-drop.
Dengan TCP slow start, window size awalnya akan bertambah secara eksponensial (window size menjadi dua kali lipat) tetapi ketika paket yang di-drop, window size akan dikurangi menjadi satu segment. Kemudian akan bertambah lagi secara eksponensial sampai window size menjadi setengah dari ukuran window size ketika congestion terjadi. Setelah itu, window size akan bertambah secara linear, bukan secara eksponensial.
Ketika sebuah interface mengalami congestion, mungkin semua koneksi TCP Anda akan mengalami TCP slow start. Paket akan di-drop dan kemudian semua koneksi TCP akan memiliki ukuran window size yang kecil. Ini disebut TCP global synchronization. Begini tampilannya:
Garis merah, kuning dan biru adalah tiga koneksi TCP yang berbeda. Koneksi TCP ini dimulai pada waktu yang berbeda dan setelah beberapa saat, interface mengalami congestion dan semua segment di koneksi-koneksi TCP tersebut di-drop. Kemudian yang terjadi adalah window size semua koneksi TCP ini akan turun ke satu dan setelah congestion pada interface reda, maka window size semua koneksi TCP akan meningkat lagi.
Jika interface kemudian menjadi padat lagi, ukuran window size turun kembali ke satu dan kejadian di atas berulang kembali. Hasil dari ini adalah kita tidak bisa menggunakan semua bandwidth yang tersedia pada interface. Anda dapat melihat garis putus-putus di atas, yang menunjukkan bahwa rata-rata utilisasi bandwidth pada interface tidak terlalu tinggi.
Untuk mencegah congestion yang berimbas pada TCP global synchronization, kita dapat menggunakan RED (Random Early Detection) yang merupakan salah satu mekanisme pada QoS (Quality of Service). Ini adalah fitur yang melakukan drop paket "secara acak" dari TCP stream berdasarkan jumlah paket dalam Queue (antrian) dan tanda ToS (Type of Service) yang ada pada IP header. Ketika paket di-drop sebelum Queue (antrian) penuh, kita dapat menghindari TCP global synchronization.
Hasil akhirnya akan terlihat seperti ini:
Dapat disimpulkan, ketika kita menggunakan RED (random early detection), pemanfaatan rata-rata utilisasi interface akan meningkat.
Kesimpulan
Anda sekarang telah melihat bagaimana TCP menggunakan window size untuk memberi tahu pengirim berapa banyak data yang bisa dikirim sebelum menerima Acknowledgement. Saya juga telah menunjukkan kepada Anda sebuah contoh bagaimana window size digunakan ketika penerima tidak dapat memproses receive buffer-nya tepat waktu.
Tidak seperti TCP, UDP adalah protokol connectionless dan hanya akan terus mengirim segment data tanpa menunggu Acknowledgement dan tanpa window size. Karena alasan ini, Anda mungkin ingin membatasi traffic UDP Anda atau bakal ada kemungkinan terjadi TCP starvation ketika terjadi congestion.
Semoga tulisan ini dapat memudahkan dalam memahami TCP window size. Jika ada pertanyaan, jangan ragu untuk bertanya di kolom komentar di bawah ya.
Selamat belajar dan tetap semangat di tengah pandemi ini :)
~AHa
#NetworkFundamentals
#StayAtHome
#StaySafe
#StayHealthy
Sunday, May 31, 2020
[Video] Spanning-Tree Protocol (STP) #IndoNetworkers #BelajarJaringanKomputer
Mungkin Anda pernah mendengar STP (Spanning-Tree Protocol) ketika membahas jaringan komputer, tapi Anda merasa masih belum memahami betul mengenai:
• Apakah itu STP?
• Untuk apa digunakan STP?
• Kapan perlu STP?
• Bagaimana cara kerja STP?
• Apakah perbedaan antara STP, RSTP, MSTP, VSTP, PVST & RPVST ?
• dan masih banyak pertanyaan lain tentang STP di benak Anda
Kebetulan pada hari Sabtu 30 mei 2020, saya berkesempatan berbagi ilmu mengenai STP di event Online Sharing Session bareng komunitas IndoNetworkers. Dan bagi Anda yang ketinggalan mengikuti event ini, bisa menonton video rekamannya di bawah :)
Semoga bisa membantu dalam belajar & tetap semangat di tengah pandemi ini :)
~AHa
#BelajarJaringanKomputer
#StayAtHome
#StaySafe
#StayHealthy
• Apakah itu STP?
• Untuk apa digunakan STP?
• Kapan perlu STP?
• Bagaimana cara kerja STP?
• Apakah perbedaan antara STP, RSTP, MSTP, VSTP, PVST & RPVST ?
• dan masih banyak pertanyaan lain tentang STP di benak Anda
Kebetulan pada hari Sabtu 30 mei 2020, saya berkesempatan berbagi ilmu mengenai STP di event Online Sharing Session bareng komunitas IndoNetworkers. Dan bagi Anda yang ketinggalan mengikuti event ini, bisa menonton video rekamannya di bawah :)
Semoga bisa membantu dalam belajar & tetap semangat di tengah pandemi ini :)
~AHa
#BelajarJaringanKomputer
#StayAtHome
#StaySafe
#StayHealthy
Friday, May 29, 2020
Network Fundamentals: TCP header #BelajarJaringanKomputer
TCP (Transmission Control Protocol) adalah protokol transport yang reliable karena membuat koneksi sebelum mengirim data apa pun dan semua yang dikirim harus dibalas dengan Acknowledgement oleh penerima. Dalam tulisan kali ini, kita akan melihat lebih dekat TCP header dan semua field-nya yang berbeda. Begini tampilannya:
Mari kita bahas tiap field satu per satu.
1) Source Port (16 bits): berisi nomor port pengirim.
2) Destination Port (16 bits): berisi nomor port penerima.
3) Sequence number (32 bits): menunjukkan berapa banyak data yang dikirim selama sesi TCP. Ketika Anda membuat koneksi TCP baru (3-way handshake) maka Sequence number awal adalah nilai 32 bit yang random (acak). Penerima akan menggunakan Sequence Number ini dan mengirimkan Acknowledgement. Aplikasi untuk analisis protokol/data seperti Wireshark, sering menggunakan Relative Sequence Number nomor urut relatif) 0 untuk semua segment pertama, karena lebih mudah dibaca daripada beberapa angka random (acak) yang besar (biasanya ribuan).
4) Acknowledgement number (32 bits): digunakan oleh penerima untuk meminta segment TCP berikutnya. Nilai ini akan menjadi Sequence number dari lawan yang bertambah 1.
5) DO (4 bits): juga dikenal sebagai panjang header. Ini menunjukkan panjang TCP header, sehingga kita tahu di mana data (payload) dimulai.
6) RSV (3 bits): field yang di-reserved. Saat ini tidak digunakan dan selalu bernilai 0.
7) Flag (9 bits): disebut juga Control bits. Kita menggunakannya untuk membuat koneksi, mengirim data dan mengakhiri koneksi.
9) Checksum (16 bits): digunakan sebagai checksum untuk memeriksa apakah header TCP yang diterima itu OK atau tidak.
10) Urgent Pointer (16 bits): digunakan ketika bit URG telah di-set, Urgent pointer digunakan untuk menunjukkan di mana data yang urgent berakhir.
12) Options: field ini bersifat opsional dan panjangnya antara 0 s.d. 320 bits.
Untuk melihat field-field ini pada sebuah TCP segment, kita bisa menggunakan wireshark. Berikut adalah contoh segment-segment TCP yang digunakan dalam 3-way handshake.
TCP SYN dari Client ke Server:
TCP SYN-ACK dari Server ke Client:
TCP ACK dari Client ke Server:
Di atas Anda dapat melihat Source & Destination port. Sequence number bernilai 0 tetapi wireshark memberitahu kita bahwa ini adalah Relative Sequence number (segment pertama diberi nilai 0 oleh Wireshark). Pada kenyataannya, Sequence number bernilai sangat besar pada segment TCP di atas. Anda juga dapat melihat bit SYN/ACK telah di-set pada field flag, Window size, Checksum dan Urgent pointer.
TCP adalah protokol yang cukup kompleks, tetapi semoga tulisan ini membantu memahami seperti apa tampilan header TCP dan fungsi masing-masing field.
Jika Anda memiliki pertanyaan, jangan ragu untuk meninggalkan komentar di bawah ya :)
Semoga bermanfaat dan tetap semangat di tengah pandemi ini :)
~AHa
Mari kita bahas tiap field satu per satu.
1) Source Port (16 bits): berisi nomor port pengirim.
2) Destination Port (16 bits): berisi nomor port penerima.
3) Sequence number (32 bits): menunjukkan berapa banyak data yang dikirim selama sesi TCP. Ketika Anda membuat koneksi TCP baru (3-way handshake) maka Sequence number awal adalah nilai 32 bit yang random (acak). Penerima akan menggunakan Sequence Number ini dan mengirimkan Acknowledgement. Aplikasi untuk analisis protokol/data seperti Wireshark, sering menggunakan Relative Sequence Number nomor urut relatif) 0 untuk semua segment pertama, karena lebih mudah dibaca daripada beberapa angka random (acak) yang besar (biasanya ribuan).
4) Acknowledgement number (32 bits): digunakan oleh penerima untuk meminta segment TCP berikutnya. Nilai ini akan menjadi Sequence number dari lawan yang bertambah 1.
5) DO (4 bits): juga dikenal sebagai panjang header. Ini menunjukkan panjang TCP header, sehingga kita tahu di mana data (payload) dimulai.
6) RSV (3 bits): field yang di-reserved. Saat ini tidak digunakan dan selalu bernilai 0.
7) Flag (9 bits): disebut juga Control bits. Kita menggunakannya untuk membuat koneksi, mengirim data dan mengakhiri koneksi.
- URG: urgent pointer. Ketika bit URG di-set, artinya segment data ini harus diperlakukan sebagai prioritas dibandingkan data lainnya.
- ACK: digunakan untuk acknowledgment.
- PSH: sebagai fungsi push. Ini memberi tahu aplikasi bahwa data harus segera ditransmisikan.
- RST: untuk me-reset koneksi, ketika Anda menerima ini, maka Anda harus segera mengakhiri koneksi. Ini hanya digunakan ketika ada unrecoverable error (error yang tidak dapat dipulihkan) dan ini bukan cara normal untuk mengakhiri koneksi TCP.
- SYN: digunakan untuk memulai 3-way handshake dan juga digunakan untuk mengatur Sequence number awal.
- FIN: bit akhir ini digunakan untuk mengakhiri koneksi TCP. TCP bersifat full duplex sehingga kedua belah pihak harus menggunakan bit FIN untuk mengakhiri koneksi. Ini adalah metode normal untuk mengakhiri koneksi.
9) Checksum (16 bits): digunakan sebagai checksum untuk memeriksa apakah header TCP yang diterima itu OK atau tidak.
10) Urgent Pointer (16 bits): digunakan ketika bit URG telah di-set, Urgent pointer digunakan untuk menunjukkan di mana data yang urgent berakhir.
12) Options: field ini bersifat opsional dan panjangnya antara 0 s.d. 320 bits.
Untuk melihat field-field ini pada sebuah TCP segment, kita bisa menggunakan wireshark. Berikut adalah contoh segment-segment TCP yang digunakan dalam 3-way handshake.
TCP SYN dari Client ke Server:
TCP SYN-ACK dari Server ke Client:
TCP ACK dari Client ke Server:
Di atas Anda dapat melihat Source & Destination port. Sequence number bernilai 0 tetapi wireshark memberitahu kita bahwa ini adalah Relative Sequence number (segment pertama diberi nilai 0 oleh Wireshark). Pada kenyataannya, Sequence number bernilai sangat besar pada segment TCP di atas. Anda juga dapat melihat bit SYN/ACK telah di-set pada field flag, Window size, Checksum dan Urgent pointer.
TCP adalah protokol yang cukup kompleks, tetapi semoga tulisan ini membantu memahami seperti apa tampilan header TCP dan fungsi masing-masing field.
Jika Anda memiliki pertanyaan, jangan ragu untuk meninggalkan komentar di bawah ya :)
Semoga bermanfaat dan tetap semangat di tengah pandemi ini :)
~AHa
Thursday, May 28, 2020
IndoNetworkers Community Class: Spanning-Tree Protocol (STP) #BelajarJaringanKomputer
#EVENT
IndoNetworkers Sharing Session #BelajarJaringanKomputer
Mau belajar dasar-dasar jaringan komputer secara GRATIS?
Yuk join sesi berbagi ilmu jaringan komputer dari komunitas IndoNetworkers pada hari/tanggal:
Topik: Spanning-Tree Protocol (STP, RSTP, PVST, RPVST)
Waktu: Sabtu 30 mei 2020, pukul 1 siang WIB
Durasi: 90 - 120 menit
Bagaimana cara joinnya?
1. Klik https://t.me/BelajarJaringanKomputer untuk bergabung ke grup Telegram "Belajar Jaringan Komputer"
2. Link untuk join online class akan di-share di grup tersebut (nanti hanya butuh Web Browser untuk mengikuti kelas)
Sesi sharing Komunitas IndoNetworkers ini bersifat gratis 100%, Anda bisa ganti dengan sedekah untuk membantu sesama :)
Sampai berjumpa di grup Telegram "Belajar Jaringan Komputer" dan sesi Online Sharing ini :)
IndoNetworkers Community
www.IndoNetworkers.org
info@IndoNetworkers.org
t.me/BelajarJaringanKomputer
facebook.com/IndoNetworkers
twitter.com/IndoNetworkers
youtube.com/c/KomunitasIndoNetworkers
IndoNetworkers Sharing Session #BelajarJaringanKomputer
Mau belajar dasar-dasar jaringan komputer secara GRATIS?
Yuk join sesi berbagi ilmu jaringan komputer dari komunitas IndoNetworkers pada hari/tanggal:
Topik: Spanning-Tree Protocol (STP, RSTP, PVST, RPVST)
Waktu: Sabtu 30 mei 2020, pukul 1 siang WIB
Durasi: 90 - 120 menit
Bagaimana cara joinnya?
1. Klik https://t.me/BelajarJaringanKomputer untuk bergabung ke grup Telegram "Belajar Jaringan Komputer"
2. Link untuk join online class akan di-share di grup tersebut (nanti hanya butuh Web Browser untuk mengikuti kelas)
Sesi sharing Komunitas IndoNetworkers ini bersifat gratis 100%, Anda bisa ganti dengan sedekah untuk membantu sesama :)
Sampai berjumpa di grup Telegram "Belajar Jaringan Komputer" dan sesi Online Sharing ini :)
IndoNetworkers Community
www.IndoNetworkers.org
info@IndoNetworkers.org
t.me/BelajarJaringanKomputer
facebook.com/IndoNetworkers
twitter.com/IndoNetworkers
youtube.com/c/KomunitasIndoNetworkers
Network Fundamentals: TCP & UDP #BelajarJaringanKomputer
Dalam tulisan ini, kita akan melihat protokol di layer transport OSI yaitu TCP dan UDP. Jika pada tulisan sebelumnya tentang protokol IP dan paketnya, Anda tahu bahwa kita memerlukan protokol transport untuk mengirim paket IP tersebut.
Saya ingin fokus pada protokol transport yang paling sering digunakan:
Jawaban singkatnya adalah:
TCP adalah protokol yang bersifat reliable (dapat diandalkan).
UDP adalah protokol yang bersifat unreliable (tidak dapat diandalkan) atau best effort (upaya terbaik).
Tidak bisa diandalkan alias Unreliable, Anda mungkin berpikir mengapa saya ingin transportasi data yang tidak dapat diandalkan? Apakah itu masuk akal? Saya akan menceritakan sedikit cerita untuk menjelaskan perbedaan antara kedua protokol tersebut.
Anda mau men-download sebuah file berukuran 10 GB dan setelah mengunduh 9 GB, ada yang tidak beres dan beberapa IP packet tidak berhasil sampai ke komputer Anda. Segera setelah seluruh download selesai, Anda mencoba membuka file tersebut dan Anda mendapatkan banyak error (karena sebagian isi file tidak sampai ke komputer Anda). Hal ini membuat pengorbanan waktu dan bandwidth Anda untuk men-download beberapa GB terasa sia-sia, padahal sebagian besar data telah di-download dengan baik.
Oleh sebab itu, Anda membutuhkan sebuah protokol transport yang bisa memastikan bahwa pengiriman data dari pengirim (misal server) ke komputer Anda itu reliable (handal), nah itulah sebabnya kita menggunakan TCP. Jika beberapa IP packet tidak sampai ke komputer Anda, Anda ingin memastikan data ini akan dikirim ulang ke komputer Anda.
Dalam cerita kedua, Anda adalah seorang network engineer yang ingin mengimplementasikan Voice over IP di perusahaan Anda dan menyingkirkan semua telepon analog. Tetapi setelah VoIP diimplementasikan, para user mengeluh karena kualitas panggilan telepon kini menjadi lebih buruk. Anda menghubungi vendor solusi VoIP tersebut dan Anda mendapatkan informasi bahwa vendor berpikir untuk menggunakan protokol transportasi yang dapat diandalkan (reliable) seperti TCP karena kita ingin panggilan telepon dapat diandalkan (reliable) bukan?
Ternyata itu adalah cara berpikir yang salah! TCP melakukan koreksi kesalahan (error correction) yang berarti bahwa data yang tidak berhasil sampai ke komputer Anda akan dikirim ulang (retransmission). Sangatlah aneh jika Anda berbicara dengan seseorang di telepon dan Anda mendengar sesuatu yang mereka katakan beberapa detik yang lalu? Komunikasi via telepon seharusnya bersifat real-time, jadi kita tidak menginginkan pengiriman ulang (retransmission). Lebih baik mengirim paket VoIP dan kehilangan beberapa paket yang error, daripada mengirimnya kembali setelah itu. Codec VoIP juga dapat memperbaiki kehilangan paket (packet loss) hingga tingkat tertentu. Dalam contoh ini (komunikasi VoIP), kita ingin menggunakan protokol yang unreliable/best effort, yaitu UDP.
Pertama-tama Anda melihat Tipe Koneksi. TCP bertipe connection-oriented yang artinya akan membuat koneksi terlebih dahulu, baru kemudian mulai mentransfer data. UDP bertipe connectionless, yang artinya akan langsung mulai mengirim dan tidak peduli apakah data tsb diterima oleh tujuan atau tidak. Koneksi yang disiapkan oleh TCP disebut "3-way handshake" yang akan kita bahas sebentar lagi.
Sequencing berarti menggunakan nomor urut. Jika Anda men-download file yang besar, Anda perlu memastikan bahwa Anda dapat mengembalikan semua segment itu dalam urutan yang benar. Seperti yang Anda lihat di tabel, UDP tidak menawarkan fitur ini, tidak ada nomor urut pada UDP.
Lalu bagaimana dengan VoIP? Bukankah kita harus mengembalikan segment-segment itu di sisi penerima? Ya, sebenarnya hal itu kita lakukan, karena kalau tidak maka kita akan mendapatkan beberapa percakapan aneh (karena suara yang diterima tidak berurutan). UDP tidak menawarkan fitur pengurutan/sequencing ini. Tapi ada sedikit rahasia, yaitu untuk VoIP itu bukan hanya UDP yang kita gunakan, tetapi juga menggunakan RTP yang menawarkan pengurutan/sequencing serta beberapa fitur lainnya yang kita perlukan untuk VoIP.
Mari kita lihat UDP header:
Anda dapat melihat betapa sederhananya UDP header, terdapat nomor (logical) port pengirim dan tujuan (digunakan untuk mengetahui data ini untuk aplikasi yang mana), ada checksum dan panjang/length.
Mari kita simpulkan apa yang sekarang kita ketahui tentang UDP:
Sekarang mari kita lihat apa yang bisa ditawarkan TCP kepada kita. Pertama-tama karena TCP adalah protokol yang reliable, TCP akan membuat koneksi sebelum memulai pengiriman data. Proses membuat koneksi ini disebut "3-way handshake".
Contohnya ada 2 komputer yang ingin saling mengirim data menggunakan TCP. Client PC ingin mengirim data ke Server dengan cara yang reliable, sehingga menggunakan TCP. Berikut ini proses membuat koneksi dengan 3-way handshake:
1. Client PC mengirim SYN segment dengan random (acak) sequence number (misal 3456) ke server
2. Server membalas dengan mengirim SYN-ACK segment dengan random sequence number (misal 4100) dan ACK number yang ditambahkan 1 dari sequence number lawannya (yaitu 3457)
3. Client PC membalas dengan mengirim ACK segment dengan ACK number yang ditambahkan 1 dari sequence number lawannya (yaitu 4101)
Setelah TCP 3-way handshake ini sukses, maka Client PC bisa melakukan upload/download file dari server.
Selain 3-way handshake ini, TCP juga mempunyai fitur lain yaitu Flow Control.
Apa itu Flow Control?
Perangkat jaringan beroperasi pada kecepatan data yang berbeda karena berbagai faktor seperti CPU dan bandwidth yang tersedia. Flow control digunakan ketika perangkat pengirim mempunyai kecepatan yang jauh lebih cepat daripada yang dapat ditangani oleh penerima. TCP menggunakan mekanisme sliding window untuk menerapkan flow control. Sliding window menggunakan window size yaitu seberapa banyak segment yang bisa dikirim kepada penerima, sebelum penerima mengirim ACK kepada pengirim. Jadi window size itu menunjukkan ukuran buffer pada penerima. Mengenai Window Size ini kan saya bahas di tulisan lain yah :)
Kesimpulan:
Agar lebih mudah memahami TCP & UDP, Anda bisa menonton video saya yang membahas TCP & UDP di: https://youtu.be/k4DfVCJOA4w?t=1965
Semoga bisa membantu dalam memahami topik Network Fundamentals dan jika ada pertanyaan, silahkan ketik di kolom komentar :)
Tetap semangat :)
AHa
Saya ingin fokus pada protokol transport yang paling sering digunakan:
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol)
Jawaban singkatnya adalah:
TCP adalah protokol yang bersifat reliable (dapat diandalkan).
UDP adalah protokol yang bersifat unreliable (tidak dapat diandalkan) atau best effort (upaya terbaik).
Tidak bisa diandalkan alias Unreliable, Anda mungkin berpikir mengapa saya ingin transportasi data yang tidak dapat diandalkan? Apakah itu masuk akal? Saya akan menceritakan sedikit cerita untuk menjelaskan perbedaan antara kedua protokol tersebut.
Anda mau men-download sebuah file berukuran 10 GB dan setelah mengunduh 9 GB, ada yang tidak beres dan beberapa IP packet tidak berhasil sampai ke komputer Anda. Segera setelah seluruh download selesai, Anda mencoba membuka file tersebut dan Anda mendapatkan banyak error (karena sebagian isi file tidak sampai ke komputer Anda). Hal ini membuat pengorbanan waktu dan bandwidth Anda untuk men-download beberapa GB terasa sia-sia, padahal sebagian besar data telah di-download dengan baik.
Oleh sebab itu, Anda membutuhkan sebuah protokol transport yang bisa memastikan bahwa pengiriman data dari pengirim (misal server) ke komputer Anda itu reliable (handal), nah itulah sebabnya kita menggunakan TCP. Jika beberapa IP packet tidak sampai ke komputer Anda, Anda ingin memastikan data ini akan dikirim ulang ke komputer Anda.
Dalam cerita kedua, Anda adalah seorang network engineer yang ingin mengimplementasikan Voice over IP di perusahaan Anda dan menyingkirkan semua telepon analog. Tetapi setelah VoIP diimplementasikan, para user mengeluh karena kualitas panggilan telepon kini menjadi lebih buruk. Anda menghubungi vendor solusi VoIP tersebut dan Anda mendapatkan informasi bahwa vendor berpikir untuk menggunakan protokol transportasi yang dapat diandalkan (reliable) seperti TCP karena kita ingin panggilan telepon dapat diandalkan (reliable) bukan?
Ternyata itu adalah cara berpikir yang salah! TCP melakukan koreksi kesalahan (error correction) yang berarti bahwa data yang tidak berhasil sampai ke komputer Anda akan dikirim ulang (retransmission). Sangatlah aneh jika Anda berbicara dengan seseorang di telepon dan Anda mendengar sesuatu yang mereka katakan beberapa detik yang lalu? Komunikasi via telepon seharusnya bersifat real-time, jadi kita tidak menginginkan pengiriman ulang (retransmission). Lebih baik mengirim paket VoIP dan kehilangan beberapa paket yang error, daripada mengirimnya kembali setelah itu. Codec VoIP juga dapat memperbaiki kehilangan paket (packet loss) hingga tingkat tertentu. Dalam contoh ini (komunikasi VoIP), kita ingin menggunakan protokol yang unreliable/best effort, yaitu UDP.
Pertama-tama Anda melihat Tipe Koneksi. TCP bertipe connection-oriented yang artinya akan membuat koneksi terlebih dahulu, baru kemudian mulai mentransfer data. UDP bertipe connectionless, yang artinya akan langsung mulai mengirim dan tidak peduli apakah data tsb diterima oleh tujuan atau tidak. Koneksi yang disiapkan oleh TCP disebut "3-way handshake" yang akan kita bahas sebentar lagi.
Sequencing berarti menggunakan nomor urut. Jika Anda men-download file yang besar, Anda perlu memastikan bahwa Anda dapat mengembalikan semua segment itu dalam urutan yang benar. Seperti yang Anda lihat di tabel, UDP tidak menawarkan fitur ini, tidak ada nomor urut pada UDP.
Lalu bagaimana dengan VoIP? Bukankah kita harus mengembalikan segment-segment itu di sisi penerima? Ya, sebenarnya hal itu kita lakukan, karena kalau tidak maka kita akan mendapatkan beberapa percakapan aneh (karena suara yang diterima tidak berurutan). UDP tidak menawarkan fitur pengurutan/sequencing ini. Tapi ada sedikit rahasia, yaitu untuk VoIP itu bukan hanya UDP yang kita gunakan, tetapi juga menggunakan RTP yang menawarkan pengurutan/sequencing serta beberapa fitur lainnya yang kita perlukan untuk VoIP.
Mari kita lihat UDP header:
Anda dapat melihat betapa sederhananya UDP header, terdapat nomor (logical) port pengirim dan tujuan (digunakan untuk mengetahui data ini untuk aplikasi yang mana), ada checksum dan panjang/length.
Mari kita simpulkan apa yang sekarang kita ketahui tentang UDP:
- beroperasi pada layer transport OSI.
- protokol connectionless: tidak membuat koneksi, hanya mengirim data. Analoginya seperti kita mengirim surat.
- Protokol yang bersifat unreliable/best effort.
- Tidak ada fitur error-recovery.
Sekarang mari kita lihat apa yang bisa ditawarkan TCP kepada kita. Pertama-tama karena TCP adalah protokol yang reliable, TCP akan membuat koneksi sebelum memulai pengiriman data. Proses membuat koneksi ini disebut "3-way handshake".
Contohnya ada 2 komputer yang ingin saling mengirim data menggunakan TCP. Client PC ingin mengirim data ke Server dengan cara yang reliable, sehingga menggunakan TCP. Berikut ini proses membuat koneksi dengan 3-way handshake:
1. Client PC mengirim SYN segment dengan random (acak) sequence number (misal 3456) ke server
2. Server membalas dengan mengirim SYN-ACK segment dengan random sequence number (misal 4100) dan ACK number yang ditambahkan 1 dari sequence number lawannya (yaitu 3457)
3. Client PC membalas dengan mengirim ACK segment dengan ACK number yang ditambahkan 1 dari sequence number lawannya (yaitu 4101)
Setelah TCP 3-way handshake ini sukses, maka Client PC bisa melakukan upload/download file dari server.
Selain 3-way handshake ini, TCP juga mempunyai fitur lain yaitu Flow Control.
Apa itu Flow Control?
Perangkat jaringan beroperasi pada kecepatan data yang berbeda karena berbagai faktor seperti CPU dan bandwidth yang tersedia. Flow control digunakan ketika perangkat pengirim mempunyai kecepatan yang jauh lebih cepat daripada yang dapat ditangani oleh penerima. TCP menggunakan mekanisme sliding window untuk menerapkan flow control. Sliding window menggunakan window size yaitu seberapa banyak segment yang bisa dikirim kepada penerima, sebelum penerima mengirim ACK kepada pengirim. Jadi window size itu menunjukkan ukuran buffer pada penerima. Mengenai Window Size ini kan saya bahas di tulisan lain yah :)
Kesimpulan:
- Pada layer 4 (transport) OSI ada 2 protokol yang sering kita gunakan yaitu TCP & UDP (selain kedua protokol ini, sebenarnya masih ada protokol lain seperti SCTP).
- TCP digunakan oleh aplikasi yang membutuhkan reliability, seperti download file, email, browsing web.
- UDP digunakan oleh aplikasi yang membutuhkan kecepatan (real-time), seperti VoIP, video streaming.
- Sebagian besar aplikasi yang kita gunakan (seperti HTTP, HTTPS, SSH, Telnet, SMTP, POP3), menggunakan protokol TCP di layer 4 dan protokol IP di layer 3, sehingga kita sering mendengar istilah TCP/IP.
Agar lebih mudah memahami TCP & UDP, Anda bisa menonton video saya yang membahas TCP & UDP di: https://youtu.be/k4DfVCJOA4w?t=1965
Semoga bisa membantu dalam memahami topik Network Fundamentals dan jika ada pertanyaan, silahkan ketik di kolom komentar :)
Tetap semangat :)
AHa
Wednesday, May 27, 2020
Network Fundamentals: ICMP #BelajarJaringanKomputer
ICMP message dibungkus dalam IP packet sehingga ada orang yang mengatakan bahwa ICMP adalah protokol layer 4 seperti UDP atau TCP. Namun, karena ICMP adalah bagian penting dari protokol IP, ia biasanya dianggap sebagai protokol layer 3.
Header yang digunakan ICMP sangat sederhana, seperti inilah tampilannya:
8 bits/1 Byte pertama menentukan tipe ICMP message. Misalnya, tipe 8 digunakan untuk ICMP echo request dan tipe 0 digunakan untuk ICMP echo reply. Tipe 3 untuk destination unreachable.
8 bits/1 Byte kedua disebut code, menentukan kode atau jenis dari setiap ICMP message. Misalnya, destination unreachable memiliki 16 kode berbeda. Ketika Anda melihat kode 0 itu berarti bahwa jaringan tujuan tidak dapat dijangkau, sementara kode 1 berarti bahwa host tujuan tidak dapat dijangkau.
Kolom ketiga adalah 16 bits (2 Bytes) yang digunakan untuk checksum, untuk mengecek apakah header ICMP error atau tidak. Seperti apa field-field lain yang tersisa dari header? Itu bergantung pada tipe ICMP message yang digunakan.
Jika Anda tertarik, berikut adalah daftar lengkap semua kode dan tipe ICMP.
Untuk menunjukkan kepada Anda beberapa contoh ICMP, mari kita lihat beberapa ICMP message yang sering digunakan, menggunakan Wireshark.
1. ICMP echo
PC-X mau mengirim paket ICMP echo (ping) ke server 1.1.1.1, untuk mengetahui apakah server 1.1.1.1 bisa membalas ICMP echo dari PC-X
C:\Users\PC-X>ping 1.1.1.1
Pinging 1.1.1.1 with 32 bytes of data:
Reply from 1.1.1.1: bytes=32 time=72ms TTL=58
Reply from 1.1.1.1: bytes=32 time=85ms TTL=58
Reply from 1.1.1.1: bytes=32 time=27ms TTL=58
Reply from 1.1.1.1: bytes=32 time=158ms TTL=58
Ping statistics for 1.1.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 27ms, Maximum = 158ms, Average = 85ms
Dari hasil capture Wireshark, kita bisa melihat ICMP echo (ping) request yang dikirim ke server 1.1.1.1. ICMP echo (ping) request mempunyai tipe 8 dan kode 0.
Sedangkan ICMP echo (ping) Reply dari server 1.1.1.1 ke PC-X, mempunyai tipe 0 dan kode 0.
2. Destination Unreachable
PC-X mencoba mengirim ICMP echo (ping) ke server 110.5.105.30, tapi ternyata server tsb tidak bisa dicapai (unreachable) karena alasan tertentu (misalnya sedang shutdown, restart, dll).
C:\Users\PC-X>ping 110.5.105.30
Pinging 110.5.105.30 with 32 bytes of data:
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Hasil capture Wireshark, ICMP Destination Unreachable mempunyai tipe 3 dan kode 1 untuk Host Unreachable.
3. Traceroute
PC-X mengirim ICMP echo (ping) ke server 8.8.8.8 menggunakan TTL terkecil yaitu 1 dan secara bertahap dinaikkan hingga mendapat reply/balasan dari server 8.8.8.8, dengan tujuan untuk mendapatkan informasi mengenai hop-by-hop yang dilalui dari PC-X hingga sampai ke server 8.8.8.8
C:\Users\PC-X>tracert 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 14 ms 11 ms 12 ms 10.158.0.1
2 145 ms 139 ms 219 ms 202.73.96.26
3 168 ms 143 ms 141 ms 202.73.96.25
4 32 ms 24 ms 28 ms 116.68.231.150
5 34 ms 33 ms 29 ms 111.95.246.130
6 38 ms 44 ms 28 ms 74.125.242.33
7 26 ms 24 ms 68 ms 72.14.232.101
8 33 ms 34 ms 67 ms 8.8.8.8
Trace complete.
Hasil capture Wireshark, ini adalah paket ICMP yang dikirim PC-X ke 8.8.8.8, dengan TTL terkecil yaitu 1. TTL ini selalu dikurangi 1 ketika transit di sebuah router. Terlihat bahwa paket ICMP mempunyai Protocol ID = 1.
Ketika sampai di router pertama (gateway terdekat), TTL 1 tsb dikurangi menjadi 0, sehingga paket di-drop oleh router dan router tersebut mengirim ICMP TTL exceeded message kepada pengirim (PC-X). ICMP TTL exceeded mempunyai tipe 11 dan kode 0.
Kesimpulan:
Kita telah membahas mengenai kegunaan ICMP, seperti apa header-nya dan beberapa contoh ICMP message yang sering kita gunakan. Jika ada pertanyaan, silahkan tulis di kolom komentar :)
Agar lebih mudah memahami tentang ICMP, sebaiknya tonton video saya yang membahas mengenai ICMP di: https://youtu.be/k4DfVCJOA4w?t=1290
Semoga bermanfaat & tetap semangat untuk belajar :)
-AHa-
Monday, May 25, 2020
IndoNetworkers Online Class (Jun '20): CCNA & JNCIA #BelajarJaringanKomputer
Dikarenakan masih banyaknya permintaan akan kelas CCNA & JNCIA-Junos pada bulan Romadhon yang lalu, maka IndoNetworkers Community kembali mengadakan kelas training online sekaligus berdonasi untuk kegiatan amal "Sembako untuk Pekerja Harian" sebagai bagian dari kegiatan komunitas dalam #BersamaLawanCorona
1) JNCIA-Junos
Tanggal 1 - 5 juni 2020
jam 9.00 - 12.00 WIB
2) Cisco CCNA
Tanggal 1 - 5 juni 2020
jam 13.00 - 17.00 WIB
Para peserta training hanya perlu menggunakan web browser (Chrome, Firefox, Edge) untuk mengikuti kelas ini.
Biaya sukarela/seikhlasnya*, mulai dari Rp 49.000 hingga Rp 599.000
*10% akan disumbangkan untuk kegiatan amal "Sembako untuk Pekerja Harian" https://kitabisa.com/campaign/sembakopekerjaharian
Registrasi: http://IndoNetworkers.org/register
*Jika ingin GRATIS karena ketiadaan dana untuk training, silahkan menghubungi info@IndoNetworkers.org
info selengkapnya di: https://www.IndoNetworkers.org
---
AHa
Network Fundamentals: ARP protocol #BelajarJaringanKomputer
Jika Anda mengetahui tentang OSI model dan proses enkapsulasi/dekapsulasi, Anda tahu bahwa ketika dua komputer di LAN ingin saling berkomunikasi, hal berikut akan terjadi:
IP packet dibuat dengan Header yang berisi Source & Destination IP address, dan membawa data dari suatu aplikasi.
IP packet akan di-enkapsulasi dalam Ethernet frame dengan Source (pengirim) & Destination (tujuan) MAC address.
Komputer pengirim tentu saja akan tahu MAC address pengirim (diri sendiri) tetapi bagaimana cara mengetahui MAC address tujuan? Di situlah ARP berperan.
Pada gambar di atas, ada dua komputer, PC1 dan PC2 yang mempunyai IP address dan MAC address masing-masing.
Dari PC1, buka command prompt dan ketik:
C:\Users\PC1>ping 10.1.1.10
Pinging 10.1.1.10 with 32 bytes of data:
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Ping statistics for 10.1.1.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Sebelumnya kita telah membahas OSI model di tulisan ini dan kita juga tahu bahwa data harus melewati semua layer/lapisan.
Ping menggunakan protokol ICMP dan IP berada di Network Layer (layer 3). IP packet akan memiliki Source IP address 10.1.1.5 dan Destination IP address 10.1.1.10.
Langkah selanjutnya adalah menempatkan IP packet dalam Ethernet frame di mana terdapat Source MAC address dan Destination MAC address.
Nah ... bagaimana PC1 tahu tentang MAC address PC2? PC1 tahu IP address PC2 karena user mengetiknya (ping 10.1.1.10), tetapi tidak ada cara bagi PC1 untuk mengetahui MAC address PC2. Ada protokol lain yang digunakan untuk menyelesaikan masalah ini, protokol itu disebut ARP (Address Resolution Protocol).
Mari kita lihat lebih detail cara kerja ARP dan bagaimana fungsinya:
Dalam contoh ini, ada 2 komputer dengan IP address dan MAC address berbeda. PC1 akan ingin mengirim ICMP ping ke PC2. ARP-table kosong sehingga PC1 tidak tahu MAC address PC2. Hal pertama yang akan dilakukan PC1 adalah mengirimkan ARP-Request yang intinya mengatakan "Siapa yang memiliki 10.1.1.0 dan berapa MAC address-nya?"
Karena PC1 tidak tahu MAC address PC2, PC1 menggunakan alamat MAC broadcast sebagai tujuan (FFFF:FFFF:FFFF). ARP-Request ini akan menjangkau semua host di jaringan.
PC2 akan membalas dengan pesan ARP-Reply secara unicast (ditujukan hanya untuk PC1) yang intinya mengatakan "itu saya! Dan ini MAC address saya ”. PC1 sekarang dapat menambahkan MAC address ke ARP table. Setelah itu PC1 bisa mengirim data menuju PC2.
Hasilnya, ARP table di PC1 akan seperti ini:
C: Users\PC1> arp -a
Interface: 10.1.1.5 --- 0x14
Internet Address Physical Address Type
10.1.1.10 f8-62-14-42-38-2e dynamic
Pada contoh di atas, Anda melihat contoh tabel ARP pada PC1. Saat ini, PC1 telah mengetahui bahwa IP address 10.1.1.10 telah dipetakan ke MAC address f8-62-14-42-38-2e.
Kita bisa menangkap ARP packet menggunakan Wireshark:
Di atas, kita bisa melihat ARP-Request dari PC1 yang mencari MAC address dari IP PC2. Source MAC address adalah MAC PC1, Destination MAC address adalah "Broadcast" sehingga akan dikirim ke semua host di jaringan.
Paket kedua adalah ARP-Reply dari PC2. PC2 mengirim MAC address-nya ke PC1.
Penjelasan ARP versi video, bisa dilihat di: https://youtu.be/k4DfVCJOA4w?t=154
Kesimpulan:
Semoga tulisan dan video di atas bisa membantu dalam memahami protokol ARP.
Selamat belajar :)
-AHa-
#BelajarJaringanKomputer
IP packet dibuat dengan Header yang berisi Source & Destination IP address, dan membawa data dari suatu aplikasi.
IP packet akan di-enkapsulasi dalam Ethernet frame dengan Source (pengirim) & Destination (tujuan) MAC address.
Komputer pengirim tentu saja akan tahu MAC address pengirim (diri sendiri) tetapi bagaimana cara mengetahui MAC address tujuan? Di situlah ARP berperan.
Pada gambar di atas, ada dua komputer, PC1 dan PC2 yang mempunyai IP address dan MAC address masing-masing.
Dari PC1, buka command prompt dan ketik:
C:\Users\PC1>ping 10.1.1.10
Pinging 10.1.1.10 with 32 bytes of data:
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Ping statistics for 10.1.1.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Sebelumnya kita telah membahas OSI model di tulisan ini dan kita juga tahu bahwa data harus melewati semua layer/lapisan.
Ping menggunakan protokol ICMP dan IP berada di Network Layer (layer 3). IP packet akan memiliki Source IP address 10.1.1.5 dan Destination IP address 10.1.1.10.
Langkah selanjutnya adalah menempatkan IP packet dalam Ethernet frame di mana terdapat Source MAC address dan Destination MAC address.
Nah ... bagaimana PC1 tahu tentang MAC address PC2? PC1 tahu IP address PC2 karena user mengetiknya (ping 10.1.1.10), tetapi tidak ada cara bagi PC1 untuk mengetahui MAC address PC2. Ada protokol lain yang digunakan untuk menyelesaikan masalah ini, protokol itu disebut ARP (Address Resolution Protocol).
Mari kita lihat lebih detail cara kerja ARP dan bagaimana fungsinya:
Dalam contoh ini, ada 2 komputer dengan IP address dan MAC address berbeda. PC1 akan ingin mengirim ICMP ping ke PC2. ARP-table kosong sehingga PC1 tidak tahu MAC address PC2. Hal pertama yang akan dilakukan PC1 adalah mengirimkan ARP-Request yang intinya mengatakan "Siapa yang memiliki 10.1.1.0 dan berapa MAC address-nya?"
Karena PC1 tidak tahu MAC address PC2, PC1 menggunakan alamat MAC broadcast sebagai tujuan (FFFF:FFFF:FFFF). ARP-Request ini akan menjangkau semua host di jaringan.
PC2 akan membalas dengan pesan ARP-Reply secara unicast (ditujukan hanya untuk PC1) yang intinya mengatakan "itu saya! Dan ini MAC address saya ”. PC1 sekarang dapat menambahkan MAC address ke ARP table. Setelah itu PC1 bisa mengirim data menuju PC2.
Hasilnya, ARP table di PC1 akan seperti ini:
C: Users\PC1> arp -a
Interface: 10.1.1.5 --- 0x14
Internet Address Physical Address Type
10.1.1.10 f8-62-14-42-38-2e dynamic
Pada contoh di atas, Anda melihat contoh tabel ARP pada PC1. Saat ini, PC1 telah mengetahui bahwa IP address 10.1.1.10 telah dipetakan ke MAC address f8-62-14-42-38-2e.
Di atas, kita bisa melihat ARP-Request dari PC1 yang mencari MAC address dari IP PC2. Source MAC address adalah MAC PC1, Destination MAC address adalah "Broadcast" sehingga akan dikirim ke semua host di jaringan.
Paket kedua adalah ARP-Reply dari PC2. PC2 mengirim MAC address-nya ke PC1.
Kesimpulan:
- ARP (Address Resolution Protocol) adalah protokol di OSI layer 3 (network) yang berfungsi utk mapping (memetakan) IP address ke MAC address.
- ARP melibatkan ARP-Request (broadcast) dan ARP-Reply (unicast).
Semoga tulisan dan video di atas bisa membantu dalam memahami protokol ARP.
Selamat belajar :)
-AHa-
#BelajarJaringanKomputer
Friday, May 22, 2020
Network Fundamentals: IPv4 header #BelajarJaringanKomputer
Perhatikan gambar berikut:
Kita mulai dari field pertama hingga terakhir.
- Version (4 bits): field pertama ini berisi informasi mengenai versi IP yang kita gunakan. Karena kita membahas IPv4, maka field ini selalu bernilai 4
- Header length (4 bits): berisi informasi panjang IP header dalam satuan 4 Bytes atau 32 bit. Panjang minimum dari IP header adalah 20 bytes, sehingga nilai minimum pada field ini adalah 20 Bytes/4 Bytes = 5. Maximum value pada field ini adalah 15 (sehingga maximum panjang IPv4 header adalah 15 x 4 Bytes = 60 Bytes). Field ini disebut juga internet header length.
- Type of Service (ToS, 8 bits): digunakan untuk Quality of Service (QoS). Field ini digunakan untuk menandai (marking) IP packet sehingga kita bisa memberikan perlakuan (treatment) khusus sesuai marking pada IP packet tersebut. IP Precedence (3 bits) atau DSCP (6 bits) terdapat pada field ini. Mengenai IP Precedence dan DSCP ini akan dibahas lebih detail di topik QoS.
- Total Length (16 bits): berisi informasi ukuran IP packet (termasuk header dan data) dalam satuan Bytes. Panjang minimum adalah 20 Bytes (hanya IP header, tanpa data) dan panjang maximum 65.535 Bytes (16 bits).
- ID/Identification (16 bits): Jika IP packet mengalami fragmentasi, maka setiap 'fragmented packet' menggunakan nomor identifikasi (16 bits) yang sama untuk menandakan bahwa fragment ini termasuk IP packet yang mana.
- IP Flags (3 bits): digunakan untuk fragmentasi paket.
- Bit kedua disebut DF (Don't Fragment) bit dan menandakan agar paket ini tidak di-fragment.
- Bit ketiga disebut MF (More Fragments) bit dan di-set di semua 'fragmented packet' kecuali paket fragment yg terakhir.
- Fragment Offset (13 bits): menandakan posisi 'fragmented packet' di dalam IP packet original.
- Time to Live (8 bits): Setiap kali IP packet melewati sebuah router, TTL akan dikurang 1. Ketika TTL mencapai 0, maka router akan men-drop paket dan mengirim paket ICMP exceeded message ke pengirim. TTL digunakan untuk mencegah paket dari looping yang terus-menerus (jika terjadi routing loop).
- Protocol (8 bits): berisi informasi protokol yang dibungkus di dalam IP packet, contohnya TCP (value 6) dan UDP (value 17).
- Header Checksum (16 bits): menyimpan checksum dari header. Receiver/penerima bisa menggunakan checksum ini untuk mengecek apakah ada error pada IP header.
- Source Address (32 bits): berisi source IP address (pengirim).
- Destination Address (32 bits): berisi destination IP address (tujuan).
- IP Option: field ini jarang digunakan dan bersifat optional. Panjangnya bervariasi (tidak fixed) berdasarkan option yang digunakan. Ketika field ini digunakan, maka nilai pada field Header Length akan bertambah (karena panjang header memang akan bertambah). Contoh penggunaan IP option adalah source route, record route.
Berikut ini adalah contoh IP packet yang di-capture menggunakan Wireshark:
Semoga ilmu ini dapat membantu dalam memahami isi dari IPv4 header.
Jika ada pertanyaan, bisa langsung di kolom comment ya.
Selamat belajar :)
-AHa-
Saturday, May 16, 2020
Network Fundamentals: IP (Internet Protocol) version 4 #BelajarJaringanKomputer
IP (Internet Protocol) merupakan protokol yang sering kita gunakan sehari-hari di jaringan komputer. Protokol IP mempunyai PDU (Protocol Data Unit) yang disebut Packet. IP Packet membawa informasi berupa L3/IP header, selain data. Protokol IP menentukan ke mana paket akan dikirim dengan melihat IP address tujuan (Destination address) yang terdapat di IP header.
Berikut ini adalah karakteristik dari protokol IP
1. Berada di network layer pada OSI Layer 3/Network (di TCP/IP disebut Internet layer).
2. Connectionless artinya protokol IP tidak membangun koneksi sebelum mengirim paket (analoginya seperti mengirim surat).
3. Setiap paket diperlakukan secara independen. Tidak ada kepastian bahwa paket akan tiba secara berurutan ketika sampai tujuan. Antara 1 router dengan router lain bisa memberikan prioritas atau treatment yang berbeda untuk IP packet yang sama.
4. Best Effort: IP tidak melakukan pengecekan apakah packet telah diterima atau tidak. Dan tidak melakukan error recovery seperti retransmission request.
5. Protokol IP mempunyai alamat yang disebut sebagai IP address.
Di dalam IP header, terdapat beberapa field, antara lain adalah Protocol, Source address, Destination address, Time To Live.
Protocol: informasi protocol layer 4/Transport yang dibawa, misalkan TCP atau UDP.
Source address: alamat IP (logical) pengirim
Destination address: alamat IP (logical) tujuan
Time To Live (TTL): jumlah sisa hop yang bisa dilalui oleh paket ini
Kita membutuhkan IP address yang unik untuk setiap perangkat di jaringan. IP address itu analoginya seperti alamat rumah. Setiap rumah harus mempunyai alamat yang unik di sebuah kota.
Saat ini protokol IP mempunya 2 versi, yaitu IP version 4 & version 6.
IPv4 address panjangnya 32 bit, sehingga jumlah max IPv4 address = 2^32 = 4,2 milyar alamat
IPv6 address panjangnya 128 bit, sehingga jumlah max IPv6 address = 2^128 = 3,4 x 10^38 alamat (wow buanyak buanget yak :D )
Sebelum kita bahas IP address lebih lanjut, kita lihat dulu bagaimana konversi dari biner ke desimal (1 octet terdiri dari 8 bit)
IP address terdiri dari dua bagian yaitu bagian Network dan bagian Host.
Bagian Network seperti nama jalan, sedangkan bagian Host seperti nomor rumah.
IPv4 address ditulis dalam 4 bagian yang masing-masing panjangnya 8 bits. 8 bits ini kita sebut sebagai octet atau Byte.
Contoh IP address yang sering kita gunakan: 192.168.1.1
3 octet yang pertama adalah bagian Network (berisi Network bits) sedangkan 1 octet terakhir adalah bagian Host (berisi Host bits).
Untuk membedakan mana Network bits dan mana Host bits, digunakanlah subnet mask. Subnet Mask berfungsi untuk membedakan 2 jenis bits tsb, yaitu dengan memberikan biner 1 untuk Network bit dan biner 0 untuk host bit.
IP address dibagi menjadi 3 class (kita bisa membedakan tiap class, cukup dengan melihat octet 1 saja)
Class A: 0xxxxxxx.___.___.___
octet 1: 00000000 s.d. 01111111 = 0 s.d. 127
Di class A ini, ada 2 network yang reserved, yaitu 0.0.0.0 & 127.x.x.x
Class A mempunyai 8 network bits dan 24 host bits
--
Class B: 10xxxxxx.___.___.___
octet 1: 10000000 s.d. 10111111 = 128 s.d. 191
Kelas B mempunyai 16 Network bits dan 16 host bits
--
Class C: 110xxxxx.___.___.___
octet 1: 11000000 s.d. 11011111 = 192 s.d. 223
Kelas C mempunyai 24 Network bits dan 8 host bits
--
class D digunakan untuk multicast address
octet 1: 11100000 s.d. 11101111 = 224 s.d. 239
Cara penulisan subnet mask, bisa menggunakan bentuk desimal (misal 255.0.0.0) atau prefix-length (jumlah network bits, misal /8)
Pada IP address, ada private IP address dan public IP address.
1.) Private IP address: tidak dapat digunakan di internet, hanya untuk penggunaan internal (misal di rumah, kantor)
10.0.0.0/8 => 10.0.0.0 s.d. 10.255.255.255
172.16.0.0/12 => 172.16.0.0 s.d 172.31.255.255
192.168.0.0/16 => 192.168.0.0 s.d. 192.168.255.255
2.) Public IP address: digunakan di internet.
semua IP address di antara 1.x.x.x s.d. 223.x.x.x selain yang termasuk private IP address di atas.
Di setiap jaringan, terdapat tiga jenis alamat:
1.) Network address: sebagai Network ID.
IP address paling pertama di setiap jaringan. Host bit-nya 0 semua.
contoh:
class A 10.0.0.0/8
class B 172.16.0.0/16
class C 192.168.1.0/24
2.) Broadcast address: digunakan untuk mengirim broadcast ke semua host di jaringan.
IP address paling terakhir di setiap jaringan. Host bit-nya 1 semua.
contoh:
class A 10.255.255.255/8
class B 172.16.255.255/16
class C 192.168.1.255/24
3.) Host address: alamat yang bisa digunakan oleh host, seperti PC, notebook, router, switch, AP.
IP address yang berada di antara Network address dan Broadcast address. Host bit-nya ada 0 & 1.
contoh:
class A 10.0.0.1/8 s.d. 10.255.255.254/8
class B 172.16.0.1/16 s.d. 172.16.255.255/16
class C 192.168.1.1/24 s.d. 192.168.1.255/24
2 alamat reserved yang tidak bisa kita pakai di tiap jaringan adalah network address dan broadcast address.
Video mengenai IP bisa dilihat di: youtu.be/EKmy7kwYnmQ?t=1810
Kesimpulan:
Berikut ini adalah karakteristik dari protokol IP
1. Berada di network layer pada OSI Layer 3/Network (di TCP/IP disebut Internet layer).
2. Connectionless artinya protokol IP tidak membangun koneksi sebelum mengirim paket (analoginya seperti mengirim surat).
3. Setiap paket diperlakukan secara independen. Tidak ada kepastian bahwa paket akan tiba secara berurutan ketika sampai tujuan. Antara 1 router dengan router lain bisa memberikan prioritas atau treatment yang berbeda untuk IP packet yang sama.
4. Best Effort: IP tidak melakukan pengecekan apakah packet telah diterima atau tidak. Dan tidak melakukan error recovery seperti retransmission request.
5. Protokol IP mempunyai alamat yang disebut sebagai IP address.
Di dalam IP header, terdapat beberapa field, antara lain adalah Protocol, Source address, Destination address, Time To Live.
Protocol: informasi protocol layer 4/Transport yang dibawa, misalkan TCP atau UDP.
Source address: alamat IP (logical) pengirim
Destination address: alamat IP (logical) tujuan
Time To Live (TTL): jumlah sisa hop yang bisa dilalui oleh paket ini
Kita membutuhkan IP address yang unik untuk setiap perangkat di jaringan. IP address itu analoginya seperti alamat rumah. Setiap rumah harus mempunyai alamat yang unik di sebuah kota.
Saat ini protokol IP mempunya 2 versi, yaitu IP version 4 & version 6.
IPv4 address panjangnya 32 bit, sehingga jumlah max IPv4 address = 2^32 = 4,2 milyar alamat
IPv6 address panjangnya 128 bit, sehingga jumlah max IPv6 address = 2^128 = 3,4 x 10^38 alamat (wow buanyak buanget yak :D )
Sebelum kita bahas IP address lebih lanjut, kita lihat dulu bagaimana konversi dari biner ke desimal (1 octet terdiri dari 8 bit)
IP address terdiri dari dua bagian yaitu bagian Network dan bagian Host.
Bagian Network seperti nama jalan, sedangkan bagian Host seperti nomor rumah.
IPv4 address ditulis dalam 4 bagian yang masing-masing panjangnya 8 bits. 8 bits ini kita sebut sebagai octet atau Byte.
Contoh IP address yang sering kita gunakan: 192.168.1.1
3 octet yang pertama adalah bagian Network (berisi Network bits) sedangkan 1 octet terakhir adalah bagian Host (berisi Host bits).
Untuk membedakan mana Network bits dan mana Host bits, digunakanlah subnet mask. Subnet Mask berfungsi untuk membedakan 2 jenis bits tsb, yaitu dengan memberikan biner 1 untuk Network bit dan biner 0 untuk host bit.
IP address dibagi menjadi 3 class (kita bisa membedakan tiap class, cukup dengan melihat octet 1 saja)
Class A: 0xxxxxxx.___.___.___
octet 1: 00000000 s.d. 01111111 = 0 s.d. 127
Di class A ini, ada 2 network yang reserved, yaitu 0.0.0.0 & 127.x.x.x
- 0.0.0.0 digunakan sebagai unspecified address dan default route
- 127.x.x.x digunakan sebagai loopback.
Class A mempunyai 8 network bits dan 24 host bits
--
Class B: 10xxxxxx.___.___.___
octet 1: 10000000 s.d. 10111111 = 128 s.d. 191
Kelas B mempunyai 16 Network bits dan 16 host bits
--
Class C: 110xxxxx.___.___.___
octet 1: 11000000 s.d. 11011111 = 192 s.d. 223
Kelas C mempunyai 24 Network bits dan 8 host bits
--
class D digunakan untuk multicast address
octet 1: 11100000 s.d. 11101111 = 224 s.d. 239
Cara penulisan subnet mask, bisa menggunakan bentuk desimal (misal 255.0.0.0) atau prefix-length (jumlah network bits, misal /8)
Pada IP address, ada private IP address dan public IP address.
1.) Private IP address: tidak dapat digunakan di internet, hanya untuk penggunaan internal (misal di rumah, kantor)
10.0.0.0/8 => 10.0.0.0 s.d. 10.255.255.255
172.16.0.0/12 => 172.16.0.0 s.d 172.31.255.255
192.168.0.0/16 => 192.168.0.0 s.d. 192.168.255.255
2.) Public IP address: digunakan di internet.
semua IP address di antara 1.x.x.x s.d. 223.x.x.x selain yang termasuk private IP address di atas.
Di setiap jaringan, terdapat tiga jenis alamat:
1.) Network address: sebagai Network ID.
IP address paling pertama di setiap jaringan. Host bit-nya 0 semua.
contoh:
class A 10.0.0.0/8
class B 172.16.0.0/16
class C 192.168.1.0/24
2.) Broadcast address: digunakan untuk mengirim broadcast ke semua host di jaringan.
IP address paling terakhir di setiap jaringan. Host bit-nya 1 semua.
contoh:
class A 10.255.255.255/8
class B 172.16.255.255/16
class C 192.168.1.255/24
3.) Host address: alamat yang bisa digunakan oleh host, seperti PC, notebook, router, switch, AP.
IP address yang berada di antara Network address dan Broadcast address. Host bit-nya ada 0 & 1.
contoh:
class A 10.0.0.1/8 s.d. 10.255.255.254/8
class B 172.16.0.1/16 s.d. 172.16.255.255/16
class C 192.168.1.1/24 s.d. 192.168.1.255/24
2 alamat reserved yang tidak bisa kita pakai di tiap jaringan adalah network address dan broadcast address.
Video mengenai IP bisa dilihat di: youtu.be/EKmy7kwYnmQ?t=1810
Kesimpulan:
- Protokol IP berada di OSI layer 3 dan mempunyai beberapa karakteristik, a.l.: connectionless, best-effort.
- IP mempunyai alamat yang disebut IP address (v4 & v6).
Friday, May 15, 2020
Materi training gratis wireless CWS dari CWNP senilai USD 295
Bagi Anda yang ingin mempelajari tentang dasar-dasar Wireless Network (merupakan salah satu topik di Cisco CCNA & CCNP Enterprise), Anda bisa mempelajari materi training gratis dari CWNP (Certified Wireless Network Professional, yang merupakan vendor-neutral organization).
CWNP menawarkan materi training gratis (berupa video, practice test dll), untuk level entry yaitu CWS (Certified Wireless Specialist) yang harga aslinya senilai USD 295.
Materi pada topik ini sangat menarik untuk dipelajari.
Kenapa? karena sangat dekat dengan keseharian kita yang rutin menggunakan wifi (wireless). Sehingga kita bisa memahami bagaimana cara kerja device kita bisa terhubung ke jaringan wifi melalui AP (access point).
Untuk mendapatkan materi training gratis CWS, silahkan ikuti langkah-langkah berikut:
1. buat account baru di www.cwnp.com/login/
2. login menggunakan password yg dikirim ke email yang kita daftarkan
3. buka cwnp.link/cwsel
4. masukkan kode voucher CWS2020
5. lanjutkan dan pilih bayar pakai Credit Card (tidak punya CC juga bisa) karena tagihan 0
6. klik Order/Pay
7. Setelah itu, materi CWS eLearning bisa diakses di lms.cwnp.com (jangan lupa login ya)
8. Done :)
Selamat belajar :)
-AHa-
CWNP menawarkan materi training gratis (berupa video, practice test dll), untuk level entry yaitu CWS (Certified Wireless Specialist) yang harga aslinya senilai USD 295.
Materi pada topik ini sangat menarik untuk dipelajari.
Kenapa? karena sangat dekat dengan keseharian kita yang rutin menggunakan wifi (wireless). Sehingga kita bisa memahami bagaimana cara kerja device kita bisa terhubung ke jaringan wifi melalui AP (access point).
Untuk mendapatkan materi training gratis CWS, silahkan ikuti langkah-langkah berikut:
1. buat account baru di www.cwnp.com/login/
2. login menggunakan password yg dikirim ke email yang kita daftarkan
3. buka cwnp.link/cwsel
4. masukkan kode voucher CWS2020
5. lanjutkan dan pilih bayar pakai Credit Card (tidak punya CC juga bisa) karena tagihan 0
6. klik Order/Pay
7. Setelah itu, materi CWS eLearning bisa diakses di lms.cwnp.com (jangan lupa login ya)
8. Done :)
Selamat belajar :)
-AHa-
Tuesday, May 12, 2020
Network Fundamentals: OSI model #BelajarJaringanKomputer
Di banyak grup/komunitas jaringan di medsos maupun instant messaging, banyak yang berminat dengan topik dasar-dasar jaringan atau Network Fundamentals. Itu adalah hal yang bagus, karena ini adalah topik yang bisa menjadi fondasi yang bagus bagi seorang network engineer. Oleh sebab itu, pada kesempatan ini, saya mau membahas sedikit mengenai Network Fundamentals khususnya mengenai OSI model.
Jadi ceritanya begini ...
Dahulu kala di sebuah galaksi yang sangat sangat jauh ... eh salah intro :D :D :D
Pada awalnya, setiap vendor jaringan mempunyai solusi proprietary dalam membangun sebuah jaringan. solusi dari satu vendor tidak kompatibel dengan vendor lain. Hal inilah yang melatarbelakangi munculnya OSI model yang menggunakan pendekatan berlapis/layered pada jaringan, agar vendor hardware bisa mendesain hardware jaringan yang membentuk jaringan yang saling kompatibel satu sama lain.
International organization for standardization (ISO) meneliti berbagai model jaringan dan hasilnya pada tahun 1984 muncullah OSI model. Pada saat ini banyak vendor membuat produk dan membangun jaringan berdasarkan OSI model, yang menggunakan berbagai jenis hardware dari banyak vendor yang saling kompatibel .... Nah gitu dong, kan mantap!!!
Fungsi OSI model selain untuk membuat jaringan kompatibel satu sama lain, juga salah satu cara terbaik untuk mengajarkan orang tentang jaringan komputer. Coba diingat ketika kita pertama kali belajar jaringan komputer, maka banyak sekali guru, dosen atau trainer yang merefer pada OSI model.
Berikut ini adalah OSI model yang terdiri dari 7 layer atau lapisan yang dimulai dari bawah ke atas. mari kita mulai dari bawah yaitu physical layer.
1. Physical: Layer ini berhubungan dengan hal-hal seperti level volt, konektor fisik, physical data rate, kabel. Intinya semua yang anda bisa sentuh bersifat fisik. Layer ini mengirim data secara fisik berupa bitstream, menggunakan media fisik seperti kabel UTP, Fiber Optic, Wireless/radio.
2. Data Link: Layer ini memastikan bahwa data dibungkus dengan format yang benar, melakukan error detection dan memastikan data dikirim ke tujuan sesuai alamatnya. fungsi switching ada di layer ini. Alamat fisik (physical address) seperti MAC address dan frame ethernet juga berada di layer ini .
3. Network: Layer ini melakukan pemilihan jalur terbaik menuju tujuan atau yang sering kita sebut sebagai routing. Di layer ini kita mengenal protokol IPv4 dan IPv6. setiap perangkat jaringan membutuhkan alamat yang unik di jaringan, oleh sebab itu kita mengenal adanya logical address seperti IPv4 address dan IPv6 address.
4. Transport: Layer ini berfungsi melakukan segmentasi. Ketika anda membaca tulisan ini dari internet, halaman web dikirim dalam bentuk pecahan segment-segment kecil yang dikirim ke komputer Anda. Protokol TCP dan protokol UDP ada di layer ini. TCP mengirim data secara reliable, sedangkan UDP mengirim data secara unreliable.
4 layer di atas, termasuk lower layer, yang berfokus pada data transport yaitu bagaimana agar data bisa sampai ke tujuan.
Sedangkan 3 layer berikutnya ada di upper layer, yang berfokus pada data handling yaitu bagaimana meng-handle data yang diterima, itulah yang dilakukan oleh aplikasi atau software.
5. Session: Layer ini bertugas untuk membangun dan memutus session antar 2 host. Ketika anda browsing ke sebuah website di internet, kemungkinan Anda bukan satu-satunya user dari web server tersebut. Web server tersebut butuh untuk mencatat semua session yang terhubung ke server tersebut.
6. Presentation: Layer ini memastikan bahwa informasi bisa dibaca oleh layer aplikasi dengan cara melakukan formatting pada data. Contohnya: kebanyakan komputer menggunakan ASCII untuk setiap karakter, sedangkan ada juga komputer lain yang menggunakan EBCDIC, kemudian Presentation Layer butuh untuk memformat jenis data agar dua komputer tsb sepakat dengan format yang sama. Layer ini juga melakukan enkripsi data.
7. Application: Di layer inilah terdapat aplikasi yang kita sering gunakan, seperti email, browser, file transfer dsb. Application layer berfungsi untuk menerima input dari user, memberi output kepada user, memberitahu siapa lawan bicara kita di jaringan dan juga untuk melakukan otentikasi terhadap user yang akan menggunakan aplikasi tersebut .
Untuk memudahkan Anda dalam menghafal urutan layer di OSI model, bisa menggunakan kalimat ini:
Anak Pak Soleh Tidak Nakal Dan Pintar
:)
Misalkan kita analogikan Pengiriman data di jaringan komputer dengan pengiriman surat di kehidupan nyata:
1. Anda menulis surat
2. Anda masukkan surat ke dalam amplop
3. Anda menulis nama pengirim dan nama tujuan pada amplop
4. Anda Letakkan amplop di dalam kotak surat
5. isi dari kotak surat akan diproses ke kantor pos
6. surat anda akan dikirim kepada penerima
7. penerima akan membuka amplop dan membaca isinya
Tapi jika Anda memasukkan surat langsung ke dalam kotak surat (tanpa amplop dan keterangan tambahan lain), maka surat tersebut tidak akan sampai. Dari atas sampai ke bawah, kita melihat bahwa surat tersebut dibungkus ke dalam amplop ditambah beberapa informasi tambahan, barulah kemudian dikirim sampai ke penerima. Kemudian penerima akan membongkar amplop, baru bisa membacanya.
Mari kita lihat contoh sederhana dari pengiriman data di jaringan komputer:
1. Anda duduk di belakang komputer dan mau download file dari server. Anda buka web browser dan mengetik alamat URL server tujuan. Komputer Anda akan mengirim pesan pada web server meminta halaman web. Sekarang Anda menggunakan protokol HTTP yang ada di Application Layer.
2. Presentation layer akan membuat struktur data dari aplikasi sesuai dengan format tertentu, misal ASCII, EBCDIC.
3. Session layer akan memastikan bahwa semua session terpisah satu sama lain.
4. Bergantung pada aplikasi yang digunakan, pengiriman data bisa menggunakan protokol yang reliable (TCP) atau yang unreliable (UDP). Pada contoh ini, akan dipilih protokol TCP karena protokol aplikasi HTTP ingin memastikan bahwa halaman web sampai ke komputer Anda secara utuh.
5. Komputer Anda mempunyai IP address yang unik (misal 10.10.10.10) dan akan membuat paket IP. Paket IP ini berisi semua data dari Application layer, Presentation & Session layer. Di dalamnya juga terdapat informasi protokol transport apa yang digunakan (TCP), source address (komputer Anda) dan destination address (web server).
6. Paket IP akan dibungkus ke dalam ethernet frame. Ethernet frame mempunyai source MAC address dan Destination MAC address.
7. Akhirnya, semua data akan dikonversi ke biner dan kemudian bitstream tsb dikirim melalui kabel menggunakan sinyal elektrik atau nirkabel/wireless
Mirip seperti pada pengiriman surat, itulah yang terjadi juga di pengiriman data di jaringan komputer. Dari application layer hingga turun ke physical layer, terjadi proses membungkus data dengan header. Hal itu disebut sebagai Data Encapsulation. Sedangkan dari physical layer menuju ke atas sampai application layer terjadi proses membaca dan membongkar header, disebut Data De-encapsulation.
Jadi setiap layer memberikan informasi tambahan pada header, misal Source address, Destination address, source port, destination port, dll. Setiap unit data yang mempunyai header tertentu disebut PDU (protocol data unit). Tiap PDU mempunyai nama yang berbeda di setiap layer:
Nah kini Anda telah belajar mengenai OSI model dan 7 layer-nya, yang merupakan bagian penting dari topik Network Fundamentals.
Untuk lebih jelasnya mengenai Network Fundamentals, Anda bisa menonton video training Cisco CCNA day 1 session 1 di link ini: https://youtu.be/LiMdHeaS4zY
-AHa-
Jadi ceritanya begini ...
Dahulu kala di sebuah galaksi yang sangat sangat jauh ... eh salah intro :D :D :D
Pada awalnya, setiap vendor jaringan mempunyai solusi proprietary dalam membangun sebuah jaringan. solusi dari satu vendor tidak kompatibel dengan vendor lain. Hal inilah yang melatarbelakangi munculnya OSI model yang menggunakan pendekatan berlapis/layered pada jaringan, agar vendor hardware bisa mendesain hardware jaringan yang membentuk jaringan yang saling kompatibel satu sama lain.
International organization for standardization (ISO) meneliti berbagai model jaringan dan hasilnya pada tahun 1984 muncullah OSI model. Pada saat ini banyak vendor membuat produk dan membangun jaringan berdasarkan OSI model, yang menggunakan berbagai jenis hardware dari banyak vendor yang saling kompatibel .... Nah gitu dong, kan mantap!!!
Fungsi OSI model selain untuk membuat jaringan kompatibel satu sama lain, juga salah satu cara terbaik untuk mengajarkan orang tentang jaringan komputer. Coba diingat ketika kita pertama kali belajar jaringan komputer, maka banyak sekali guru, dosen atau trainer yang merefer pada OSI model.
Berikut ini adalah OSI model yang terdiri dari 7 layer atau lapisan yang dimulai dari bawah ke atas. mari kita mulai dari bawah yaitu physical layer.
1. Physical: Layer ini berhubungan dengan hal-hal seperti level volt, konektor fisik, physical data rate, kabel. Intinya semua yang anda bisa sentuh bersifat fisik. Layer ini mengirim data secara fisik berupa bitstream, menggunakan media fisik seperti kabel UTP, Fiber Optic, Wireless/radio.
2. Data Link: Layer ini memastikan bahwa data dibungkus dengan format yang benar, melakukan error detection dan memastikan data dikirim ke tujuan sesuai alamatnya. fungsi switching ada di layer ini. Alamat fisik (physical address) seperti MAC address dan frame ethernet juga berada di layer ini .
3. Network: Layer ini melakukan pemilihan jalur terbaik menuju tujuan atau yang sering kita sebut sebagai routing. Di layer ini kita mengenal protokol IPv4 dan IPv6. setiap perangkat jaringan membutuhkan alamat yang unik di jaringan, oleh sebab itu kita mengenal adanya logical address seperti IPv4 address dan IPv6 address.
4. Transport: Layer ini berfungsi melakukan segmentasi. Ketika anda membaca tulisan ini dari internet, halaman web dikirim dalam bentuk pecahan segment-segment kecil yang dikirim ke komputer Anda. Protokol TCP dan protokol UDP ada di layer ini. TCP mengirim data secara reliable, sedangkan UDP mengirim data secara unreliable.
4 layer di atas, termasuk lower layer, yang berfokus pada data transport yaitu bagaimana agar data bisa sampai ke tujuan.
Sedangkan 3 layer berikutnya ada di upper layer, yang berfokus pada data handling yaitu bagaimana meng-handle data yang diterima, itulah yang dilakukan oleh aplikasi atau software.
5. Session: Layer ini bertugas untuk membangun dan memutus session antar 2 host. Ketika anda browsing ke sebuah website di internet, kemungkinan Anda bukan satu-satunya user dari web server tersebut. Web server tersebut butuh untuk mencatat semua session yang terhubung ke server tersebut.
6. Presentation: Layer ini memastikan bahwa informasi bisa dibaca oleh layer aplikasi dengan cara melakukan formatting pada data. Contohnya: kebanyakan komputer menggunakan ASCII untuk setiap karakter, sedangkan ada juga komputer lain yang menggunakan EBCDIC, kemudian Presentation Layer butuh untuk memformat jenis data agar dua komputer tsb sepakat dengan format yang sama. Layer ini juga melakukan enkripsi data.
7. Application: Di layer inilah terdapat aplikasi yang kita sering gunakan, seperti email, browser, file transfer dsb. Application layer berfungsi untuk menerima input dari user, memberi output kepada user, memberitahu siapa lawan bicara kita di jaringan dan juga untuk melakukan otentikasi terhadap user yang akan menggunakan aplikasi tersebut .
Untuk memudahkan Anda dalam menghafal urutan layer di OSI model, bisa menggunakan kalimat ini:
Anak Pak Soleh Tidak Nakal Dan Pintar
:)
Misalkan kita analogikan Pengiriman data di jaringan komputer dengan pengiriman surat di kehidupan nyata:
1. Anda menulis surat
2. Anda masukkan surat ke dalam amplop
3. Anda menulis nama pengirim dan nama tujuan pada amplop
4. Anda Letakkan amplop di dalam kotak surat
5. isi dari kotak surat akan diproses ke kantor pos
6. surat anda akan dikirim kepada penerima
7. penerima akan membuka amplop dan membaca isinya
Tapi jika Anda memasukkan surat langsung ke dalam kotak surat (tanpa amplop dan keterangan tambahan lain), maka surat tersebut tidak akan sampai. Dari atas sampai ke bawah, kita melihat bahwa surat tersebut dibungkus ke dalam amplop ditambah beberapa informasi tambahan, barulah kemudian dikirim sampai ke penerima. Kemudian penerima akan membongkar amplop, baru bisa membacanya.
Mari kita lihat contoh sederhana dari pengiriman data di jaringan komputer:
1. Anda duduk di belakang komputer dan mau download file dari server. Anda buka web browser dan mengetik alamat URL server tujuan. Komputer Anda akan mengirim pesan pada web server meminta halaman web. Sekarang Anda menggunakan protokol HTTP yang ada di Application Layer.
2. Presentation layer akan membuat struktur data dari aplikasi sesuai dengan format tertentu, misal ASCII, EBCDIC.
3. Session layer akan memastikan bahwa semua session terpisah satu sama lain.
4. Bergantung pada aplikasi yang digunakan, pengiriman data bisa menggunakan protokol yang reliable (TCP) atau yang unreliable (UDP). Pada contoh ini, akan dipilih protokol TCP karena protokol aplikasi HTTP ingin memastikan bahwa halaman web sampai ke komputer Anda secara utuh.
5. Komputer Anda mempunyai IP address yang unik (misal 10.10.10.10) dan akan membuat paket IP. Paket IP ini berisi semua data dari Application layer, Presentation & Session layer. Di dalamnya juga terdapat informasi protokol transport apa yang digunakan (TCP), source address (komputer Anda) dan destination address (web server).
6. Paket IP akan dibungkus ke dalam ethernet frame. Ethernet frame mempunyai source MAC address dan Destination MAC address.
7. Akhirnya, semua data akan dikonversi ke biner dan kemudian bitstream tsb dikirim melalui kabel menggunakan sinyal elektrik atau nirkabel/wireless
Mirip seperti pada pengiriman surat, itulah yang terjadi juga di pengiriman data di jaringan komputer. Dari application layer hingga turun ke physical layer, terjadi proses membungkus data dengan header. Hal itu disebut sebagai Data Encapsulation. Sedangkan dari physical layer menuju ke atas sampai application layer terjadi proses membaca dan membongkar header, disebut Data De-encapsulation.
Jadi setiap layer memberikan informasi tambahan pada header, misal Source address, Destination address, source port, destination port, dll. Setiap unit data yang mempunyai header tertentu disebut PDU (protocol data unit). Tiap PDU mempunyai nama yang berbeda di setiap layer:
- Transport layer: Segment. contoh: TCP segment.
- Network layer: Packet. contoh: IP packet.
- Data link layer: Frame. contoh: Ethernet frame.
Nah kini Anda telah belajar mengenai OSI model dan 7 layer-nya, yang merupakan bagian penting dari topik Network Fundamentals.
Untuk lebih jelasnya mengenai Network Fundamentals, Anda bisa menonton video training Cisco CCNA day 1 session 1 di link ini: https://youtu.be/LiMdHeaS4zY
-AHa-
Instalasi Jitsi Meet pada Linux Ubuntu Server
Pada saat pandemi seperti ini, banyak kegiatan yang dilakukan dari rumah saja seperti WFH (Work From Home) dan SFH (Study From Home). Kegiatan WFH & SFH ini membutuhkan koneksi ke internet dan aplikasi yang mendukung seperti online meeting, webinar, virtual classroom dll.
Untuk memenuhi kebutuhan tersebut, kita bisa memilih banyak layanan baik yang berbasis web maupun desktop app, seperti Google Meet, Cisco Webex, Zoom, Ms Teams, dll. Biasanya ada versi gratis dengan limitasi tertentu misal jumlah maksimum partisipan, durasi waktu, dll.
Ada salah satu opsi untuk menggunakan server kita sendiri sebagai server (on-premise) untuk layanan online meeting menggunakan aplikasi open-source seperti Jitsi dan BBB (BigBlueButtom).
Yang Anda butuhkan adalah: server (physical atau VM), koneksi ke internet (ya jelas lah :) ) dan domain name (optional).
Pada tulisan kali ini, saya akan berbagi cara instalasi aplikasi Jitsi menggunakan server dengan OS Linux Ubuntu Server.
Langkah 1: instalasi Jitsi meet
login ke Ubuntu server 20.04 Anda, lalu masukkan perintah ini:
$ echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
$ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
$ sudo apt install apt-transport-https
$ sudo apt update && apt upgrade
$ sudo apt install jitsi-meet
masukkan hostname & pilih "Generate a new self-signed certificate"
instalasi telah selesai. sekarang cek status service jitsi, seharusnya status-nya running
$ systemctl status jitsi-videobridge2
--
Langkah 2: allow port yg dibutuhkan di UFW, yaitu tcp 80,443 untuk http/https service dan udp 5000,10000 untuk traffic video
$ sudo ufw allow 80,443/tcp
$ sudo ufw allow 10000,5000/udp
cek status UFW:
$ sudo ufw status verbose
--
Langkah 3: (optional) mendapatkan Trusted Let'sEncrypt TLS certificate untuk hostname server Jitsi Anda
sebelumnya masuk ke bagian DNS editor di domain registrar Anda, dan buat A record untuk hostname Jitsi Anda (misal meet.hananto.net),
kemudian jalankan script ini untuk mendapatkan trusted TLS certificate
$ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
--
Langkah 4: (Optional) jika server Jitsi Anda berada di belakang NAT device, maka masukkan command sbb
$ sudo nano /etc/jitsi/videobridge/sip-communicator.properties
hapus atau jadikan comment untuk baris ini:
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
tambahkan 2 baris ini di paling bawah:
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=a.b.c.d --> ganti dengan private IP address server Jitsi Anda
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=w.x.y.z --> ganti dengan Public IP address server Jitsi Anda
tekan CTRL-X dan Yes untuk save/menyimpan file
Restart service jitsi
$ systemctl restart jitsi-videobridge2
$ systemctl status jitsi-videobridge2
--
Langkah ke-5: Memulai Online Meeting via web browser
buka web browser dan masukkkan alamat https://a.b.c.d (IP address server) atau https://[nama hostname]
Silahkan membuat Online meeting room dan undang rekan-rekan Anda untuk bergabung
Selamat mencoba :)
-AHa-
Untuk memenuhi kebutuhan tersebut, kita bisa memilih banyak layanan baik yang berbasis web maupun desktop app, seperti Google Meet, Cisco Webex, Zoom, Ms Teams, dll. Biasanya ada versi gratis dengan limitasi tertentu misal jumlah maksimum partisipan, durasi waktu, dll.
Ada salah satu opsi untuk menggunakan server kita sendiri sebagai server (on-premise) untuk layanan online meeting menggunakan aplikasi open-source seperti Jitsi dan BBB (BigBlueButtom).
Yang Anda butuhkan adalah: server (physical atau VM), koneksi ke internet (ya jelas lah :) ) dan domain name (optional).
Pada tulisan kali ini, saya akan berbagi cara instalasi aplikasi Jitsi menggunakan server dengan OS Linux Ubuntu Server.
Langkah 1: instalasi Jitsi meet
login ke Ubuntu server 20.04 Anda, lalu masukkan perintah ini:
$ echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
$ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
$ sudo apt install apt-transport-https
$ sudo apt update && apt upgrade
$ sudo apt install jitsi-meet
masukkan hostname & pilih "Generate a new self-signed certificate"
instalasi telah selesai. sekarang cek status service jitsi, seharusnya status-nya running
$ systemctl status jitsi-videobridge2
--
Langkah 2: allow port yg dibutuhkan di UFW, yaitu tcp 80,443 untuk http/https service dan udp 5000,10000 untuk traffic video
$ sudo ufw allow 80,443/tcp
$ sudo ufw allow 10000,5000/udp
cek status UFW:
$ sudo ufw status verbose
--
Langkah 3: (optional) mendapatkan Trusted Let'sEncrypt TLS certificate untuk hostname server Jitsi Anda
sebelumnya masuk ke bagian DNS editor di domain registrar Anda, dan buat A record untuk hostname Jitsi Anda (misal meet.hananto.net),
kemudian jalankan script ini untuk mendapatkan trusted TLS certificate
$ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
--
Langkah 4: (Optional) jika server Jitsi Anda berada di belakang NAT device, maka masukkan command sbb
$ sudo nano /etc/jitsi/videobridge/sip-communicator.properties
hapus atau jadikan comment untuk baris ini:
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
tambahkan 2 baris ini di paling bawah:
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=a.b.c.d --> ganti dengan private IP address server Jitsi Anda
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=w.x.y.z --> ganti dengan Public IP address server Jitsi Anda
tekan CTRL-X dan Yes untuk save/menyimpan file
Restart service jitsi
$ systemctl restart jitsi-videobridge2
$ systemctl status jitsi-videobridge2
--
Langkah ke-5: Memulai Online Meeting via web browser
buka web browser dan masukkkan alamat https://a.b.c.d (IP address server) atau https://[nama hostname]
Silahkan membuat Online meeting room dan undang rekan-rekan Anda untuk bergabung
Selamat mencoba :)
-AHa-
Monday, May 11, 2020
Apa perbedaan ujian Juniper JNCIA JN0-103 dengan JN0-102 yg lama?
JNCIA-Junos yang merupakan sertifikasi Juniper yg paling favorit di antara level Associate yg lain, sejak 29 Maret 2020 menggunakan kode ujian baru yaitu JN0-103. sebelumnya kode JN0-102.
.
Dulu kalau tidak salah, dulu pertama kali saya ngambil exam JNCIA-Junos, examnya berkode JN0-101. kemudian lanjut sampai JNCIP dan 3 tahun kemudian hangus karena tidak ambil ujian Juniper lagi untuk recertify .... *tepokJidat
Setelah sempat sertifikat Juniper hangus selama 1 atau 2 tahun, lalu ngambil lagi exam Juniper, merangkak dari bawah lagi JNCIA, JNCIS lalu dapat JNCIP lagi. Nah pas ngambil lagi, dapat ujian JNCIA-Junos berkode JN0-102 (sebelumnya 101).
Dari pengalaman saya, keduanya tidak terdapat perbedaan yg signifikan, maksudnya bahan materi yang dipelajari ya mirip, hanya beda variasi soal saja.
Lalu bagaimana perbandingan JN0-102 dan exam baru kode JN0-103? saya tidak tahu persis karena saya tidak mengambil exam kode baru ini, kebetulan sertifikat Juniper saya masih valid sampai 2022, jadi belum ada kebutuhan mendesak untuk ngambil ujian lagi :D
Tapi kalau dilihat dari bagian Exam Objectives di website juniper, materi JN0-103 sangat mirip sekali dengan JN0-102, malah ada 1 topik yg hilang, yaitu Network Fundamentals (misal OSI, TCP/IP, dll). Topik tsb sudah tidak tercantum di Exam Objectives di ujian JN0-103.
Di salah satu forum internet, saya membaca salah satu postingan yg mengatakan bahwa dia belajar materi ujian JN0-102 lalu mengambil ujian JN0-103 ... dan lulus. TS mengatakan materinya sangat mirip hingga 90%-an.
Apakah topik Network Fundamentals benar-benar tidak muncul di ujian JN0-103?
Kalaupun iya, bukan berarti bagi yg mau ujian JN0-103 tidak perlu paham materi Network Fundamentals, tapi ya harus kudu wajib paham dan mengerti tentang Network Fundamentals. karena topik itu seperti fondasi rumah. kalo fondasi kurang kuat, tiang sebagus apapun ya mudah roboh :)
Mungkin bagi yg baru-baru ini mengambil ujian JN0-103 bisa berbagi tentang pengalamannya?
Semoga bisa bermanfaat bagi rekan-rekan lain yang berminat mengambil ujian JN0-103 dalam waktu dekat.
sumber:
sumber:
- https://www.juniper.net/us/en/training/certification/certification-tracks/sp-routing-switching-track/?tab=jnciajunos
- https://www.juniper.net/us/en/training/certification/certification-tracks/ent-routing-switching-track/?tab=jnciajunos
Subscribe to:
Posts (Atom)
Cisco CCNA [video #01] Introduction to Networking
Cisco CCNA adalah sertifikasi level Associate di bidang Computer Networks / Jaringan Komputer dari Cisco Systems. Sertifikasi lain dari C...
-
Dalam tulisan ini, kita akan melihat protokol di layer transport OSI yaitu TCP dan UDP. Jika pada tulisan sebelumnya tentang protokol IP da...
-
Bagi yang ingin belajar jaringan komputer dari dasar, saya sarankan mengikuti link ini (ada versi tulisan dan video di dalamnya) #NetworkF...