विंडोज 7, विंडोज विस्टा और विंडोज एक्सपी के लिए, विभिन्न इंटरफेस के लिए एमटीयू विंडोज का उपयोग करके ही उपलब्ध है netsh
।
विंडोज 7, विंडोज विस्टा
कमांड प्रॉम्प्ट से विंडोज 7 या विंडोज विस्टा पर वर्तमान एमटीयू दिखाने के लिए :
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 इंटरफ़ेस में इतनी कम MTU (1280) है क्योंकि मैं IPv6 कनेक्टिविटी प्राप्त करने के लिए एक सुरंग सेवा का उपयोग कर रहा हूं ।
आप अपने MTU (विंडोज 7, विंडोज विस्टा) को भी बदल सकते हैं । एक उन्नत कमांड प्रॉम्प्ट से:
>netsh interface ipv4 set subinterface "Local Area Connection" mtu=1492 store=persistent
Ok.
विंडोज 7 सर्विस पैक 1 के साथ परीक्षण किया गया
विंडोज एक्स पी
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
विंडोज एक्सपी एमटीयू सेटिंग को भीतर से बदलने का एक तरीका प्रदान नहीं करता है netsh
। उसके लिए आप कर सकते हैं:
Windows XP सर्विस पैक 3 के साथ परीक्षण किया गया
यह भी देखें
MTU क्या है, 28 बाइट्स कहां से आ रही है, इस पर लघु चर्चा।
आपके नेटवर्क कार्ड (ईथरनेट) का अधिकतम पैकेट आकार है 1,500 bytes
:
+---------+
| 1500 |
| byte |
| payload |
| |
| |
| |
+---------+
टीसीपी / आईपी के आईपी हिस्से में 20 बाइट हेडर (झंडे के 12 बाइट्स, स्रोत आईपी पते के लिए 4 बाइट्स, गंतव्य आईपी पते के लिए 4 बाइट्स) की आवश्यकता होती है। यह पैकेट में उपलब्ध कम जगह छोड़ता है:
+------------------------+
| 12 bytes control flags | \
| 4 byte from address | |- IP header: 20 bytes
| 4 byte to address | /
|------------------------|
| 1480 byte payload |
| |
| |
| |
+------------------------+
अब एक ICMP (पिंग) पैकेट में 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 पैकेट मिलता है, बताया जाता है कि सबसे बड़ा आकार क्या था, और यह पैकेट को बहुत बड़ा भेजने से रोकने वाला है। दुर्भाग्य से अधिकांश फायरवॉल इन "पथ एमटीयू खोज" आईसीएमपी पैकेटों को अवरुद्ध करते हैं, इसलिए आपकी मशीन को कभी भी पता नहीं चलता है कि पैकेट खंडित किए जा रहे हैं (या इससे भी बदतर: गिरा दिया गया क्योंकि वे टुकड़े नहीं किए जा सकते)।
यही कारण है कि वेब-सर्वर काम नहीं करता है। आप प्रारंभिक छोटे (<1280 बाइट) प्रतिक्रियाएं प्राप्त कर सकते हैं, लेकिन बड़े पैकेट के माध्यम से नहीं मिल सकता है। और वेब-सर्वर के फायरवॉल गलत हैं, ICMP पैकेट्स को ब्लॉक करते हैं। तो वेब-सर्वर को एहसास नहीं होता कि आपको कभी पैकेट नहीं मिला।
पैकेट के विखंडन आईपीवी 6 में अनुमति नहीं है, हर कोई कर रहा है के लिए आवश्यक (सही) की अनुमति देने के ICMP MTU खोज पैकेट के लिए।