TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ......

23
Seite 1 / 23 TCP, Ports und Anwendungsprotokolle Inhaltsverzeichnis 1 AUFBAUSTRUKTUR VON NETZEN ......................................................... 2 2 SUBNETTING UND VARIABLE LENGTH OF SUBNETMASK (VLSM)..... 2 3 AUFBAU UND KONFIGURATION EINES ROUTERS ............................... 2 4 ROUTING IN RECHNERNETZWERKEN .................................................. 2 5 TCP, PORTS UND ANWENDUNGSPROTOKOLLE ................................. 2 5.1 Transport Protokolle (TCP/IP) ........................................................... 3 5.1.1 Das Port-Konzept.................................................................. 3 5.1.2 Well Known Ports.................................................................. 9 5.1.3 Dynamic Ports..................................................................... 10 5.1.4 Die Socket-Abstraktion ....................................................... 10 5.2 Das User Datagram Protocol (UDP) ................................................ 12 5.2.1 Eigenschaften von UDP ...................................................... 13 5.3 Das Transmission Control Protocol (TCP) ....................................... 14 5.3.1 Eigenschaften von TCP ...................................................... 15 5.3.2 TCP-Handshake zum Verbindungsaufbau .......................... 16 5.3.3 Flusskontrolle unter TCP .................................................... 16 5.3.4 Retransmissions ................................................................. 20 5.3.5 Der TCP-Verbindungsabbau ............................................... 21 5.3.6 TCP als Basis für das Applikation Performance Monitoring 21 5.4 Anwendungsprotokolle .................................................................... 23 5.4.1 Das Client-Server Modell .................................................... 23 5.4.2 DNS .................................................................................... 23 5.4.3 Das Internet Control Message Protocol (ICMP) .................. 23 5.4.4 Telnet .................................................................................. 23 5.4.5 Das File Transfer Transfer Protokoll (FTP, TFTP) .............. 23 5.4.6 HTTP .................................................................................. 23 5.4.7 EMAIL ................................................................................. 23

Transcript of TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ......

Page 1: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 1 / 23

TCP, Ports und Anwendungsprotokolle

Inhaltsverzeichnis

1 AUFBAUSTRUKTUR VON NETZEN......................................................... 2

2 SUBNETTING UND VARIABLE LENGTH OF SUBNETMASK (VLSM)..... 2

3 AUFBAU UND KONFIGURATION EINES ROUTERS............................... 2

4 ROUTING IN RECHNERNETZWERKEN .................................................. 2

5 TCP, PORTS UND ANWENDUNGSPROTOKOLLE ................................. 2

5.1 Transport Protokolle (TCP/IP) ........................................................... 3 5.1.1 Das Port-Konzept.................................................................. 3 5.1.2 Well Known Ports.................................................................. 9 5.1.3 Dynamic Ports..................................................................... 10 5.1.4 Die Socket-Abstraktion ....................................................... 10

5.2 Das User Datagram Protocol (UDP)................................................ 12 5.2.1 Eigenschaften von UDP...................................................... 13

5.3 Das Transmission Control Protocol (TCP)....................................... 14 5.3.1 Eigenschaften von TCP ...................................................... 15 5.3.2 TCP-Handshake zum Verbindungsaufbau.......................... 16 5.3.3 Flusskontrolle unter TCP .................................................... 16 5.3.4 Retransmissions ................................................................. 20 5.3.5 Der TCP-Verbindungsabbau............................................... 21 5.3.6 TCP als Basis für das Applikation Performance Monitoring 21

5.4 Anwendungsprotokolle .................................................................... 23 5.4.1 Das Client-Server Modell .................................................... 23 5.4.2 DNS .................................................................................... 23 5.4.3 Das Internet Control Message Protocol (ICMP).................. 23 5.4.4 Telnet.................................................................................. 23 5.4.5 Das File Transfer Transfer Protokoll (FTP, TFTP) .............. 23 5.4.6 HTTP .................................................................................. 23 5.4.7 EMAIL ................................................................................. 23

Page 2: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 2 / 23

Document History

Version, Date Author(s) email address Changes and other notes

2.7.2006 [email protected] Basic Version

14.02.2006 S. Zehelein Grafiken überarbeitet

