Bagaimana Ethernet tahu berapa lama frame itu?

17

Melihat entri Ethernet di Wikipedia, saya tidak tahu bagaimana ini mengindikasikan berapa lama frame Ethernet. Bidang header EtherType / Panjang tampaknya dapat menunjukkan baik jenis bingkai atau panjang eksplisit, dan saya menduga bahwa dalam kasus jenis bingkai, itu harus melakukan beberapa logika lain untuk mengetahui berapa lama paket tersebut. Misalnya, jika bidang EtherType adalah 0x0800, yang menunjukkan muatan IPv4, dan NIC penerima harus memeriksa 32 bit pertama muatan untuk menemukan panjang paket IP, dan oleh karena itu untuk mencari tahu panjang total frame Ethernet, dan tahu kapan harus mencari checksum end-of-frame dan celah antar bingkai.

Apakah ini benar? Saya juga melihat spesifikasi IEEE 802.3 untuk Ethernet (bagian 1, bagaimanapun) yang tampaknya menguatkan ini, tapi itu cukup buram.

dirtside
sumber

Jawaban:

21

Sublayer Coding Fisik bertanggung jawab untuk membatasi frame, dan mengirimkannya ke lapisan MAC.

Dalam Gigabit Ethernet, misalnya, skema pengkodean 8B / 10B menggunakan kelompok kode 10 bit untuk mengkodekan byte 8-bit. Dua bit tambahan memberi tahu apakah byte mengendalikan informasi atau data. Informasi kontrol dapat berupa Konfigurasi, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.

Itulah bagaimana NIC tahu di mana frame mulai dan berakhir. Ini juga berarti bahwa panjang frame tidak diketahui sebelum sepenuhnya diterjemahkan, analog dengan string yang diakhiri NULL dalam C.

Hroi Sigurdsson
sumber
1
Ini ditentukan dalam IEEE Std 802.3-2015 (Bagian Tiga), 36.2.4.2 dan 36.2.4.15 (di antara tempat-tempat lain dalam hal yang tidak dapat dibaca ini mereka sebut standar;).
stefanct
1

Artikel yang ingin Anda jawab pertanyaannya adalah http://en.wikipedia.org/wiki/Ethernet_II_framing ; yang mengatakan:

Ketika standar yang dikembangkan industri ini melalui proses standardisasi IEEE formal, bidang EtherType diubah menjadi bidang panjang (data) dalam standar 802.3 yang baru. (Paket Ethernet asli menentukan panjangnya dengan pembingkaian yang mengelilinginya, daripada dengan penghitungan panjang yang eksplisit.) Karena penerima paket masih perlu tahu bagaimana menafsirkan paket, standar membutuhkan header IEEE 802.2 untuk mengikuti panjang dan menentukan tipe paket.

womble
sumber
Saya kira saya tidak jelas tentang apa artinya "paket Ethernet Asli menentukan panjangnya dengan framing yang mengelilinginya". Bit preamble / begin-frame cukup jelas, tetapi bagaimana klien tahu akhir frame telah tercapai? Bagaimana cara membedakan antara CRC dan celah antar bingkai? Apakah kebisingan listrik acak IFG, mudah dibedakan dari sinyal nyata?
dirtside
Akhir bingkai dalam "Ethernet klasik" ditandai oleh pengkodean ilegal.
Vatine
@ Womble, Artikel yang Anda tautkan bagus tetapi bit yang Anda kutip sangat menyesatkan di luar konteks. Sebagian besar frame pada jaringan Ethernet saat ini tidak menggunakan bidang panjang eksplisit.
Peter Green
-3

Secara logis, hanya ada tiga opsi:

  1. Menggunakan ukuran bingkai statis seperti di.
  2. Menentukan ukuran bingkai di tajuknya, atau di tempat lain, atau bahkan mengikatnya dengan beberapa bendera.
  3. Tidak ada pengiriman frame sama sekali

Salah satunya berfungsi di Ethernet karena tidak ada opsi lain yang tersedia saat ini untuk jaringan modern;) 1 dan 3 salah untuk Ethernet, jadi Anda benar!

kolypto
sumber
-3

Butuh waktu beberapa saat untuk menyelesaikannya dulu, dan sekali lagi sekarang. Tidak banyak info tentang itu tersedia, yang mengejutkan karena itu pertanyaan yang jelas. Saya akhirnya memutuskan solusi bahwa bidang panjang di header paket digunakan. Lihat tautan berikut

http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee


sumber