Apakah MTU? Bagaimana untuk mencari saiz MTU yang optimum untuk rangkaian rumah anda? Apakah MTU dalam tetapan penghala

Apabila sambungan Internet sentiasa gagal, ramai yang mengambil langkah drastik. Mereka menukar penghala, menukar pembekal. Salah satu sebab masalah yang mungkin berlaku ialah nilai MTU yang tidak ditetapkan dengan betul. Mari kita fikirkan apa itu dan cara menetapkannya dengan betul.

Apakah MTU dalam penghala?

Nilai MTU (Unit Penghantaran Maksimum) menunjukkan apakah saiz maksimum paket yang dihantar oleh peranti?. Diukur dalam bait. Iaitu, jika blok data yang lebih besar tiba di penghala, ia akan memotongnya kepada beberapa paket (pecahkannya). Paket ini akan bergerak melalui rangkaian, dan jika terdapat penghala di sepanjang jalan yang menganggapnya terlalu besar, ia akan memotongnya juga. Apabila mereka sampai ke penghala terakhir, ia, seterusnya, akan memasang paket yang berpecah-belah menjadi yang asli sebelum menghantarnya ke komputer penerima.

Semua manipulasi pemotongan dan pemasangan pakej ini adalah intensif buruh. Sehubungan itu, adalah dinasihatkan untuk menetapkan nilai MTU optimum pada penghala.

Memandangkan data dalam setiap paket dibalut dengan pengepala overhed, paket yang lebih panjang digunakan, semakin rendah overhed pengepala. Dalam hal ini, adalah dinasihatkan untuk menetapkan saiz MTU maksimum di mana paket tidak akan dipotong pada nod rangkaian berikutnya.

MTU apa yang perlu ditetapkan pada penghala

Cara paling mudah ialah hubungi perkhidmatan sokongan pembekal(tulis surat, panggil). Kemungkinan besar, mereka akan memberitahu anda nilai semasa. Tetapi selepas beberapa lama, pembekal boleh mengkonfigurasi semula segala-galanya. Walaupun ini berlaku agak jarang, jika kegagalan tiba-tiba mula berlaku, kemungkinan besar anda harus menyemak sama ada MTU ditetapkan dengan betul.

Pilihan kedua ialah cari saiz optimum menggunakan arahan ping, menghantar paket yang ditentukan untuk tidak berpecah-belah. Anda harus ping sumber jauh, sebagai contoh, tapak web atau pelayan pembekal.

Anda juga boleh menyemak sumber yang paling banyak dilawati di Internet: pelayan permainan, pelayan tempat anda menonton filem, digunakan oleh telefon IP.

Contoh arahan "ping -f -l 1472 yandex.ru", di sini:

  • 1472 ialah bilangan bait data yang dihantar. Perlu diambil kira bahawa sebagai tambahan kepada data, pengepala juga akan dihantar, iaitu 28 bait (pengepala IP 20 + pengepala ICMP 8 = 28). Oleh itu, saiz paket yang terhasil ialah 1472+28=1500 (bait), saiz standard paket Ethernet standard maksimum. Memang terdapat paket yang lebih besar yang dipanggil bingkai jumbo.
  • yandex.ru ialah nama domain pelayan yang akan kami hantar arahan; ia boleh ditukar kepada alamat IP pelayan pembekal. Anda boleh mencuba dengan alamat IP yang berbeza.

Akibatnya, dengan melaksanakan arahan sedemikian, kami akan menentukan sama ada pemecahan paket diperlukan untuk menghantarnya kepada penerima.

Sebagai contoh, katakan pembekal perkhidmatan tidak membenarkan paket yang lebih besar daripada 1024 bait. Kemudian persediaan akan kelihatan seperti ini.

Kami melancarkan baris arahan (ini adalah aplikasi Windows klasik, anda boleh menemuinya, sebagai contoh, dengan menaip "Barisan arahan" dalam carian). Dan kami melaksanakan perintah itu.

Di sini nilai data ialah 997 bait, saiz paket ialah 997+28=1025 bait, paket tidak boleh dihantar tanpa pemecahan.

