Ethernet çerçevesinin “kablo içi” boyutu nedir? 1518 ya da 1542?


22

Buradaki tabloya göre MTU = 1500 bayt ve yük kısmı kısmının 1500 - 42 bayt veya 1458 bayt olduğunu söylüyor (<- bu aslında yanlış!). Bunun üzerine, 28 bayt olan (20 IP + 8 UDP) IPv4 ve UDP başlıklarını eklemelisiniz. Bu, mümkün olan maksimum uygulama mesajımı 1430 bayta bırakıyor! Ancak internette bu numarayı arayarak bunun yerine 1472'yi görüyorum. Bu hesaplamayı burada yanlış mı yapıyorum?

Tek bilmek istediğim, parçalanma riski olmadan kablo üzerinden gönderebileceğim maksimum uygulama mesajı. Kesinlikle 1500 değil çünkü bu çerçeve başlıklarını içeriyor. Birisi yardım edebilir mi?


Karışıklık PAYLOAD aslında 1500 byte kadar büyük olabilir ve bu MTU. Öyleyse şimdi 1500 yük taşıma kapasitesi nedir? Bu tablodan 1542 bayt kadar büyük olabilir.

Bu yüzden, gönderebileceğim maksimum uygulama mesajları, 1542 tel boyutunda en fazla 1472 (1500 - 20 (ip) - 8 (udp)). Tabloda 1542 yazıyorsa, birinin 1518 sayısını nasıl bulduğunu bilmiyorum.


Buradaki asıl soru, "kablo boyutunda" derken neyi kastediyorsunuz ve bu bilgiyle ne yapacaksınız? Saniyedeki paketleri hesaplamaya mı çalışıyorsun?
Mike Pennington,

@MikePennington Kablo içi geçiş süresini belirlemeye çalışıyorum. Paket büyüklüğü ve ethernet hızı (10 gigabit) ile bunu hesaplayabilirsiniz.
chrisapotek

Yanıtlar:


26

Wikipedia'daki diyagram korkunç. Umarım yazmak üzere olduğum şey daha açıktır.


802.3 ethernette maksimum yük kapasitesi 1500 bayttır.
Bu, kablo üzerinden göndermeye çalıştığınız verilerdir (ve MTU’nun kastettiği).
[payload]<- 1500 Bayt

Yük, bir Ethernet Çerçevesinde kaplanmıştır (Kaynak / Hedef MAC, VLAN etiketi, Uzunluk ve CRC Sağlama Toplamı ekler. Toplam 22 bayt ek "sayfa"
[SRC+DST+VLAN+LENGTH+[payload]+CRC]<- 1522 Bayt

Çerçeve tel üzerinden iletilir - ethernet kartınız temelde ayağa kalkmadan ve telin başka kimseyi kullanmadığından emin olmak için gerçekten yüksek sesle bağırır (CSMA / CD) - Bu, Giriş ve Çerçeve Başlığı sınırlayıcısıdır. (SFD) - 8 bayt daha, bu yüzden şimdi elimizde:
[Preamble+SFD+[Ethernet Frame]]<- 1530 Bayt

Son olarak, bir ethernet alıcı-verici bir çerçeve gönderirken, 802.3 tarafından bir sonraki kareyi göndermesine izin verilmeden önce 12 byte sessizlik ("Ara Kare Boşluğu") iletmesi gerekir.
[Preamble+SFD+[Ethernet Frame]+Silence]<- 1542 bayt, tel üzerinden iletildi.


Giriş, SFD ve Çerçeveler Arası, çerçevenin bir parçası olarak sayılmaz. Ethernet protokolünün kendisi için destek yapısıdır.

MTU yüke uygulanır - pakete sığdırabileceğiniz en büyük veri birimidir. Böylece, MTB 1500 baytlık bir ethernet paketi aslında 1522 bayt çerçeve ve tel üzerinde 1542 bayt olacaktır (bir vLAN etiketi olduğu varsayılarak).

Öyleyse sorunuzun cevabı - Parçalanma olmadan 802.3 ethernet üzerinden gönderebileceğim en büyük paket nedir? - 1500 bayt veri yükü verisidir .

Ancak , ethernet katmanı sınırlayıcı faktörünüz olmayabilir. Yol boyunca bir şeyin MTU’yu 1500 bayttan daha küçük veri yükü verileriyle sınırlandırıp kısıtlamadığını bulmak için aşağıdakilerden birini kullanın:

  • Windows: ping hostname -f -l sizeofdata(John K tekniği bahsetti)
  • BSD: ping -D -s sizeofdata hostname
  • Linux: ping -M do -s sizeofdata hostname

Bu çalışmaların en büyük değeri sizeofdataMTU (verilerinizin aldığı belirli yol üzerinde).


Ancak IP ve UDP başlıklarını bu 1500'den dışlamak zorunda mıyım? Bu yüzden benim maksimum başvuru mesajım uzunluğu UDP için 1472.
chrisapotek

@chrisapotek Doğru - IP ve UDP (veya TCP, GRE, vb.) başlıkları ethernet çerçevesine getirilen yükün bir parçası
voretaq7

2
traceroute --mtu {hedef} linux'ta da maksimum mtu gösterecektir
Rqomey

biraz daha "fiziksel" olmalı mıyız? en.wikipedia.org/wiki/8b/10b_encoding
SaveTheRbtz

@SaveTheRbtz oh lütfen hayır - ikili gösterime inmek kafamı yeterince acıtıyor :-)
voretaq7

