Google Suche

 
Loading...
Loading...

Protokoll TCP

PDFDruckenE-Mail

TCP:

Das TCP  (Transmission Control Protocol) liegt im Schichtmodell in der Transport Layer (Schicht 4) und somit über dem IP. Es baut eine zuverlässige end-to-end Verbindung auf. Zuverlässig heißt, dass die Pakete nicht einfach ins Netz geschickt werden, wie beim UDP. Es wird eine Verbindung zum Zielhost aufgebaut, die bestätigt werden muss. Hinzu kommt eine Prüfsumme im TCP-Header zur Überprüfung von Fehlern im Datenabschnitt der Pakete, die auf der Ebene des TCP als Segmente bezeichnet werden. Ist die Prüfsumme nicht korrekt, d.h. sind Pakete verloren gegangen oder beschädigt wird keine Empfangsbestätigung versendet. Erhält der Sender nach einer Zeit keine Empfangsbestätigung, sendet er ein Paket erneut.

Bereits vor dem Senden der eigentlichen Daten wird eine Verbindung über den s.g. Three-Way-Handshake aufgebaut. Hier wird zuerst ein Segment gesendet, dessen SYN-Flag im Header aktiviert ist. Dadurch wird dem Zielhost mitgeteilt, dass eine Verbindung aufgebaut werden soll und zwar mit der Sequenznummer, die ebenfalls im Header festgelegt ist. Der Empfänger kann die Verbindung aufnehmen, indem er ein Bestätigungssegment zurückschickt. in dem zusätzlich das ACK-Bit aktiviert ist. Die Sequenznummer wird zur Bestätigung im Feld Acknowledgement Number abgelegt und dann um eins erhöht, damit der Senderhost weiß, mit welcher er fortfahren soll.

Der Sender bestätigt die zustande gekommene Verbindung indem er erneut ein Segment an den Empfänger schickt (aktives ACK-Feld und die vom Empfänger angegebene Sequenznummer als Acknowledgement number). Ab dieses Paket können bereits die ersten Daten angehängt werden.. Am Ende der Datenübertragung wird das FIN-Bit aktiviert. Es kommt meistens vor, dass die einzelnen Datenpakete nicht in der gleichen Reihenfolge ankommen in der sie verschickt wurden, da sie über verschiedene Wege weitergeleitet wurden. Somit sind die Hauptaufgaben von TCP sicherzustellen, dass diese Daten beim Empfänger ankommen und dort wieder in der richtigen Reihenfolge zusammengesetzt werden.

Die Protokolle von TCP:
                       
TCP/IP-Schicht Protokolle (Auswahl)
Anwendung HTTP FTP SMTP POP3 Telnet DNS SNMP RIP SSH IPFIX
Transport TCP UDP SCTP
Vermittlung IP (IPv4,IPv6) IPsec ICMP und ARP
Physik Ethernet W-Lan

Über das TCP kann auch eine so genannte Portnummer (16Bit, 65.535 Ports) angegeben werden. Dadurch ist es möglich eine Applikation auf dem Zielsystem direkt anzusprechen. Beispiele für Portnummern sind: TELNET auf Port 23, FTP auf 21 und SQL auf 14333.

Der TCP Header ist 20Byte groß, daran können weitere Optionen angehängt werden. Die Informationseinheit und der Header müssen in das Datenfeld des IP-Fragments passen.

Die einzelnen Felder werden wie folgt definiert:

  • Source Port: Portnummer des Senders
  • Destination Port: Portnummer des Empfängers
  • Sequence- und Acknowledgement number: zur Kontrolle der Reihenfolge der einzelnen Pakete
  • Offset: Länge des gesamten Headers
  • Flags
    • URG: urgent pointer - dringend
    • ACK: Bestätigung wird mitverschickt
    • PSH: Daten werden nicht gepuffert, sondern sofort verarbeitet
    • RST: Verbindung wird zurückgesetzt. V.a. bei Übertragungsfehlern, beim ungültigen Segment oder beim Zurückweisen einer Verbindung
    • SYN: Verbindungsaufbau
    • FIN: Verbindungsende
  • Window: Anzahl der Bytes die in beide Richtungen gesendet werden dürfen, Ist z.B. das Feld auf 0 gesetzt so heißt das das Pakete bis zur Acknowledgement number minus Eins empfangen wurden, aber der Empfänger nun keine Daten mehr empfangen kann. Ein Paket mit gleicher Acknowledgement number und einem Wert ungleich Null bedeutet eine Wiederaufnahme des Empfanges.
  • Checksum: Enthält eine algorithmisch erzeugte Summe anhand der die Daten auf ihre Richtigkeit überprüft werden.
  • Urgent Pointer: weist zusammen mit der Sequenznummer auf die Stelle hin, in der dringende Daten abgelegt sind.
  • Options: weitere Felder, u.a. für die maximale Segmentgröße.
  • Padding: sichert die Headerlänge von max. 32Bit und den Anfang der eigentlichen Daten.