Di sini nilai data ialah 996 bait, saiz paket ialah 996+28=1024 bait, paket mencapai penerima tanpa pemecahan.

Oleh itu, dengan menukar saiz blok data yang dihantar, kita boleh hitung DMTU - saiz maksimum blok data yang dihantar tanpa pemecahan. Sebagai contoh, jika arahan ping lulus tanpa pemecahan dengan nilai 996. Apabila kami cuba menghantar arahan dengan nilai 997, kami menerima respons: "Pemecahan paket diperlukan, tetapi bendera larangan ditetapkan." Kemudian kami mengira parameter DMTU seperti berikut: 996 bait data + 28 bait pengepala IP = 1024 bait. Saiz maksimum blok data yang tidak akan dipecahkan ialah 1024 bait. Nilai ini harus ditetapkan pada penghala sebagai saiz MTU.

Bagaimana untuk menukar MTU pada penghala

Kami menyambung ke penghala melalui pelayar Internet. Kami menetapkan saiz MTU baharu. Kemudian kami menyimpan tetapan.

Sebagai contoh, apabila menggunakan TP-Link, pergi ke item "Rangkaian", terdapat sub-item "WAN". Jangan lupa klik butang "Simpan" selepas itu.

Selepas menukar nilai, anda boleh menyemak berapa banyak kelajuan memuat turun fail besar dari Internet telah berubah.

Menyediakan MTU pada komputer anda

Untuk meningkatkan prestasi supaya paket terlalu besar tidak sampai ke penghala, adalah mungkin untuk mengkonfigurasi MTU pada peralatan. Khususnya, anda boleh menetapkan saiz MTU pada komputer peribadi; anda perlu menggunakan baris arahan yang dilancarkan sebagai pentadbir:


Selepas pemasangan ini pada komputer, ia akan menghantar paket yang saiz maksimumnya pada tahap IP ialah 1024 bait, tetapi pada peringkat MAC, blok data dihantar maksimum ialah 1038 bait dalam saiz (14 daripadanya untuk pengepala MAC).

Paket yang lebih besar tidak akan dihantar. Iaitu, jika MTU 1024 dikira dan ditetapkan dengan betul dalam tetapan penghala, maka MTU yang sama harus ditetapkan dalam tetapan komputer yang disambungkan kepadanya.

Konfigurasi automatik - penemuan PMTU

Terdapat mod pengendalian sesetengah peranti apabila saiz MTU ditentukan semasa sambungan ke pelayan jauh (penemuan PMTU). Algoritma adalah sama seperti yang digunakan semasa menetapkan MTU pada penghala. Pada permulaan operasi, peranti menghantar blok data dengan saiz yang berbeza, cuba menentukan saiz paket maksimum yang akan tiba tanpa pemecahan.

Terdapat satu masalah dalam algoritma ini yang dipanggil " MTU Discovery Black Hole" Ia berlaku apabila pentadbir rangkaian, untuk mengelakkan kemungkinan serangan pada pelayan mereka, menghalang penghala daripada menghantar ICMP, khususnya, yang digunakan dengan arahan ping.

Ini sudah tentu bukan cara yang betul untuk bertindak. Peranti tidak boleh terus beroperasi tanpa menerima respons kepada permintaan.

Adakah halaman penyemak imbas anda tidak dimuatkan? Sebahagian daripada mereka hanya membuka kali kedua atau ketiga? Menstrim video dari Internet dengan gangguan? Kemungkinan besar, masalahnya terletak pada parameter MTU penghala anda yang tidak ditetapkan dengan betul.

Teori (jika anda hanya perlu memilih MTU, anda tidak perlu membacanya, tetapi mula menggunakan program dengan segera)

