MTU Path Discovery & Fragmentation Analyzer
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
padding: 0;
}
.calc-container {
max-width: 1000px;
margin: 20px auto;
padding: 20px;
}
.calc-header {
margin-bottom: 30px;
padding: 25px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 12px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
color: white;
}
.calc-header h2 {
margin-top: 0;
color: white;
font-size: 28px;
margin-bottom: 10px;
}
.calc-header p {
margin: 10px 0 20px 0;
opacity: 0.95;
font-size: 15px;
}
.preset-section {
margin: 20px 0;
}
.preset-label {
display: block;
margin-bottom: 10px;
font-weight: 600;
font-size: 14px;
}
.preset-buttons {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.preset-btn {
padding: 10px 16px;
background: rgba(255,255,255,0.15);
color: white;
border: 2px solid rgba(255,255,255,0.3);
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-weight: 600;
transition: all 0.2s ease;
white-space: nowrap;
}
.preset-btn:hover {
background: rgba(255,255,255,0.25);
border-color: rgba(255,255,255,0.5);
transform: translateY(-2px);
}
.input-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-top: 20px;
}
.input-group {
display: flex;
flex-direction: column;
}
.input-group label {
margin-bottom: 8px;
font-weight: 600;
font-size: 14px;
color: rgba(255,255,255,0.95);
}
.input-group input,
.input-group select {
padding: 14px;
font-size: 16px;
border: 2px solid rgba(255,255,255,0.3);
border-radius: 6px;
font-family: 'Courier New', monospace;
background: rgba(255,255,255,0.95);
transition: all 0.3s ease;
}
.input-group input:focus,
.input-group select:focus {
outline: none;
border-color: #4CAF50;
background: white;
box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.1);
}
.button-group {
display: flex;
gap: 10px;
margin-top: 15px;
}
.btn {
padding: 10px 20px;
border: none;
border-radius: 6px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.btn-primary {
background: #4CAF50;
color: white;
}
.btn-primary:hover {
background: #45a049;
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.btn-secondary {
background: rgba(255,255,255,0.2);
color: white;
border: 1px solid rgba(255,255,255,0.3);
}
.btn-secondary:hover {
background: rgba(255,255,255,0.3);
}
.encap-stack {
margin-top: 15px;
min-height: 50px;
}
.encap-layer {
background: rgba(255,255,255,0.15);
padding: 10px 15px;
margin-bottom: 8px;
border-radius: 6px;
border-left: 4px solid #4CAF50;
display: flex;
justify-content: space-between;
align-items: center;
color: white;
}
.encap-layer .name {
font-weight: 600;
}
.encap-layer .overhead {
background: #4CAF50;
color: white;
padding: 4px 12px;
border-radius: 20px;
font-weight: bold;
font-size: 12px;
margin-right: 10px;
}
.encap-layer .remove-btn {
background: #dc3545;
color: white;
border: none;
padding: 4px 10px;
border-radius: 4px;
cursor: pointer;
font-size: 12px;
}
.section {
margin-bottom: 30px;
background: white;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.section h3 {
margin-top: 0;
margin-bottom: 20px;
color: #333;
border-left: 5px solid #667eea;
padding-left: 15px;
font-size: 20px;
}
.result-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
.result-card {
background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
color: white;
padding: 20px;
border-radius: 8px;
text-align: center;
transition: transform 0.2s ease;
}
.result-card:hover {
transform: translateY(-2px);
}
.result-card.warning {
background: linear-gradient(135deg, #ffc107 0%, #ff9800 100%);
color: #000;
}
.result-card.error {
background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
}
.result-card.neutral {
background: linear-gradient(135deg, #6c757d 0%, #5a6268 100%);
}
.result-label {
font-size: 14px;
opacity: 0.9;
margin-bottom: 10px;
text-transform: uppercase;
letter-spacing: 1px;
}
.status-text {
font-size: 11px;
opacity: 0.8;
font-weight: normal;
text-transform: capitalize;
}
.result-value {
font-size: 42px;
font-weight: bold;
margin: 10px 0;
font-family: 'Courier New', monospace;
}
.result-detail {
font-size: 13px;
opacity: 0.9;
}
/* Packet Visualization */
.packet-diagram {
margin: 20px 0;
}
.packet {
border: 2px solid #667eea;
border-radius: 8px;
margin-bottom: 15px;
overflow: hidden;
animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.packet-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 10px 15px;
font-weight: bold;
display: flex;
justify-content: space-between;
align-items: center;
}
.packet-body {
padding: 15px;
background: #f8f9fa;
}
.packet-section {
display: flex;
margin-bottom: 8px;
border-left: 3px solid #667eea;
padding-left: 10px;
}
.packet-section-label {
font-weight: bold;
min-width: 150px;
color: #555;
}
.packet-section-value {
font-family: 'Courier New', monospace;
color: #333;
}
.fragment-visual {
display: flex;
gap: 10px;
margin: 20px 0;
flex-wrap: wrap;
}
.fragment-box {
flex: 1;
min-width: 200px;
border: 2px solid #17a2b8;
border-radius: 6px;
padding: 15px;
background: white;
position: relative;
}
.fragment-box::before {
content: attr(data-fragment);
position: absolute;
top: -12px;
left: 10px;
background: #17a2b8;
color: white;
padding: 2px 10px;
border-radius: 10px;
font-size: 11px;
font-weight: bold;
}
/* PMTUD Flowchart */
.flowchart {
margin: 20px 0;
}
.flow-node {
background: white;
border: 2px solid #667eea;
border-radius: 8px;
padding: 20px;
margin: 15px auto;
max-width: 600px;
position: relative;
cursor: pointer;
transition: all 0.3s ease;
}
.flow-node:hover {
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
transform: scale(1.02);
}
.flow-node.decision {
background: #fff3cd;
border-color: #ffc107;
}
.flow-node.success {
background: #d4edda;
border-color: #28a745;
}
.flow-node.problem {
background: #f8d7da;
border-color: #dc3545;
}
.flow-node-title {
font-weight: bold;
font-size: 16px;
margin-bottom: 10px;
color: #333;
}
.flow-node-content {
color: #555;
line-height: 1.6;
}
.flow-options {
display: flex;
gap: 10px;
margin-top: 15px;
}
.flow-btn {
flex: 1;
padding: 10px;
border: 2px solid #667eea;
background: white;
border-radius: 6px;
cursor: pointer;
font-weight: 600;
transition: all 0.2s ease;
}
.flow-btn:hover {
background: #667eea;
color: white;
}
.flow-arrow {
text-align: center;
color: #667eea;
font-size: 24px;
margin: 10px 0;
}
.solution-box {
background: #d1ecf1;
border-left: 4px solid #17a2b8;
padding: 15px;
border-radius: 6px;
margin-top: 15px;
}
.solution-box h4 {
margin-top: 0;
color: #0c5460;
}
.solution-box code {
background: #2d2d2d;
color: #f8f8f2;
padding: 2px 6px;
border-radius: 3px;
font-family: 'Courier New', monospace;
}
.alert {
padding: 15px 20px;
border-radius: 8px;
margin-bottom: 20px;
border-left: 4px solid;
}
.alert-info {
background: #d1ecf1;
border-color: #17a2b8;
color: #0c5460;
}
.alert-warning {
background: #fff3cd;
border-color: #ffc107;
color: #856404;
}
.alert-danger {
background: #f8d7da;
border-color: #dc3545;
color: #721c24;
}
.data-row {
display: flex;
margin: 12px 0;
padding: 10px;
background: #f8f9fa;
border-radius: 4px;
border-left: 3px solid #667eea;
}
.data-label {
font-weight: bold;
color: #555;
min-width: 200px;
flex-shrink: 0;
}
.data-value {
color: #333;
font-family: 'Courier New', monospace;
}
.hidden {
display: none;
}
/* Encapsulation Stack Builder */
.stack-builder {
background: white;
border: 2px solid #dee2e6;
border-radius: 8px;
padding: 20px;
margin: 20px 0;
}
.stack-builder h4 {
margin-top: 0;
margin-bottom: 15px;
color: #333;
}
.stack-container {
min-height: 100px;
border: 2px dashed #dee2e6;
border-radius: 8px;
padding: 10px;
background: #f8f9fa;
}
.stack-empty {
text-align: center;
padding: 40px 20px;
color: #6c757d;
font-style: italic;
}
.stack-layer {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 15px;
border-radius: 8px;
margin-bottom: 10px;
cursor: move;
transition: all 0.2s ease;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.stack-layer:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.stack-layer.dragging {
opacity: 0.5;
cursor: grabbing;
}
.layer-info {
flex: 1;
display: flex;
align-items: center;
gap: 15px;
}
.drag-handle {
font-size: 20px;
cursor: grab;
user-select: none;
}
.drag-handle:active {
cursor: grabbing;
}
.layer-name {
font-weight: 600;
font-size: 16px;
}
.layer-overhead {
display: flex;
align-items: center;
gap: 10px;
}
.overhead-value {
font-family: 'Courier New', monospace;
font-size: 18px;
font-weight: bold;
background: rgba(255,255,255,0.2);
padding: 4px 12px;
border-radius: 4px;
min-width: 60px;
text-align: center;
}
.overhead-edit {
display: none;
}
.overhead-value.editing {
display: none;
}
.overhead-value.editing + .overhead-edit {
display: block;
}
.overhead-edit input {
width: 60px;
padding: 4px 8px;
border: 2px solid white;
border-radius: 4px;
font-family: 'Courier New', monospace;
font-size: 16px;
text-align: center;
}
.layer-actions {
display: flex;
gap: 8px;
}
.layer-btn {
background: rgba(255,255,255,0.2);
border: 1px solid rgba(255,255,255,0.3);
color: white;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 14px;
}
.layer-btn:hover {
background: rgba(255,255,255,0.3);
}
.layer-btn:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(255,255,255,0.5);
}
.effective-mtu-display {
background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
color: white;
padding: 20px;
border-radius: 8px;
margin-top: 15px;
text-align: center;
font-size: 18px;
font-weight: 600;
}
.effective-mtu-display.warning {
background: linear-gradient(135deg, #ffc107 0%, #ff9800 100%);
}
.effective-mtu-display.error {
background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
}
.mtu-value-large {
font-size: 36px;
font-family: 'Courier New', monospace;
margin: 10px 0;
}
.preset-badge {
background: rgba(102, 126, 234, 0.1);
border: 2px solid #667eea;
color: #667eea;
padding: 10px 15px;
border-radius: 8px;
margin-top: 15px;
display: flex;
justify-content: space-between;
align-items: center;
}
.add-layer-section {
margin-top: 20px;
padding: 15px;
background: #f8f9fa;
border-radius: 8px;
border: 1px solid #dee2e6;
}
@media (max-width: 768px) {
.input-grid {
grid-template-columns: 1fr;
}
.preset-buttons {
flex-direction: column;
}
.preset-btn {
width: 100%;
}
.result-grid {
grid-template-columns: 1fr;
}
.fragment-visual {
flex-direction: column;
}
/* Minimum touch target size for mobile accessibility */
.btn, button, .preset-btn, .layer-btn {
min-height: 44px;
min-width: 44px;
}
}
@media (max-width: 600px) {
.input-grid {
grid-template-columns: 1fr;
gap: 12px;
}
.calc-header h2 {
font-size: 22px;
}
.calc-header p {
font-size: 14px;
}
.btn {
width: 100%;
padding: 10px 16px;
}
.preset-buttons {
flex-direction: column;
}
.preset-btn {
width: 100%;
padding: 10px 12px;
}
.fragment-box {
margin-bottom: 10px;
}
.flow-node {
max-width: 100%;
margin: 10px auto;
}
.flow-node-title {
font-size: 15px;
}
}
@media (max-width: 480px) {
.calc-header {
padding: 15px;
margin-bottom: 20px;
}
.calc-header h2 {
font-size: 20px;
}
.preset-buttons {
gap: 8px;
}
.preset-btn {
font-size: 12px;
padding: 8px 12px;
}
.input-grid {
gap: 10px;
}
.btn {
font-size: 14px;
padding: 10px 12px;
}
.flow-node {
padding: 12px;
}
.flow-node-title {
font-size: 14px;
}
.flow-node-content {
font-size: 13px;
}
code {
font-size: 12px;
}
.packet-section-label {
font-size: 12px;
}
.packet-section-value {
font-size: 12px;
}
}
پیش سیٹ بیج (پیش سیٹ فعال ہونے پر دکھایا جاتا ہے)
انکیپسولیشن اسٹیک بلڈر
موثر MTU ڈسپلے
پرت سیکشن شامل کریں۔
سیشن کنٹرولز
MTU نتائج
فریگمنٹیشن ویژولائزیشن
بینڈوتھ ویسٹ کیلکولیٹر (P0 فیچر)
PMTUD انٹرایکٹو ٹربل شوٹر
کنفیگریشن کی مثالیں۔
جمبو فریم تجزیہ
📦 MTU پاتھ ڈسکوری اور فریگمنٹیشن اینالائزر
انکیپسولیشن اوور ہیڈ کے بعد موثر MTU کا حساب لگائیں، فریگمنٹیشن کا تصور کریں، اور PMTUD کے مسائل کو حل کریں۔
🏗️ انکیپسولیشن اسٹیک(دوبارہ ترتیب دینے کے لیے گھسیٹیں)
کوئی انکیپسولیشن پرتیں شامل نہیں کی گئیں۔ یہ دیکھنے کے لیے نیچے ایک پرت شامل کریں کہ یہ MTU کو کیسے متاثر کرتا ہے۔
موثر پے لوڈ MTU
1500
بائٹس ڈیٹا کے لیے دستیاب ہیں۔
محفوظ نہیں ہوا۔
بینر بحال کریں۔
پینل کا استعمال کیسے کریں۔
📖 اس ٹول کو کیسے استعمال کریں۔
- فوری آغاز:عام منظرناموں کو لوڈ کرنے کے لیے ایک پیش سیٹ بٹن (انٹرنیٹ، PPPoE، Azure، وغیرہ) پر کلک کریں۔
- حسب ضرورت حساب:اپنا بیس MTU سیٹ کریں اور ایک وقت میں ایک encapsulation تہوں کو شامل کریں۔
- نتائج:اپنا موثر پے لوڈ MTU، تجویز کردہ TCP MSS، اور اوور ہیڈ بریک ڈاؤن دیکھیں
- ٹکڑے ٹکڑے کرنا:اگر MTU <1500، تو بصری فریگمنٹیشن ڈایاگرام خود بخود ظاہر ہوتا ہے۔
- ٹربل شوٹنگ:پاتھ ایم ٹی یو ڈسکوری کے مسائل کی تشخیص کے لیے PMTUD فلو چارٹ استعمال کریں۔
- کارکردگی کا اثر:بینڈوڈتھ کا فضلہ کیلکولیٹر ٹکڑوں کی اصل قیمت کو ظاہر کرتا ہے۔
MTU کیلکولیشن کے نتائج
موثر پے لوڈ MTU
1500
بائٹس ڈیٹا کے لیے دستیاب ہیں۔
کل اوور ہیڈ
0
بائٹس استعمال کیا
تجویز کردہ TCP MSS
1460
MTU - 40 (IP+TCP ہیڈر)
بیس MTU:
1500 بائٹس
انکیپسولیشن اوور ہیڈ:
0 بائٹس
مؤثر MTU:
1500 بائٹس
IP + TCP ہیڈر:
40 بائٹس (20 IP + 20 TCP)
زیادہ سے زیادہ TCP پے لوڈ:
1460 بائٹس
کارکردگی:
97.3%
💸 بینڈوتھ ویسٹ کیلکولیٹر
ℹ️ کارکردگی کا اثر:اپنے نیٹ ورک بینڈوتھ پر فریگمنٹیشن کی اصل قیمت کا حساب لگائیں۔
⚠ ضائع شدہ بینڈوتھ(انتباہ)
0
ایم بی پی ایس فریگمنٹیشن اوور ہیڈ سے ہار گیا۔
✗ اوور ہیڈ فیصد(تنقیدی)
0%
ضائع شدہ کل بینڈوڈتھ کا
⚠ اضافی ٹکڑے(انتباہ)
0
اضافی پیکٹ فی سیکنڈ
فی اصل پیکٹ کے ٹکڑے:
1
اوور ہیڈ فی پیکٹ:
0 بائٹس
کل اوور ہیڈ فی سیکنڈ:
0 بائٹس
تجویز کردہ کارروائی:
MTU میں اضافہ کریں یا PMTUD کو فعال کریں۔
🔍 Path MTU Discovery (PMTUD) انٹرایکٹو ٹربل شوٹر
ℹ️ انٹرایکٹو فلو چارٹ:PMTUD کے مسائل کو حل کرنے کے لیے نیچے تشخیصی مراحل پر کلک کریں۔
🚀 شروع کریں: پیکٹ کا نقصان یا سست کارکردگی؟
تشخیصی عمل شروع کرنے کے لیے کلک کریں۔ ہم منظم ٹربل شوٹنگ کے مراحل سے گزریں گے۔
🔧 کنفیگریشن کی مثالیں۔
ℹ️ TCP MSS کلیمپنگ:ٹکڑے ٹکڑے ہونے سے بچنے کے لیے ان کو اپنے راؤٹرز پر ترتیب دیں۔
! سسکو IOS/IOS-XE
interface GigabitEthernet0/0
ip tcp adjust-mss 1460
! جونیپر جون او ایس
set interfaces ge-0/0/0 unit 0 family inet mtu 1500
set interfaces ge-0/0/0 unit 0 family inet tcp-mss 1460
# لینکس iptables
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1460
🚀 جمبو فریم تجزیہ
ℹ️ جمبو فریم:بڑے MTU سائز اسٹوریج اور ڈیٹا سینٹر نیٹ ورک کے لیے تھرو پٹ کو بہتر بناتے ہیں۔
معیاری فریم کی کارکردگی:
97.3% (1460/1500)
جمبو فریم (9000 MTU):
99.6% کارکردگی (8960/9000)
فریم فی جی بی (موجودہ):
~731,000 فریمز
فریم فی جی بی (جمبو 9000):
~119,000 فریمز (84% کمی)
CPU بچت (جمبو بمقابلہ Std):
~84% کم رکاوٹیں
سفارشات:
- معیاری 1500 MTU:انٹرنیٹ، عام کیمپس نیٹ ورکس، مخلوط ماحول
- بیبی جمبوس (2000):میٹرو ایتھرنیٹ، کچھ MPLS نیٹ ورکس
- جمبو فریم (9000):iSCSI، NFS، سرور سے سرور، ڈیٹا سینٹر فیبرکس
- سپر جمبوس (9216):اسٹوریج نیٹ ورکس، 10GbE+ ڈیٹا سینٹر