- Temporäre Communication-Session
- Services
- Verbindungsorientierter Data Stream
- Ausfallsicherheit
- Flusskontrolle
- Multiplexing
- Verwaltung unterschiedlicher Verbindungen
- Gleichzeitiges Senden und Empfangen
- Zuordnung der Applikationen durch eindeutige Einträge im Header
- Portnummer
- Source Port
- Vom Sender dynamisch ausgewählt
- Client → mehrere HTTP Requests → jede Verbindung hat Source Port
- Destination Port
- Identifikation einer Applikation/Services auf Server
- Server kann mehrere Services zur gleichen Zeit anbieten
Internet Assigned Numbers Authority (IANA) verantwortlich
- 0 - 1023: Well-known Ports
- 1024 - 49151: Registered Ports
- 49152 - 65535: Private and/or Dynamic Ports
- Verifizierung aktiver Verbindungen
- Listet verwendete Protokolle (lokale und fremde Adresse und Portnummer)
User Datagram Protocol
- Trennung der Applikationen vom Datentransport
- Multiplexing des IP-Stacks
- Minimale Kontrollmechanismen, geringer Overhead zu puren IP-Paketen
- Keine sonstigen Leistungen (Flusskontrolle oder Fehlererkennung)
- Verbindungskontrolle liegt bei Applikationen
- 16 Bit (2 Octets) Source Port
- 16 Bit (2 Octets) Destination Port
- 16 Bit (2 Octets) Länge
- 16 Bit (2 Octets) Prüfsumme
Transmission Control Protocol
- Aufbau einer Transportverbindung
- Sicherer Datentransfer
- Möglichkeit zum Multiplexing
- Fehlererkennung, Flusskontrolle, Supervisor-Funktionen
- Kontrollierter Abbau einer Transportverbindung
- Ende-zu-Ende-Kontrolle:
- sicherer Transfer durch Bestätigung jedes übertragenen Bytes
- Wiederholung von nicht angekommenen Daten
- Gesicherter Verbindungsaufbau durch 3-way Handshake
- Aufrechterhaltung der Verbindung während Datenübertragung
- Gesichterter Verbindungsabbau
- ggf. Fehlermeldung an die Applikation
- Flusskontrolle: Sender passt Output an Kapazität
- Empfänger signalisiert Sender Zustand seines Eingangspuffers
- Multiplexing → mehrere Verbindungen gleichzeitig
- Virtuelle Leitungsverbindung über paketvermittelte Netze
- TCP bringt Datenpakete beim Empfänger in richtige Reihenfolge
- TCP-Segmente werden von IP als zusammenhangslose IP-Pakete übetragen
- Segmentierung: Zerlegung der Daten des Quellrechners in nummerierte Segmente
- Jedes Datensegment wird mit TCP-Header versehen (min. 20 Byte)
- Maximale Segmentgröße: 65535 Byte
- Source Port: Portnummer des Anwendungsprozesses am Quellrechner
- Destination Port: Portnummer des Anwendungsprozesses am Zielrechner
- Sequence Number
- Nummerierung von gesendeten Datensegmenten (Senderichtung)
- Verbindungsaufbau mit eindeutiger Anfangs-Sequenznummer
- Darf sich in der TTL-Zeit der IP-Pakete nicht wiederholen
- Acknowledgement Number
- Quittungsnummer in der Empfangsrichtung
- Bestätigung von empfangenen Datensegmenten (Byte-Pointer der korrekten Daten)
- Data Offset: Länge des TCP-Headers
- Control Flags (6 Bit)
- URG: Urgent Pointer ist gültig → Zeiger auf Urgent-Daten direkt nach TCP-Header
- ACK: Quittungsnummer ist gültig
- PSH: Push-Funktion: alle Daten werden im Sendepuffer übergeben
- RST: Reset der TCP-Verbindung
- SYN: Request zum Verbindungsaufbau (Synchronize)
- FIN: Unidirektionaler TCP-Verbindungsabbau → Ende der Übertragung
- Window: Fenstergröße, Flusskontrolle und Sliding-Window-Prinzip
- Checksum: Berechnete Prüfsumme für übergebene TCP-Header und Daten
- Optionen: Angabe von Service-Optionen
- TCP Timeouts
- Kein gleichzeitiger Verbindungsaufbau zwischen zwei Systemen
- Nach Timeout kann der Sender keinen mehrfachen Verbindungsaufbau anfordern
- Datenaustausch nach Verbindungsaufbau nach Timeout durch Wiederholung der Segment-Übertragung
- Retransmission Time:
- Quittung vom Empfänger über die erhaltenen Segmente nach RTT (Round-Trip Time)
- Neuberechnung RTT für jedes TCP-Segment je nach aktueller Netzbelastung
- Window Size (WSIZE): Größe des TCP-Empfangspuffers in Byte
- Maximum Segment Size (MSS): max. Wert des TCP-Sendepuffers (MSS < WSIZE)
Three Way Handshake: Synchronisation beider Seiten mit drei Nachrichten
- SEQ Senderseite ↔ ACK Empfangsseite
- ACK-Nummer
- Kern des Verbindungsablaufes (ACK-Flag muss gesetzt sein)
- Pointer auf nächstes Datenbyte, auf das gewartet wird
- ACK-Nummer = empfangene SEQ-Nummer + Länge des TCP-Segments + 1
Eingeleitet von beiden kommunizierenden Anwendungsprozessen Abbau nacheinander, jede TCP-Instanz verhindert Verlust unquittierter Daten
Interner Timeout-Algorithmus beim Verbindungsabbau
Wenn kein ACK nach Ablauf der RTT angekommen ist, wird nochmal gesendet.