Semua trafik pada rangkaian dihantar dalam apa yang dipanggil paket data. Dengan akses dail (ini adalah apabila wayar daripada pembekal dimasukkan ke dalam komputer anda), saiz paket minimum yang mungkin sebanyak 576 bait digunakan, dan ini adalah tepat parameter MTU. Jika anda mempunyai penghala, maka ia ditetapkan kepada nilai lalai, biasanya 1492. Walau bagaimanapun, pembekal mengawal MTU dengan lebih ketat dan selalunya ia lebih kecil. Hasilnya ialah ketidakpadanan nilai, dan penghala perlu memecahkan paket kepada bahagian untuk penghantaran, yang dipanggil pemecahan. Bukan sahaja memerlukan dua kitaran untuk menghantar satu paket dan bukannya satu, tetapi kehilangan paket juga berlaku. Akibatnya, Internet menjadi perlahan, halaman membeku untuk masa yang lama, video dimuatkan dengan perlahan dan "azimat" lain.

Penyelesaian masalah ini agak mudah: anda hanya perlu menghubungi pejabat pembekal dan bertanya soalan tentang nilai parameter, atau secara bebas memilih parameter MTU optimum di mana paket tidak akan berpecah. Pilihan pertama mungkin yang paling mudah atau paling sukar. Hakikatnya ialah gadis yang duduk di telefon paling kerap tidak tahu parameter apa yang ditetapkan pada rangkaian mereka. “Apa, MTU? Mungkin MTS? Tidak, kami bukan pejabat MTS, kami tidak menetapkan sebarang parameter untuk mereka” - inilah yang, kemungkinan besar, anda berisiko mendengar sebagai jawapan kepada soalan. Oleh itu, kami tidak membuang masa untuk rundingan, tetapi segera pergi untuk memilih parameter MTU. Pemilihan dijalankan dengan menghantar paket dengan saiz yang berbeza dengan pemecahan dilarang. Ujian menggunakan akses dail, iaitu, tanpa penghala.

Untuk memilih MTU, gunakan ujian ping dengan arahan seperti ping ya.ru - f - l xxxx, dengan xxxx ialah nilai MTU, ya.ru ialah pelayan ping (boleh menjadi mana-mana yang sedia ada) + parameter larangan pemecahan. Kami mengambil nilai maksimum dan ping padanya. Jika kerugian lebih besar daripada sifar, maka MTU adalah tidak betul. Kami mengurangkan dalam kenaikan 8. Dan seterusnya sehingga kerugian adalah 0%. Nilai MTU pertama di mana kerugian hilang akan menjadi optimum.

Tetapi menaip set aksara ini pada baris arahan setiap kali tidak begitu mudah, dan menyalin dan menampal dari papan keratan tidak akan berfungsi. Untuk memudahkan, saya menulis program kecil yang secara automatik akan menjana arahan untuk ujian ping dan menjalankannya, secara beransur-ansur menurunkan MTU. Anda hanya perlu memantau penunjuk kerugian dan tekan butang Enter. Semua yang lain ditulis dalam tetingkap program.

Apabila nilai MTU ditemui, anda perlu menambah 28 padanya (untuk pengepala IP dan ICMP) dan masukkannya ke dalam medan yang sesuai dalam tetapan penghala. Ini berbeza untuk penghala yang berbeza, jadi jangan tanya saya tempat untuk memasukkan parameter pada model penghala tertentu. Semua yang terbaik!

Maklumat dalam rangkaian komputer dihantar dalam bentuk blok kecil data yang terbentuk (dengan kata lain, paket). Setiap paket, sebagai tambahan kepada maklumat yang dihantar, juga mengandungi data perkhidmatan yang membentuk pengepala paket yang dipanggil. Data perkhidmatan ini diperlukan untuk menentukan integriti data, versi protokol rangkaian yang digunakan, dsb. Dalam kes ini, saiz blok data berguna dihadkan kepada bilangan bait tertentu. Ini dilakukan untuk mengurangkan kemungkinan kehilangan maklumat dan mengurangkan masa yang diperlukan untuk menghantar semula paket sekiranya berlaku masalah sambungan.

MTU - apaini?

