nanog mailing list archives
Re: IPv6 day and tunnels
From: Jimmy Hess <mysidia () gmail com>
Date: Mon, 4 Jun 2012 21:47:41 -0500
On 6/4/12, Owen DeLong <owen () delong com> wrote: [snip]
Probing as you have proposed requires you to essentially do a binary search to arrive at some number n where 1280≤n≤9000, so, you end up doing something like this:
[snip]
So, you waited for 13 timeouts before you actually passed useful traffic? Or, perhaps you putter along at the lowest possible MTU until you
[snip] Instead of waiting for 13 timeouts, start with 4 initial probes in parallel, and react rapidly to the responses you receive; say 9000,2200, 1500, 830. Don't wait until any timeouts until the possible MTUs are narrowed. FindLocalMTU(B,T) Let B := Minimum_MTU Let T := Maximum_MTU Let D := Max(1, Floor( ( (T - 1) - (B+1) ) / 4 )) Let R := T Let Attempted_Probes := [] While ( ( (B + D) < T ) or Attempted_Probes is not Empty ) do If R is not a member of Attempted_Probes or Retries < 1 then AsynchronouslySendProbeOfSize (R) Append (R,Tries) to list of Attempted_Probes if not exists or if (R,Tries) already in list then increment Retries. else T := R - 1 Delete from Attempted_Probes (R) end if ( (B + D) < T ) AsynchronouslySendProbeOfSize (B+ D) if ( (B + 2*D) < T ) AsynchronouslySendProbeOfSize (B+ 2*D) if ( (B + 3*D) < T ) AsynchronouslySendProbeOfSize (B+ 3*D) if ( (B + 4*D) < T ) AsynchronouslySendProbeOfSize (B+ 4*D) Wait_For_Next_Probe_Response_To_Arrive() Wait_For_Additional_Probe_Response_Or_Short_Subsecond_Delay() Add_Probe_Responses_To_Queue(Q) R := Get_Largest_Received_Probe_Size(Q) If ( R > T ) then T := R end If ( R > B ) then B := R D := Max(1, Floor( ( (R - 1) - (B+1) ) / 4 )) end done Result := B # If you receive the response at n=830 first, then wait 1ms and send the next 4 probes 997 1164 1331 1498, and resend the n=1500 probe If 1280 is what the probe needs to detect. You'll receive a response for 1164 , so wait 1ms then retry n=1498 next 4 probes are 1247 1330 1413 1496 if 1280 is what the probe needs to detect, You'll receive a response for 1247, so wait 1ms resend n=1496 next 4 probes are 1267 1307 1327 1347 if 1280 is what you neet to detect, you'll receive response for 1267, so retry n=1347 wait 1ms next 4 probes are: 1276 1285 1294 1303 next 4 probes are: 1277 1278 1279 1280 next 2 parallel probes are: 1281 1282 You hit after 22 probes, but you only needed to wait for n=1281 n=1282 and their retry to time out. -- -JH
Current thread:
- Re: IPv6 day and tunnels, (continued)
- Re: IPv6 day and tunnels Masataka Ohta (Jun 04)
- Re: IPv6 day and tunnels Owen DeLong (Jun 04)
- Re: IPv6 day and tunnels Jeroen Massar (Jun 04)
- Re: IPv6 day and tunnels Owen DeLong (Jun 04)
- New routing systems (Was: IPv6 day and tunnels) Jeroen Massar (Jun 05)
- Re: New routing systems (Was: IPv6 day and tunnels) Owen DeLong (Jun 05)
- Re: New routing systems (Was: IPv6 day and tunnels) Jeroen Massar (Jun 05)
- RE: IPv6 day and tunnels Templin, Fred L (Jun 05)
- Re: IPv6 day and tunnels Masataka Ohta (Jun 05)
- Re: IPv6 day and tunnels Owen DeLong (Jun 04)
- Re: IPv6 day and tunnels Jimmy Hess (Jun 04)
- Re: IPv6 day and tunnels Owen DeLong (Jun 04)
- Re: IPv6 day and tunnels Joe Maimon (Jun 05)
- Re: IPv6 day and tunnels Owen DeLong (Jun 05)
- RE: IPv6 day and tunnels Templin, Fred L (Jun 05)
- Re: IPv6 day and tunnels Mark Andrews (Jun 05)
- RE: IPv6 day and tunnels Templin, Fred L (Jun 05)
- Re: IPv6 day and tunnels Jimmy Hess (Jun 05)
- Re: IPv6 day and tunnels Owen DeLong (Jun 05)
- Re: IPv6 day and tunnels Jimmy Hess (Jun 05)
- Re: IPv6 day and tunnels Owen DeLong (Jun 05)