1 AUFBAUSTRUKTUR VON NETZEN

2 SUBNETTING UND VARIABLE LENGTH OF SUBNETMASK (VLSM)

3 AUFBAU UND KONFIGURATION EINES ROUTERS

4 ROUTING IN RECHNERNETZWERKEN

5 TCP, PORTS UND ANWENDUNGSPROTOKOLLE

Page 3: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 3 / 23

1 Physical 10BaseX 100BaseX 1000BaseX RJxx ModemStandards

UTP / STPSMF /MMF

ATM ISDN PPP / SLIP FDDIToken Ring802.5

Ethernet802.3

2a Link MAC

2b Link LLC ARP RARP DARP IARP

3 Network

4 Transport

5 Session

6 Presentation

7 Application

OSI-Layer Protokolle (Internet)

H u b

S w i t c h

R o u t e r

G a t e w a y

Transformation

IP

NHRPICMP

OSPF RIP

EGP GGP

BGP IGRP

E-IGRP

TCP UDP

IGMP RSVPDVMRP

Teinet SMTPFTP

IMAPIMAP

LDAPDNS

LPP

HTTPTACACS+

GDP XWindows

TFTP

NTP

DHCP

BOOTP

Radius Tacacs

SNMP

Bild: Transport-Protokolle im ISO/OSI-Modell

5.1 Transport Protokolle (TCP/IP)

5.1.1 Das Port-Konzept

Page 4: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 4 / 23

Bild: Aufbau eines TCP/IP-Ethernet-Datenpakets (Encapsulatiom)

Problem:

IP übermittelt Pakete von einem System zu einem anderen, dabei erfolgt keine Sicherstellung, das Pakete auch ankommen (connectionless).

Außderdem erfolgt durch IP keine Zuordnung zu Applikationen. Frage: Wie werden Anwendungen auf einem Host identifiziert?

Lösung 1: Direkte Adressierung von Prozessen

Direkte Angabe des Prozeses, für das ein Paket bestimmt ist (sog. Adressierung von Prozessen bzw. Anwendungen)

Bewertung:

Problematisch, Prozess-ID sind vorher nicht bekannt und können sich zudem ändern, da Prozesse dynamisch erzeugt (fork) und vernichtet (exit, kill) werden.

Lösung 2: Indirekte Adressierung, d.h. Verwendung von abstrakten Zielpunkten, sog. Protocol Ports.

Pakete werden mit einer Kennung versehen, die eindeutig einen Dienst spezifiziert. Diese Kennung nennt man Ports.

Voraussetzung:

Bevor zwei Systeme miteinander kommunizieren können, müssen sie sich auf die entsprechenden Portnummern einigen.

Es gibt zwei Möglichkeiten Portnummern zu vergeben:

a) Zentrale Vergabe der Port-Nummern (universal binding, well known ports)

- durch die IANA (früher Portnummern <256, heute Portnummern < 1024).

- Wird verwendet für allgemeine Dienste wie Email, FTP, Telnet etc.

b) Dynamische Zuordnung der Portnummern (dynamic binding)

- für Portnummern > 1024, Zuordnung ist nicht standardisiert

Page 5: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 5 / 23

- wird von Anwendungsprogrammen verwendet.

Bild: Ports und zugeordnete Anwendungen

Page 6: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 6 / 23

