Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enriched dot report #797

Open
fujiapple852 opened this issue Nov 16, 2023 · 4 comments · May be fixed by #1027
Open

Enriched dot report #797

fujiapple852 opened this issue Nov 16, 2023 · 4 comments · May be fixed by #1027
Assignees
Labels
enhancement New feature or request report
Milestone

Comments

@fujiapple852
Copy link
Owner

Enrich the Graphviz dot report:

  • Show IP address per node
  • Show Hostname(s) per node
  • Show ASN per node
  • Show paths for edge
@fujiapple852 fujiapple852 added enhancement New feature or request report labels Nov 16, 2023
@fujiapple852 fujiapple852 self-assigned this Nov 16, 2023
@fujiapple852
Copy link
Owner Author

Current WIP:

trip -u google.com --tcp -m dot -C 10 | dot -Tpng > path.png

Produces:

path

@jmanteau
Copy link

Coming back from #875

it looks nice in the example you linked to. Is that example produced as a DOT file? Do you have the DOT file for reference?
I have just done a fresh run, here you go, see below.

I think to do this these reports should become subcommand such that multiple per-subcommand flags could be added
I would do "both". Having a switch to activate in one go all the opiniated default. And having the others switchs if people want to add only what they need.

@jmanteau
Copy link

### Scapy Multi-Traceroute (MTR) DOT Graph Results (2023-12-20 17:11:46.559516) ###

