Untuk Windows 7, Windows Vista dan Windows XP, MTU untuk berbagai antarmuka tersedia dari Windows itu sendiri netsh
.
Windows 7, Windows Vista
Untuk menampilkan MTU saat ini di Windows 7 atau Windows Vista, dari prompt perintah:
C:\Users\Ian>netsh interface ipv6 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
---------- --------------- --------- --------- -------------
1280 1 24321220 6455865 Local Area Connection
4294967295 1 0 1060111 Loopback Pseudo-Interface 1
1280 5 0 0 isatap.newland.com
1280 5 0 0 6TO4 Adapter
Dan untuk antarmuka IPv4:
C:\Users\Ian>netsh interface ipv4 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
---------- --------------- --------- --------- -------------
1500 1 146289608 29200474 Local Area Connection
4294967295 1 0 54933 Loopback Pseudo-Interface 1
Catatan: Dalam contoh ini antarmuka IPv6 Sambungan Area Lokal saya memiliki MTU yang sangat rendah (1280) karena saya menggunakan layanan terowongan untuk mendapatkan konektivitas IPv6 .
Anda juga dapat mengubah MTU Anda (Windows 7, Windows Vista). Dari prompt perintah yang ditinggikan :
>netsh interface ipv4 set subinterface "Local Area Connection" mtu=1492 store=persistent
Ok.
Diuji dengan Windows 7 Paket Layanan 1
Windows XP
The netsh
sintaks untuk Windows XP sedikit berbeda:
C:\Users\Ian>netsh interface ip show interface
Index: 1
User-friendly Name: Loopback
Type: Loopback
MTU: 32767
Physical Address:
Index: 2
User-friendly Name: Local Area Connection
Type: Etherenet
MTU: 1500
Physical Address: 00-03-FF-D9-28-B7
Catatan: Windows XP mengharuskan layanan Routing dan Remote Access dimulai sebelum Anda dapat melihat detail tentang antarmuka (termasuk MTU):
C:\Users\Ian>net start remoteaccesss
Windows XP tidak menyediakan cara untuk mengubah pengaturan MTU dari dalam netsh
. Untuk itu Anda bisa:
Diuji dengan Windows XP Paket Layanan 3
Lihat juga
Diskusi singkat tentang apa MTU itu, dari mana 28 byte berasal.
Kartu jaringan Anda (Ethernet) memiliki ukuran paket maksimum 1,500 bytes
:
+---------+
| 1500 |
| byte |
| payload |
| |
| |
| |
+---------+
Bagian IP dari TCP / IP membutuhkan header 20 byte (12 byte bendera, 4 byte untuk alamat IP sumber, 4 byte untuk alamat IP tujuan). Dengan demikian semakin sedikit ruang yang tersedia dalam paket:
+------------------------+
| 12 bytes control flags | \
| 4 byte from address | |- IP header: 20 bytes
| 4 byte to address | /
|------------------------|
| 1480 byte payload |
| |
| |
| |
+------------------------+
Sekarang paket ICMP (ping) memiliki header 8-byte (1 byte type
, 1 byte code
, 2 byte checksum
, 4 byte data tambahan):
+------------------------+
| 12 bytes control flags | \
| 4 byte from address | |
| 4 byte to address | |- IP and ICMP header: 28 bytes
|------------------------| |
| 8 byte ICMP header | /
|------------------------|
| 1472 byte payload |
| |
| |
| |
+------------------------+
Di situlah "hilang" 28 byte - itu ukuran header yang diperlukan untuk mengirim paket ping.
Saat Anda mengirim paket ping, Anda dapat menentukan berapa banyak data payload tambahan yang ingin Anda sertakan. Dalam hal ini, jika Anda memasukkan semua 1472 byte:
>ping -l 1472 obsidian
Kemudian paket ethernet yang dihasilkan akan penuh ke insang. Setiap byte terakhir dari paket 1500 byte akan diisi:
+------------------------+
| 12 bytes control flags | \
| 4 byte from address | |
| 4 byte to address | |- IP and ICMP header: 28 bytes
|------------------------| |
| 8 byte ICMP header | /
|------------------------|
|........................|
|........................|
|. 1472 bytes of junk....|
|........................|
|........................|
|........................|
|........................|
+------------------------+
Jika Anda mencoba mengirim satu byte lagi
>ping -l 1473 obsidian
jaringan harus memecah paket 1501 byte menjadi beberapa paket:
Packet 1 of 2
+------------------------+
| 20 bytes control flags | \
| 4 byte from address | |
| 4 byte to address | |- IP and ICMP header: 28 bytes
|------------------------| |
| 8 byte ICMP header | /
|------------------------|
|........................|
|........................|
|..1472 bytes of payload.|
|........................|
|........................|
|........................|
|........................|
+------------------------+
Packet 2 of 2
+------------------------+
| 20 bytes control flags | \
| 4 byte from address | |
| 4 byte to address | |- IP and ICMP header: 28 bytes
|------------------------| |
| 8 byte ICMP header | /
|------------------------|
|. |
| 1 byte of payload |
| |
| |
| |
| |
| |
+------------------------+
Fragmentasi ini akan terjadi di belakang layar, idealnya tanpa Anda sadari.
Tapi Anda bisa jahat, dan beri tahu jaringan bahwa paket itu tidak boleh difragmentasi:
>ping -l 1473 -f obsidian
The -f berarti bendera tidak fragmen . Sekarang ketika Anda mencoba mengirim paket yang tidak sesuai pada jaringan Anda mendapatkan kesalahan:
>ping -l 1473 -f obsidian
Packet needs to be fragmented but DF set.
Paket perlu terfragmentasi, tetapi bendera Jangan Fragmen telah ditetapkan.
Jika di mana saja di sepanjang baris paket perlu terfragmentasi, jaringan sebenarnya mengirim paket ICMP yang memberi tahu Anda bahwa terjadi fragmentasi. Mesin Anda mendapatkan paket ICMP ini, diberi tahu ukuran terbesarnya, dan seharusnya berhenti mengirim paket terlalu besar. Sayangnya sebagian besar firewall memblokir paket ICMP "Path MTU discovery" ini, sehingga mesin Anda tidak pernah menyadari bahwa paket-paket tersebut terfragmentasi (atau lebih buruk: dijatuhkan karena tidak dapat difragmentasi).
Itulah yang menyebabkan web-server tidak berfungsi. Anda bisa mendapatkan respons kecil awal (<1280 byte), tetapi paket yang lebih besar tidak dapat melewati. Dan firewall server web salah konfigurasi, memblokir paket ICMP. Jadi server web tidak menyadari Anda tidak pernah mendapatkan paket itu.
Fragmentasi paket tidak diperbolehkan dalam IPv6, semua orang diharuskan (dengan benar) mengizinkan paket penemuan ICMP mtu.