# Copyright (c) 1993-1999 Microsoft Corp. # Diese Datei enthält die Portnummern für bekannte Dienste gemäß IANA. # # Format: # <Dienstname> <Portnummer>/<Protokoll> [Alias...] [#<Kommentar>] # echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users #Active users systat 11/tcp users #Active users daytime 13/tcp daytime 13/udp qotd 17/tcp quote #Quote of the day qotd 17/udp quote #Quote of the day chargen 19/tcp ttytst source #Character generator chargen 19/udp ttytst source #Character generator ftp-data 20/tcp #FTP, data ftp 21/tcp #FTP. control telnet 23/tcp smtp 25/tcp mail #Simple Mail Transfer Protocol time 37/tcp timserver time 37/udp timserver rlp 39/udp resource #Resource Location Protocol nameserver 42/tcp name #Host Name Server nameserver 42/udp name #Host Name Server nicname 43/tcp whois domain 53/tcp #Domain Name Server domain 53/udp #Domain Name Server bootps 67/udp dhcps #Bootstrap Protocol Server bootpc 68/udp dhcpc #Bootstrap Protocol Client tftp 69/udp #Trivial File Transfer gopher 70/tcp finger 79/tcp http 80/tcp www www-http #World Wide Web kerberos 88/tcp krb5 kerberos-sec #Kerberos kerberos 88/udp krb5 kerberos-sec #Kerberos hostname 101/tcp hostnames #NIC Host Name Server iso-tsap 102/tcp #ISO-TSAP Class 0 rtelnet 107/tcp #Remote Telnet Service pop2 109/tcp postoffice #Post Office Protocol - Version 2 pop3 110/tcp #Post Office Protocol - Version 3 sunrpc 111/tcp rpcbind portmap #SUN Remote Procedure Call sunrpc 111/udp rpcbind portmap #SUN Remote Procedure Call auth 113/tcp ident tap #Identification Protocol uucp-path 117/tcp nntp 119/tcp usenet #Network News Transfer Protocol ntp 123/udp #Network Time Protocol epmap 135/tcp loc-srv #DCE endpoint resolution epmap 135/udp loc-srv #DCE endpoint resolution netbios-ns 137/tcp nbname #NETBIOS Name Service netbios-ns 137/udp nbname #NETBIOS Name Service netbios-dgm 138/udp nbdatagram #NETBIOS Datagram Service netbios-ssn 139/tcp nbsession #NETBIOS Session Service imap 143/tcp imap4 #Internet Message Access Protocol pcmail-srv 158/tcp #PCMail Server

Page 7: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 7 / 23

snmp 161/udp #SNMP snmptrap 162/udp snmp-trap #SNMP trap print-srv 170/tcp #Network PostScript bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp #IPX over IP ldap 389/tcp #Lightweight Directory Access Protocol https 443/tcp MCom https 443/udp MCom microsoft-ds 445/tcp microsoft-ds 445/udp kpasswd 464/tcp # Kerberos (v5) kpasswd 464/udp # Kerberos (v5) isakmp 500/udp ike #Internet Key Exchange exec 512/tcp #Remote Process Execution biff 512/udp comsat login 513/tcp #Remote Login who 513/udp whod cmd 514/tcp shell syslog 514/udp printer 515/tcp spooler talk 517/udp ntalk 518/udp efs 520/tcp #Extended File Name Server router 520/udp route routed timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp #For emergency broadcasts uucp 540/tcp uucpd klogin 543/tcp #Kerberos login kshell 544/tcp krcmd #Kerberos remote shell new-rwho 550/udp new-who remotefs 556/tcp rfs rfs_server rmonitor 560/udp rmonitord monitor 561/udp ldaps 636/tcp sldap #LDAP over TLS/SSL doom 666/tcp #Doom Id Software doom 666/udp #Doom Id Software kerberos-adm 749/tcp #Kerberos administration kerberos-adm 749/udp #Kerberos administration kerberos-iv 750/udp #Kerberos version IV kpop 1109/tcp #Kerberos POP phone 1167/udp #Conference calling ms-sql-s 1433/tcp #Microsoft-SQL-Server ms-sql-s 1433/udp #Microsoft-SQL-Server ms-sql-m 1434/tcp #Microsoft-SQL-Monitor ms-sql-m 1434/udp #Microsoft-SQL-Monitor wins 1512/tcp #Microsoft Windows Internet Name Service wins 1512/udp #Microsoft Windows Internet Name Service ingreslock 1524/tcp ingres l2tp 1701/udp #Layer Two Tunneling Protocol pptp 1723/tcp #Point-to-point tunnelling protocol radius 1812/udp #RADIUS authentication protocol radacct 1813/udp #RADIUS accounting protocol nfsd 2049/udp nfs #NFS server knetd 2053/tcp #Kerberos de-multiplexor man 9535/tcp #Remote Man Server

Bild: Portnummern-Zuordnungen in C:\WINNT\system32\drivers\etc\services

Page 8: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 8 / 23

Für eine Gesamtübersicht der Ports siehe auch:

http://www.bekkoame.ne.jp/~s_ita/port/port1-99.html

