Berapa ukuran "dalam-kawat" bingkai ethernet? 1518 atau 1542?

22

Menurut tabel di sini , dikatakan bahwa MTU = 1500 byte dan bagian payload adalah 1500 - 42 byte atau 1458 byte (<- ini sebenarnya salah!). Sekarang Anda harus menambahkan header IPv4 dan UDP, yaitu 28 byte (20 IP + 8 UDP). Itu membuat pesan aplikasi maksimum saya menjadi 1430 byte! Tetapi dengan mencari nomor ini di Internet saya melihat 1472 sebagai gantinya. Apakah saya melakukan perhitungan yang salah di sini?

Yang ingin saya ketahui adalah pesan aplikasi maksimum yang dapat saya kirimkan melalui kabel tanpa risiko fragmentasi. Ini jelas bukan 1500 karena itu termasuk header bingkai. Adakah yang bisa membantu?


Kerancuannya adalah PAYLOAD dapat benar-benar sebesar 1500 byte dan itulah MTU. Jadi sekarang berapa ukuran di-kawat untuk payload 1500? Dari tabel itu bisa mencapai 1542 byte.

Jadi, pesan aplikasi maksimum yang dapat saya kirim adalah 1472 (1500 - 20 (ip) - 8 (udp)) untuk maksimum ukuran kawat 1542. Ini mengherankan saya bagaimana hal-hal dapat menjadi sangat rumit ketika mereka sebenarnya sederhana. Dan saya belum tahu bagaimana seseorang menemukan nomor 1518 jika meja mengatakan 1542.

chrisapotek
sumber
Pertanyaan sebenarnya di sini adalah apa yang Anda maksud dengan "dalam ukuran kawat" dan apa yang akan Anda lakukan dengan informasi ini? Apakah Anda mencoba menghitung paket per detik?
Mike Pennington
@MikePennington Mencoba menentukan waktu transit di kabel. Dengan ukuran paket dan kecepatan ethernet (10 gigabit) Anda dapat menghitungnya.
chrisapotek

Jawaban:

26

Diagram di Wikipedia mengerikan. Semoga apa yang akan saya tulis lebih jelas.


Muatan maksimum dalam ethernet 802,3 adalah 1500 byte.
Ini adalah data yang Anda coba kirim melalui kabel (dan apa yang dimaksud dengan MTU).
[payload]<- 1500 Bytes

Payload dienkapsulasi dalam Frame Ethernet (yang menambahkan Source / Destination MAC, VLAN tag, Length, dan CRC Checksum. Ini adalah total 22 byte tambahan "barang"
[SRC+DST+VLAN+LENGTH+[payload]+CRC]<- 1522 Bytes

Frame ditransmisikan melalui kabel - sebelum kartu ethernet Anda melakukan hal itu pada dasarnya berdiri dan berteriak sangat keras untuk memastikan tidak ada orang lain yang menggunakan kabel (CSMA / CD) - Ini adalah pembatas Pembukaan dan Pembukaan Bingkai. (SFD) - tambahan 8 byte, jadi sekarang kami memiliki:
[Preamble+SFD+[Ethernet Frame]]<- 1530 Bytes

Akhirnya ketika transceiver ethernet selesai mengirim bingkai, diperlukan 802,3 untuk mengirimkan 12 byte keheningan ("Interframe Gap") sebelum diizinkan untuk mengirim frame berikutnya.
[Preamble+SFD+[Ethernet Frame]+Silence]<- 1542 byte dikirimkan pada kabel.


Preamble, SFD, dan Interframe Gap tidak dihitung sebagai bagian dari frame. Mereka adalah struktur pendukung untuk protokol Ethernet itu sendiri.

MTU berlaku untuk payload - ini adalah unit data terbesar yang dapat Anda masukkan ke dalam paket. Dengan demikian paket ethernet dengan MTU 1500 byte sebenarnya akan menjadi frame 1522 byte, dan 1542 byte pada kabel (dengan asumsi ada tag vLAN).

Jadi jawaban untuk pertanyaan Anda - Apakah paket terbesar yang dapat saya kirimkan melalui lebih dari 802,3 ethernet tanpa fragmentasi? - adalah 1500 byte data payload .

NAMUN lapisan ethernet mungkin bukan faktor pembatas Anda. Untuk mengetahui apakah ada sesuatu yang membatasi MTU menjadi lebih kecil dari 1500 byte data payload, gunakan salah satu dari yang berikut:

  • Windows: ping hostname -f -l sizeofdata(teknik yang disebutkan John K)
  • BSD: ping -D -s sizeofdata hostname
  • Linux: ping -M do -s sizeofdata hostname

Nilai terbesar dari sizeofdatayang berfungsi adalah MTU (melewati jalur tertentu yang diambil data Anda).

voretaq7
sumber
Namun saya harus mengecualikan header IP dan UDP dari 1500 ini, kan? Jadi panjang pesan aplikasi maksimum saya adalah 1472 untuk UDP.
chrisapotek
@chrisapotek Benar - Header IP dan UDP (atau TCP, GRE, dll.) adalah bagian dari payload yang dimasukkan ke dalam bingkai ethernet
voretaq7
2
traceroute --mtu {target} di linux juga akan menampilkan max mtu
Rqomey
haruskah kita mendapatkan sedikit lebih "fisik"? en.wikipedia.org/wiki/8b/10b_encoding
SaveTheRbtz
@SaveTheRbtz oh tolong tidak - turun ke representasi biner cukup menyakitkan kepalaku :-)
voretaq7
2

