# Sequenced Packet Exchange

Das Protokoll Sequenced Packet Exchange (SPX) ist mit dem TCP zu vergleichen und wurde hauptsächlich in Novell-Netzen eingesetzt. Es handelt sich genau wie bei TCP um ein verbindungsorientiertes Netzwerkprotokoll. Das heißt, es sorgt für ein sicheres Ankommen der Datenpakete beim Empfänger. Es überwacht die gesendeten Daten und fordert eine Empfangsbestätigung vom Empfänger an. Es prüft, ob ein Datenpaket erfolgreich beim Empfänger angekommen ist und bestätigt es in diesem Fall. Anhand einer Prüfsumme prüft es ob die Daten unbeschädigt angekommen sind. Sind die Daten beim Empfänger nicht angekommen oder sind die Daten defekt, wiederholt SPX das Senden des Datenpakets so lange, bis eine erfolgreiche Übertragung vorliegt.

## Das Protokoll im OSI-Modell

Das Protokoll im OSI-Modell (siehe im Vergleich dazu das TCP/IP-Referenzmodell, OSI-Modell):
| OSI-Schicht | OSI-Schicht | Englisch | Einordnung | TCP/IP-Schicht | Einordnung | IPX/SPX/NCP |
| 7 | Anwendung | Application | Anwendungs- orientiert | Anwendung | Ende zu Ende (Multihop) | NCP |
| 6 | Darstellung | Presentation | Anwendungs- orientiert | Anwendung | Ende zu Ende (Multihop) | NCP |
| 5 | Sitzung | Session | Anwendungs- orientiert | Anwendung | Ende zu Ende (Multihop) | NCP |
| 4 | Transport | Transport | Transport- orientiert | Host to Host | Ende zu Ende (Multihop) | SPX |
| 3 | Vermittlung | Network | Transport- orientiert | Internet Protocol | Punkt zu Punkt | IPX |
| 2 | Sicherung | Data Link | Transport- orientiert | Netzwerk | Punkt zu Punkt | Ethernet Token Ring FDDI ARCNET |
| 1 | Bitübertragung | Physical | Transport- orientiert | Netzwerk | Punkt zu Punkt | Ethernet Token Ring FDDI ARCNET |

## SPX Header

SPX Header (Sequenced Packet Exchange) :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Connection control (Verbindungskontrolle) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Data stream type (Datenflusstyp) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) | Source connection ID (Quell-Verbindungs-ID) |
| Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Destination connection ID (Ziel-Verbindung-ID) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) | Sequence number (Sequenznummer) |
| Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Acknowledgement Number (Bestätigungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) | Allocation number (Zuordnungsnummer) |
| Data (Daten) ||||||||||||||||||||||||||||||||

### Beschreibung der Felder

Connection control
Kodierung der Verbindungskontrolle :
| Wert | Beschreibung |
| 0x10 | Ende der Nachricht. |
| 0x20 | Achtung. |
| 0x40 | Bestätigung erforderlich. |
| 0x80 | Datenpaket vom System (Original engl.: System packet; Wird intern als Bestätigungspaket verwendet, um zu bestätigen ob der Sitzungspartner in einer inaktiven Sitzung aktiv ist). |
Data stream type
Kodierung des Datenflusstyps :
| Wert | Beschreibung |
| 0xFE | Ende der Verbindung. Dies ist die letzte Nachricht dieser Verbindung. |
| 0xFF | Bestätigung für das Ende der Verbindung. |

#### Source Connection ID

    diesem Feld wird vom Sender für die Dauer der Verbindung ein eindeutiger Wert zugeordnet. Dieser dient zur Identifikation der virtuellen Verbindung.

#### Destination Connection ID

    hier wird jene ID eingetragen, welche der Empfänger der Verbindung zuordnet. Wenn ein Rechner auf ein Paket antworten will, übernimmt er die Source Connection ID und überträgt sie als Destination Connection ID. Im ersten Paket beträgt dieser Wert FFFF.

#### Sequence number ID

    diese enthält die fortlaufende Nummerierung der SPX Pakete. Bei jeder gelungener Übertragung eines Pakets erhöht sich der Wert um 1.

#### Acknowledgement number ID

    hier wird die Sequence number ID des nächsten Pakets eingetragen um sicherzustellen, dass der Empfänger alle bisherigen Pakete empfangen hat.

#### Allocation number

    Anzahl gesendeter, aber noch nicht vom Empfänger bestätigten Pakete

#### Data

    Das Datenpaket kann zwischen 0 und 534 Bytes betragen. Wenn es sich um ein Systempaket handelt, enthält es 0 Byte.