Multilink PPP
Abkürzung: MLPPP, MTU
Einordnung
RFC 1990 (August 1996) erweitert das Point-to-Point Protocol nach RFC 1661 um ein Bündelungsverfahren: Mehrere physische PPP-Verbindungen zwischen zwei Systemen bilden einen logischen Link. MP wird über Optionen des Link Control Protocol (LCP) ausgehandelt; ein eigenes Steuerprotokoll existiert nicht. MP-Fragmente tragen das PPP-Protokollfeld 0x003D. RFC 1990 ersetzt RFC 1717 und ist Standards Track.
Der klassische Anwendungsfall war die ISDN-Kanalbündelung: Zwei B-Kanäle mit je 64 kbit/s ergaben einen logischen Link mit 128 kbit/s. Das Verfahren arbeitet aber auf beliebigen PPP-Verbindungen, auch auf Leitungen unterschiedlicher Geschwindigkeit.
Aushandlung über LCP
Jede physische Leitung durchläuft ihre eigene LCP-Aushandlung. Drei Optionen betreffen MP.
MRRU, Typ 17, Länge 4 Oktette. Die Multilink Maximum Received Reconstructed Unit (2 Oktette, Netzwerk-Byte-Reihenfolge) nennt die maximale Größe eines rekonstruierten Pakets, die der Empfänger annimmt. Ohne ausgehandelte MRRU wird MP auf der Leitung nicht verwendet. Die MRRU darf größer sein als die MRU der einzelnen Mitgliedsleitungen; genau daraus ergibt sich der Bedarf an Fragmentierung.
Short Sequence Number Header Format, Typ 18, Länge 2 Oktette, keine Daten. Wird die Option vereinbart, verwenden beide Seiten den kurzen MP-Header mit 12-Bit-Sequenznummern, andernfalls den langen Header mit 24 Bit.
Endpoint Discriminator, Typ 19, variable Länge. Ein Class-Oktett plus Adresse identifiziert das sendende System. Zusammen mit dem authentifizierten Namen der Gegenstelle entscheidet der Discriminator, welchem Bündel eine neu aufgebaute Leitung zugeordnet wird. Die Schleifenerkennung bleibt davon getrennt Aufgabe der LCP Magic Number nach RFC 1661.
| Class | Bedeutung |
|---|---|
| 0 | Null Class |
| 1 | Locally Assigned Address |
| 2 | IP Address |
| 3 | IEEE 802.1 MAC Address |
| 4 | PPP Magic-Number Block |
| 5 | Public Switched Network Directory Number |
Headerformate
Der MP-Header folgt unmittelbar auf das Protokollfeld 0x003D. Der lange Header umfasst 4 Oktette: B-Bit, E-Bit, sechs reservierte Bits, danach eine 24-Bit-Sequenznummer. Der kurze Header umfasst 2 Oktette: B-Bit, E-Bit, zwei reservierte Bits, danach eine 12-Bit-Sequenznummer.
B=1 markiert das erste Fragment eines Pakets, E=1 das letzte. Ein Paket, das ungeteilt übertragen wird, hat B=1 und E=1. Reservierte Bits werden beim Senden auf 0 gesetzt und beim Empfang ignoriert.
Die Sequenznummer zählt gesendete Fragmente: Jedes über das Bündel übertragene Fragment erhält den nächsten Wert, unabhängig davon, zu welchem Paket es gehört. Die Fragmente eines Pakets tragen damit aufeinanderfolgende Nummern vom B-Fragment bis zum E-Fragment. Der Vergleich erfolgt modulo 2^24 beim langen und modulo 2^12 beim kurzen Format.
Fragmentierung
Der Sender teilt ein Paket auf, wenn es die MRU einer Mitgliedsleitung überschreitet oder wenn er die Last auf mehrere Leitungen verteilen will. Pakete, die rekonstruiert die MRRU des Empfängers überschreiten würden, darf er nicht erzeugen. Das erste Fragment beginnt mit dem PPP-Protokollfeld des ursprünglichen Pakets; Folgefragmente enthalten ausschließlich restliche Nutzdaten. Jedes Fragment wird als eigenständiger PPP-Rahmen mit MP-Header übertragen. Fragmentgrößen und die Verteilung auf die Leitungen schreibt RFC 1990 nicht vor.
Reassemblierung und Verlusterkennung
Der Empfänger sortiert eintreffende Fragmente nach Sequenznummer und setzt ein Paket zusammen, sobald vom B-Fragment bis zum E-Fragment eine lückenlose Folge vorliegt. Da die Leitungen unterschiedliche Laufzeiten haben, treffen Fragmente in abweichender Reihenfolge ein.
Zur Verlusterkennung definiert RFC 1990 die Größe M: die kleinste der zuletzt je Leitung empfangenen Sequenznummern. Fehlt ein Fragment mit einer Nummer unterhalb von M, kann es nicht mehr eintreffen; das betroffene Paket wird verworfen. Implementierungen ergänzen dies um Timeouts. MP überträgt verlorene Fragmente nicht erneut; das übernehmen bei Bedarf höhere Schichten wie TCP.
Betrieb des Bündels
LCP-Aushandlung und Authentifizierung (etwa CHAP oder PAP) laufen auf jeder physischen Leitung einzeln ab; erst deren Ergebnis bestimmt zusammen mit dem Endpoint Discriminator die Bündelzuordnung. Die Netzwerkprotokollphase (NCP) findet danach einmal über das Bündel als logische PPP-Verbindung statt. Leitungen können im laufenden Betrieb hinzukommen oder wegfallen; für die bedarfsgesteuerte Zu- und Abschaltung definiert RFC 2125 mit BAP und BACP ein eigenes Protokollpaar.
Sicherheit
MP verschlüsselt nicht und sichert die Integrität der Fragmente nicht. Der Endpoint Discriminator wird unauthentifiziert übertragen und taugt daher allein nicht zur Zugangskontrolle; die Bündelzuordnung stützt sich deshalb zusätzlich auf den per PAP oder CHAP authentifizierten Namen. Vertraulichkeit muss durch höhere Schichten oder das PPP Encryption Control Protocol (ECP, RFC 1968) hergestellt werden.