0.0.1. Titelblatt 1. Einleitung 2. Benutzung von IP Multicast 2.1. SLIP und PPP Verbindungen 2.1.1. IP-Multicast und PPP 2.1.2. Warum kann IGMP nicht verwendet werden? 3. Verwendung von RTP über PPP 3.1. Beschränkte Bandbreite 3.2. Benötigte Bandbreite 3.2.1. Berechnung der benötigten Bandbreite 3.2.2. Verringerung der benötigten Bandbreite 3.2.3. Methoden zur Verringerung der Bandbreite 4. Verwendung von Session Announcements 4.1. Übertragung von SAP/SDP über PPP 4.2. Welche Bandbreite wird für SAP/SDP benötigt? 4.3. Wie könnten SAP/SDP Announcements komprimiert werden? 4.4. Komprimierung von SAP 4.4.1. Erzeugen eines Kontextes 4.4.2. Erneuter Empfang eines Announcements 4.4.3. Behandlung von Fehlersituationen 4.4.4. Implizites Timeout 4.4.5. Caching Option bei temporären Verbindungsabbruch 4.4.6. Verwendung eines neuen PPP-Protokolls 4.5. Komprimierung von SDP-Daten 4.6. Zusammenfassung 5. Bandbreitenmessung einer PPP Verbindung 5.1. Wie kann die Bandbreite gemessen werden? 5.2. Beschreibung der Versuchsumgebung 5.3. Theoretisch meßbare Bandbreite 5.3.1. Protokoll Overhead 5.3.2. Zu erwartende Bandbreite 5.4. Messungen mit verschiedenen Paketgrößen 5.5. Messungen bei verschiedenen ACCM-Werten 5.6. Messungen bei Benutzung von V.42 5.7. Kompression von PPP-Headern 5.8. Messungen mit V.42bis 5.9. Entwicklung eines Verfahrens zur Bestimmung der Bandbreite 5.9.1. Normalisieren der gemessenen Werte 5.9.2. Bestimmung der effektiven Bandbreite 5.10. Zusammenfassung der Ergebnisse 6. Beschreibung unserer Testimplementierung 6.1. Welche Testumgebung können wir verwenden? 6.1.1. Verwendung eines Tunnels 6.2. Eine eigene kleine PPP-Implementierung 6.2.1. TTY Interface 6.2.2. HDLC-Layer 6.2.3. PPP Layer 6.2.4. IP-UDP-RPT Header-Compression-Layer 6.2.5. RTP Mixer / Translator 6.2.6. cSAP 6.2.7. cSDP 6.2.8. Bandbreiten-Messung 6.2.9. Simuliertes Netzwerk-Interface 6.2.10. Filehandler 6.3. Messungen an der Implementierung 6.4. Vorhersage der verfügbaren Bandbreite 6.5. Zusammenfassung 7. Beschreibung der IsdnLib 7.1. ISDN und SUN 7.1.1. SunXTL 1.2 7.1.2. Nachfragen im INTERNET 7.1.3. SunShine 7.2. Ein kurzer Überblick über ISDN 7.3. Aufgabenteilung 7.4. Beschreibung der Implementierung 7.4.1. DLPI Interface 7.4.2. Msg Encode / Decode 7.4.3. Msg Handling, Indication Handling, Q931 State-Machine 7.4.4. IE Handling 7.4.5. Scheduler 7.4.6. IsdnLib 7.5. Warum eine neue Library? 7.5.1. Socket-Interface 7.5.2. CAPI 2.0 7.5.3. Implementierung als eigene Library 7.6. Beschreibung der entwickelten IsdnLib 8. Zusammenfassung 8.1. Kritikpunkte
Anhänge
A. A Compressed Session Announcement Protocol A.1. Abstract A.2. Introduction and Motivations A.3. Description of the basic protocol A.3.1. Context Assignment A.3.2. Retransmitting announcements A.3.3. Automatic invalidation A.3.4. Error condition: handling of possibly packet loss A.3.5. Broken link handling A.4. Packet Format A.4.1. ASSIGN Packet A.4.2. RETRANSMIT Packet A.4.3. DELETED Packet A.5. Security Considerations B. Compressing SDP Packets B.1. CSDP B.2. The Presence Bit B.3. Text Compression B.4. CSDP Specification B.4.1. Version (v=) B.4.2. Header-Length B.4.3. Origin (o=) B.4.4. Session Name (s=) B.4.5. Session Description (i=) or Media Title B.4.6. URI (u=) B.4.7. E-Mail (e=) B.4.8. Phone Number (p=) B.4.9. Connection Information (c=) B.4.10. Bandwidth (b=) B.4.11. Times (t=) B.4.12. Repeat Interval (r=) B.4.13. Timezone Adjust (z=) B.4.14. Encryption Key (k=) B.4.15. Session Attribute (a=) B.4.16. Media (m=) B.4.17. Combined Compression of <net-type> <addr-type> <addr> B.5. Comparison of SDP and CSDP B.6. Summary C. Source-Code der Testimplementierung C.1. Das TTY-Interface, Simuliertes Netzwerkinterface C.1.1. server.c C.1.2. modem.c C.2. HDLC Layer C.2.1. hdlc.c C.3. PPP Layer, Bandwidth Layer C.3.1. ppp.h C.3.2. ppp.c C.4. IP/UDP/RTP Header Compression C.4.1. ipUdpRtpCompr.h C.4.2. ipUdpRtpCompr.c C.5. RTP Translator C.5.1. rtpTranslator.c C.6. cSAP C.6.1. csap.c C.7. cSAP C.7.1. csap.c C.8. Filehandler C.8.1. filehandler.h C.8.2. filehandler.c C.9. Sonstige Files C.9.1. misc.h C.9.2. rtp.h C.9.3. tabxlaw.h C.9.4. tabxlaw.c C.9.5. Makefile D. Manualpages für die IsdnLib D.1. IsdnInitialize D.2. IsdnFini D.3. IsdnMainLoop D.4. IsdnError D.5. IsdnCreateFileHandler D.6. IsdnDeleteFileHandler D.7. IsdnCreateTimerHandler D.8. IsdnDeleteTimerHandler D.9. IsdnAlertingReq D.10. IsdnCallReq D.11. IsdnConnectReq D.12. IsdnDialReq D.13. IsdnKeypadReq D.14. IsdnReleaseReq D.15. IsdnAlertInd D.16. IsdnCallInd D.17. IsdnChannelInd D.18. IsdnChargeInd D.19. IsdnConnectInd D.20. IsdnDisconnectInd D.21. IsdnReleaseInd E. Source-Code für die IsdnLib E.1. Die IsdnLib Routinen E.1.1. src/IsdnLib.h E.1.2. src/Q931Alerting.h E.1.3. src/Q931CallProceeding.h E.1.4. src/Q931Connect.h E.1.5. src/Q931ConnectAck.h E.1.6. src/Q931Notify.h E.1.7. src/Q931Progress.h E.1.8. src/Q931Release.h E.1.9. src/Q931Setup.h E.1.10. src/Q931SetupAck.h E.2. Behandlung von Information Elements E.2.1. src/BearerCap.h E.2.2. src/CalledPartySubAddr.h E.2.3. src/CallingPartyNo.h E.2.4. src/CallingPartySubAddr.h E.2.5. src/Cause.h E.2.6. src/Keypad.h E.2.7. src/LowLayerComp.h E.2.8. src/NotifyInd.h E.2.9. src/ProgressInd.h E.3. Sonstige Q.931 Handling Routinen E.3.1. src/CallRef.h E.3.2. src/Q931.h E.3.3. src/Q931Main.h E.3.4. src/Q931Timer.h E.4. DLPI Interface E.4.1. src/Dlpi.h E.4.2. src/dlpi.h E.5. Allgemeine Routinen E.5.1. src/Misc.h E.6. Debugging Stuff E.6.1. src/Dump.h E.6.2. src/Dump.c E.6.3. src/Debug.h E.7. Für das Allgemeine E.7.1. README, eine allgemeine Einführung E.7.2. DOC, allgemeine Beschreibung E.7.3. HISTORY, Beschreibung des zeitlichen Verlaufes E.7.4. Makefile E.7.5. config, Konfiguration für make F. Literaturverzeichnis