Drawing arrows in the middle of a line is addressed here. In the code below I defined the style midarr to place the arrow.
The knots library can be used as in Andrew Stacy's solution, but if you want to do this manually, you can use double=<linecolor> and double distance=<linethickness>. I defined a style overcross that will produce the desired effect:
\tikzset{overcross/.style={double, line width=1.5, white, double=#1, double distance=\knotwidth},
overcross/.default=black}
The macro \knotwidth can be set to the desired line thickness for your diagrams. You can adjust the spacing around the overcrossing by changing the 1.5.

To make this work, draw the under-segments first. Then use \draw[overcross] or \draw[overcross, double=red] for the overcrossings. Note that this means splitting up segments into pieces. I set the in and out angles to make them look smooth.
Here is the code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\tikzset{overcross/.style={double, line width=1.5, white, double=#1, double distance=\knotwidth},
overcross/.default=black}
\tikzset{midarr/.style={decoration={markings,mark={at position .5 with {\arrow{>}}}},postaction={decorate}}}
\newcommand{\knotwidth}{.8pt}
\begin{document}
\begin{tikzpicture}[line width=\knotwidth]
\draw (0,2) to[out=90, in=90] (-2,2);
\draw[red] (0,1.5) to[out=180, in=105] (-.25,.75);
\draw[red, midarr] (0,0) to[out=65, in=-105] (.25,.75);
\draw[overcross, double=red] (-1.75,1.9) to[out=180, in=90] (-2.2,1.3);
\draw[overcross] (0,2) circle[radius=1];
\draw[overcross] (-2,2) to[out=-90, in=-90] (0,2);
\draw[overcross, double=red] (.25,.75) to[out=75, in=0] (0,1.5);
\draw[overcross, double=red] (0,0) to[out=180, in=0] (-1.75,1.9);
\draw[red, midarr] (-2.2,1.3) to[out=-90, in=180] (0,0);
\draw[red] (-.25,.75) to[out=-75, in=115] (0,0);
\fill[red] (0,0) circle[radius=.05];
\end{tikzpicture}
\end{document}
markingsTikZ library to place the arrows at positions on the path. – Andrew Stacey Nov 02 '21 at 21:40