MTU (daripada unit penghantaran Maksimum Bahasa Inggeris) ialah jumlah maksimum data yang dihantar melalui rangkaian tanpa pemecahan selanjutnya (dalam satu paket). Sebarang maklumat yang melebihi nilai MTU secara automatik dibahagikan kepada blok kecil data sebelum dihantar melalui rangkaian. Nilai MTU yang mungkin bergantung pada jenis sambungan rangkaian yang anda gunakan. Jadi, apabila menggunakan PPoE (terutamanya dengan ADSL dan teknologi yang serupa), nilai maksimum parameter MTU ialah 1492 bait (standard 1500 bait untuk Ethernet tolak lapan bait pengepala), dan apabila menggunakan Wi-Fi, MTU boleh mencapai 2304 bait .

Dalam sistem pengendalian moden, nilai MTU optimum sering dikira oleh sistem itu sendiri atau diambil daripada tetapan penghala (biasanya nilai MTU ditetapkan dalam bahagian WAN pada tetapan rangkaian peranti). Sekiranya tiada masalah dengan akses Internet, lebih baik jangan menukar nilai MTU. Walau bagaimanapun, jika anda mengalami masalah komunikasi dan anda mengesyaki bahawa ia mungkin disebabkan oleh pemecahan paket rangkaian, cuba tukar nilai MTU.

Ini boleh dilakukan bukan sahaja dengan menukar tetapan penghala yang sesuai, tetapi juga melalui sistem pengendalian. Sebelum menukar MTU, anda perlu mengira nilai optimum parameter ini. Mari beritahu anda bagaimana ia dilakukan.

Kira nilaiMTU

Anda boleh mencari nilai MTU yang optimum menggunakan arahan ping lama yang baik. Mari kita anggap bahawa kita mentakrifkan nilai parameter ini untuk sambungan berwayar. Buka baris arahan Windows dan tulis arahan berikut:

ping www.google.com -f -l 1472

Di Linux, arahan biasanya kelihatan seperti ping -M do -s 1472 www.google.com dan pada macOS ping -D -s 1472 www.google.com (kunci mungkin berbeza dalam beberapa versi sistem, kami mengesyorkan agar anda rujuk man ping jika arahan tidak berfungsi). Dalam kes ini, kami menghantar paket 1472 bait ke www.google.com dan menghalang pemecahan data. Jika paket dengan saiz ini tidak boleh dihantar, arahan akan menunjukkan bahawa pemecahan paket diperlukan. Jalankan semula arahan ini beberapa kali, secara beransur-ansur mengurangkan saiz paket sebanyak 8-10 bait. Akibatnya, selepas beberapa percubaan anda akan memilih nilai saiz di mana data akan dihantar. Ingat: jika anda menggunakan sambungan wayarles, saiz paket mungkin lebih besar daripada 1500 bait.

Ingat nilai yang diterima dan tambahkan 28 bait kepadanya (panjang pengepala perkhidmatan). Nilai yang terhasil ialah nilai MTU optimum (atau hampir kepada optimum) untuk rangkaian anda.

Tetapkan nilaiMTU

Kini anda tahu nilai MTU yang boleh anda gunakan pada rangkaian rumah anda. Mari beritahu sistem pengendalian bahawa ia adalah perlu untuk menggunakannya (contoh lanjut menggambarkan penyediaan rangkaian IPv4).

Di Windows, buka gesaan arahan dengan hak pentadbir dan jalankan arahan:

antara muka netsh ipv4 menunjukkan subantara muka

Senarai semua sambungan rangkaian, nama mereka dan saiz MTU semasa akan muncul pada skrin. Kami ingat nama sambungan yang kami perlukan dan tulis arahan berikut:

set antara muka netsh ipv4 subantara muka Ethernet mtu=1450 kedai=berterusan

Di sini Ethernet ialah nama antara muka (mungkin berbeza), 1450 ialah saiz MTU yang dipilih. Jika nama itu terdiri daripada beberapa perkataan, ia mesti ditunjukkan dalam tanda petikan.

Untuk melumpuhkan konfigurasi MTU automatik, anda boleh menjalankan arahan:

netsh int tcp set global autotuninglevel=disabled

Anda boleh mendayakan pengesanan MTU automatik menggunakan arahan yang sama dengan parameter autotuninglevel=normal.