Itu tergantung pada jumlah data yang Anda masukkan dalam bingkai. Jika Anda meletakkan 1500 byte data dalam sebuah bingkai, ukuran total frame Anda akan menjadi 1518 byte. Dengan 1472 byte data, Anda akan berakhir dengan ukuran bingkai total 1500 ..

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

Yang sedang berkata, jika Anda benar-benar tertarik dalam menguji fragmentasi, cara yang baik untuk menguji ini adalah dengan ping lama yang bagus dengan beberapa flag:

ping nama host -f -l sizeofdata

Bendera -f akan menyebabkan ping gagal jika paket terfragmentasi. Kunci untuk memahami di sini adalah "sizeofdata" adalah jumlah data yang dapat Anda masukkan ke dalam pesan tanpa memecah-belah - jadi jika Anda mengirim muatan 1500, Anda akan mulai memecah-mecah saat Anda melampaui 1500 byte. Turunkan itu ke 1472 (1500 - overhead 18 byte), dan Anda akan melihat ping melalui.

Univ426
sumber
Maaf, 1542 byte jauh di atas bingkai ethernet standar yang ditentukan oleh IEEE 802.3. Payload ethernet 1500-byte yang tidak ditandai adalah 1518 byte (tidak termasuk SFD / preable). Frame dengan tag 802.1q adalah 1522 byte (peringatan yang sama)
Mike Pennington
Itu sangat membingungkan. MTU = 1500 tetapi ukuran bingkai 1542 ??? Jadi MTU hanyalah payload, dengan kata lain, itu adalah ukuran frame 1542 dikurangi 42 barang tambahan. Apakah itu benar?
chrisapotek
Maaf, saya salah mengetik - Saya baru saja memperbarui jawabannya, tetapi jika saya masih salah, beri tahu saya - ini adalah matematika yang saya ingat: S
Univ426
Maaf, saya pasti salah - saya pikir saya memahaminya tetapi saya jelas memiliki nomor saya mati, sepertinya itu 1518: S maaf tentang itu
Univ426
Bukan kamu yang bingung, tapi semua orang. Jadi pertanyaan saya berlanjut. Apa sih perbedaan antara ukuran bingkai MTU dan ethernet? Apakah payload 1500 atau kurang?
chrisapotek
0

