Đối với Windows 7, Windows Vista và Windows XP, MTU cho các giao diện khác nhau có sẵn từ chính Windows sử dụng netsh
.
Windows 7, Windows Vista
Để hiển thị MTU hiện tại trên Windows 7 hoặc Windows Vista, từ dấu nhắc lệnh:
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
Và đối với giao diện 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
Lưu ý: Trong ví dụ này, giao diện IPv6 kết nối khu vực địa phương của tôi có MTU thấp (1280) vì tôi đang sử dụng dịch vụ đường hầm để có kết nối IPv6 .
Bạn cũng có thể thay đổi MTU của mình (Windows 7, Windows Vista). Từ một dấu nhắc lệnh nâng cao :
>netsh interface ipv4 set subinterface "Local Area Connection" mtu=1492 store=persistent
Ok.
Đã thử nghiệm với Windows 7 Service Pack 1
Windows XP
Các netsh
cú pháp cho Windows XP là hơi khác nhau:
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
Lưu ý: Windows XP yêu cầu dịch vụ Định tuyến và Truy cập từ xa phải được khởi động trước khi bạn có thể xem chi tiết về giao diện (bao gồm MTU):
C:\Users\Ian>net start remoteaccesss
Windows XP không cung cấp cách thay đổi cài đặt MTU từ bên trong netsh
. Cho rằng bạn có thể:
Đã thử nghiệm với Windows XP Gói dịch vụ 3
Xem thêm
Thảo luận ngắn về MTU là gì, nơi 28 byte đến từ đâu.
Thẻ mạng của bạn (Ethernet) có kích thước gói tối đa là 1,500 bytes
:
+---------+
| 1500 |
| byte |
| payload |
| |
| |
| |
+---------+
Phần IP của TCP / IP yêu cầu tiêu đề 20 byte (12 byte cờ, 4 byte cho địa chỉ IP nguồn, 4 byte cho địa chỉ IP đích). Điều này để lại ít không gian có sẵn trong gói:
+------------------------+
| 12 bytes control flags | \
| 4 byte from address | |- IP header: 20 bytes
| 4 byte to address | /
|------------------------|
| 1480 byte payload |
| |
| |
| |
+------------------------+
Bây giờ gói ICMP (ping) có tiêu đề 8 byte ( dữ liệu bổ sung 1 byte type
, 1 byte code
, 2 byte checksum
, 4 byte):
+------------------------+
| 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 |
| |
| |
| |
+------------------------+
Đó là nơi "thiếu" 28 byte - đó là kích thước của các tiêu đề cần thiết để gửi gói ping.
Khi bạn gửi một gói tin ping, bạn có thể xác định có bao nhiêu phụ bạn muốn tải dữ liệu bao gồm. Trong trường hợp này, nếu bạn bao gồm tất cả 1472 byte:
>ping -l 1472 obsidian
Sau đó, gói ethernet kết quả sẽ đầy đến mang. Mỗi byte cuối cùng của gói 1500 byte sẽ được điền:
+------------------------+
| 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....|
|........................|
|........................|
|........................|
|........................|
+------------------------+
Nếu bạn cố gửi thêm một byte
>ping -l 1473 obsidian
mạng sẽ phải phân chia gói 1501 byte đó thành nhiều gói:
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 |
| |
| |
| |
| |
| |
+------------------------+
Sự phân mảnh này sẽ xảy ra đằng sau hậu trường, lý tưởng mà bạn không biết.
Nhưng bạn có thể có ý nghĩa và nói với mạng rằng gói không được phép bị phân mảnh:
>ping -l 1473 -f obsidian
Các -f phương tiện cờ không mảnh . Bây giờ khi bạn cố gửi một gói không phù hợp trên mạng, bạn sẽ gặp lỗi:
>ping -l 1473 -f obsidian
Packet needs to be fragmented but DF set.
Gói cần được phân mảnh, nhưng cờ Không phân mảnh đã được đặt.
Nếu bất cứ nơi nào dọc theo một gói cần phải được phân mảnh, mạng thực sự sẽ gửi một gói ICMP cho bạn biết rằng một sự phân mảnh đã xảy ra. Máy của bạn nhận được gói ICMP này, được cho biết kích thước lớn nhất là bao nhiêu và có nghĩa vụ ngừng gửi các gói quá lớn. Thật không may, hầu hết các tường lửa đều chặn các gói ICMP "Khám phá MTU" này, vì vậy máy của bạn không bao giờ nhận ra các gói đang bị phân mảnh (hoặc tệ hơn: bị hủy vì chúng không thể bị phân mảnh).
Đó là nguyên nhân khiến máy chủ web không hoạt động. Bạn có thể nhận được các phản hồi nhỏ ban đầu (<1280 byte), nhưng các gói lớn hơn không thể vượt qua. Và tường lửa của máy chủ web bị định cấu hình sai, chặn các gói ICMP. Vì vậy, máy chủ web không nhận ra bạn không bao giờ có gói.
Phân mảnh các gói không được phép trong IPv6, mọi người đều được yêu cầu (chính xác) cho phép các gói khám phá mtu ICMP.