Bin/en-US/MtrCheck.dll-Help.xml
|
<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh"> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10"> <command:details> <command:name>Start-Mtr</command:name> <maml:description> <maml:para>Runs a live traceroute with per-hop packet-loss and latency statistics, in the style of the Linux mtr tool.</maml:para> </maml:description> <maml:copyright> <maml:para>SysAdminTools</maml:para> </maml:copyright> <command:verb>Start</command:verb> <command:noun>Mtr</command:noun> <dev:version>1.0.0</dev:version> </command:details> <maml:description> <maml:para> Start-Mtr traces the network path to a target and continuously re-probes every hop, maintaining running statistics for each one: packet loss percentage, probes sent, and the last, average, best, worst, and standard deviation of the round-trip times. The table redraws in place once per cycle. Press Ctrl+C to stop. </maml:para> <maml:para> The header line shows the target address, the local source address probes are sent from, and the name and IPv4 index of the interface that owns it. Without -Interface this is the address the operating system's routing table selects; with -Interface the header appends [bound] to indicate probes are explicitly source-bound. </maml:para> <maml:para> On Windows the trace is implemented directly against the ICMP API and requires no elevation. Every TTL in a cycle is probed in parallel, which makes it substantially faster than tracert - tracert probes strictly one hop at a time with a four-second timeout per probe, so a path containing unresponsive hops can take a very long time to complete. </maml:para> <maml:para> On Linux and macOS, Start-Mtr delegates to the installed mtr binary and passes through the equivalent options. This is deliberate: .NET's Ping class falls back to invoking /bin/ping when unprivileged, and that path does not reliably expose the intermediate hop address from a TTL-expired reply, which is the one thing a traceroute depends on. If the mtr binary is not installed, Start-Mtr reports an error explaining how to install it. </maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Start-Mtr</maml:name> <command:parameter required="true" position="0" pipelineInput="false" globbing="false"> <maml:name>Target</maml:name> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>NoDns</maml:name> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>Interface</maml:name> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>MaxHops</maml:name> <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>Interval</maml:name> <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>Timeout</maml:name> <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="true" position="0" pipelineInput="false" globbing="false"> <maml:name>Target</maml:name> <maml:description> <maml:para> The hostname or IPv4 address to trace to. Hostnames are resolved to their first IPv4 address before the trace begins. IPv6 targets are not supported. </maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>NoDns</maml:name> <maml:description> <maml:para> Skip reverse-DNS lookups and display IP addresses only. Equivalent to mtr's -n option. Without this switch, hostnames are resolved on background threads and appear in the table a cycle or two after the address itself, so a slow resolver never stalls the live display. </maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>Interface</maml:name> <maml:description> <maml:para> Send probes from a specific network interface, rather than letting the routing table choose. Equivalent to mtr's -I option. Accepts the interface friendly name, its description, or its ID; use Get-NetAdapter to list the available names on Windows. </maml:para> <maml:para> On Windows this uses IcmpSendEcho2Ex, which accepts an explicit source address and does not require Administrator privileges. If the named interface has no IPv4 address, Start-Mtr reports an error listing the interfaces that do. </maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> <dev:defaultValue>The interface chosen by the routing table</dev:defaultValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>MaxHops</maml:name> <maml:description> <maml:para> The maximum number of hops to probe, from 1 to 255. Probing stops descending past the destination as soon as it answers, so this only matters for paths where the target never replies. </maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue> <dev:type> <maml:name>Int32</maml:name> </dev:type> <dev:defaultValue>30</dev:defaultValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>Interval</maml:name> <maml:description> <maml:para> Seconds to wait between cycles, from 1 to 60. Each cycle re-probes every hop and updates the running statistics. </maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue> <dev:type> <maml:name>Int32</maml:name> </dev:type> <dev:defaultValue>1</dev:defaultValue> </command:parameter> <command:parameter required="false" position="named" pipelineInput="false" globbing="false"> <maml:name>Timeout</maml:name> <maml:description> <maml:para> How long to wait for each individual probe, in milliseconds, from 100 to 10000. Probes that do not answer within this window count as lost for that hop. </maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue> <dev:type> <maml:name>Int32</maml:name> </dev:type> <dev:defaultValue>1000</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>None</maml:name> </dev:type> <maml:description> <maml:para>Start-Mtr does not accept pipeline input.</maml:para> </maml:description> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>None</maml:name> </dev:type> <maml:description> <maml:para> Start-Mtr writes its table directly to the host and returns nothing to the pipeline. It is an interactive display tool rather than a source of data for scripts. </maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:title>Reading the results</maml:title> <maml:alert> <maml:para> Loss reported on intermediate hops is frequently not real loss. Routers rate-limit how quickly they generate ICMP TTL-exceeded messages, and because Start-Mtr probes every TTL in parallel, that throttling appears as dropped packets. Seeing 10-40 percent on a middle hop while the destination reports 0 percent is normal. The final row is the meaningful figure for end-to-end loss. </maml:para> </maml:alert> <maml:alert> <maml:para> For the same reason, an intermediate hop can report higher latency than the destination beyond it. Generating a TTL-exceeded reply is low-priority work for a router, so the measured time includes that delay rather than reflecting the real forwarding path. Again, the final row is the meaningful figure for end-to-end latency. </maml:para> </maml:alert> <maml:alert> <maml:para> Hops shown as ??? with 100 percent loss are routers configured not to send ICMP TTL-exceeded messages at all. This does not indicate that traffic is being dropped there; if later hops and the destination are answering, the path is working. </maml:para> </maml:alert> <maml:alert> <maml:para> The table redraws in place when the host supports cursor positioning, which includes Windows Terminal, conhost, and the VS Code integrated terminal. When output is redirected or piped, Start-Mtr falls back to printing each cycle sequentially instead of emitting escape sequences the destination cannot render. </maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title> <dev:code>Start-Mtr 4.2.2.4</dev:code> <dev:remarks> <maml:para>Traces to 4.2.2.4 with the defaults: up to 30 hops, one cycle per second, a one-second per-probe timeout, and reverse DNS enabled.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title> <dev:code>Start-Mtr -Target google.com -NoDns</dev:code> <dev:remarks> <maml:para>Traces to google.com showing IP addresses only, with no reverse-DNS lookups.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title> <dev:code>Get-NetAdapter | Select-Object Name, Status Start-Mtr -Target 4.2.2.4 -Interface "Ethernet"</dev:code> <dev:remarks> <maml:para>Lists the available adapters, then sends the probes from the Ethernet interface specifically. Useful on a machine with both a VPN tunnel and a physical NIC, to confirm which path a destination is actually reached over.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 4 --------------------------</maml:title> <dev:code>Start-Mtr -Target 192.168.1.1 -MaxHops 5 -Timeout 500</dev:code> <dev:remarks> <maml:para>Traces a nearby target, capping the trace at five hops and halving the per-probe timeout so unresponsive hops are given up on sooner.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>-------------------------- EXAMPLE 5 --------------------------</maml:title> <dev:code>Start-Mtr -Target 4.2.2.4 -Interval 5</dev:code> <dev:remarks> <maml:para>Probes once every five seconds instead of every second, for a long-running check that puts less traffic on the path.</maml:para> </dev:remarks> </command:example> </command:examples> </command:command> </helpItems> |