Jika anda perlu menetapkan semula tetapan kepada keadaan asalnya, jalankan arahan:

set semula antara muka netsh ipv4

Di Linux, menetapkan MTU dilakukan menggunakan arahan ip. Mari lihat nilai MTU semasa:

Paparan pautan $ip | grep mtu

# pautan ip set eth0 mtu 1450

Di sini eth0 ialah nama antara muka, ia mungkin berbeza pada komputer anda. Agar nilai MTU yang dipilih dapat digunakan secara berterusan setiap kali anda log masuk, anda perlu menulis nilai dalam fail /etc/network/interfaces, atau mencipta modul untuk systemd. Kami mengesyorkan anda merujuk kepada dokumentasi pengedaran yang anda gunakan untuk mendapatkan maklumat yang lebih terperinci.

Pada macOS, anda boleh melihat saiz MTU untuk sambungan en0, dan kemudian tetapkan nilai parameter dalam terminal:

networksetup -getMTU en0

networksetup -setMTU en0 1450

Anda juga boleh menentukan saiz MTU dalam tetapan penghala. Dalam banyak model penghala, tetapan yang sepadan terletak di bahagian WAN. Maklumat lebih terperinci boleh didapati di laman web pengeluar peralatan rangkaian.

Apabila menetapkan MTU secara manual, perlu diingat bahawa tidak disyorkan untuk menetapkan saiz blok data terlalu kecil supaya tidak membuat beban tambahan pada pemproses penghala. Selain itu, izinkan kami mengingatkan anda sekali lagi: jika sambungan rangkaian anda berfungsi dengan baik, tidak perlu menukar nilai MTU. Tetapan yang ditetapkan oleh ISP atau pengilang penghala anda agak sesuai untuk sebahagian besar pengguna.

Pada ketika hos mesti menghantar data melalui antara muka, ia merujuk kepada saiz muatan maksimum untuk satu paket Unit Penghantaran Maksimum, untuk menentukan berapa banyak data yang boleh dimuatkan dalam setiap paket. Contohnya, antara muka Ethernet mempunyai MTU lalai sebanyak 1500 bait, tidak termasuk pengepala atau treler Ethernet. Ini bermakna hos yang perlu menghantar data melalui TCP biasanya akan menggunakan 20 pertama daripada 1500 bait ini untuk pengepala IP, 20 bait seterusnya untuk pengepala TCP dan baki 1460 bait untuk muatan. Merangkum data ke dalam paket bersaiz maksimum seperti ini membolehkan penggunaan lebar jalur yang paling cekap sambil meminimumkan penggunaan overhed protokol data. Saiz MTU yang optimum adalah kunci kepada penggunaan saluran penghantaran data rangkaian yang cekap dan mengurangkan beban pada peralatan rangkaian.

Malangnya, tidak semua peranti di Internet mempunyai saiz MTU maksimum yang sama. MTU mungkin berbeza-beza bergantung pada jenis media fizikal atau enkapsulasi yang dikonfigurasikan (contohnya, terowong GRE atau penyulitan IPsec). Apabila penghala memutuskan untuk memajukan paket IPv4 melalui antara muka dan menentukan bahawa saiz paket melebihi MTU antara muka, penghala mesti membahagikan paket supaya ia dihantar sebagai dua (atau lebih) bahagian berasingan, setiap satunya tidak melebihi Had saiz MTU pautan antara pelanggan. Pemecahan agak mahal, baik dalam sumber penghala dan penggunaan lebar jalur. Pengepala baharu mesti dibuat dan dilampirkan pada setiap serpihan. Dalam spesifikasi protokol IPv6, pemecahan paket dialih keluar sepenuhnya daripada penghala, tetapi ini adalah topik untuk perbincangan lain.

Menentukan saiz MTU optimum bagi paket data

Untuk menggunakan pautan dengan paling cekap, hos mesti menentukan saiz MTU yang optimum - ini ialah MTU minimum antara semua nod pada laluan antara hos. Sebagai contoh, untuk dua hos yang laluannya di antara mereka terdiri daripada 3 penghala dengan saiz paket maksimum yang mungkin berbeza: 1500, 800 dan 1200 bait, setiap hos akhir harus menerima saiz paket terkecil 800 bait untuk mengelakkan pemecahan.