Ziel der Adressierung ist der Dienst, nicht der konkrete Prozess.

Manche Prozesse bieten mehr als einen Dienst an und müssen mit mehreren Ports verbunden werden.

Prozesse sollen ersetzt werden können, ohne dass alle Sender benachrichtigt werden müssen (Reboot kann PIDs ändern)

Socket

TCP

Application

IP Channel Channel IP IP

TCP

Socket

Application

Host Host(e.g., Ethernet)

Router Bild: TCP/IP-Verbindung

Das Betriebssystem stellt Funktionen zur Verfügung für

- die Spezifikation und

- den Zugriff auf Ports.

Die Protokoll-Software synchronisiert den Zugriff auf einen bestimmten Port:

- Pakete, die von extern an einen bestimmten Port gesendet werden, werden zunächst in eine Warteschlange gestellt, bis ein Prozess auf den Port zugreift.

Prozesse, die auf einen Port zugreifen, werden blockiert, bis ein Paket für diesen Port eintrifft.

Page 9: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 9 / 23

Applications

TCP sockets

TCP ports UDP ports

UDP sockets

Descriptor references

Sockets bound to ports

Applications

... ...

TCP UDP

IP

... .........1 2 65535 1 2 65535

Bild: Zuordnung von Ports zu Applikationen

5.1.2 Well Known Ports

- Werden für allgemeine Standarddienste (Telnet, Email, FTP, DNS ..) verwendet; Den Standarddiensten sind damit eindeutige Portnummern zugeordnet.

- Beispiele: Dienst Port Protokoll Telnet 23 TCP

FTP 21 TCP SMTP 25 TCP HTTP 80 TCP SNMP 161 UDP usw.

- Unter www.rfc-editor.org können die RFC-Protokolldefinitionen eingesehen werden (Request for Comments - RFC):

PPP (RFC1661, RFC1662) IPCP (RFC1332, RFC1877) PAP (RFC1334) SLIP (RFC1055) IPv4 (RFC791) ICMP (RFC792) UDP (RFC768) TCP (RFC793) DNS (RFC1034, RFC1035), client and server. TFTP (RFC1350), server. HTTP/0.9 (RFC2068 for HTTP/1.1), server. ping (RFC2151), client. finger (RFC1288), client. telnet (RFC854, RFC857, RFC858), client.

Page 10: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 10 / 23

- Mit Hilfe von speziellen Konformitätstestprogrammen wie kann eine Prüfung auf Einhaltung des RFC-Standards erfolgen. Siehe hierzu auch die Webseite http://validator.w3.org :

“Welcome to the W3C Markup Validation Service; a free service that checks documents like HTML and XHTML for conformance to W3C Recommendations and other standards.”

- Well Known Ports weisen Portnummern < 1024 auf.

Heute gibt es viele Dienste, die feste Portnummern oberhalb von 1024 nutzen, z. B. RADIUS port 1812

Diese Portnummern sind jedoch nicht reserviert

- Portnummern <1024 werden unter Unix für privilegierte Programme verwendet.

- Auf welche Ports ein System reagiert, hängt davon ab, welche Dienste angeboten bzw. installiert sind (z.B. DNS-Dienst, SNMP Port161 etc.)

5.1.3 Dynamic Ports

- Dynamic Ports werden von Anwendungen benutzt.

- Portnummern sollen größer als 1024 sein, um Konflikte mit den Well Known Ports zu vermeiden.

- wird von Anwendungsprogrammen verwendet.

- Die Festlegung der Dienste und der zugehörigen Port-Nummer befindet sich

in der Datei /etc/services (unter Unix) und

in der Datei C:\WINNT\system32\drivers\etc\services (unter Windows); siehe Bild „Portnummern-Zuordnungen in C:\WINNT\system32\drivers\etc\services“

- es können eigene Definitionen hinzugefügt werden.

- Portnummern möglichst nicht direkt verwenden, besser ist es, diese auf symbolische Namen abzubilden (Port-Mapping), wie Telnet, FTP, SMTP etc.

5.1.4 Die Socket-Abstraktion

- Sind auf beiden kommunizierenden Systemen die Tupel

Internet-Adresse + Protokoll + Port-Nummer

Page 11: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 11 / 23

