its-dokumentationen/08_Lehrer_TCP.md

56 lines
1.7 KiB
Markdown

---
title: Transport Control Protocol (TCP)
author: Carl Kittelberger
papersize: a4
classoption: oneside
mainfont: Arial
sansfont: Arial
header-includes:
- \usepackage{longtable}
---
TCP ist ein *Layer-4-Protokoll*. Es addressiert Anwendungen über **Ports**.
- *reliable* -- zuverlässig
- *connection oriented* -- verbindungsorientiert
Die folgenden Phasen werden in dieser Reihenfolge ausgeführt:
# Verbindungsaufbau
```commute
% this needs to be integrated with https://github.com/sdiehl/cats
\node[] (server) {server};
\node[left = of server] (client) {client};
\node[below of=server, node distance=5cm] (server_ground) {};
\node[below of=client, node distance=5cm] (client_ground) {};
\draw (client) -- (client_ground);
\draw (server) -- (server_ground);
\draw[->] ([yshift=-1cm]client.south) -- ([yshift=-1cm]server.south) node[above] {syn};
\draw[->] ([yshift=-2cm]server.south) -- ([yshift=-2cm]client.south) node[above] {ack+syn};
\draw[->] ([yshift=-3cm]client.south) -- ([yshift=-3cm]server.south) node[above] {ack};
```
# Datenaustausch
```commute
% this needs to be integrated with https://github.com/sdiehl/cats
\node[] (server) {server};
\node[left = of server] (client) {client};
\node[below of=server, node distance=5cm] (server_ground) {};
\node[below of=client, node distance=5cm] (client_ground) {};
\draw (client) -- (client_ground);
\draw (server) -- (server_ground);
\draw[->] ([yshift=-1cm]client.south) -- ([yshift=-1cm]server.south) node[above] {ack: Sequence Number, Datenlänge};
\draw[->] ([yshift=-2cm]server.south) -- ([yshift=-2cm]client.south) node[above] {ack: Acknowledgement Number};
\draw[->] ([yshift=-3cm]client.south) -- ([yshift=-3cm]server.south) node[above] {ack: Sequence Number...};
```