Untuk frame Ethernet_II dasar, ukuran frame adalah 1518 byte (on atau off the wire). Ini terdiri dari 6 byte untuk masing-masing tujuan dan alamat sumber, 2 byte untuk bidang tipe antara 46 dan 1500 byte untuk payload (dalam kasus Anda seluruh paket IP dengan header IP dan header UDP) dan 4 byte untuk FCS. Selain itu ada batasan seberapa kecil sebuah frame (64 byte). Inilah sebabnya mengapa kisarannya dari 46 byte (tambahkan ini ke dua alamat dan tipe dan FCS dan Anda mendapatkan 64 byte - 46 + 6 + 6 + 2 + 4 = 64).

Jika frame pada jaringan yang mendukung banyak vlan dan Anda perlu memberi tag pada frame dengan vlan tag, maka satu bidang tambahan ditambahkan sebelum bidang jenis. Ini adalah 4 byte. Ini sekarang berarti bahwa kisaran ukuran untuk muatan dapat dikurangi dengan 4 byte di ujung bawah dan masih memiliki 64 byte sebagai minimum. Maka 42. (Jadi 42 + 6 + 6 + 2 + 4 + 4 untuk vlan tag = 64)

Jadi ketika rentang ditulis 1500-42 tidak berarti 1500 minus 42, itu berarti apa pun dari 1500 hingga 42 byte adalah valid. Satu kabel, bingkai tag ini bisa sebesar 1522 byte (jika hanya satu tag yang digunakan, atau 1526 jika dua tag digunakan). Tak satu pun dari ini menjelaskan nomor 1542.

Untuk sampai ke nomor ini, Anda perlu mempertimbangkan bagaimana sebuah frame dapat dikirim pada Ethernet. Tidak ada jam pada LAN Ethernet, jadi seri 1 dan 0 dikirim oleh pemancar bingkai untuk mengatur jam. Ini disebut pembukaan. Tidak setiap pendengar akan 'mendengar' semua pembukaan, tetapi sebagian besar harus mendengar sebagian darinya. Untuk menandai akhir pembukaan, salah satu dari 8 bit terakhir yang dikirim dibalik sehingga bukannya 10101010 menjadi 10101011. Byte ini disebut Start of Frame Delimiter (SDF). Ini secara teknis tidak berguna untuk menangkap kabel, sehingga 7 byte pembukaan dan SDF 1 byte biasanya tidak dihitung tetapi jika mereka 1518 asli kami sekarang akan menjadi 1526. Masih bukan 1542 ..

Setelah bingkai dikirim, ada keheningan yang dipaksakan pada kawat yang disebut celah antar bingkai. Ini setara dengan transmisi 12 byte. Ini juga tidak dihitung atau ditangkap tetapi jika itu akan membawa kita ke 1538 byte. Satu-satunya cara untuk sekarang mencapai 1542 dari 1538 adalah dengan mengatakan bahwa frame tersebut ditandai (artinya ia mengandung tag rencana 4 byte). Fiuh, 1542 akhirnya.

Itu semua dalam terminologi. Frame standar adalah 1518 byte pada kabel (sejauh menyangkut perangkat penangkapan apa pun). Frame yang ditandai (tag tunggal) adalah 1522 byte pada kabel. Ini membutuhkan 1538 byte atau 1542 byte ruang transmisi pada kabel.

Semoga itu bisa membantu memperjelas ..

Joevpt
sumber
-1

tidak Anda ingin fragmentasi terjadi ini adalah mengapa Anda mendapatkan paket perlu difragmentasi tetapi jika Anda mengambilnya seperti ini jalan raya 2 arah dengan sejumlah semifinal vs jalan raya yang sama dengan sejumlah besar mobil pintar kecil yang keduanya akan semifinal tujuan yang sama membawa lebih banyak muatan tetapi lebih lambat dan dapat membuat lebih mudah mobil yang lebih kecil membawa lebih sedikit tetapi perjalanan MSS lebih cepat tidak sama dengan MTU baik

Joseph
sumber
1
Jawaban ini hampir, tetapi tidak sepenuhnya, sepenuhnya tidak berhubungan dengan pertanyaan itu.
kasperd