mengenal jaringan, edisi ip4!

mungkin ini bakalan paling berat dari semua edisi yang pernah dibahas sebelumnya. langung ke table saja deh. males saya ngoceh pagi ini.

format header

Version

di isi dengan 4 karena memang IP4. hehe…

IHL

panjang header. dengan 1 representasi dari 32 bit. nilai minimum adalah 5 yaitu ada 20 byte yang berisi header tanpa option di atas. jadi, dengan IPv4 dan panjang header 5 maka untuk byte pertama berisi 45.

DSCP dan ECN

Saya kurang mengerti pada byte ini. Mohon jika ada yang mengerti, kasih tau saya. kalau saya di nolin saja.

Total Length

Ini panjang header dengan data. minimal berisi nilai 20, dengan 20 byte header dan 0 byte data.

Identification

ini semacam id dari paket ip yang bersangkutan. dengan Identification yang sama dalam beberapa paket pesan maka akan diindentifikasi bahwa beberapa paket tersebut adalah satu paket yang cukup besar yang dipecah(terfragmentasi).

Flags

ada tiga flag dalam 3 bit ini. yaitu bit kedua adalah “Don’t Fragment”. ini untuk menandakan bahwa boleh atau tidaknya paket yang bersangkutan untuk dipecah. untuk paket yang tidak diijinkan dipecah, bit ini akan diisi dengan 1.

bit ketiga adalah untuk “more fragments”. dimana berfungsi sebagai penanda dari ada tidaknya paket yang masih 1 Identification. jika bit ini di set(1) maka menandakan bahwa paket tersebut masih memiliki paket pecahan lain. bit ini akan selalu diset kecuali paket terakhir yang harus bernilai 0. untuk paket tunggal maka bit ini di reset(0).

Fragment Offset

ini untuk penomoran paket-paket yang terpecah-pecah. 1 nomor dari byte ini bernilai 8 byte. jadi jika pada paket kedua adalah byte ke 81 dari paket sebelum dipecah maka nilai dari ofset ini adalah 9.

Time to Live

biasanya diisi dengan 0x80 atau 128. untuk paket terpecah2, maka nilai ini di decrement.

Protocol

Byte ini berfungsi untuk menandai protocol apa yang akan digunakan. Sebagai contoh, untuk paket dengan protocol UDP maka byte ini diisi dengan 17.

Header Checksum

verifikasi bahwa header paket ip tidak dimodifikasi.

Source IP Address dan Destination IP Address

ini untuk menentukan paket ini untuk siapa?. jadi sebenernya, semua komputer menerima paket ip. namun, penerimalah yang memilah paket itu miliknya apa bukan.

 

Note:

untuk paket yang akan dipecah, header yang memiliki option atau nilai IHL>5 maka cukup/hanya paket pecahan pertama yang memiliki option sedangkan paket-paket pecahan kedua dan selanjutnya tidak memerlukan option header.

mengenal jaringan, edisi ethernet!

assalamu ‘alaikum.

kali ini saya akan membahas tentang ethernet. hmm…, mungkin kalau kita biasa menggunakan bahasa tingkat menengah dan tinggi, tulisan ini bisa dilewatin saja. kerena hampir semua bahasa programming sudah ada librarynya masing-masing. kalau sebatas ingin tahu, bolehlah dilanjut. 🙂

tadi malem saya nulis tentang arp. bisa dibaca di sini. di tulisan tersebut saya mengatakan kalau sesungguhnya kita membutuhkan mac address pc target untuk mengirim data. kenapa? nah, ethernet adalah jawabannya.

hampir semua komunikasi jaringan komputer berada di atas layer ethernet. kalau sisanya saya kurang tahu juga. mungkin ada yang tidak menggunakan ethernet, jadi menggunakan yang lain gitu. tapi sampai saat ini saya tidak tahu juga ada atau tidak. kalau masalah bisa dibikin atau tidak, saya rasa bisa2 saja. hehe….