2

Çerçeveye koyduğunuz veri miktarına bağlıdır. Bir çerçeveye 1500 bayt veri koyarsanız, toplam çerçeve boyutunuz 1518 bayt olur. 1472 bayt veri ile, toplam kare büyüklüğü 1500 olacak.

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

Bununla birlikte, parçalanmayı test etmekle gerçekten ilgileniyorsanız, bunu test etmenin iyi bir yolu, birkaç bayraklı eski bir ping iledir:

ping ana bilgisayar adı -f -l sizeofdata

-F bayrağı, paket parçalanırsa pingin başarısız olmasına neden olur. Burada anlamanın anahtarı, "sizeofdata", parçalanma olmadan bir mesaja koyabileceğiniz veri miktarıdır - bu nedenle 1500 yük taşıyorsanız, 1500 baytı geçtiğinizde parçalanmaya başlarsınız. Bunu 1472'ye düşürün (1500 - 18 bayt havai) ve pinglerin geçtiğini göreceksiniz.


Üzgünüm, 1542 bayt, IEEE 802.3 tarafından tanımlanan standart ethernet çerçevesinin çok üstünde. Etiketsiz bir 1500 bayt ethernet yükü 1518 bayttır (SFD / önbellek hariç). Bir 802.1q etiketli çerçeve 1522 bayttır (aynı uyarılar)
Mike Pennington

Bu çok kafa karıştırıcı. MTU = 1500, ancak çerçeve boyutu 1542'dir. Yani MTU sadece bir yük, yani 4242 eksi 1542 eksi kare büyüklüğünde. Bu doğru mu?
chrisapotek

Üzgünüm, yanlış yazdım - cevabı henüz güncelledim, fakat hala yanılıyorsam, bilmeme izin ver - bu hatırladığım matematik: S
Univ426

Üzgünüm,
yanılmalıyım

Kafası karışan sen değilsin, herkes. Böylece sorularım devam ediyor. MTU ve ethernet çerçeve boyutu arasındaki fark nedir? Yük 1500 veya daha az mı?
chrisapotek

0

