উইন্ডোজ,, উইন্ডোজ ভিস্তা এবং উইন্ডোজ এক্সপির জন্য, বিভিন্ন ইন্টারফেসের জন্য এমটিইউ উইন্ডোজ নিজেই ব্যবহার করে উপলব্ধ 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
এবং আইপিভি 4 ইন্টারফেসের জন্য:
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
দ্রষ্টব্য: এই উদাহরণে আমার লোকাল এরিয়া সংযোগ আইপিভি 6 ইন্টারফেসের এত কম এমটিইউ (1280) রয়েছে কারণ আমি আইপিভি 6 সংযোগ পেতে একটি টানেল পরিষেবা ব্যবহার করছি ।
আপনি আপনার এমটিইউ (উইন্ডোজ 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
দ্রষ্টব্য: উইন্ডোজ এক্সপিকে একটি ইন্টারফেস (এমটিইউ সহ) সম্পর্কিত বিশদটি দেখার আগে রাউটিং এবং রিমোট অ্যাক্সেস পরিষেবা শুরু করা দরকার:
C:\Users\Ian>net start remoteaccesss
উইন্ডোজ এক্সপি ভিতরে থেকে এমটিইউ সেটিংস পরিবর্তন করার কোনও উপায় সরবরাহ করে না netsh
। তার জন্য আপনি করতে পারেন:
উইন্ডোজ এক্সপি সার্ভিস প্যাক 3 দিয়ে পরীক্ষিত
আরো দেখুন
এমটিইউ কী, যেখানে 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 |
| |
| |
| |
+------------------------+
এখন একটি আইসিএমপি (পিং) প্যাকেটে একটি 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 |
| |
| |
| |
+------------------------+
সেখানে "অনুপস্থিত" ২৮ বাইট রয়েছে - এটি একটি পিং প্যাকেট প্রেরণের জন্য প্রয়োজনীয় শিরোনামের আকার।
আপনি যখন একটি পিং প্যাকেট প্রেরণ করেন আপনি কতটা অতিরিক্ত পেওলড ডেটা অন্তর্ভুক্ত করতে চান তা নির্দিষ্ট করে দিতে পারেন। এই ক্ষেত্রে, আপনি যদি সমস্ত 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.
প্যাকেটটি খণ্ডিত হওয়া দরকার, তবে না খণ্ড খণ্ডিত পতাকা সেট করা হয়েছিল।
যদি লাইন বরাবর যে কোনও প্যাকেটকে খণ্ডিত করার প্রয়োজন হয়, নেটওয়ার্কটি আসলে একটি আইসিএমপি প্যাকেট প্রেরণ করে আপনাকে জানিয়ে দেয় যে একটি খণ্ড ঘটেছে। আপনার মেশিনটি এই আইসিএমপি প্যাকেটটি পেয়েছে, সবচেয়ে বড় আকারটি কী তা বলা হয়েছিল এবং প্যাকেটগুলি খুব বড় পাঠানো বন্ধ করার কথা রয়েছে। দুর্ভাগ্যক্রমে বেশিরভাগ ফায়ারওয়ালগুলি এই "পাথ এমটিইউ আবিষ্কার" আইসিএমপি প্যাকেটগুলিকে অবরুদ্ধ করে, তাই আপনার মেশিন কখনই বুঝতে পারে না যে প্যাকেটগুলি খণ্ডিত হচ্ছে (বা আরও খারাপ: হ্রাস পেয়েছে কারণ তারা খণ্ডিত হতে পারে না)।
ওয়েব সার্ভারের কাজ না করার কারণেই এটি। আপনি প্রাথমিক ছোট (<1280 বাইট) প্রতিক্রিয়া পেতে পারেন, তবে বৃহত্তর প্যাকেটগুলি পেতে পারে না। এবং ওয়েব-সার্ভারের ফায়ারওয়ালগুলি ভুল কনফিগার করা হয়েছে, আইসিএমপি প্যাকেটগুলি ব্লক করে। সুতরাং ওয়েব-সার্ভার বুঝতে পারে না যে আপনি কখনও প্যাকেটটি পেলেন না।
প্যাকেট ফ্র্যাগমেন্টেশন IPv6, অনুমোদিত নয়, সবাই হয় প্রয়োজনীয় (সঠিকভাবে) অনুমতি দেয় ICMP MTU আবিষ্কার প্যাকেট করতে।