melihat dari posting saya tentang arp, sebenarnya arp-pun berada di atas kerangka ethernet. gak percaya?

oke kita buktikan di akhir tulisan ini. 🙂

format ethernet berwujud seperti berikut:

ethernet protocol

(gambar diambil dari http://wiki.wireshark.org/Ethernet )

8 bit pertama saya kurang paham. cari-cari di internet ada yang bilang kalau 8 byte pertama berisi pattern 101010101…, dengan encoding manchester. kalau yang pernah belajar modulasi kayaknya ngertilah apa itu manchester. :). nah, encoding ini berada di frekuensi 10MHz selama 6.4 micro second untuk sinkronisasi dengan pengirim pesan. tapi kalau begitu, kenapa ditulis 8 byte di tiap referensi? banyak pertanyaan yang lahir di otak saya.lanjut ke byte-byte selanjutnya saja. biar ke point penting dari ethernet itu sendiri.

6 byte selanjutnya adalah mac address dari tujuan data. nah, ini cukup menarik. jadi, untuk komunikasi dengan komputer target maka hal paling penting adalah tau mac addressnya terlebih dahulu. kalau tidak, jangan berharap bisa berkomunikasi menggunakan ethernet. 🙂

mac address tujuan data juga dapat di isi dengan FF FF FF FF FF FF. ini berfungsi untuk membroadcast data. jadi seluruh pc akan membaca dari pesan dengan mac address tujuan seperti tersebut.

6 byte selanjutnya lagi adalah mac address dari pengirim. kalau ini pasti tau. apalagi kalau perangkatnya adalah komputer. perangkat jaringannya pasti telah ada mac addressnya. oke, untuk ini tidak masalah. kalaupun kita tidak memiliki mac address(seperti beberapa perangkat/module jaringan yang belum ada mac addressnya) maka kita bisa mengisi sesuka hati kita, hehe… #embedMindSet. 🙂

selanjutnya 2 byte untuk type komunikasi. nah ini bermacam-macam nantinya. kalau tulisan saya sebelumnya tipenya adalah arp. 2 byte ini maka di isi dengan 08 06. kalau untuk tipe-tipe yang lain mungkin di lain hari. 🙂

frame selanjutnya adalah frame data. ini memiliki panjang tampungan dari interval 46 byte hingga 1500 byte. kalau di luar interval tersebut saya kurang tahu juga. silahkan tanyakan pada dosen masing-masing. dan semoga dosennya bisa memahami kesesatan kita. hehe…

frame terakhir adalah frame CRC. kalau dari banyaknya bytenya(4 byte) mungkin frame ini diisi oleh CRC32. saya kurang tahu juga, start dari penghitungan crc-nya dari mana, apakah dari preamble atau mulai mac address tujuan atau bahkan hanya User Data saja. mungkin kalau ada yang tahu bisa diinformasikan. atau minta tolong tanyain ke dosen masing-masing, lalu komentar di sini. biar bisa sharing ilmu.

nah, penjelasan tentang protokol ethernet cukup dahulu. selanjutnay adalah kuis(kayak dosen aja pake acara kuis-kuisan, haha… 😀 ). ada 2 pertanyaan untuk kamu. iya, kamu. anda deh, jadi gak enak manggil kamu. anda saja ya, atau sampeyan saja. au’ah. saya gak kenal kamu juga. apalagi kenal, tua atau masih muda saja aku gak tau. jadi bingung manggil ‘kamu’ dengan apaan. hehehe… [makanya biar gak bingung, komen doonng…]

Kuis:

1. bagaimana cara untuk mengirim data tapi kita hanya punya ip address? padahal komunikasi data yang dilakukan berada di atas layer ethernet.

2. apakah arp yang di bahas kemaren menggunakan format ethernet atau bahasa kerennya berada di atas layer ethernet??

 

