TCP
Το πρωτόκολλο TCP (Transmission Control Protocol) επιτρέπει τη σύνδεση
δύο διεργασιών και τη μεταξύ τους επικοινωνία.
Το TCP θεωρεί ότι το δίκτυο στο οποίο βασίζεται παρέχει τη δυνατότητα μεταφοράς
πακέτων χωρίς εγγυήσεις σχετικά με τη σειρά που θα παραδοθούν,
την απώλεια πακέτων ή τη διπλή παράδοσή τους.
Πάνω από ένα τέτοιο δίκτυο το TCP παρέχει αξιόπιστη μεταφορά δεδομένων.
Οι βασικές υπηρεσίες που παρέχει το TCP είναι οι παρακάτω:
- Μεταφορά δεδομένων
- Αξιοπιστία
- Έλεγχο ροής
- Πολυπλεξία
- Συνδέσεις
- Προτεραιότητα
Η μορφή της επικεφαλίδας του TCP είναι η παρακάτω:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Τα bit URG...FIN έχουν τους παρακάτω ρόλους:
- URG
- Το πεδίο Urgent Pointer περιέχει δεδομένα
- ACK
- Το πεδίο Acknowledgment περιέχει δεδομένα
- PSH
- Λειτουργία Push
- RST
- Επαναρύθμιση της σύνδεσης
- SYN
- Συγχρονισμός των αριθμών της σειράς
- FIN
- Δεν υπάρχουν άλλα δεδομένα από τον αποστολέα