* Scockets Stream (SOCK_STREAM): Αυτά παρέχουν μια αξιόπιστη, παραγγελία και αμφίδρομη ροή byte. Τα δεδομένα μεταδίδονται σε συνεχή ροή και ο δέκτης παίρνει τα bytes με την ακριβή σειρά που στάλθηκαν. Σκεφτείτε το σαν σωλήνα - τα δεδομένα ρέουν απρόσκοπτα. Το TCP είναι το πιο συνηθισμένο πρωτόκολλο που χρησιμοποιείται με τις υποδοχές ρεύματος.
* υποδοχές datagram (sock_dgram): Αυτά προσφέρουν μια μέθοδο επικοινωνίας χωρίς σύνδεση χωρίς σύνδεση, αναξιόπιστη και αμφίδρομη επικοινωνία. Τα δεδομένα αποστέλλονται σε διακριτά πακέτα (datagrams), τα οποία μπορεί να φτάσουν εκτός τάξης, ενδέχεται να αντιγραφούν ή ενδέχεται να χαθούν εξ ολοκλήρου. Δεν υπάρχει εγγύηση παράδοσης. Το UDP είναι το τυπικό πρωτόκολλο που σχετίζεται με τις υποδοχές datagram.
* RAW SOCKETS (SOCK_RAW): Αυτά παρέχουν μια διεπαφή πολύ χαμηλού επιπέδου, επιτρέποντας άμεση πρόσβαση στο στρώμα πρωτοκόλλου δικτύου. Μπορείτε να δημιουργήσετε και να στείλετε πακέτα Raw Network, παρακάμπτοντας τα πρωτόκολλα υψηλότερου επιπέδου όπως το TCP/IP. Αυτό απαιτεί βαθιά κατανόηση της δικτύωσης και χρησιμοποιείται γενικά για εξειδικευμένες εργασίες όπως η παρακολούθηση του δικτύου και η εντοπισμός σφαλμάτων. Απαιτεί τα κατάλληλα προνόμια.
* Sequenced Socket Packet (SOCK_SEQPACKET): Παρόμοια με τις υποδοχές ρεύματος, αυτές παρέχουν ένα αξιόπιστο, διατεταγμένο, αμφίδρομο ρεύμα byte. Ωστόσο, κάθε μετάδοση συσκευάζεται σε ένα ξεχωριστό μήνυμα με τη δική του κεφαλίδα, επιτρέποντας καλύτερα όρια μηνύματος από το SOCK_STREAM. Είναι λιγότερο συνηθισμένα από τις υποδοχές ρεύματος ή datagram.
* υποδοχές τομέα UNIX (AF_UNIX ή AF_LOCAL): Αυτές οι υποδοχές επικοινωνούν μόνο σε ένα μόνο μηχάνημα. Δεν περιλαμβάνουν πρωτόκολλα δικτύου όπως TCP ή UDP. Είναι ταχύτερες και πιο ασφαλείς από τις υποδοχές δικτύου, καθώς δεν διασχίζουν τη στοίβα δικτύου. Συχνά χρησιμοποιούνται για επικοινωνία μεταξύ των διαδικασιών (IPC) μέσα σε ένα σύστημα.
Σημαντικές διακρίσεις:
* προσανατολισμένη στη σύνδεση έναντι σύνδεσης: Το SOCK_STREAM (TCP) είναι προσανατολισμένο στη σύνδεση. Δημιουργείται μια σύνδεση πριν από τη μεταφορά δεδομένων. Το SOCK_DGRAM (UDP) είναι χωρίς σύνδεση. Κάθε datagram είναι ανεξάρτητο.
* Αξιόπιστο έναντι αναξιόπιστων: Το SOCK_STREAM είναι αξιόπιστο. Τα δεδομένα είναι εγγυημένα για να φθάσουν στη σειρά και χωρίς απώλειες (αποκλείοντας τις καταστροφικές αποτυχίες του δικτύου). Το SOCK_DGRAM είναι αναξιόπιστο. Δεν υπάρχει εγγύηση παράδοσης ή παραγγελίας.
Η επιλογή του τύπου υποδοχής εξαρτάται εξ ολοκλήρου από τις απαιτήσεις της εφαρμογής. Εάν η αξιόπιστη παράδοση και η παραγγελία είναι υψίστης σημασίας, χρησιμοποιήστε το `sock_stream '. Εάν η ταχύτητα έχει προτεραιότητα και κάποια απώλεια δεδομένων είναι αποδεκτή, το `sock_dgram` είναι μια καλύτερη επιλογή. Το `af_unix` είναι εξαιρετικό για αποτελεσματική IPC. Το `sock_raw` είναι για πολύ εξειδικευμένες εργασίες χαμηλού επιπέδου. Το `sock_seqpacket` είναι μια εξειδικευμένη επιλογή, σπάνια χρησιμοποιείται.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα