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.
Jawaban:
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 BytesPayload 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 BytesFrame 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 BytesAkhirnya 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:
ping hostname -f -l sizeofdata
(teknik yang disebutkan John K)ping -D -s sizeofdata hostname
ping -M do -s sizeofdata hostname
Nilai terbesar dari
sizeofdata
yang berfungsi adalah MTU (melewati jalur tertentu yang diambil data Anda).sumber
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.
sumber
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 ..
sumber
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
sumber