Ports:

  • Well known Ports: 0 bis 1023 werden von der IANA bestimmt, sind fest und sind nur vom System nutzbar (FTP: 21, SSH: 22, TELNET:23, SMTP: 24, HTTP: 80)
  • Registered Ports: 1024 bis 49151 ebenfalls von der IANA verwaltet, können von Entwicklern beantragt werden und auf USER-Ebene nutzbar (MS SQL: 1433, MySQL: 3306)
  • Dynamic/Private Ports: 49152 bis 65535 keine Kontrolle

Folgende häufig benutzten TCP bzw. UDP-Ports sind standardisiert:

Service Port Typ Beschreibung
ftp-data 20 TCP FTP File-Transfer (Daten)
ftp 21 TCP FTP / File-Transfer (Steuerung)
telnet 23 TCP Telnet
smtp 25 TCP SMTP / Simple Mail Transfer Protocol 
nicname 43 TCP Who is
nicname 43 UDP Who is
domain 53 TCP DNS / Domain Name Server
domain 53 UDP DNS / Domain Name Server
sqln 66 TCP Oracle SQL Net
tftp 69 UDP Trivialer File-Transfer
gopher 70 TCP Gopher
gopher 70 UDP Gopher
finger 79 TCP Finger
finger 79 UDP Finger
www-http 80 TCP World Wide Web HTTP
kerberos 88 TCP Kerberos
kerberos 88 UDP Kerberos
pop3 108 TCP POP3 / Post Office Protocol - Version 3
pop3 109 TCP POP3 / Post Office Protocol - Version 3
pop3 110 TCP POP3 / Post Office Protocol - Version 3
sunrpc 111 TCP SUN Remote Procedure Call (RPC)
sunrpc 111 UDP SUN Remote Procedure Call (RPC)
auth 113 TCP Authentication Service
auth 113 UDP Authentication Service
nntp 119 TCP Network News Transfer Protocol
ntp 123 TCP Network Time Protocol
ntp 123 UDP Network Time Protocol
dce 135 TCP WINS und DHCP bei Windows NT
nbs 137 TCP NetBIOS
nbs 138 TCP NetBIOS
nbs 139 TCP NetBIOS
snmp 161 TCP SNMP / Simple Network Management Protocol
snmptrap 162 TCP SNMPTRAP / SNMP-Störungsmeldung
appltlk 201 TCP AppleTalk-Network
appltlk 202 TCP AppleTalk-Network
appltlk 203 TCP AppleTalk-Network
appltlk 204 TCP AppleTalk-Network
appltlk 205 TCP AppleTalk-Network
appltlk 206 TCP AppleTalk-Network
appltlk 207 TCP AppleTalk-Network
appltlk 208 TCP AppleTalk-Network
imap3 220 TCP IMAP / Interactiv Mail Access Protocol
imap3 220 UDP IMAP / Interactiv Mail Access Protocol
exe 512 TCP Remote Process Execution
login 513 TCP Remote Login
who 513 UDP Remote Who is (rwhod)
cmd 514 TCP Remote Command (rsh)
syslog 514 UDP System Logging Facility
printer 515 TCP LPD / Drucker-Spooler
talk 517 TCP Terminal / Terminal-Chat
talk 517 UDP Terminal / Terminal-Chat
ntalk 518 TCP Aktuellere Version von Terminal / Terminal-Chat
ntalk 518 UDP Aktuellere Version von Terminal / Terminal-Chat
router 520 UDP RIP / Routing Information Protocol
uucp 540 TCP UNIX to UNIX Copy
uucp 540 UDP UNIX to UNIX Copy
uucp-rlogin 541 TCP Variante von UNIX to UNIX Copy
uucp-rlogin 541 UDP Variante von UNIX to UNIX Copy
klogin 543 TCP Login mit Kerberos-Ticket
klogin 543 UDP Login mit Kerberos-Ticket
pmd 1642 TCP PortMaster daemon in.pmd
pmconsole 1643 TCP PortMaster Console Protocol
radius 1645 UDP RADIUS / Remote Authentication Dial In User Service
radacct 1646 UDP RADIUS Accounting
gnutella 3646 TCP Gnutella - Peer-to-Peer-Server (MP3)

 



 

Wer ist online

Wir haben 21 Gäste und 1 Benutzer online

Besucher

Heute791
Gestern936
Woche3241
Monat17361
Insgesamt496454
   
| Donnerstag, 24. Mai 2012 || Compu-Seite Compu-Seite |