identisch konfiguriert, so kann der Dienst damit eindeutig adressiert werden. Die beiden Tupel von Sender und Empfänger bilden die eindeutigen Endpunkte einer Kommunikation.

- Sockets sind die Endpunkte der Kommunikation

- Verallgemeinerung des Dateizugriffsmechanismus in UNIX: I/O in UNIX erfolgt via „file descriptor“. Ein „file descriptor“ ist ein Pointer, der mit einer realen Datei, einem FIFO, Pipe, Terminal oder eben mit einer Netzwerkverbindung verknüpft ist ( „In UNIX ist alles eine Datei!“)

- Unterschied zu Dateien: Sockets können kreiert werden, ohne sie an eine spezielle Zieladresse zu binden; die Bindung kann zu einem späteren Zeitpunkt erfolgen.

Bild: Socket-Datenstruktur

- Die Berkley Sockets stellen eine Programmierschnittstelle für die Anwendungsent-wicklung zur Verfügung; unter Windows: winsock.dll

- Kommunikation findet nach dem Client/Server Modell statt.

Page 12: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 12 / 23

Bild: Client/server-Modell

Bemerkungen: o Kommunikation findet nur bei Bedarf statt o Server kann mehrere Clients bedienen (sequentiell oder parallel)

Typisches Szenario:

o Ein Server läuft auf einem bestimmten Rechner und besitzt ein Socket, das an eine bestimmte Port-Nummer gebunden ist. Der Server wartet und hört bis ein Client eine Verbindung aufbauen will.

o Der Client kennt den Server-Namen, das Protokoll (TCP, UDP) und die Server-Portnummer und versucht eine Verbindung herzustellen.

o Wenn alle Ressourcen verfügbar sind, akzeptiert der Server die Verbindung. Nun wird ein neuer Socket auf einem anderen Port kreiert. Dadurch kann zum einen weiterhin auf Verbindungswünsche (auf dem Original-Port) reagiert werden, zum anderen kann mit dem Client (über den neuen Socket) kommuniziert werden.

o Wenn die Verbindung akzeptiert wurde, wird auf der Client-Seite der Socket erfolgreich angelegt und an eine lokale Port-Nummer gebunden.

o Client und Server können nun kommunizieren.

5.2 Das User Datagram Protocol (UDP)

Das User Datagramm Protocol ist ein ungesicherter, verbindungsloser Transportdienst des IP-Protokolls.

Page 13: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 13 / 23

FTP

SMTPPING

TFTP

SNMP RIPTELNET

Process Layer

TCP UDPHost

to Host Layer

ARP

EGP

RARP

ICMP

IP

OSPFHELLO

Network Access Layer

Internet Layer

Bild: Das User Datagramm Protocol (UDP)

5.2.1 Eigenschaften von UDP

Bild: Aufbau eines IP-Datenpakets

Bild: Aufbau eines UDP-Datenpakets

Page 14: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 14 / 23

- IP adressiert nur Zielhosts, UDP hingegen erlaubt es Anwendungsprogrammen Datagramme zu empfangen und zu versenden.

ungesichert

- UDP besitzt eine optionale Checksum für transferierte Daten (Checksum = 1er Komplement und wird über Header und Datenteil gebildet).

- UDP stellt jedoch nicht sicher, ob die Pakete wirklich beim Empfänger ankommen; im Fehlerfall finden keine automatischen Retransmissions statt.

- Die Datensicherheit ist unter UDP also in jedem Fall durch das Anwendungsprogramm zu gewährleisten.

verbindungslos

- Pakete werden „ungefragt“ losgeschickt, d. h. Sender und Empfänger sind nicht miteinander synchronisiert.

- Vorteil: Da unter UDP keine Verbindungen auf- und abgebaut werden müssen und der Acknowledgement-Mechanismus fehlt und somit keine Timeout-Situationen entstehen können, ist UDP im Allgemeinen schneller als TCP sein:

Wenn ein Paket verlorengeht, wird die Datenübertragung hier eben ungehindert fortgesetzt, sofern nicht ein höheres Protokoll für Wiederholungen sorgt.

- Vorteil: Kurzer Header

5.3 Das Transmission Control Protocol (TCP)

- TCP ist der zentrale Transportdienst im Internet (spezifiziert im RFC 793)