oia. ternyata tadi di atas aku sudah nulis jawabannya. ya elah…., kuis yang benar-benar gak keren. au’ah, selamat belajar dan mencari contoh2 lainnya. 🙂

oia, sekali lagi, coba buka buku tentang jaringan, dimanakah letak ethernet yang biasanya di gambar dengan layer-layer. (lagi) selamat mencari. 🙂

referensi:

 

http://en.wikipedia.org/wiki/Ethernet_frame

http://wiki.wireshark.org/Ethernet

http://www.dcs.gla.ac.uk/~ross/Ethernet/protocol.htm

mengenal jaringan, edisi ARP!

beberapa pekan lalu ada project yang cukup besar. namun ternyata terkendala oleh salah satu kekurangan saya. yaitu jaringan!!. mungkin kalau menggunakan komputer atau minimal tablet os android, mungkin project ini akan bisa kekejar. namun sayangnya penggunaan akan komputer sangat besar biasanya. jadinya adalah harus menggunakan interfacing ethernet langsung ke mikrokontroller. nah, ini masalah bagi saya. hehe

saya sangat terkaget-kaget. benar-benar sebuah tantangan yang sangat keren. saya harus bisa komunikasi tcp-ip dengan menggunakan layer yang sangat dekat dengan pisical layer. jadi, hampir keseluruhan komunikasi yang terjadi pada tcp-ip benar2 harus diketahui dahulu.

nah, untuk malam ini saya akan berbagi tentang arp dahulu. apa itu arp? silahkan ke wikipedia. disini hanya akan dibahas apa sesungguhnya yang terjadi. hehe….

oia, sebelum kita berlanjut jauh, apa sih tujuan dari arp?. kalau simpelnya mungkin untuk mengetahui mac adress perangkat tujuan. maksudnya? bukankah sudah ada ip tujuan?. nah itu masalahnya, untuk berkomunikasi kita mesti tau mac addressnya. ip gak cukup. :p

nah, bagaimana jika kita tidak tahu mac address tujuan? bisakah kita mengirim data ke ip tersebut?

kalau secara embed sih, bisa bisa saja. tapi kalau sudah layer sekelas tcp yang gak bisa. hehe…. :p :p

lalu, solusinya?

nah, solusinya adalah arp!.

jadi, arp semacam komunikasi untuk mengetahui mac address perangkat yang memiliki ip tertentu.

apa yang terjadi sesungguhanya yang terjadi dengan arp?

oke, to the point saja.

anggep kita punya jaringan seperti berikut:

start 

seumpama pc0(sender) akan mengirim data ke pc3 dan belum tau mac address dari pc3. nah, pc0 akan membroadcast arp get.

profile pc0 dan pc3:

  pc0 pc3
ip 192.168.1.122 192.168.1.179
mac address 9C:B7:0D:B7:47:A5 48:5D:60:A7:4C:00
     

nah, pc0 akan membaroadcast/menyiarkan/mengirim kesemua komputer arp get. formatnya seperti berikut:

FF FF FF FF FF FF 9C B7 0D B7 47 A5 08 06 00 01 08 00 06 04 00 01 9C B7 0D B7 47 A5 C0 A8 01 7A 00 00 00 00 00 00 C0 A8 01 B3

Keterangan:

FF FF FF FF FF FF = Tujuan pesan(mac address). untuk membroadcast agar dibaca oleh semua komputer maka di isi dengan FF FF FF FF FF FF.

 9C B7 0D B7 47 A5 = ini adalah mac address sender dalam hal ini adalah mac addresnya pc0.

08 06 = code kalau pesan ini adalah pesan arp.

00 01 =  tipe hardwarenya adalah ethernet. kalau yang lain saya belum tau.

08 00 = tipe protokolnya adalah ip.

06 04 = 06 hardware size dan 04 protokol size. nah, keduanya saya belum mengerti. hehe…

00 01 = opcode, ini kode yang bilang kalau pesan ini pesan request.

C0 A8 01 7A = ip yang sender(pc0), atau kalau di desimalkan akan menjadi: 192.168.1.122.

