Dari halaman web Wireshark :
Blok MAC Target berisi 16 duplikasi alamat IEEE target, tanpa jeda atau gangguan.
Apakah ada alasan khusus untuk 16 duplikasi?
Dari halaman web Wireshark :
Blok MAC Target berisi 16 duplikasi alamat IEEE target, tanpa jeda atau gangguan.
Apakah ada alasan khusus untuk 16 duplikasi?
Jawaban:
Menurut pendapat saya, nilainya harus tepat 16.
Magic Packet Technology ( whitepaper , publikasi # 20213) dikembangkan antara AMD dan Hewlett Packard sekitar tahun 1995. Dari halaman 2:
"Karena pengendali Ethernet sudah memiliki sirkuit pencocokan alamat bawaan ..." mereka mengusulkan untuk menggunakannya kembali, menambahkan penghitung "untuk menghitung 16 duplikasi alamat IEEE".
Mereka beralasan bahwa WOL harus sepele untuk ditambahkan, sementara membiarkan implementasi yang sebenarnya terbuka lebar. Ini tampaknya tidak secara historis arbitrer ("Oh, 16 terlihat cukup lama"), karena:
Bangun apa yang Anda miliki / apa yang Anda ketahui. Sebagai contoh, mari kita asumsikan kita menyukai kekuatan 2 dan karenanya hex digit. Mudahnya, hex digit (4 bit) memiliki nilai positif dari 0-15. Prosesor kami memeriksa semua matematika dan menetapkan "flag" yang meluap jika kami mencoba menambahkan 1 ke nilai yang sudah "maks" (seperti 15). Karena itu cukup umum, kami bahkan mungkin memiliki instruksi khusus untuk kondisi luapan, jadi dalam pseudocode:
Initialize a single counter that holds values from 0-15.
Set it to 0.
Watch the network. When I see the signal:
Loop:
Do I see my address at the right spot?
Yes: Add 1 to counter.
Did I just overflow? (15+1 = 0?)
Yes: Jump out of loop to "wake up" code.
...otherwise
Loop again.
Garis sinyal chip. Referensi AMD untuk "sirkuit" mengarah ke ujung yang dalam, jadi yang Anda benar-benar perlu tahu adalah bahwa kita dapat membayangkan kasus sederhana di mana "bit set ke 1" sesuai dengan tegangan "tinggi" di suatu tempat dalam sebuah chip, terlihat pada sebuah "pin".
Arduino adalah contoh yang bagus: atur bit memori ke 1, dan Arduino menetapkan pin keluaran "tinggi". Perubahan tegangan ini sering diperagakan dengan menggerakkan LED, tetapi melalui keajaiban transistor, ia dapat secara otomatis mengaktifkan, mengganggu atau "membangunkan" sirkuit atau chip lain.
Mari kita asumsikan representasi hex yang lebih alami (dua digit hex, seperti FF, sering terlihat di IP, mask dan alamat MAC) dan ikat "output pin 5" dari Arduino kami ke "bit position 5" di counter kami:
Memory Value Event
0000 0000 00 Nothing, so keep adding 1...
0000 1111 0F Nothing, but add 1...
0001 0000 10 Arduino pin 5 high. New voltage interrupts other circuits.
Karena lokasi memori terikat pada pin itu, elegan dan semua perangkat keras: terus tambahkan 1, tidak perlu mengganggu driver atau kode pengembang BIOS. Anda hanya pembuat sirkuit. Anda akan memberikan pin yang tinggi, untuk dikonsumsi oleh silikon pembuat chip lain, yang adalah apa yang dilakukan semua orang. Di dunia nyata itu sedikit lebih rumit (misalnya, spesifikasi ENC28J60 menjabarkannya dengan detail yang mengerikan), tapi itulah intinya.
Setelah ini, kejelasan manusia tampaknya lebih merupakan efek samping daripada tujuan. Untuk komputer, 4 salinan MAC Anda sudah cukup, tetapi sekarang penghitung itu tidak akan meluap dan tidak lagi sederhana. Jadi tampaknya lebih mungkin bahwa tujuannya adalah untuk mengimplementasikannya dengan sebanyak mungkin silikon, driver, dan perancang BIOS, dan 16 memberi semua orang pilihan antara "overflow" DAN pensinyalan langsung, tanpa membuat ulang dan memperbarui peralatan.
Bermain advokat iblis untuk deteksi manusia, bagaimana dengan angka lebih tinggi berikutnya dengan fleksibilitas yang sama: 256? Itu tidak berfungsi: Segmen data saja menghasilkan paket WOL yang lebih besar dari bingkai Ethernet ( pada saat itu ).
Jadi bagi saya ini berarti bahwa 16 adalah satu-satunya nilai segmen WOL dapat menjadi.
Iya. Ini sederhana dan kemungkinan seseorang mengirim data ini tanpa sengaja sama sekali nol.
Anda ingin sederhana karena mikrokontroler yang sangat bertenaga rendah di NIC harus dapat secara permanen mengawasi lalu lintas jaringan ethernet mentah dan bertindak jika melihat pola ini dan Anda tidak ingin mengaktifkan sistem secara tidak sengaja karena aliran jaringan acak data adalah perintah untuk menghidupkan sistem.
Saya pikir itu terutama cara untuk memastikan bahwa hanya paket ajaib yang benar-benar akan membangunkan komputer. Karena paket dipindai untuk urutan ini tanpa melihat header protokol (misalnya, alamat IP, nomor port), paket harus mudah diidentifikasi dan jumlah positif palsu mendekati nol. Probabilitas bahwa protokol jaringan acak mengirim paket yang berisi 16 kali alamat MAC komputer mendekati nol, tetapi kemungkinan false positive jauh lebih tinggi jika hanya ada satu pengulangan.
16 karena mati logika mudah untuk menghitung ke 16. Mengulangi alamat MAC karena sudah ada logika pencocokan alamat pada chip. Kertas putih AMD