Ethernet bir çerçevenin ne kadar uzun olduğunu nasıl bilir?


17

Wikipedia'daki Ethernet girişine baktığımda , Ethernet çerçevesinin ne kadar sürdüğünü anlayamıyorum. Görünüşe göre EtherType / Length başlık alanı bir çerçeve türünü veya açık bir uzunluğu gösterebilir ve bir çerçeve türü durumunda, paketin ne kadar uzun olduğunu anlamak için başka bir mantık yapmak zorunda olduğunu tahmin ediyorum. Örneğin, EtherType alanı 0x0800 ise, bu bir IPv4 yükünü gösterir ve bu nedenle alan NIC, IP paketinin uzunluğunu bulmak için yükün ilk 32 bitini incelemek ve böylece toplam uzunluğunu hesaplamak zorundadır. Ethernet çerçevesi ve çerçeve sonu sağlama toplamı ve çerçeveler arası boşluğu ne zaman arayacağınızı öğrenin.

Bu doğru görünüyor mu? Ayrıca bunu destekleyen gibi görünen Ethernet için IEEE 802.3 spesifikasyonuna da baktım (bölüm 1, yine de), ama oldukça opak.


Yanıtlar:


21

Fiziksel Kodlama Alt Katmanı, karelerin sınırlandırılmasından ve MAC katmanına gönderilmesinden sorumludur.

Gigabit Ethernet'te, örneğin, 8B / 10B kodlama şeması, 8 bitlik bir baytı kodlamak için 10 bit kod grubu kullanır. Ekstra iki bit bir baytın kontrol bilgisi mi yoksa veri mi olduğunu gösterir. Kontrol bilgileri Konfigürasyon, Başlangıç_tamameti_Paketi, Bitiş_of_paketi, IDLE, Taşıyıcı_uzantı, Hata_propagasyonu olabilir.

Bir NIC, bir çerçevenin nereden başlayıp nerede bittiğini bilir. Bu aynı zamanda, çerçevenin uzunluğunun, tamamen kodunun çözülmesinden önce, C'deki NULL sonlandırılmış bir dizeye benzer olarak bilinmediği anlamına gelir.


1
Bu, IEEE Std 802.3-2015 (Üçüncü Bölüm), 36.2.4.2 ve 36.2.4.15'te (standart olarak adlandırdıkları bu okunamayan şeydeki diğer yerler arasında) belirtilmiştir.
stefanct

1

Sorunuzu gerçekten cevaplamak istediğiniz makale http://en.wikipedia.org/wiki/Ethernet_II_framing ; diyor ki:

Bu endüstri tarafından geliştirilen standart resmi bir IEEE standardizasyon sürecinden geçtikçe, EtherType alanı yeni 802.3 standardında (veri) uzunluk alanına değiştirildi. (Orijinal Ethernet paketleri, uzunluklarını, açık bir uzunluk sayımından ziyade, onu çevreleyen çerçeveyle tanımlar.) Paket alıcısının hala paketi nasıl yorumlayacağını bilmesi gerektiğinden, standardın uzunluğu izlemesi ve belirtmesi için bir IEEE 802.2 üstbilgisi gerekir paket türü.


Sanırım "Orijinal Ethernet paketlerinin uzunluğunu çevreleyen çerçeveyle tanımladıkları" konusunda net değilim. Önsöz / başlangıç ​​çerçevesi bitleri oldukça açıktır, ancak istemci çerçevenin sonuna ulaşıldığını nasıl bilebilir? CRC ve çerçeveler arası boşluk arasındaki fark nedir? IFG rastgele elektriksel gürültü, gerçek sinyalden kolayca ayırt edilebilir mi?
dirtside

"Klasik Ethernet" te çerçevenin sonu geçersiz kodlama ile bildirilir.
Vatikan

@womble, Bağladığınız makale iyi ancak alıntıladığınız bit bağlamdan çok yanıltıcı. Bugün bir Ethernet ağındaki çerçevelerin çoğu açık uzunluk alanı kullanmaz.
Peter Green

-3

Mantıksal olarak, sadece üç seçenek vardır:

  1. İn gibi statik bir çerçeve boyutu kullanma.
  2. Çerçeve boyutunu üstbilgisinde veya başka bir yerde belirtme veya hatta bazı bayraklarla sınırlama.
  3. Hiç kare gönderme yok

Modern ağ için şu anda kullanılabilecek başka seçenek olmadığından Ethernet'te çalışır;) 1 ve 3, Ethernet için yanlıştır, bu yüzden haklısınız!


-3

Bunu daha önce bir kez ve şimdi tekrar çözmek biraz zaman aldı. Çok fazla bilgi mevcut değil, bu çok açık bir soru olduğu için şaşırtıcı. Sonunda paket başlıklarındaki uzunluk alanlarının kullanıldığı çözüme karar verdim. Aşağıdaki bağlantıya bakın

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.