Temel Ethernet_II çerçevesi için, kare boyutu 1518 bayttır (telin üstünde veya dışında). Bu, hedef ve kaynak adreslerinin her biri için 6 bayt, yük alanı için 46-1500 bayt arası tip alan için 2 bayt (sizin durumunda IP başlığı ve UDP başlığı olan tüm IP paketinin) ve 4 bayttan oluşur. FCS. Buna ek olarak, bir karenin ne kadar küçük olabileceği konusunda bir kısıtlama vardır (64 bayt). Bu nedenle, aralık 46 bayttır (bunu iki adrese, tür ve FCS'ye ekleyin ve 64 bayt - 46 + 6 + 6 + 2 + 4 = 64).

Çerçeve, birden çok vlansı destekleyen bir ağdaysa ve çerçeveyi bir vlan etiketiyle etiketlemeniz gerekiyorsa, tür alanından önce bir ekstra alan eklenir. Bu 4 bayttır. Bu, artık yükün boyut aralığının alt ucunda 4 bayt azaltılabildiği ve yine de minimum 64 bayta sahip olabileceği anlamına geliyor. Dolayısıyla 42. (Yani, vlan etiketi için = 64 = 42 + 6 + 6 + 2 + 4 + 4)

Bu nedenle, aralık 1500-42 yazıldığında, 1500 eksi 42 anlamına gelmez, 1500 ila 42 bayt arasında herhangi bir şey geçerlidir. Bir tel, bu etiketli çerçeve 1522 bayt kadar büyük olabilir (eğer sadece bir etiket kullanılıyorsa veya iki etiket kullanılıyorsa 1526). Bunların hiçbiri 1542 sayısını açıklamıyor.

Bu sayıya ulaşmak için, bir karenin Ethernet üzerinden nasıl gönderilebileceğini düşünmeniz gerekir. Ethernet LAN'ında saat yoktur, bu nedenle bir saat ayarlamak için bir çerçevenin vericisi tarafından bir dizi 1 ve 0 gönderilir. Buna başlangıç ​​adı verilir. Her dinleyici, başlangıç ​​ekinin tamamını 'duymaz', ancak çoğunun bir kısmını duyması gerekir. Girişin sonunun işaretini vermek için, gönderilen son 8 bitten biri çevrilir, böylece 10101010 yerine 10101011 olur. Bu bayta, Çerçeve Sınırlayıcı Başlat (SDF) denir. Bu, kabloyu yakalamak için teknik olarak yararlı değildir, bu yüzden başlangıç ​​ve 7 byte SDF'nin 7 byte'ı normal olarak sayılmaz, ancak orijinal 1518'imiz olsaydı şimdi 1526 olurdu. Hala 1542 ..

Bir çerçeve gönderildikten sonra, tel üzerinde ara çerçeve boşluğu olarak adlandırılan zorunlu bir sessizlik vardır. Bu, 12 bayt iletime eşdeğerdir. Bu aynı zamanda sayılmaz ya da yakalamaz ama olsaydı bizi 1538 bayta ulaştırırdı. Şimdi 1538'den 1542'ye ulaşmanın tek yolu karenin etiketlendiğini söylemek (yani 4 byte plan etiketi içeriyor). Phew, en sonunda 1542.

Hepsi terminolojide. Kablo üzerinde standart bir çerçeve 1518 bayttır (herhangi bir yakalama cihazıyla ilgili olarak). Etiketli bir çerçeve (tek etiket) tel üzerinde 1522 bayttır. Bunlar, tel üzerinde 1538 bayt veya 1542 bayt iletim alanı kaplar.

Netleştirmek için yardımcı olur umarım ..


-1

hayır, parçalanmanın gerçekleşmesini istemiyorsunuzdur, bu yüzden paketin parçalanması gerekiyor, ancak df set bunu iki yollu bir yarı yolda, aynı karayoluna benzer bir sürü küçük akıllı araba ile aynı karayoluna götürüyor. Aynı hedef semis daha fazla yük taşıyor ancak daha yavaş ve daha kolay toplanabiliyor, daha küçük arabalar daha az taşıyor ancak daha hızlı seyahat ediyor MSS de MTU ile aynı değil


1
Bu cevap neredeyse tamamen, ancak tamamen değil, tamamen ilgisiz.
kasperd
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.