144 lines
4.4 KiB
Markdown
144 lines
4.4 KiB
Markdown
---
|
|
author: Carl Kittelberger
|
|
date: 2018-04-19
|
|
title: "ITS: Transmission Control Protocol"
|
|
institute: "Ferdinand-von-Steinbeis Berufsschule"
|
|
lang: de-DE
|
|
babel-lang: ngerman
|
|
babel-otherlangs:
|
|
- english
|
|
polyglossia-lang:
|
|
name: german
|
|
options:
|
|
- spelling=new
|
|
classoption: oneside
|
|
colorlinks: true
|
|
documentclass: report
|
|
fontsize: 12pt
|
|
logo: img/steinbeis.png
|
|
mainfont: Arial
|
|
papersize: a4
|
|
sansfont: Arial
|
|
tables: true
|
|
template: template.tex
|
|
|
|
toc: true
|
|
|
|
header-includes:
|
|
# For \pageref{LastPage}
|
|
- \usepackage{lastpage}
|
|
|
|
# For \textcolor
|
|
- \usepackage{xcolor}
|
|
|
|
# Long tables (used by pandoc latex template itself)
|
|
#- \usepackage{longtable}
|
|
|
|
# Localization to German for all package injections
|
|
#- \usepackage[ngerman]{babel}
|
|
|
|
# Fancy header!
|
|
- \usepackage{fancyhdr}
|
|
- \usepackage{graphicx}
|
|
- \pagestyle{fancy}
|
|
- \fancyhf{}
|
|
- \fancyhead[L]{\large{\textit{\textbf{ITS} \\ TCP}}}
|
|
- \fancyhead[R]{\raisebox{-0.1\height}{\includegraphics[height=32pt]{img/steinbeis.png}}}
|
|
- \fancyfoot[L]{\textcolor{gray}{Carl Kittelberger}}
|
|
- \fancyfoot[R]{\textcolor{gray}{\bfseries{Seite \thepage{}/\pageref*{LastPage}}}}
|
|
- \renewcommand{\headrulewidth}{0.4pt}
|
|
- \renewcommand{\footrulewidth}{0.4pt}
|
|
- \setlength\headheight{36pt}
|
|
- \fancypagestyle{plain}{}
|
|
|
|
# monospace
|
|
- \lstset{basicstyle=\footnotesize\ttfamily,breaklines=true}
|
|
- \lstset{framextopmargin=50pt}
|
|
---
|
|
|
|
\newpage
|
|
|
|
# Download einer Datei via FTP
|
|
|
|

|
|
|
|
## IP und Port des Rechners
|
|
|
|
Die IP des Rechners im Protokoll ist `192.168.217.128` und der verwendete
|
|
lokale Port ist `60176` in der ersten Verbindung.
|
|
|
|
## IP des Port des Servers
|
|
|
|
Die Daten, die vom Server gesendet werden, kommen von der IP `192.168.217.10`
|
|
und vom Port `21`.
|
|
|
|
## Sequence und Acknowledgement Numbers der ersten Pakete
|
|
|
|

|
|
|
|
### Sequence Numbers
|
|
|
|
1. Sequence Number: `3459893177` (relativ `0`)
|
|
2. Sequence Number: `2015123918` (relativ `0`)
|
|
3. Sequence Number: `3459893178` (relativ `1`)
|
|
|
|
### Acknowledgement Numbers
|
|
|
|
1. Acknowledgement Number: `0`
|
|
2. Acknowledgement Number: `3459893178` (relativ `1`)
|
|
3. Acknowledgement Number: `2015123919` (relativ `1`)
|
|
|
|
## Kennzeichen eines Acknowledgements
|
|
|
|

|
|
|
|
Ein Acknowledgement lässt sich an den `Flags` in einem TCP-Paket erkennen. Jedes Bit des `Flags`-Feldes stellt eine Eigenschaft des TCP-Pakets da, von denen eines vorgibt, dass ein TCP-Paket ein Acknowledgement ist.
|
|
|
|
## Sequence und Acknowledgement Numbers im Datenstrom enthalten?
|
|
|
|
Im eigentlichen Datenstrom finden die Sequence und die Acknowledgement Numbers keine Erwähnung. Beide Zahlen sind TCP-Metadaten die alleine der Wiederzusammensetzung der einzelnen TCP-Pakete dienen, um den eigentlichen Inhalt daraus wieder zu lesen.
|
|
|
|
# Download einer größeren Datei via FTP
|
|
|
|
## Verbindungsaufbau und -abbau
|
|
|
|
### Verbindungsaufbau
|
|
|
|

|
|
|
|
### Verbindungsabbau
|
|
|
|

|
|
|
|
## Größe des Dateninhalts der Pakete vom Server
|
|
|
|

|
|
|
|
Laut der Antwort zu der FTP-Anfrage (dem `RETR`), die Linux-Buch-PDF zu übertragen, werden `15144102 bytes` übertragen.
|
|
|
|

|
|
|
|
Die Daten werden in jeweils 1448 Bytes großen TCP Paketen geliefert.
|
|
|
|
## Entwicklung der Sequence und Acknowledgement Numbers
|
|
|
|
Die Pakete, die wir vom Server erhalten, starten mit einer Sequence Number von `1`.
|
|
Von da an, steigt die Sequence Number von den Daten die wir erhalten immer um
|
|
die Anzahl der Bytes.
|
|
|
|
Die Pakete, die von uns kommen, mit denen wir jeweils die Übertragung der Pakete bestätigen, haben immer die Sequence Number `1`.
|
|
|
|
Die letzte Sequence Number die vom Server gemeldet wird ist `15144104` per Verbindungsabbau und wir bestätigen von unserer Seite mit der Sequence Number `2`.
|
|
|
|
## Zeitabstand zwischen Paketen vom Server
|
|
|
|
Die Zeitabstände zwischen den Paketen, die wir vom Server erhalten, variieren im Bereich von üblicherweise bis zu 100 Mikrosekunden.
|
|
|
|
## `Window Size Value`-Feld und Veränderungen
|
|
|
|
`Window Size Value` hat den Wert `91` bei allen Paketen die wir vom Server erhalten, die den Inhalt der Datei übertragen. Pakete von uns haben den Wert `52886`. Über die Übertragung hinweg ändert sich der Wert nicht.
|
|
|
|
## Datendurchsatz des Downloads und Berechnung
|
|
|
|
## Doppelte ACKs? Retransmitted Segments?
|