- Das „Transmission Control Protocol“ ist ein gesicherter, verbindungsorientierter Transportdienst des IP-Protokolls.

- Die TCP-Pakete werden als „Segmente“ bezeichnet

Bild: TCP-Paketaufbau

Page 15: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 15 / 23

Legende:

SEQUENCE NUMBER - Offset des ersten Datenbytes relativ zum Anfang des TCP-Streams (garantiert die Einhaltung der Reihenfolge)

ACKNOWLEDGEMENT NUMBER - im nächsten TCP-Paket erwartete Sequence Number

HLEN - Headerlänge, angegeben in 32bit-Worten

CODE BITS - Gebraucht für TCP-Funktionen; Verbindungsaufbau (SYN-Zeichen) und Verbindungsabbau (FIN)

WINDOW - Anzahl der Bytes, die der Sender einwilligt zu empfangen, bevor er eine Quittung erhalten möchte. Anschließend wird erneut die Sendung aufgenommen.

PRÜFSUMME - Prüfsumme über Header und Daten

5.3.1 Eigenschaften von TCP

Gesichert

- Es wird sichergestellt, dass Pakete beim Sender ankommen. Andernfalls wird erneut gesendet..

- Die richtige reihenfolge der TCP-Segmente wird garantiert

Verbindungsorientiert

- Sender und Empfänger tauschen sich vor der Datenübermittlung Parameter aus.

- Beide bauen eine virtuelle Verbidnung „Virtual Circuit“ auf.

Die Details des Verbindungsaufbaus, der Verbindungssicherung und des Verbindungsabbaus sind transparant, d. h. nach oben zur Applikationsebene nicht sichtbar. Die Verbindung erscheint dadurch wie eine direkte eigene Hardwareverbindung („Virtual Circuit“).

- Verbindungen werden in definierter Weise angelegt und beendet, der Paketstrom hört nicht einfach auf.

- TCP erzeugt einen Datenstrom (stream oriented); Daten werden als Strom von Bytes gesendet, evtl. bleiben die Blockgrenzen nicht erhalten

- TCP baut eine Full-Duplex Verbidnung auf, d. h. eine gleichzeitige Verbindung in beiden Richtungen ist möglich (wichtig für die Flusssteuerung).

- TCP verwendet wie UDP das Port-Konzept.

Page 16: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 16 / 23

5.3.2 TCP-Handshake zum Verbindungsaufbau

- TCP verwendet einen 3-Wege Handshake

1) Sender sendet SYN mit einer zufällig gewählten Zahl SEQ für den Datenstrom

2) Empfänger bestätigt mit Angabe des nächsten erwarteten Paketes und wählt gleichzeitig für seinen eigenen Datenstrom eine zufällige SEQ-Nummer.

3) Sender sendet analog zum Empfänger ein ACK; Die Verbindung ist damit aufgebaut, optional kann mit der letzten Bestätigung bereits gesendet werden.

Bsp. 1: Verbindungsaufbau

5.3.3 Flusskontrolle unter TCP

- TCP teilt den Datenfluss für die Übertragung in Segmente ein.

- Der Empfänger steuert den Datenfluss durch Mitteilen der verfügbaren Buffer im Headerparameter windowsize.

- Ein Fenster mit der Größe 0 (windowsize = 0) stoppt die Sendung, durch allmähliches Vergrößern der Fenstergröße wird der Datenfluss wieder in Gang gesetzt.

- Der Empfänger kann zusätzliche ACKs schicken, wenn wieder Empfangspuffer zur Verfügung stehen.

- Eine Optimierung bei der Bestätigung von Segmenten ergibt sich nach dem Prinzip der sliding windows

- Jede Seite einer Verbindung darf die Anzahl an Bytes senden, die im Fenster angegeben ist, ohne auf eine Quittung warten zu müssen.

- Typischer Wert für die maximale Fenstergröße ist bei Workstations 4096 Bytes, bei Servern in der Regel höher.

- Höhere Werte insbesondere bei „long fat pipes“ wichtig (z. B. bei hochbandbreitige Leitungsverbindungen mit großen Delays, z. B. bei Transkontinentalverbindungen)

Page 17: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 17 / 23