digraph mtr {
	graph [bgcolor=transparent,ranksep=0.75];
	node [shape="ellipse",fontname="Sans-Serif",fontsize=11,color="black",gradientangle=270,fillcolor="white:#a0a0a0",style="filled"];

	### ASN Clusters ###
	subgraph cluster_15169 {
		tooltip="AS: 15169 - [Google]";
		color="#608686";
		fillcolor="#60868630";
		style="filled,rounded";
		node [color="#608686",gradientangle=270,fillcolor="white:#608686",style="filled"];
		fontsize=10;
		fontname="Sans-Serif";
		label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B><FONT POINT-SIZE="11">AS: 15169</FONT></B></TD></TR><TR><TD>[Google]</TD></TR></TABLE>>;
		labelloc="t";
		penwidth=3;
		"74.125.147.10" [tooltip="Hop Host: 74.125.147.10"];
		"72.14.204.184" [tooltip="Hop Host: 72.14.204.184"];
		"108.170.244.225" [tooltip="Hop Host: 108.170.244.225"];
		"142.250.234.41" [tooltip="Hop Host: 142.250.234.41"];
		"142.250.234.43" [tooltip="Hop Host: 142.250.234.43"];
		"108.170.244.161" [tooltip="Hop Host: 108.170.244.161"];
		"72.14.202.232" [tooltip="Hop Host: 72.14.202.232"];
		"72.14.218.40" [tooltip="Hop Host: 72.14.218.40"];
		"72.14.210.158" [tooltip="Hop Host: 72.14.210.158"];
		"72.14.233.77" [tooltip="Hop Host: 72.14.233.77"];
		### MTR Target Cluster ###
		subgraph cluster_142_250_74_228 {
			tooltip="MTR Target: www.google.com";
			color="darkgreen";
			fontsize=11;
			fontname="Sans-Serif";
			gradientangle=270;
			fillcolor="white:#a0a0a0";
			style="filled,rounded";
			penwidth=2;
			label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B>Target: www.google.com</B></TD></TR><TR><TD><FONT POINT-SIZE="9">Hop Ranges (T1: 1 &rarr; 9, T2: 1 &rarr; 9, T5: 1 &rarr; 9, T6: 1 &rarr; 9, T9: 1 &rarr; 9, T10: 1 &rarr; 9)</FONT></TD></TR></TABLE>>;
			labelloc="b";
			"142.250.74.228";
		}
	}
	subgraph cluster_6453 {
		tooltip="AS: 6453 - [TATA Communications]";
		color="#60baba";
		fillcolor="#60baba30";
		style="filled,rounded";
		node [color="#60baba",gradientangle=270,fillcolor="white:#60baba",style="filled"];
		fontsize=10;
		fontname="Sans-Serif";
		label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B><FONT POINT-SIZE="11">AS: 6453</FONT></B></TD></TR><TR><TD>[TATA Communications]</TD></TR></TABLE>>;
		labelloc="t";
		penwidth=3;
		"80.231.245.41" [tooltip="Hop Host: 80.231.245.41"];
		"195.219.50.74" [tooltip="Hop Host: 195.219.50.74"];
		"80.231.246.13" [tooltip="Hop Host: 80.231.246.13"];
		"80.231.246.26" [tooltip="Hop Host: 80.231.246.26"];
	}
	subgraph cluster_14061 {
		tooltip="AS: 14061 - [DigitalOcean]";
		color="#60ffff";
		fillcolor="#60ffff30";
		style="filled,rounded";
		node [color="#60ffff",gradientangle=270,fillcolor="white:#60ffff",style="filled"];
		fontsize=10;
		fontname="Sans-Serif";
		label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B><FONT POINT-SIZE="11">AS: 14061</FONT></B></TD></TR><TR><TD>[DigitalOcean]</TD></TR></TABLE>>;
		labelloc="t";
		penwidth=3;
		"Unk8" [tooltip="Hop Host: Unk8"];
		"Unk9" [tooltip="Hop Host: Unk9"];
		"Unk10" [tooltip="Hop Host: Unk10"];
		"Unk15" [tooltip="Hop Host: Unk15"];
		"Unk16" [tooltip="Hop Host: Unk16"];
		"Unk17" [tooltip="Hop Host: Unk17"];
		### MTR Target Cluster ###
		subgraph cluster_64_226_122_113 {
			tooltip="MTR Target: openwrt.org";
			color="darkgreen";
			fontsize=11;
			fontname="Sans-Serif";
			gradientangle=270;
			fillcolor="white:#a0a0a0";
			style="filled,rounded";
			penwidth=2;
			label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B>Target: openwrt.org</B></TD></TR><TR><TD><FONT POINT-SIZE="9">Hop Ranges (T3: 1 &rarr; 14, T4: 1 &rarr; 14, T7: 1 &rarr; 14, T8: 1 &rarr; 14, T11: 1 &rarr; 14, T12: 1 &rarr; 14)</FONT></TD></TR></TABLE>>;
			labelloc="b";
			"64.226.122.113";
		}
	}

	### Probe Target Cluster ###
	subgraph cluster_probe_Title {
		tooltip="Multi-Traceroute (MTR) Probe:  192.168.1.104";
		color="darkorange";
		gradientangle=270;
		fillcolor="white:#a0a0a0";
		style="filled,rounded";
		penwidth=3;
		fontsize=11;
		fontname="Sans-Serif";
		label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B>Multi-Traceroute (MTR) Probe</B></TD></TR><TR><TD ALIGN="center"><FONT POINT-SIZE="9">2020-02-18 17:00:04</FONT></TD></TR><TR><TD ALIGN="center"><FONT POINT-SIZE="9">Target: www.google.com (142.250.74.228 &rarr; T1, T2, T5, T6, T9, T10)</FONT></TD></TR><TR><TD ALIGN="center"><FONT POINT-SIZE="9">Target: openwrt.org (64.226.122.113 &rarr; T3, T4, T7, T8, T11, T12)</FONT></TD></TR></TABLE>>;
		labelloc="t";
		"192.168.1.104";
	}

	### Default Gateway Cluster ###
	subgraph cluster_default_gateway {
		tooltip="Default Gateway Host: 192.168.1.1";
		color="goldenrod";
		gradientangle=270;
		fillcolor="white:#b8860b30";
		style="filled,rounded";
		penwidth=3;
		fontsize=11;
		fontname="Sans-Serif";
		label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" ALIGN="center"><TR><TD><B><FONT POINT-SIZE="9">Default Gateway</FONT></B></TD></TR></TABLE>>;
		"192.168.1.1" [shape="diamond",fontname="Sans-Serif",fontsize=11,color="black",gradientangle=270,fillcolor="white:goldenrod",style="rounded,filled",tooltip="Default Gateway Host: 192.168.1.1"];
	}

	### Probe Begin Traces ###
	"192.168.1.104" [shape="record",color="black",gradientangle=270,fillcolor="white:darkorange",style="filled,rounded",label="Probe: 192.168.1.104\nNetwork Interface: lan0|{TCP: http(80)|{<BT1>T1|<BT3>T3|<BT5>T5|<BT7>T7|<BT9>T9|<BT11>T11}}|{TCP: https(443)|{<BT2>T2|<BT4>T4|<BT6>T6|<BT8>T8|<BT10>T10|<BT12>T12}}",tooltip="Begin Host Probe: 192.168.1.104"];

	### Target Endpoints ###
	"142.250.74.228" [shape="record",color="black",gradientangle=270,fillcolor="#00ff00:#005400",style="filled,rounded",label="Resolved Target\n142.250.74.228|{{<ET1>T1|<ET5>T5|<ET9>T9}|http(80) SA}|{{<ET2>T2|<ET6>T6|<ET10>T10}|https(443) SA}",tooltip="MTR Resolved Target: 142.250.74.228"];
	"64.226.122.113" [shape="record",color="black",gradientangle=270,fillcolor="#00ff00:#005400",style="filled,rounded",label="Resolved Target\n64.226.122.113|{{<ET3>T3|<ET7>T7|<ET11>T11}|http(80) SA}|{{<ET4>T4|<ET8>T8|<ET12>T12}|https(443) SA}",tooltip="MTR Resolved Target: 64.226.122.113"];

	### Blackholes ###

	### ICMP Destination Unreachable Hops ###

	### Nodes With Padding ###
	"108.170.244.225" [label=<<BR/>108.170.244.225<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"142.250.234.41" [label=<<BR/>142.250.234.41<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"142.250.234.43" [label=<<BR/>142.250.234.43<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"193.252.160.45" [label=<<BR/>193.252.160.45<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"80.231.245.41" [label=<<BR/>80.231.245.41<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"195.219.50.74" [label=<<BR/>195.219.50.74<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"80.231.246.13" [label=<<BR/>80.231.246.13<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
	"80.231.246.26" [label=<<BR/>80.231.246.26<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];

	### Traces ###
	### T1 -> ('192.168.1.104', '142.250.74.228', 6, 80) ###
	edge [color="#a07070"];
	"192.168.1.104":BT1:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 2.561ms</FONT>>,edgetooltip="Trace: 1:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.561ms))",labeltooltip="Trace: 1:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.561ms)"];
	"192.168.1.1" -> "Unk0" [edgetooltip="Trace: 1:2, 192.168.1.1 -> Unk0"];
	"Unk0" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 6.709ms</FONT>>,edgetooltip="Trace: 1:3, Unk0 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (6.709ms))",labeltooltip="Trace: 1:3, RTT: 192.168.1.104 <-> 193.253.94.198 (6.709ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 28.852ms</FONT>>,edgetooltip="Trace: 1:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (28.852ms))",labeltooltip="Trace: 1:4, RTT: 192.168.1.104 <-> 193.252.160.53 (28.852ms)"];
	"193.252.160.53" -> "Unk1" [edgetooltip="Trace: 1:5, 193.252.160.53 -> Unk1"];
	"Unk1" -> "74.125.147.10" [label=<<FONT POINT-SIZE="8">&nbsp; 18.251ms</FONT>>,edgetooltip="Trace: 1:6, Unk1 -> 74.125.147.10 (RTT: 192.168.1.104 <-> 74.125.147.10 (18.251ms))",labeltooltip="Trace: 1:6, RTT: 192.168.1.104 <-> 74.125.147.10 (18.251ms)"];
	"74.125.147.10" -> "108.170.244.225" [label=<<FONT POINT-SIZE="8">&nbsp; 16.814ms</FONT>>,edgetooltip="Trace: 1:7, 74.125.147.10 -> 108.170.244.225 (RTT: 192.168.1.104 <-> 108.170.244.225 (16.814ms))",labeltooltip="Trace: 1:7, RTT: 192.168.1.104 <-> 108.170.244.225 (16.814ms)"];
	"108.170.244.225" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8">&nbsp; 162.772ms</FONT>>,edgetooltip="Trace: 1:8, 108.170.244.225 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (162.772ms))",labeltooltip="Trace: 1:8, RTT: 192.168.1.104 <-> 142.250.234.41 (162.772ms)"];
	"142.250.234.41" -> "142.250.74.228":ET1:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 161.942ms</FONT>>,edgetooltip="Trace: 1:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (161.942ms))",labeltooltip="Trace: 1:9, RTT: 192.168.1.104 <-> 142.250.74.228 (161.942ms)"];
	### T2 -> ('192.168.1.104', '142.250.74.228', 6, 443) ###
	edge [color="#a04040"];
	"192.168.1.104":BT2:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 2.865ms</FONT>>,edgetooltip="Trace: 2:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.865ms))",labeltooltip="Trace: 2:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.865ms)"];
	"192.168.1.1" -> "Unk2" [edgetooltip="Trace: 2:2, 192.168.1.1 -> Unk2"];
	"Unk2" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 30.754ms</FONT>>,edgetooltip="Trace: 2:3, Unk2 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (30.754ms))",labeltooltip="Trace: 2:3, RTT: 192.168.1.104 <-> 193.253.94.198 (30.754ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 20.723ms</FONT>>,edgetooltip="Trace: 2:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (20.723ms))",labeltooltip="Trace: 2:4, RTT: 192.168.1.104 <-> 193.252.160.53 (20.723ms)"];
	"193.252.160.53" -> "Unk3" [edgetooltip="Trace: 2:5, 193.252.160.53 -> Unk3"];
	"Unk3" -> "72.14.204.184" [label=<<FONT POINT-SIZE="8">&nbsp; 17.435ms</FONT>>,edgetooltip="Trace: 2:6, Unk3 -> 72.14.204.184 (RTT: 192.168.1.104 <-> 72.14.204.184 (17.435ms))",labeltooltip="Trace: 2:6, RTT: 192.168.1.104 <-> 72.14.204.184 (17.435ms)"];
	"72.14.204.184" -> "108.170.244.225" [label=<<FONT POINT-SIZE="8">&nbsp; 171.199ms</FONT>>,edgetooltip="Trace: 2:7, 72.14.204.184 -> 108.170.244.225 (RTT: 192.168.1.104 <-> 108.170.244.225 (171.199ms))",labeltooltip="Trace: 2:7, RTT: 192.168.1.104 <-> 108.170.244.225 (171.199ms)"];
	"108.170.244.225" -> "142.250.234.43" [label=<<FONT POINT-SIZE="8">&nbsp; 169.621ms</FONT>>,edgetooltip="Trace: 2:8, 108.170.244.225 -> 142.250.234.43 (RTT: 192.168.1.104 <-> 142.250.234.43 (169.621ms))",labeltooltip="Trace: 2:8, RTT: 192.168.1.104 <-> 142.250.234.43 (169.621ms)"];
	"142.250.234.43" -> "142.250.74.228":ET2:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 163.556ms</FONT>>,edgetooltip="Trace: 2:9, 142.250.234.43 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (163.556ms))",labeltooltip="Trace: 2:9, RTT: 192.168.1.104 <-> 142.250.74.228 (163.556ms)"];
	### T3 -> ('192.168.1.104', '64.226.122.113', 6, 80) ###
	edge [color="#a02020"];
	"192.168.1.104":BT3:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 3.157ms</FONT>>,edgetooltip="Trace: 3:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (3.157ms))",labeltooltip="Trace: 3:1, RTT: 192.168.1.104 <-> 192.168.1.1 (3.157ms)"];
	"192.168.1.1" -> "Unk4" [edgetooltip="Trace: 3:2, 192.168.1.1 -> Unk4"];
	"Unk4" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 7.241ms</FONT>>,edgetooltip="Trace: 3:3, Unk4 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (7.241ms))",labeltooltip="Trace: 3:3, RTT: 192.168.1.104 <-> 193.253.94.198 (7.241ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 55.143ms</FONT>>,edgetooltip="Trace: 3:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (55.143ms))",labeltooltip="Trace: 3:4, RTT: 192.168.1.104 <-> 193.252.160.53 (55.143ms)"];
	"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8">&nbsp; 39.600ms</FONT>>,edgetooltip="Trace: 3:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (39.600ms))",labeltooltip="Trace: 3:5, RTT: 192.168.1.104 <-> 193.252.160.45 (39.600ms)"];
	"193.252.160.45" -> "Unk5" [edgetooltip="Trace: 3:6, 193.252.160.45 -> Unk5"];
	"Unk5" -> "Unk6" [edgetooltip="Trace: 3:7, Unk5 -> Unk6"];
	"Unk6" -> "Unk7" [edgetooltip="Trace: 3:8, Unk6 -> Unk7"];
	"Unk7" -> "80.231.245.41" [label=<<FONT POINT-SIZE="8">&nbsp; 97.607ms</FONT>>,edgetooltip="Trace: 3:9, Unk7 -> 80.231.245.41 (RTT: 192.168.1.104 <-> 80.231.245.41 (97.607ms))",labeltooltip="Trace: 3:9, RTT: 192.168.1.104 <-> 80.231.245.41 (97.607ms)"];
	"80.231.245.41" -> "195.219.50.74" [label=<<FONT POINT-SIZE="8">&nbsp; 67.035ms</FONT>>,edgetooltip="Trace: 3:10, 80.231.245.41 -> 195.219.50.74 (RTT: 192.168.1.104 <-> 195.219.50.74 (67.035ms))",labeltooltip="Trace: 3:10, RTT: 192.168.1.104 <-> 195.219.50.74 (67.035ms)"];
	"195.219.50.74" -> "Unk8" [edgetooltip="Trace: 3:11, 195.219.50.74 -> Unk8"];
	"Unk8" -> "Unk9" [edgetooltip="Trace: 3:12, Unk8 -> Unk9"];
	"Unk9" -> "Unk10" [edgetooltip="Trace: 3:13, Unk9 -> Unk10"];
	"Unk10" -> "64.226.122.113":ET3:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 26.056ms</FONT>>,edgetooltip="Trace: 3:14, Unk10 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (26.056ms))",labeltooltip="Trace: 3:14, RTT: 192.168.1.104 <-> 64.226.122.113 (26.056ms)"];
	### T4 -> ('192.168.1.104', '64.226.122.113', 6, 443) ###
	edge [color="#7070a0"];
	"192.168.1.104":BT4:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 28.520ms</FONT>>,edgetooltip="Trace: 4:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (28.520ms))",labeltooltip="Trace: 4:1, RTT: 192.168.1.104 <-> 192.168.1.1 (28.520ms)"];
	"192.168.1.1" -> "Unk11" [edgetooltip="Trace: 4:2, 192.168.1.1 -> Unk11"];
	"Unk11" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 75.009ms</FONT>>,edgetooltip="Trace: 4:3, Unk11 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (75.009ms))",labeltooltip="Trace: 4:3, RTT: 192.168.1.104 <-> 193.253.94.198 (75.009ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 45.661ms</FONT>>,edgetooltip="Trace: 4:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (45.661ms))",labeltooltip="Trace: 4:4, RTT: 192.168.1.104 <-> 193.252.160.53 (45.661ms)"];
	"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8">&nbsp; 33.659ms</FONT>>,edgetooltip="Trace: 4:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (33.659ms))",labeltooltip="Trace: 4:5, RTT: 192.168.1.104 <-> 193.252.160.45 (33.659ms)"];
	"193.252.160.45" -> "Unk12" [edgetooltip="Trace: 4:6, 193.252.160.45 -> Unk12"];
	"Unk12" -> "Unk13" [edgetooltip="Trace: 4:7, Unk12 -> Unk13"];
	"Unk13" -> "Unk14" [edgetooltip="Trace: 4:8, Unk13 -> Unk14"];
	"Unk14" -> "80.231.245.41" [label=<<FONT POINT-SIZE="8">&nbsp; 76.770ms</FONT>>,edgetooltip="Trace: 4:9, Unk14 -> 80.231.245.41 (RTT: 192.168.1.104 <-> 80.231.245.41 (76.770ms))",labeltooltip="Trace: 4:9, RTT: 192.168.1.104 <-> 80.231.245.41 (76.770ms)"];
	"80.231.245.41" -> "195.219.50.74" [label=<<FONT POINT-SIZE="8">&nbsp; 60.944ms</FONT>>,edgetooltip="Trace: 4:10, 80.231.245.41 -> 195.219.50.74 (RTT: 192.168.1.104 <-> 195.219.50.74 (60.944ms))",labeltooltip="Trace: 4:10, RTT: 192.168.1.104 <-> 195.219.50.74 (60.944ms)"];
	"195.219.50.74" -> "Unk15" [edgetooltip="Trace: 4:11, 195.219.50.74 -> Unk15"];
	"Unk15" -> "Unk16" [edgetooltip="Trace: 4:12, Unk15 -> Unk16"];
	"Unk16" -> "Unk17" [edgetooltip="Trace: 4:13, Unk16 -> Unk17"];
	"Unk17" -> "64.226.122.113":ET4:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 25.974ms</FONT>>,edgetooltip="Trace: 4:14, Unk17 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (25.974ms))",labeltooltip="Trace: 4:14, RTT: 192.168.1.104 <-> 64.226.122.113 (25.974ms)"];
	### T5 -> ('192.168.1.104', '142.250.74.228', 6, 80) ###
	edge [color="#704070"];
	"192.168.1.104":BT5:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 3.353ms</FONT>>,edgetooltip="Trace: 5:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (3.353ms))",labeltooltip="Trace: 5:1, RTT: 192.168.1.104 <-> 192.168.1.1 (3.353ms)"];
	"192.168.1.1" -> "Unk18" [edgetooltip="Trace: 5:2, 192.168.1.1 -> Unk18"];
	"Unk18" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 149.808ms</FONT>>,edgetooltip="Trace: 5:3, Unk18 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (149.808ms))",labeltooltip="Trace: 5:3, RTT: 192.168.1.104 <-> 193.253.94.198 (149.808ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 132.370ms</FONT>>,edgetooltip="Trace: 5:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (132.370ms))",labeltooltip="Trace: 5:4, RTT: 192.168.1.104 <-> 193.252.160.53 (132.370ms)"];
	"193.252.160.53" -> "Unk19" [edgetooltip="Trace: 5:5, 193.252.160.53 -> Unk19"];
	"Unk19" -> "72.14.202.232" [label=<<FONT POINT-SIZE="8">&nbsp; 89.702ms</FONT>>,edgetooltip="Trace: 5:6, Unk19 -> 72.14.202.232 (RTT: 192.168.1.104 <-> 72.14.202.232 (89.702ms))",labeltooltip="Trace: 5:6, RTT: 192.168.1.104 <-> 72.14.202.232 (89.702ms)"];
	"72.14.202.232" -> "108.170.244.161" [label=<<FONT POINT-SIZE="8">&nbsp; 74.415ms</FONT>>,edgetooltip="Trace: 5:7, 72.14.202.232 -> 108.170.244.161 (RTT: 192.168.1.104 <-> 108.170.244.161 (74.415ms))",labeltooltip="Trace: 5:7, RTT: 192.168.1.104 <-> 108.170.244.161 (74.415ms)"];
	"108.170.244.161" -> "142.250.234.43" [label=<<FONT POINT-SIZE="8">&nbsp; 51.894ms</FONT>>,edgetooltip="Trace: 5:8, 108.170.244.161 -> 142.250.234.43 (RTT: 192.168.1.104 <-> 142.250.234.43 (51.894ms))",labeltooltip="Trace: 5:8, RTT: 192.168.1.104 <-> 142.250.234.43 (51.894ms)"];
	"142.250.234.43" -> "142.250.74.228":ET5:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 33.466ms</FONT>>,edgetooltip="Trace: 5:9, 142.250.234.43 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (33.466ms))",labeltooltip="Trace: 5:9, RTT: 192.168.1.104 <-> 142.250.74.228 (33.466ms)"];
	### T6 -> ('192.168.1.104', '142.250.74.228', 6, 443) ###
	edge [color="#702040"];
	"192.168.1.104":BT6:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 2.392ms</FONT>>,edgetooltip="Trace: 6:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.392ms))",labeltooltip="Trace: 6:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.392ms)"];
	"192.168.1.1" -> "Unk20" [edgetooltip="Trace: 6:2, 192.168.1.1 -> Unk20"];
	"Unk20" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 140.917ms</FONT>>,edgetooltip="Trace: 6:3, Unk20 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (140.917ms))",labeltooltip="Trace: 6:3, RTT: 192.168.1.104 <-> 193.253.94.198 (140.917ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 113.681ms</FONT>>,edgetooltip="Trace: 6:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (113.681ms))",labeltooltip="Trace: 6:4, RTT: 192.168.1.104 <-> 193.252.160.53 (113.681ms)"];
	"193.252.160.53" -> "Unk21" [edgetooltip="Trace: 6:5, 193.252.160.53 -> Unk21"];
	"Unk21" -> "72.14.202.232" [label=<<FONT POINT-SIZE="8">&nbsp; 82.061ms</FONT>>,edgetooltip="Trace: 6:6, Unk21 -> 72.14.202.232 (RTT: 192.168.1.104 <-> 72.14.202.232 (82.061ms))",labeltooltip="Trace: 6:6, RTT: 192.168.1.104 <-> 72.14.202.232 (82.061ms)"];
	"72.14.202.232" -> "108.170.244.161" [label=<<FONT POINT-SIZE="8">&nbsp; 58.330ms</FONT>>,edgetooltip="Trace: 6:7, 72.14.202.232 -> 108.170.244.161 (RTT: 192.168.1.104 <-> 108.170.244.161 (58.330ms))",labeltooltip="Trace: 6:7, RTT: 192.168.1.104 <-> 108.170.244.161 (58.330ms)"];
	"108.170.244.161" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8">&nbsp; 45.056ms</FONT>>,edgetooltip="Trace: 6:8, 108.170.244.161 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (45.056ms))",labeltooltip="Trace: 6:8, RTT: 192.168.1.104 <-> 142.250.234.41 (45.056ms)"];
	"142.250.234.41" -> "142.250.74.228":ET6:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 28.591ms</FONT>>,edgetooltip="Trace: 6:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (28.591ms))",labeltooltip="Trace: 6:9, RTT: 192.168.1.104 <-> 142.250.74.228 (28.591ms)"];
	### T7 -> ('192.168.1.104', '64.226.122.113', 6, 80) ###
	edge [color="#70a020"];
	"192.168.1.104":BT7:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 3.698ms</FONT>>,edgetooltip="Trace: 7:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (3.698ms))",labeltooltip="Trace: 7:1, RTT: 192.168.1.104 <-> 192.168.1.1 (3.698ms)"];
	"192.168.1.1" -> "Unk22" [edgetooltip="Trace: 7:2, 192.168.1.1 -> Unk22"];
	"Unk22" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 35.026ms</FONT>>,edgetooltip="Trace: 7:3, Unk22 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (35.026ms))",labeltooltip="Trace: 7:3, RTT: 192.168.1.104 <-> 193.253.94.198 (35.026ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 103.679ms</FONT>>,edgetooltip="Trace: 7:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (103.679ms))",labeltooltip="Trace: 7:4, RTT: 192.168.1.104 <-> 193.252.160.53 (103.679ms)"];
	"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8">&nbsp; 398.360ms</FONT>>,edgetooltip="Trace: 7:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (398.360ms))",labeltooltip="Trace: 7:5, RTT: 192.168.1.104 <-> 193.252.160.45 (398.360ms)"];
	"193.252.160.45" -> "Unk23" [edgetooltip="Trace: 7:6, 193.252.160.45 -> Unk23"];
	"Unk23" -> "Unk24" [edgetooltip="Trace: 7:7, Unk23 -> Unk24"];
	"Unk24" -> "Unk25" [edgetooltip="Trace: 7:8, Unk24 -> Unk25"];
	"Unk25" -> "Unk26" [edgetooltip="Trace: 7:9, Unk25 -> Unk26"];
	"Unk26" -> "Unk27" [edgetooltip="Trace: 7:10, Unk26 -> Unk27"];
	"Unk27" -> "Unk28" [edgetooltip="Trace: 7:11, Unk27 -> Unk28"];
	"Unk28" -> "Unk29" [edgetooltip="Trace: 7:12, Unk28 -> Unk29"];
	"Unk29" -> "Unk30" [edgetooltip="Trace: 7:13, Unk29 -> Unk30"];
	"Unk30" -> "64.226.122.113":ET7:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 262.554ms</FONT>>,edgetooltip="Trace: 7:14, Unk30 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (262.554ms))",labeltooltip="Trace: 7:14, RTT: 192.168.1.104 <-> 64.226.122.113 (262.554ms)"];
	### T8 -> ('192.168.1.104', '64.226.122.113', 6, 443) ###
	edge [color="#4040a0"];
	"192.168.1.104":BT8:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 7.850ms</FONT>>,edgetooltip="Trace: 8:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (7.850ms))",labeltooltip="Trace: 8:1, RTT: 192.168.1.104 <-> 192.168.1.1 (7.850ms)"];
	"192.168.1.1" -> "Unk31" [edgetooltip="Trace: 8:2, 192.168.1.1 -> Unk31"];
	"Unk31" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 114.024ms</FONT>>,edgetooltip="Trace: 8:3, Unk31 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (114.024ms))",labeltooltip="Trace: 8:3, RTT: 192.168.1.104 <-> 193.253.94.198 (114.024ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 98.112ms</FONT>>,edgetooltip="Trace: 8:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (98.112ms))",labeltooltip="Trace: 8:4, RTT: 192.168.1.104 <-> 193.252.160.53 (98.112ms)"];
	"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8">&nbsp; 391.118ms</FONT>>,edgetooltip="Trace: 8:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (391.118ms))",labeltooltip="Trace: 8:5, RTT: 192.168.1.104 <-> 193.252.160.45 (391.118ms)"];
	"193.252.160.45" -> "Unk32" [edgetooltip="Trace: 8:6, 193.252.160.45 -> Unk32"];
	"Unk32" -> "Unk33" [edgetooltip="Trace: 8:7, Unk32 -> Unk33"];
	"Unk33" -> "80.231.246.13" [label=<<FONT POINT-SIZE="8">&nbsp; 351.764ms</FONT>>,edgetooltip="Trace: 8:8, Unk33 -> 80.231.246.13 (RTT: 192.168.1.104 <-> 80.231.246.13 (351.764ms))",labeltooltip="Trace: 8:8, RTT: 192.168.1.104 <-> 80.231.246.13 (351.764ms)"];
	"80.231.246.13" -> "Unk34" [edgetooltip="Trace: 8:9, 80.231.246.13 -> Unk34"];
	"Unk34" -> "Unk35" [edgetooltip="Trace: 8:10, Unk34 -> Unk35"];
	"Unk35" -> "Unk36" [edgetooltip="Trace: 8:11, Unk35 -> Unk36"];
	"Unk36" -> "Unk37" [edgetooltip="Trace: 8:12, Unk36 -> Unk37"];
	"Unk37" -> "Unk38" [edgetooltip="Trace: 8:13, Unk37 -> Unk38"];
	"Unk38" -> "64.226.122.113":ET8:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 214.745ms</FONT>>,edgetooltip="Trace: 8:14, Unk38 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (214.745ms))",labeltooltip="Trace: 8:14, RTT: 192.168.1.104 <-> 64.226.122.113 (214.745ms)"];
	### T9 -> ('192.168.1.104', '142.250.74.228', 6, 80) ###
	edge [color="#402070"];
	"192.168.1.104":BT9:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 99.335ms</FONT>>,edgetooltip="Trace: 9:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (99.335ms))",labeltooltip="Trace: 9:1, RTT: 192.168.1.104 <-> 192.168.1.1 (99.335ms)"];
	"192.168.1.1" -> "Unk39" [edgetooltip="Trace: 9:2, 192.168.1.1 -> Unk39"];
	"Unk39" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 31.408ms</FONT>>,edgetooltip="Trace: 9:3, Unk39 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (31.408ms))",labeltooltip="Trace: 9:3, RTT: 192.168.1.104 <-> 193.253.94.198 (31.408ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 48.031ms</FONT>>,edgetooltip="Trace: 9:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (48.031ms))",labeltooltip="Trace: 9:4, RTT: 192.168.1.104 <-> 193.252.160.53 (48.031ms)"];
	"193.252.160.53" -> "Unk40" [edgetooltip="Trace: 9:5, 193.252.160.53 -> Unk40"];
	"Unk40" -> "72.14.218.40" [label=<<FONT POINT-SIZE="8">&nbsp; 30.158ms</FONT>>,edgetooltip="Trace: 9:6, Unk40 -> 72.14.218.40 (RTT: 192.168.1.104 <-> 72.14.218.40 (30.158ms))",labeltooltip="Trace: 9:6, RTT: 192.168.1.104 <-> 72.14.218.40 (30.158ms)"];
	"72.14.218.40" -> "108.170.244.161" [label=<<FONT POINT-SIZE="8">&nbsp; 16.923ms</FONT>>,edgetooltip="Trace: 9:7, 72.14.218.40 -> 108.170.244.161 (RTT: 192.168.1.104 <-> 108.170.244.161 (16.923ms))",labeltooltip="Trace: 9:7, RTT: 192.168.1.104 <-> 108.170.244.161 (16.923ms)"];
	"108.170.244.161" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8">&nbsp; 18.335ms</FONT>>,edgetooltip="Trace: 9:8, 108.170.244.161 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (18.335ms))",labeltooltip="Trace: 9:8, RTT: 192.168.1.104 <-> 142.250.234.41 (18.335ms)"];
	"142.250.234.41" -> "142.250.74.228":ET9:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 17.244ms</FONT>>,edgetooltip="Trace: 9:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (17.244ms))",labeltooltip="Trace: 9:9, RTT: 192.168.1.104 <-> 142.250.74.228 (17.244ms)"];
	### T10 -> ('192.168.1.104', '142.250.74.228', 6, 443) ###
	edge [color="#40a040"];
	"192.168.1.104":BT10:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 84.860ms</FONT>>,edgetooltip="Trace: 10:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (84.860ms))",labeltooltip="Trace: 10:1, RTT: 192.168.1.104 <-> 192.168.1.1 (84.860ms)"];
	"192.168.1.1" -> "Unk41" [edgetooltip="Trace: 10:2, 192.168.1.1 -> Unk41"];
	"Unk41" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 23.888ms</FONT>>,edgetooltip="Trace: 10:3, Unk41 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (23.888ms))",labeltooltip="Trace: 10:3, RTT: 192.168.1.104 <-> 193.253.94.198 (23.888ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 39.121ms</FONT>>,edgetooltip="Trace: 10:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (39.121ms))",labeltooltip="Trace: 10:4, RTT: 192.168.1.104 <-> 193.252.160.53 (39.121ms)"];
	"193.252.160.53" -> "Unk42" [edgetooltip="Trace: 10:5, 193.252.160.53 -> Unk42"];
	"Unk42" -> "72.14.210.158" [label=<<FONT POINT-SIZE="8">&nbsp; 17.921ms</FONT>>,edgetooltip="Trace: 10:6, Unk42 -> 72.14.210.158 (RTT: 192.168.1.104 <-> 72.14.210.158 (17.921ms))",labeltooltip="Trace: 10:6, RTT: 192.168.1.104 <-> 72.14.210.158 (17.921ms)"];
	"72.14.210.158" -> "72.14.233.77" [label=<<FONT POINT-SIZE="8">&nbsp; 18.740ms</FONT>>,edgetooltip="Trace: 10:7, 72.14.210.158 -> 72.14.233.77 (RTT: 192.168.1.104 <-> 72.14.233.77 (18.740ms))",labeltooltip="Trace: 10:7, RTT: 192.168.1.104 <-> 72.14.233.77 (18.740ms)"];
	"72.14.233.77" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8">&nbsp; 19.503ms</FONT>>,edgetooltip="Trace: 10:8, 72.14.233.77 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (19.503ms))",labeltooltip="Trace: 10:8, RTT: 192.168.1.104 <-> 142.250.234.41 (19.503ms)"];
	"142.250.234.41" -> "142.250.74.228":ET10:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 17.730ms</FONT>>,edgetooltip="Trace: 10:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (17.730ms))",labeltooltip="Trace: 10:9, RTT: 192.168.1.104 <-> 142.250.74.228 (17.730ms)"];
	### T11 -> ('192.168.1.104', '64.226.122.113', 6, 80) ###
	edge [color="#407020"];
	"192.168.1.104":BT11:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 2.762ms</FONT>>,edgetooltip="Trace: 11:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.762ms))",labeltooltip="Trace: 11:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.762ms)"];
	"192.168.1.1" -> "Unk43" [edgetooltip="Trace: 11:2, 192.168.1.1 -> Unk43"];
	"Unk43" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 37.762ms</FONT>>,edgetooltip="Trace: 11:3, Unk43 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (37.762ms))",labeltooltip="Trace: 11:3, RTT: 192.168.1.104 <-> 193.253.94.198 (37.762ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 14.929ms</FONT>>,edgetooltip="Trace: 11:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (14.929ms))",labeltooltip="Trace: 11:4, RTT: 192.168.1.104 <-> 193.252.160.53 (14.929ms)"];
	"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8">&nbsp; 12.022ms</FONT>>,edgetooltip="Trace: 11:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (12.022ms))",labeltooltip="Trace: 11:5, RTT: 192.168.1.104 <-> 193.252.160.45 (12.022ms)"];
	"193.252.160.45" -> "Unk44" [edgetooltip="Trace: 11:6, 193.252.160.45 -> Unk44"];
	"Unk44" -> "Unk45" [edgetooltip="Trace: 11:7, Unk44 -> Unk45"];
	"Unk45" -> "Unk46" [edgetooltip="Trace: 11:8, Unk45 -> Unk46"];
	"Unk46" -> "80.231.245.41" [label=<<FONT POINT-SIZE="8">&nbsp; 105.153ms</FONT>>,edgetooltip="Trace: 11:9, Unk46 -> 80.231.245.41 (RTT: 192.168.1.104 <-> 80.231.245.41 (105.153ms))",labeltooltip="Trace: 11:9, RTT: 192.168.1.104 <-> 80.231.245.41 (105.153ms)"];
	"80.231.245.41" -> "Unk47" [edgetooltip="Trace: 11:10, 80.231.245.41 -> Unk47"];
	"Unk47" -> "Unk48" [edgetooltip="Trace: 11:11, Unk47 -> Unk48"];
	"Unk48" -> "Unk49" [edgetooltip="Trace: 11:12, Unk48 -> Unk49"];
	"Unk49" -> "Unk50" [edgetooltip="Trace: 11:13, Unk49 -> Unk50"];
	"Unk50" -> "64.226.122.113":ET11:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 49.476ms</FONT>>,edgetooltip="Trace: 11:14, Unk50 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (49.476ms))",labeltooltip="Trace: 11:14, RTT: 192.168.1.104 <-> 64.226.122.113 (49.476ms)"];
	### T12 -> ('192.168.1.104', '64.226.122.113', 6, 443) ###
	edge [color="#2020a0"];
	"192.168.1.104":BT12:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8">&nbsp; 5.344ms</FONT>>,edgetooltip="Trace: 12:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (5.344ms))",labeltooltip="Trace: 12:1, RTT: 192.168.1.104 <-> 192.168.1.1 (5.344ms)"];
	"192.168.1.1" -> "Unk51" [edgetooltip="Trace: 12:2, 192.168.1.1 -> Unk51"];
	"Unk51" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8">&nbsp; 29.283ms</FONT>>,edgetooltip="Trace: 12:3, Unk51 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (29.283ms))",labeltooltip="Trace: 12:3, RTT: 192.168.1.104 <-> 193.253.94.198 (29.283ms)"];
	"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8">&nbsp; 10.805ms</FONT>>,edgetooltip="Trace: 12:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (10.805ms))",labeltooltip="Trace: 12:4, RTT: 192.168.1.104 <-> 193.252.160.53 (10.805ms)"];
	"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8">&nbsp; 12.579ms</FONT>>,edgetooltip="Trace: 12:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (12.579ms))",labeltooltip="Trace: 12:5, RTT: 192.168.1.104 <-> 193.252.160.45 (12.579ms)"];
	"193.252.160.45" -> "Unk52" [edgetooltip="Trace: 12:6, 193.252.160.45 -> Unk52"];
	"Unk52" -> "80.231.246.26" [label=<<FONT POINT-SIZE="8">&nbsp; 39.247ms</FONT>>,edgetooltip="Trace: 12:7, Unk52 -> 80.231.246.26 (RTT: 192.168.1.104 <-> 80.231.246.26 (39.247ms))",labeltooltip="Trace: 12:7, RTT: 192.168.1.104 <-> 80.231.246.26 (39.247ms)"];
	"80.231.246.26" -> "Unk53" [edgetooltip="Trace: 12:8, 80.231.246.26 -> Unk53"];
	"Unk53" -> "Unk54" [edgetooltip="Trace: 12:9, Unk53 -> Unk54"];
	"Unk54" -> "Unk55" [edgetooltip="Trace: 12:10, Unk54 -> Unk55"];
	"Unk55" -> "Unk56" [edgetooltip="Trace: 12:11, Unk55 -> Unk56"];
	"Unk56" -> "Unk57" [edgetooltip="Trace: 12:12, Unk56 -> Unk57"];
	"Unk57" -> "Unk58" [edgetooltip="Trace: 12:13, Unk57 -> Unk58"];
	"Unk58" -> "64.226.122.113":ET12:n [style="solid",label=<<FONT POINT-SIZE="8">&nbsp; 42.210ms</FONT>>,edgetooltip="Trace: 12:14, Unk58 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (42.210ms))",labeltooltip="Trace: 12:14, RTT: 192.168.1.104 <-> 64.226.122.113 (42.210ms)"];

	### Decoration For Unknown (Unkn) Node Hops ###
	"Unk0" [tooltip="Trace: 1:2, Unknown Hop: Unk0",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk1" [tooltip="Trace: 1:5, Unknown Hop: Unk1",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk2" [tooltip="Trace: 2:2, Unknown Hop: Unk2",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk3" [tooltip="Trace: 2:5, Unknown Hop: Unk3",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk4" [tooltip="Trace: 3:2, Unknown Hop: Unk4",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk5" [tooltip="Trace: 3:6, Unknown Hop: Unk5",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk6" [tooltip="Trace: 3:7, Unknown Hop: Unk6",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk7" [tooltip="Trace: 3:8, Unknown Hop: Unk7",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk8" [tooltip="Trace: 3:11, Unknown Hop: Unk8",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk9" [tooltip="Trace: 3:12, Unknown Hop: Unk9",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk10" [tooltip="Trace: 3:13, Unknown Hop: Unk10",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk11" [tooltip="Trace: 4:2, Unknown Hop: Unk11",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk12" [tooltip="Trace: 4:6, Unknown Hop: Unk12",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk13" [tooltip="Trace: 4:7, Unknown Hop: Unk13",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk14" [tooltip="Trace: 4:8, Unknown Hop: Unk14",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk15" [tooltip="Trace: 4:11, Unknown Hop: Unk15",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk16" [tooltip="Trace: 4:12, Unknown Hop: Unk16",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk17" [tooltip="Trace: 4:13, Unknown Hop: Unk17",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk18" [tooltip="Trace: 5:2, Unknown Hop: Unk18",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk19" [tooltip="Trace: 5:5, Unknown Hop: Unk19",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk20" [tooltip="Trace: 6:2, Unknown Hop: Unk20",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk21" [tooltip="Trace: 6:5, Unknown Hop: Unk21",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk22" [tooltip="Trace: 7:2, Unknown Hop: Unk22",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk23" [tooltip="Trace: 7:6, Unknown Hop: Unk23",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk24" [tooltip="Trace: 7:7, Unknown Hop: Unk24",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk25" [tooltip="Trace: 7:8, Unknown Hop: Unk25",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk26" [tooltip="Trace: 7:9, Unknown Hop: Unk26",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk27" [tooltip="Trace: 7:10, Unknown Hop: Unk27",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk28" [tooltip="Trace: 7:11, Unknown Hop: Unk28",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk29" [tooltip="Trace: 7:12, Unknown Hop: Unk29",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk30" [tooltip="Trace: 7:13, Unknown Hop: Unk30",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk31" [tooltip="Trace: 8:2, Unknown Hop: Unk31",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk32" [tooltip="Trace: 8:6, Unknown Hop: Unk32",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk33" [tooltip="Trace: 8:7, Unknown Hop: Unk33",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk34" [tooltip="Trace: 8:9, Unknown Hop: Unk34",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk35" [tooltip="Trace: 8:10, Unknown Hop: Unk35",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk36" [tooltip="Trace: 8:11, Unknown Hop: Unk36",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk37" [tooltip="Trace: 8:12, Unknown Hop: Unk37",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk38" [tooltip="Trace: 8:13, Unknown Hop: Unk38",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk39" [tooltip="Trace: 9:2, Unknown Hop: Unk39",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk40" [tooltip="Trace: 9:5, Unknown Hop: Unk40",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk41" [tooltip="Trace: 10:2, Unknown Hop: Unk41",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk42" [tooltip="Trace: 10:5, Unknown Hop: Unk42",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk43" [tooltip="Trace: 11:2, Unknown Hop: Unk43",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk44" [tooltip="Trace: 11:6, Unknown Hop: Unk44",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk45" [tooltip="Trace: 11:7, Unknown Hop: Unk45",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk46" [tooltip="Trace: 11:8, Unknown Hop: Unk46",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk47" [tooltip="Trace: 11:10, Unknown Hop: Unk47",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk48" [tooltip="Trace: 11:11, Unknown Hop: Unk48",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk49" [tooltip="Trace: 11:12, Unknown Hop: Unk49",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk50" [tooltip="Trace: 11:13, Unknown Hop: Unk50",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk51" [tooltip="Trace: 12:2, Unknown Hop: Unk51",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk52" [tooltip="Trace: 12:6, Unknown Hop: Unk52",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk53" [tooltip="Trace: 12:8, Unknown Hop: Unk53",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk54" [tooltip="Trace: 12:9, Unknown Hop: Unk54",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk55" [tooltip="Trace: 12:10, Unknown Hop: Unk55",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk56" [tooltip="Trace: 12:11, Unknown Hop: Unk56",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk57" [tooltip="Trace: 12:12, Unknown Hop: Unk57",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
	"Unk58" [tooltip="Trace: 12:13, Unknown Hop: Unk58",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];

	### Tooltip for Standalone Node Hops ###
	"193.253.94.198" [tooltip="Hop Host: 193.253.94.198"];
	"193.252.160.53" [tooltip="Hop Host: 193.252.160.53"];
	"193.252.160.45" [tooltip="Hop Host: 193.252.160.45"];
}

@fujiapple852
Copy link
Owner Author

That's great! I should be able to emulate something akin to that.

One challenge here is the treatment of "unknown" nodes, Trippy currently conflates all unknown nodes into a single node as part of the DOT report which can be misleading when there are actually multiple unknown nodes. I think the options are to have:

  • One unknown node
  • An unknown node per ttl
  • All unknown nodes observed across all paths

The 1st option is what Trippy does today which isn't great. It appear from the example you have shared that Scapy chooses the 3rd option which leads to a lot of "duplicate" unknown nodes (58 in your example). Perhaps the 2nd option is a good compromise? Again, this would be something that would be nice to expose to users as an option as there seems to be no clear "right" answer.

@fujiapple852 fujiapple852 linked a pull request Mar 2, 2024 that will close this issue
@fujiapple852 fujiapple852 modified the milestones: 0.10.0, 0.11.0 Mar 28, 2024
@fujiapple852 fujiapple852 modified the milestones: 0.11.0, 0.12.0 Jul 23, 2024
@fujiapple852 fujiapple852 modified the milestones: 0.12.0, 0.13.0 Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request report
Projects
None yet
2 participants