Jangan Serpihan dan Destinasi Tidak Dapat Dicapai, Pecahan Diperlukan

Paket boleh bergerak sewenang-wenangnya merentasi rangkaian, dan adalah mustahil untuk mengira terlebih dahulu semua laluan dan saiz paket maksimum untuk setiap sambungan. RFC 1191 menentukan metodologi untuk menentukan saiz MTU. Proses yang mana hos untuk sambungan tertentu boleh mengesan saiz MTU yang lebih kecil daripada sokongan antara muka rangkaiannya sendiri. Dua komponen adalah kunci: bit Jangan Pecahkan (DF) pengepala IP dan subkod bagi mesej Destinasi ICMP Tidak Boleh Dicapai, Pecahan Diperlukan.

Menetapkan bit DF dalam paket IP menghalang penghala daripada melakukan pemecahan apabila ia mengesan MTU yang lebih kecil daripada saiz paket. Sebaliknya, paket itu dibuang dan mesej dihantar kepada penghantar melalui ICMP yang menunjukkan bahawa paket perlu dipecahkan. Pada asasnya, penghala menunjukkan bahawa ia perlu memecahkan paket menjadi kepingan untuk memajukannya lagi, tetapi bendera Jangan Serpihan (DF) menghalang perkara ini daripada berlaku. RFC 1191 memanjangkan mesej permintaan pemecahan ICMP untuk memasukkan saiz MTU untuk sambungan semasa.

Sekarang bahawa saiz paket maksimum untuk sambungan telah dikesan, hos boleh cache nilai ini dan menjana yang berikutnya daripada saiz yang sesuai. Ambil perhatian bahawa menemui saiz paket maksimum untuk sambungan tertentu adalah proses yang berterusan. Apabila penghalaan dinamik digunakan dan laluan antara penghantar dan penerima dibina semula, hos secara berkala terus mencuba untuk menetapkan bendera DF untuk mengesan pengurangan selanjutnya dalam saiz paket. RFC 1191 juga membolehkan anda menguji secara berkala keupayaan untuk meningkatkan saiz paket maksimum bagi setiap laluan, kadangkala cuba menghantar paket yang lebih besar daripada yang dicache. Jika paket berjaya dihantar, had saiz paket dinaikkan.

Mengira saiz MTU maksimum paket menggunakan traceroute

Anda boleh mengira saiz MTU paket maksimum untuk setiap laluan melalui menggunakan alat seperti jejak laluan. Ia adalah sebahagian daripada pakej Linux - IPutils. Atau utiliti yang ditulis untuk Windows - mturoute:

Saya memberikan contoh menentukan MTU untuk laluan antara dua hos melalui terowong GRE yang disulitkan. Kami melihat bagaimana utiliti secara konsisten memilih saiz paket maksimum:

C:\bin>mturoute.exe 192.168.3.1 * Pecahan ICMP tidak dibenarkan. * * Pengoptimuman kelajuan didayakan. * * Muatan maksimum ialah 10000 bait. * - Muatan ICMP sebanyak 1472 bait terlalu besar. + Muatan ICMP sebanyak 92 bait berjaya. + Muatan ICMP sebanyak 782 bait berjaya. + Muatan ICMP sebanyak 1127 bait berjaya. + Muatan ICMP sebanyak 1299 bait berjaya. - Muatan ICMP sebanyak 1385 bait terlalu besar. + Muatan ICMP sebanyak 1342 bait berjaya. + Muatan ICMP sebanyak 1363 bait berjaya. + Muatan ICMP sebanyak 1374 bait berjaya. - Muatan ICMP sebanyak 1379 bait terlalu besar. + Muatan ICMP sebanyak 1376 bait berjaya. + Muatan ICMP sebanyak 1377 bait berjaya. + Muatan ICMP sebanyak 1378 bait berjaya. Laluan MTU: 1406 bait.

Sejuk