00 00 00 00 00 00 = target mac addressnya. nah, berhubung gak tau, ya di nolin saja. oia, jangan yang lain ya. nol aja. hehe…

C0 A8 01 B3 = nah, ini adalah ip target yang ditanya mac adressnya(dalam desimal akan menjadi 192.168.1.179, alias ip pc3). jadi, nantinya yang merasa punya ip ini mesti jawab dari arp ini sesuai mac adressnya. 🙂

nah, siapa yang menerima pesan tersebut?

yang menerima pesan tersebut adalah semua pc. yaitu pc0 hingga pc5.  setiap komputer akan mengecek apakah ip C0 A8 01 B3 sama dengan ip mereka masing masing. jika sama maka pc tersebut wajib hukumnya menjawab. kalau tida menjawab maka pc0 akan beranggapan bahwa ip tersebut tidak valid dan akan beanggapan kalau pc tersebut tidak ada. nah, dalam kasus ini ternyata ada yang memiliki ip C0 A8 01 B3, yaitu pc3. pertanyaan selanjutnya adalah seperti apa kiranya jawaban yang semestinya dikirim oleh pc3?

jawabannya kira2 seperti berikut:

9C B7 0D B7 47 A5 48 5D 60 A7 4C 00 08 06 00 01 08 00 06 04 00 02 48 5D 60 A7 4C 00 C0 A8 01 B3 9C B7 0D B7 47 A5 C0 A8 01 7A

masih butuh penjelasan?

saya kira sudah sangat jelas jawaban dari pc3. mungkin yg butuh di jelaskan adalah opcodenya saja. yaitu sekarang bernilai 00 002. ini untuk menandakan bahwa pesan tersebut adalan pesan jawaban. 🙂

oke saya rasa sudah cukup untuk malam ini. semoga bermanfaat. dan tidak gagal project karena hal ini seperti yang saya alami. 😀

oia, jika dalam penulisan ini ada kesalahan. saya harap dikoreksi. karena ilmu ini hanya ilmu bacaan saja dari beberapa web. khususnya di http://www.erg.abdn.ac.uk/. nah, untuk lebih jelasnya ke web yang bersangkutan saja. 🙂

koreksi bisa langsung dikomentar, di email mosleim@gmail.com atau via fb/twitter dengan user mosleim. kalau telfon dan sms jangan. saya jarang ngaktipin hape. hehe…

mysql- root seakan2 menghilang?

mungkin kita tidak sengaja menjalankan beberapa mysql secara bersamaan. seperti saya menjalankan mysq milik mysql sendiri sama mysql bawaan xampp. jadilah seakan2 hilang untuk user rootnya. atau karena hal lain bisa saja kita kehilangan pw rootnya. au’ah, kemarin saya tau2 gak bisa login saja. hehe….

untuk mengembalikan ke sedia kala, maka tentukan dahulu mysql yang mana yang akan kita gunakan. saya memilih mysql aseli, alias bukan mysql bawaan xampp. jadi yang saya lakukan adalah sebagai berikut:

1. end task mysqld di task manager.

2. cari directory bin letak mysql.

3. bukan cmd, lalu arahkan ke derectory bin tersebut.

4. start mysqld dengan membuka hak penuh kesiapapun dengan command seperti berikut:

mysqld –skip-grant-tables

5. kalau berhasil, buka cmd baru, lalu arahkan ke dir bin milik mysql kembali.

6. lalu masuk ke mysql, lakukan saja baris perbaris seperti berikut,

mysql

use mysql;

update user set password=PASSWORD(‘pwyangbaru’) where user=’root’;

FLUSH PRIVILEGES;

exit

7. INGAT!!, lakukan restart mysqd, dengan cara (salah satunya) restart di task manager. karena saat ini mysql kita sedang terbuka hak akses penuh untuk siapa saja. 🙂

8. cobalah login ke mysql seperti biasa.