tikz 在节点之间绘制标签

tikz 在节点之间绘制标签

我正在绘制 TCP 数据包图,并且一直使用坐标来绘制数据包并将套接字端点(IP:端口)放置在图表上。

我现在需要包含 TCP 数据包类型。我想将其置于图表中两个 (IP:port) SYN (IP:port) 之间的中心,如下所示。(忽略 _)

192.168.11.10:37064__________________SYN________________10.17.84.113:2222

<------------------------------------------------------------------------

是否有一种方法可以将文本置于两个节点之间,或者我应该改变绘制 TCP 流的方式?

此代码片段是我绘制数据包的方式。

\documentclass[a4paper,11pt]{report}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\coordinate (p1a) at (13.5,7.0);
\coordinate (p1b) at (7.5,7.0);
\draw [->] (p1a) -- (p1b);
\node [anchor=east, label={[anchor=east, font=\tiny\sffamily]above:10.17.84.113:2222}] at (p1a.east) {};
\node [anchor=west, label={[anchor=west, font=\tiny\sffamily]above:192.168.11.10:37064}] at (p1b.west) {};
\end{tikzpicture}
\end{document}

答案1

可以通过以下方式完成:

\documentclass[a4paper,11pt]{report}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
%% define the nodes directly
\node [  font=\tiny\sffamily] (p1a) at (13.5,7) {10.17.84.113:2222};
\node [ left = 3cm of p1a,  font=\tiny\sffamily] (p1bwest) (p1b) at (7.5,7.0) {192.168.11.10:37064};
%% now draw the lines
\draw [->] ([yshift=-5mm]p1a.south east) -- ([yshift=-5mm]p1b.south west);
\draw (p1a.south west) -- node[anchor=base,fill=white,font=\tiny\sffamily]{SYN} (p1b.south east);
\end{tikzpicture}
\end{document}

在此处输入图片描述

-5mm适当调整yshift。我假设 就SYN行了。如果没有,请删除该选项anchor=base并改为above

相关内容