\documentclass[tikz,border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows, positioning}
\definecolor{lavander}{cmyk}{0,0.48,0,0}
\definecolor{violet}{cmyk}{0.79,0.88,0,0}
\definecolor{burntorange}{cmyk}{0,0.52,1,0}
\definecolor{blue}{cmyk}{0.8,0.4,0.4,0}
\begin{document}
\begin{tikzpicture}[
thick,
node distance=0.5cm,
superpeers/.style={draw, circle, burntorange, left color=orange!50, text=violet, minimum width=6pt, inner sep=0pt},
one_hop/.style={draw, circle, gray, bottom color=lavander!90, top color=white, text=violet, minimum width=6pt, inner sep=0pt},
two_hop/.style={draw, circle, gray, bottom color=blue!30, top color=white, text=violet, minimum width=6pt, inner sep=0pt},
three_hop/.style={draw, circle, gray, bottom color=orange!50, top color=white, text=violet, minimum width=6pt, inner sep=0pt}
]
\begin{scope}[xshift=-2.5cm]
\filldraw[fill=white!10!white,thick,dashed] (-3, -0.5) circle (1.6cm);
\filldraw[fill=white!10!white,thick,dashed] (-3, -0.5) circle (1.15cm);
\filldraw[fill=lavander!20!white,thick,dashed] (-3, -0.5) circle (0.7cm);
\filldraw[fill=white!60!black,thick,dashed] (-3, -0.5) circle (0.25cm);
\node[superpeers] (e) at (-3,-0.5) {};
\foreach \pos/\i in {above left of/1, below right of/2, below left of/3, above right of/4}
\node[one_hop, \pos=e] (e\i) {};
\foreach \peer in {e1,e2,e3,e4} \path (e) edge (\peer);
\foreach \pos/\i in {above left of/1, left of/2, above of/3}
\node[two_hop, bottom color=white!30, \pos=e1] (f\i) {};
\foreach \peer in {f1,f2,f3} \path (e1) edge (\peer);
\foreach \pos/\i in {right of/1, below of/2}
\node[two_hop, bottom color=white!30, \pos=e2] (g\i) {};
\foreach \peer in {g1,g2} \path (e2) edge (\peer);
\foreach \pos/\i in {below left of/1, below of/2}
\node[two_hop, bottom color=white!30, \pos=e3] (h\i) {};
\foreach \peer in {h1,h2} \path (e3) edge (\peer);
\foreach \pos/\i in {above of/1, above right of/2}
\node[two_hop, bottom color=white!30, \pos=e4] (i\i) {};
\foreach \peer in {i1,i2} \path (e4) edge (\peer);
\foreach \pos/\i in {above of/1, above left of/2}
\node[two_hop, bottom color=white!30, \pos=f3] (m\i) {};
\foreach \peer in {m1,m2} \path (f3) edge (\peer);
\foreach \pos/\i in {above of/1, right of/2}
\node[two_hop, bottom color=white!30, \pos=i2] (n\i) {};
\foreach \peer in {n1,n2} \path (i2) edge (\peer);
\foreach \pos/\i in {left of/1, below of/2}
\node[two_hop, bottom color=white!30, \pos=h1] (o\i) {};
\foreach \peer in {o1,o2} \path (h1) edge (\peer);
\foreach \pos/\i in {right of/1, below right of/2}
\node[two_hop, bottom color=white!30, \pos=g1] (p\i) {};
\foreach \peer in {p1,p2} \path (g1) edge (\peer);
\foreach \pos/\i in {left of/1}
\node[two_hop, bottom color=white!30, \pos=f2] (q\i) {};
\foreach \peer in {q1} \path (f2) edge (\peer);
\end{scope}
\begin{scope}[xshift=1.0cm]
\filldraw[fill=white!10!white,thick,dashed] (-3, -0.5) circle (1.6cm);
\filldraw[fill=blue!10!white,thick,dashed] (-3, -0.5) circle (1.15cm);
\filldraw[fill=lavander!20!white,thick,dashed] (-3, -0.5) circle (0.7cm);
\filldraw[fill=white!60!black,thick,dashed] (-3, -0.5) circle (0.25cm);
\node[superpeers] (e) at (-3,-0.5) {};
\foreach \pos/\i in {above left of/1, below right of/2, below left of/3, above right of/4}
\node[one_hop, \pos=e] (e\i) {};
\foreach \peer in {e1,e2,e3,e4} \path (e) edge (\peer);
\foreach \pos/\i in {above left of/1, left of/2, above of/3}
\node[two_hop, \pos=e1] (f\i) {};
\foreach \peer in {f1,f2,f3} \path (e1) edge (\peer);
\foreach \pos/\i in {right of/1, below of/2}
\node[two_hop, \pos=e2] (g\i) {};
\foreach \peer in {g1,g2} \path (e2) edge (\peer);
\foreach \pos/\i in {below left of/1, below of/2}
\node[two_hop, \pos=e3] (h\i) {};
\foreach \peer in {h1,h2} \path (e3) edge (\peer);
\foreach \pos/\i in {above of/1, above right of/2}
\node[two_hop, \pos=e4] (i\i) {};
\foreach \peer in {i1,i2} \path (e4) edge (\peer);
\foreach \pos/\i in {above of/1, above left of/2}
\node[two_hop, bottom color=white!30, \pos=f3] (m\i) {};
\foreach \peer in {m1,m2} \path (f3) edge (\peer);
\foreach \pos/\i in {above of/1, right of/2}
\node[two_hop, bottom color=white!30, \pos=i2] (n\i) {};
\foreach \peer in {n1,n2} \path (i2) edge (\peer);
\foreach \pos/\i in {left of/1, below of/2}
\node[two_hop, bottom color=white!30, \pos=h1] (o\i) {};
\foreach \peer in {o1,o2} \path (h1) edge (\peer);
\foreach \pos/\i in {right of/1, below right of/2}
\node[two_hop, bottom color=white!30, \pos=g1] (p\i) {};
\foreach \peer in {p1,p2} \path (g1) edge (\peer);
\foreach \pos/\i in {left of/1}
\node[two_hop, bottom color=white!30, \pos=f2] (q\i) {};
\foreach \peer in {q1} \path (f2) edge (\peer);
\end{scope}
\begin{scope}[xshift=4.5cm]
\filldraw[fill=burntorange!10!white,thick,dashed] (-3, -0.5) circle (1.6cm);
\filldraw[fill=blue!10!white,thick,dashed] (-3, -0.5) circle (1.15cm);
\filldraw[fill=lavander!20!white,thick,dashed] (-3, -0.5) circle (0.7cm);
\filldraw[fill=white!60!black,thick,dashed] (-3, -0.5) circle (0.25cm);
\node[superpeers] (e) at (-3,-0.5) {};
\foreach \pos/\i in {above left of/1, below right of/2, below left of/3, above right of/4}
\node[one_hop, \pos=e] (e\i) {};
\foreach \peer in {e1,e2,e3,e4} \path (e) edge (\peer);
\foreach \pos/\i in {above left of/1, left of/2, above of/3}
\node[two_hop, \pos=e1] (f\i) {};
\foreach \peer in {f1,f2,f3} \path (e1) edge (\peer);
\foreach \pos/\i in {right of/1, below of/2}
\node[two_hop, \pos=e2] (g\i) {};
\foreach \peer in {g1,g2} \path (e2) edge (\peer);
\foreach \pos/\i in {below left of/1, below of/2}
\node[two_hop, \pos=e3] (h\i) {};
\foreach \peer in {h1,h2} \path (e3) edge (\peer);
\foreach \pos/\i in {above of/1, above right of/2}
\node[two_hop, \pos=e4] (i\i) {};
\foreach \peer in {i1,i2} \path (e4) edge (\peer);
\foreach \pos/\i in {above of/1, above left of/2}
\node[three_hop, \pos=f3] (m\i) {};
\foreach \peer in {m1,m2} \path (f3) edge (\peer);
\foreach \pos/\i in {above of/1, right of/2}
\node[three_hop, \pos=i2] (n\i) {};
\foreach \peer in {n1,n2} \path (i2) edge (\peer);
\foreach \pos/\i in {left of/1, below of/2}
\node[three_hop, \pos=h1] (o\i) {};
\foreach \peer in {o1,o2} \path (h1) edge (\peer);
\foreach \pos/\i in {right of/1, below right of/2}
\node[three_hop, \pos=g1] (p\i) {};
\foreach \peer in {p1,p2} \path (g1) edge (\peer);
\foreach \pos/\i in {left of/1}
\node[three_hop, \pos=f2] (q\i) {};
\foreach \peer in {q1} \path (f2) edge (\peer);
\end{scope}
\end{tikzpicture}
\end{document}