TCP/IP

Die technische und logische Funktion des Transfer Control Protocol / Internet Protocol

Es wird seit 1983 entwickelt und wurde als ausfallsicheres Protokoll von der DARPA initiiert.
Die Standards sind in den RFCs definiert.

* Schichten (Index)

Es besteht aus mehreren Schichten:

Das OSI Modell ist das Standardmodell a là DIN
Das Ethernet
/ ~~~ \
10MBit/s ("Cheapernet") und 100 MBit/s ("Fasternet")

- Ethernetheader:
-- 6 byte : destination address
-- 6 byte : source address
-- 2 byte : type (0800 = IP)
-- 2 byte : crc (cyclic redundance check)
-- 46 - X byte : Maximum Transmission Unit (X = 576 im Internet, 1500 in Windows-netzen)


TCP
Transmission Control Protocol
- Connectionorientiert
- gesichert (alles kommt einmal in der richtigen Folge an)
- üblich ist das Client-Server Modell.
Paketaufbau:
TCP Header

- seq number : das erste Byte im Segment (incl. flags!)
- ack number : die folgende seq number
- flags:
-- urg - urgent pointer gültig
-- ack - ack number ist gültig
-- psh - datzen sofort verarbeiten ("push")
-- rst - verbindung neu setzen ("reset")
-- syn - verbindungsaufbau
-- fin - verbindung schließen
- window size:
-- Empfänger bestimmt wieviel Daten noch aufgenommen werden (z.B. Buffer etc.)
-- wenn window size vergrößert wird sendet er "window update"
-- window size = 0 es kann nicht mehr gesendet werden bis window update kommt

* Beispiel einer Verbindung (Index)

Client/Server Signal Inhalt
Initialisierung
C -> S SYN meine intial seq, number ist ...
S -> C SYN + ACK Verstanden.Meine ist ...
C -> S ACK Verstanden
Verbindung steht
C -> S Daten Nutzdaten + ACK oder window update
S -> C Daten Nutzdaten + ACK oder window update
...
Verbindung beenden
C -> S FIN Achtung: Verbindung beenden!
S -> C ACK des FIN Verstanden.
S -> C FIN Verbindung beendet.
C -> S ACK des FIN Verstanden. Ende.

-Anwendungen:
- Telnet
-- Terminalemulation, Login
- SSH
-- Secure Shell, verschlüsseltes Telnet
- FTP
-- File Transfer Protocol
- SMTP, POP
-- eMail-Protokolle (z.B. in Eudora)
- News
-- Newsgroups
- HTTP
-- HyperText Transfer Protocol, ("WWW")
-HTTPs
-- secure HyperText Transfer Protocol, verschlüsselt

* Internet Protocol (Index)

- Paketvermittlung
- ungesichert!
- nutzt eine 32-Bit-Adresse (192.168.2.15)
- ggf. werden die Daten fragmentiert (zerlegt)
- pro Netdevice eine IP-Adresse (3 Karten -> 3 Adressen)


ICMP
Internet Control Message Protocol
- übergibt Status/Fehlermeldungen ("host unreachable")
- Teil vom IP im Network-Layer
- überträgt seine Daten auch in IP-Paketen
- ping nutzt ICMP


ARP
Address Resolution Protocol
- stellt Adressen bereit
-- Ethernet-address (48 bit) in Hardware eingebrannt
-- Logical-address (32 bit) von Root/Provider vergeben
Ablauf:
1.) Source : ARP-Request (broadcast) ("Wer hat IP-Adr. 1.1.1.1 ?")
2.) Destination : ARP-Reply (unicast) ("Ich habe die IP 1.1.1.1 und die Ethernet-Adr. a.a.a.a.a.a !")
3.) Source : Ich sende! ......


* UDP (Index)

User Datagramm Protocol
- einfachstes Protokoll
- auf Transportlayer
- ungesichert
- Header:
-- 6 byte : destination address
-- 6 byte : source address
-- 2 byte : type (0800 = IP)
-- 2 byte : crc (cyclic redundance check)
-- 2 byte : Source-Port
-- 2 byte : Destination-Port
-- 2 byte : length
-- 2 byte : crc
-- dann : Nutzdaten

-Anwendungen:
- NFS - Network File System
-- von SUN
-- langsam aber extrem stabil
-- Statusinfos liegen nur auf Client d.h. Server kann z.B. neu hochgefahren werden.
- DNS - Domain Name System
-- Namenssuche und Adressantwort per UDP
-Traceroute
--verfolgt den Weg eines(!) Paketes, Nächstes kann schon anders laufen

* Ports (Index)

- ein Prozess auf einem Rechner
- werden von UDP und TCP verwendet um IP-Adresse zu erweitern
- an einem Port lauscht ein Programm
- über Ports werdenVerbindungen dem Programm zugeordnet (Bsp: 80 = http, 25 = SMTP) - SRC-Adr. + SRC-Port -- DST-Adr. + DST-Port


* DNS (Index)

Domain Name System
- die Adresse 221.178.176.36 ist schwerere zu merken als http://www.heise.de, deshalb gibt es DNS
- wandelt Domainadressen in Netzadressen um (http://www.ccc.de -> 149.205.3.175)
- Nameserver bilden eine verteilte Datenbank (z.B. Deutsches Network Information Center [DENIC] in BRD)
- die Adresse wird von hinten aufgelöst Bsp.: www.cs.uni-magdeburg.de
-- root-Zone Server :
-- .de -> Deutschland -> DENIC leitet auf den DNS der Uni
-- .uni-magdeburg -> weiter auf Uniserver, dieser leitet auf:
-- cs -> Adresse lautet z.B. 123.123.123.123
- Cache ist möglich, DNS Server speichern oft abgerufene Adressen zwischen, so
daß die Anfrage nicht erst bis zum root und zurück laufen muß

* Netzmanagement (Index)

- sollte das Netzwerk ausgelastet sein (z.B. Gateway) gehen Pakete verloren
- wenn weitergesendet wird gehen immer mehr Pakete verloren -> Situation wird schlimmer
- Zur Vermeidung : Slow Start und Congestion Avoidance
- Slow Start
-- Verbindung beginnt mit nur mit einem Segment
-- nach jedem ACK wird ein Segment mehr gesendet bis window-size erreicht ist
-- wie der Name sagt - langsam
- Congestion Avoidance
-- doppelte ACK kommen an d.h. ein Paket fehlt
-- Paket wird nochmal gesendet-- Datenrate sinkt und steigt dann langsam wieder

net-tex.de, Index
\$Id: tcpip.html,v 1.33 2014/08/21 09:23:56 stefan Exp $


$Log: tcpip.html,v $ Revision 1.33 2014/08/21 09:23:56 stefan Umlaute und Makefile clean up

Autor: Stefan Schumacher für net-tex.de/cryptomancer.de, PGP-Key 0xB3FBAE33

Bitte beachten Sie, das die Seite inhaltlich seit Ende 2007 nicht mehr gepflegt wird!
Aktuellere Informationen erhalten Sie auf Kaishakunin.com