Bild: Zustandsdiagramm des TCP-Protokolls

Page 18: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 18 / 23

Bsp. 1: Flusskontrolle

Bsp. 2: Flusskontrolle

Bild: Hilfe zu netstat

Page 19: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 19 / 23

Bild: Anzeige aktueller TCP-Verbindungen mit netstat

Page 20: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 20 / 23

Bild: Anzeige aktueller TCP-Verbindungen mit netstat

5.3.4 Retransmissions

- Im Fehlerfall wird die TCP-Nachricht wiederholt (Retransmissions). Feste Timeout-Zeiten bis zur Wiederholung der Nachricht sind ungünstig, da

- Verzögerungen meist variabel sind - der Performanceverlust zu groß ist - unnütze Netzbelastung durch Wiederholungen

- Lösung: TCP ermittelt für jede Verbindung eine sog. „round trip time“ (RTT). Die RRT ist die durchschnittliche Verzögerung zwischen Aussenden eines Segments und Empfangen der Bestätigung (ACK).

- Der Retransmit-Timer basiert auf RTT.

Bild: Der Retransmit-Timer

Page 21: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 21 / 23

5.3.5 Der TCP-Verbindungsabbau

Bild: Abbau einer TCP-Verbindung

5.3.6 TCP als Basis für das Applikation Performance Monitoring

TCP/IP-Verbindungen werden für Performance Betrachtungen („Performance Monitoring“) herangezogen. Hiermit lassen sich sowohl Fehler in der Applikationssoftware als auch im Kommunikationssystem detektiert.

Das TCP-Protokoll ermöglicht durch seinen Aufbau die Applikationsantwortzeit an einem sehr servernahen Punkt.

Hierbei werden drei Verzögerungszonen unterschieden:

- Netzwerkübertragungsdauer (Network Roundtrip Time)

- Verarbeitungsdauer der Anfrage zur Applikationsmessung (Server Initial Response Time)

- Übertragungsdauer des Ergebnisses (Data Transfer Time)

Die folgende Darstellung zeigt an einem vereinfachten TCP/IP-Modell die einzelnen Parameter:

Page 22: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 22 / 23

Bild: Zeitparameter am TCP-Verbindungsmodell

Die Aufzeichnung dieser Parameter über die Zeit ergibt für jede erfasste Applikation ein netzwerkspezifisches Muster. Diese Messwerte können jedoch nicht dazu genutzt werden, die Qualität einer Verbindung zu bewerten (Gut oder Schlecht). Dies ist nur möglich, indem die Aussagen der betroffenen Anwender oder vorherige Referenzmessungen als Beobachtungsbasis genutzt werden.

Die Aufzeichnung der Antwortzeit über die Zeit lassen jedoch Aussagen über die Änderung der Qualität zu, die dann den einzelnen Bereichen Netzwerk, Server und Applikationen zugeordnet werden können.

Um diese Werte für eine Bewertung zu nutzen, ist eine Vielzahl von Beobachtungen notwendig, deren Mittelwerte die entsprechenden Aussagen ermöglichen. Je mehr einzelne TCP-Sessions innerhalb eines Zeitrasters erfasst werden können, desto repräsentativer sind die entsprechenden Aussagen.

SYN

SYN-ACK

Application Request

ACK

Application Response: ACK + Data

Application Data

ACK

Legende: 1) Connection setup time 2) Network roundtrip time 3) Server initial response time 4) Data transfer time

1)

3)

4) 2)

Messeinheit

Page 23: TCP, Ports und Anwendungsprotokolle · PDF file5.3 Das Transmission Control Protocol (TCP) ... bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp

Seite 23 / 23

5.4 Anwendungsprotokolle

5.4.1 Das Client-Server Modell

Kommunikation findet nach dem Client/Server Modell statt.

Bild: Client/server-Modell

Bemerkungen:

- Kommunikation findet nur bei Bedarf statt

- Server kann mehrere Clients bedienen (sequentiell oder parallel)

In Bearbeitung:

5.4.2 DNS

5.4.3 Das Internet Control Message Protocol (ICMP)

5.4.4 Telnet

5.4.5 Das File Transfer Transfer Protokoll (FTP, TFTP)

5.4.6 HTTP

5.4.7 EMAIL