Windows 7, Windows Vista 및 Windows XP의 경우 다양한 인터페이스의 MTU를 Windows를 통해 사용할 수 있습니다 netsh
.
윈도우 7, 윈도우 비스타
명령 프롬프트에서 Windows 7 또는 Windows Vista에 현재 MTU 를 표시하려면 다음과 같이하십시오.
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
그리고 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
참고 : 이 예제에서 로컬 영역 연결 IPv6 인터페이스는 터널 서비스를 사용하여 IPv6 연결을 사용하기 때문에 MTU (1280)가 낮습니다 .
MTU (Windows 7, Windows Vista)를 변경할 수도 있습니다 . 에서 상승 된 명령 프롬프트 :
>netsh interface ipv4 set subinterface "Local Area Connection" mtu=1492 store=persistent
Ok.
Windows 7 서비스 팩 1에서 테스트
윈도우 XP
netsh
Windows XP 의 구문은 약간 다릅니다.
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
참고 : Windows XP에서는 인터페이스 (MTU 포함)에 대한 세부 정보를 보려면 라우팅 및 원격 액세스 서비스를 시작해야합니다.
C:\Users\Ian>net start remoteaccesss
Windows XP는에서 MTU 설정을 변경하는 방법을 제공하지 않습니다 netsh
. 이를 위해 다음을 수행 할 수 있습니다.
Windows XP 서비스 팩 3에서 테스트
참조
28 바이트가 어디에서 오는 MTU가 무엇인지에 대한 짧은 토론.
네트워크 카드 (이더넷)의 최대 패킷 크기는 1,500 bytes
다음 과 같습니다.
+---------+
| 1500 |
| byte |
| payload |
| |
| |
| |
+---------+
TCP / IP 의 IP 부분 에는 20 바이트 헤더 (12 바이트 플래그, 소스 IP 주소 4 바이트, 대상 IP 주소 4 바이트)가 필요합니다. 따라서 패킷에서 사용 가능한 공간이 줄어 듭니다.
+------------------------+
| 12 bytes control flags | \
| 4 byte from address | |- IP header: 20 bytes
| 4 byte to address | /
|------------------------|
| 1480 byte payload |
| |
| |
| |
+------------------------+
이제 ICMP (ping) 패킷에는 8 바이트 헤더 (1 바이트 type
, 1 바이트 code
, 2 바이트 checksum
, 4 바이트 추가 데이터)가 있습니다.
+------------------------+
| 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 |
| |
| |
| |
+------------------------+
"결측"28 바이트가있는 곳입니다. 핑 패킷을 보내는 데 필요한 헤더의 크기입니다.
핑 패킷을 보낼 때 포함 할 추가 페이로드 데이터의 양을 지정할 수 있습니다. 이 경우 1472 바이트를 모두 포함하는 경우 :
>ping -l 1472 obsidian
그러면 이더넷 패킷이 아가미에 가득 차게됩니다. 1500 바이트 패킷의 모든 마지막 바이트가 채워집니다.
+------------------------+
| 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....|
|........................|
|........................|
|........................|
|........................|
+------------------------+
바이트를 하나 더 보내려고하면
>ping -l 1473 obsidian
네트워크는 1501 바이트 패킷을 여러 패킷으로 분할해야합니다.
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 |
| |
| |
| |
| |
| |
+------------------------+
이 조각화는 장면 뒤에서 발생하며 이상적으로는 알지 못합니다.
그러나 의미가있을 수 있으며 네트워크에 패킷 조각화가 허용되지 않는다고 알려주십시오.
>ping -l 1473 -f obsidian
-f 플래그 수단은 단편화하지 않습니다 . 이제 네트워크에 맞지 않는 패킷을 보내려고하면 오류가 발생합니다.
>ping -l 1473 -f obsidian
Packet needs to be fragmented but DF set.
패킷은 조각화되어야하지만 조각화 안함 플래그가 설정되었습니다.
라인 어디에서나 패킷 조각화가 필요한 경우 네트워크는 실제로 조각화가 발생했음을 알리는 ICMP 패킷을 보냅니다. 컴퓨터에서이 ICMP 패킷을 가져 와서 가장 큰 크기를 알려주고 너무 큰 패킷 전송을 중지해야합니다. 불행히도 대부분의 방화벽은 이러한 "경로 MTU 발견"ICMP 패킷을 차단하므로 컴퓨터는 패킷이 조각화되고 있다는 것을 인식하지 못합니다 (또는 조각화 할 수 없어서 삭제됨).
이것이 웹 서버가 작동하지 않는 이유입니다. 초기 작은 (<1280 바이트) 응답을 얻을 수 있지만 더 큰 패킷은 통과 할 수 없습니다. 그리고 웹 서버의 방화벽이 잘못 구성되어 ICMP 패킷을 차단합니다. 따라서 웹 서버는 패킷을 얻지 못했다는 것을 인식하지 못합니다.
IPv6에서는 패킷 조각화가 허용되지 않으며 모든 사람이 ICMP mtu 감지 패킷을 (올바르게) 허용 해야 합니다.