\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing,decorations.markings}

\begin{document}
\begin{tikzpicture}


\foreach \i in {1,...,2}{
  \draw[postaction=decorate, decoration={markings, mark=at position .5 with {\arrow{>}}}](4*\i-2,0)--(4*\i,0);
  \draw[decorate, decoration={snake}](4*\i,3)--++(0,-3);
  \fill(4*\i,0)circle(0.1);
}
\foreach \i in {1,...,2}{
  \draw[postaction=decorate, decoration={markings, mark=at position .5 with {\arrow{>}}}](4*\i-4,0)--(4*\i-2,0);
  \draw[decorate, decoration={snake}](4*\i-2,2)--++(0,-2);
  \fill(4*\i-2,0)circle(0.1);
}
\draw[postaction=decorate, decoration={markings, mark=at position .5 with {\arrow{>}}}](8,0)--(10,0);

\draw(1,0.25)node{$1$};
\draw(3,0.25)node{$2$};
\draw(5,0.25)node{$1$};
\draw(7,0.25)node{$2$};
\draw(9,0.25)node{$1$};

\draw(1,-0.25)node{$\mathbf k$};
\draw(3,-0.25)node{$\mathbf k+l_1b$};
\draw(5,-0.25)node{$\mathbf k+m_2b'$};
\draw(7,-0.25)node{$\mathbf k+l_3b$};
\draw(9,-0.25)node{$\mathbf k$};

\draw(2,2.25)node{$\tau^{(1)}_{l_1}(\mathbf k+l_1b)$};
\draw(4,3.25)node{$\tau^{(2)}_{m_2}(\mathbf k+l_1b+m_2b')$};
\draw(6,2.25)node{$\tau^{(1)}_{l_3}(\mathbf k+m_2b'+l_3b)$};
\draw(8,3.25)node{$\tau^{(2)}_{0}(\mathbf k+l_3b)$};


\end{tikzpicture}
\end{document}
