Universität Mannheim
Lehrstuhl für Praktische Informatik IV
Prof. Dr. W. Effelsberg
Jörg Widmer

Übungsblatt 10

Übung: 14.07.2000

Die Aufgaben, die auf dieser Seite ausgefüllt werden können, werden auch über das Web ausgewertet. Dazu muß die Matrikelnummer eingegeben werden und das Ganze abgeschickt werden. Voraussetzung ist allerdings, daß der Studierende auch für die elektronische Auswertung angemeldet ist.


Aufgabe 1: User Datagram Protocol (UDP)

  1. Nennen Sie die wichtigsten Eigenschaften von UDP. Für welche Einsatzzwecke ist UDP geeignet? Nennen Sie mindestens ein Anwendungs-Beispiel für das UDP besser geeignet ist als TCP.

  2. Anstatt das Transportprotokoll UDP zu verwenden können Anwendungen auch direkt das IP Protokoll verwenden um Daten zu verschicken. Was für einen "Mehrwert" bietet UDP gegenüber IP, d.h. welche zusätzlichen Dienste werden bereitgestellt?

Aufgabe 2: Transmission Control Protocol (TCP)

  1. TCP verwendet für den Verbindungsaufbau einen sogenannten 3-Way-Handshake. Warum werden nicht einfach nur 2 Pakete (Verbindungsaufbau-Request und Bestätigung) verschickt?

  2. Für den Verbindungsabbau werden sogar 4 Pakete verschickt. Beide beteiligten Rechner schicken einen Disconnect Request und bestätigen den jeweils anderen DC. Dies ist wichtig aus Grüden der Zuverlässigkeit. Wie könnten bei einem einfacheren Verbindungsabbau Daten verlorengehen?

  3. Was für ein Flußkontrollprotokoll wird von TCP verwendet?

  4. TCP erkennt verlorengegangene Pakete an Lücken in der Reihenfolge der Sequenznummern. Allerdings kann sich auf IP Ebene die Reihenfolge von Paketen ändern (Packet-Reordering), was ebefalls Lücken in der Reihenfolge der Sequenznummern erzeugt (die dann später gefüllt werden). Da TCP einen zuverlässigen Transportdienst anbietet, muß es unterscheiden können, ob ein Paket verloren wurde oder nur "reordered" ist, d.h. später noch ankommt. Ist diese Unterscheidung möglich?
    Wenn ja, wie?

  5. Sequenznummern in TCP haben eine Breite von 32 Bit. Wie lange dauert es bis sich Sequenznummern wiederholen, wenn Hosts kontinuierlich mit der angegebenen Geschwindigkeit senden?

    Modem (28.8 Kbit/s)
    Ethernet (10 MBit/s)
    ATM (155 Mbit/s)
    Gigabit-Ethernet (1 GBit/s)
    Erlätern Sie, warum ein Überlauf der Sequenznummern problematisch ist?

  6. Wieviel Bits werden in TCP für die Größe des Schiebefensters verwendet?
    Ab welchen Bandbreiten stellt die maximale Fenstergröße eine Beschränkung für die erreichbare Senderate dar? Gehen Sie von einer für das Internet üblichen Round-Trip Time (Zeit bis ein Paket zum Empfänger und von dort zurück zum Sender gelangt) von 70 ms aus.

Aufgabe 3: ASN.1

Gegeben ist einen Datentyp in der abstrakten Syntax von ASN.1 und ein Datensatz in der Transfer-Syntax, wobei zur Kodierung die Basic-Encoding-Rules (BER) verwendet wurden.

Haeuser ::= [APPLICATION 0] IMPLICIT SET
        {  adr           Adresse,
           wohnungen     [APPLICATION 1] IMPLICIT INTEGER,
           stockwerke    [APPLICATION 2] IMPLICIT INTEGER
        }
Adresse ::= [APPLICATION 3] IMPLICIT  SEQUENCE
        {  strasse TeletexString,
           hausnummer INTEGER
        }

60161510 4216110 3104116 110610 6316710 1416210 'A''5'0216 110F16

Anmerkung: Die tiefgestellten Zahlen geben die Basis den Zahlensystems an (d.h. 6016 entspricht 60 im Hexadezimalsystem).

  1. Geben Sie den Record-Value dieses Datensatzes in der Syntax von ASN.1 an.

    Haeuser ::= { adr ::= { strasse ::= "???",
                            hausnummer ::= ???,
                          },
                  wohnungen ::= ???,
                  stockwerke ::= ???
                }
          

    • Welcher Straßennahme wurde übergeben:

    • Welche Hausnummer wurde übergeben:

    • Welche Anzahl an Wohnungen wurde übergeben:

    • Welche Anzahl an Stockwerken wurde übergeben:

  2. Erweitern Sie den Datentyp um eine Ganzzahlkomponente "belegt" als primitive Type. (Fügen Sie die neue Komponente am Ende der bisherigen Definition an)

  3. Wie sieht der kodierte Rekord (also die Transfer-Syntax) aus, wenn 5 Wohnungen belegt sind?

    Die Antwort ist in der Form
    [Wert][Wert]...
    [Zahlensystem][Zahlensystem]...
    einzugeben!

       

  4. Kodieren Sie den erweiterten Rekord zusätzlich mittels XDR (eXternal Data Represenation). Achtung: Bei XDR gilt 32 Bit Alignment. Dies hat zur Folge, daß an einigen Stellen Padding Bytes eingefügt werden müssen. Markieren Sie Padding Felder mit "-".

       

Hilfestellung:

Definition des Tagbytes:

Tabelle der Tags für das Encoding von Universal types:
Tag Meaning
1 BOOLEAN
2 INTEGER
3 BIT STRING
4 OCTET STRING
5 NULL
6 OBJECT IDENTIFIER
7 OBJECT DESCRIPTOR
8 EXTERNAL
16 SEQUENCE and SEQUENCE OF
17 SET and SET OF
18 NumericString
19 PrintableString
20 TeletexString
21 VideotexString
22 IA5String
23 Generalized Time
24 UTCTime
25 GraphicString
27 GeneralString



Abgabedaten:

Matrikelnummer: Password: 

Universität:
Mannheim
Freiburg
andere


Jörg Widmer widmer@pi4.informatik.uni-mannheim.de