Skip to content

Instantly share code, notes, and snippets.

@Mic92
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mic92/3ce3d9cdf4fc693344d2 to your computer and use it in GitHub Desktop.
Save Mic92/3ce3d9cdf4fc693344d2 to your computer and use it in GitHub Desktop.
Vorbereitung auf Kommunikationsnetze

Datenkommunikation im lokalen Bereich

  • Adressierung: global eindeutige 48-bit lange MAC-Addresse

Classical Ethernet

  • Funktionsweise:
    • 10 Mbps
    • alle Teilnehmer passiv auf einem langen Koaxialkabel
    • Übertragung im Basisband mit digitalen Zeitmultiplex
    • Manchesterkodierung:
      • Übertragung von Takt und Daten
      • NRZI (Not Return To Zero Inverted) mit 1 Übergang pro Symbol
      • Signalrate doppelt so hoch wie Datenrate
  • Datensicherung mit CSMA/CD:
    • Carrier Sense: nicht senden, wenn jemand sendet
    • Collision Detection: Bei Kollisionen Übertragung abbrechen und mit zufälliger exponentielle Verzögerung erneut senden

Token-Ring

  • Funktionsweise:
    • 4,16 Mbps
    • abgeschirmtes Twisted Pair
    • alle Teilnehmer aktiv am Medium
    • sternenförmig physikalisch verkabelt
    • differentielle Manchesterkodierung
    • token passing:
      • Freitoken wird von Nachbar zu Nachbar weitergegeben
      • bei Übertragung: statt Freitoken, Datenrahmen mit Steuerinformation
      • Datenrahmen wird bis zum Empfänger im Ring weitergeben.
  • Datensicherung:
    • Festlegung einer Aktiven Monitorstation (AM) anhand der höchsten MAC-Addresse
    • Verlust des Tokens: AM erzeugt neuen Token nach Timeout
    • Endlose Kreisendes Packet bei Empfängerausfall: AM setzt M-Bit, bei erneutem Erscheinen des M-Bit -> Frei-Token statt Datenframe
    • Doppeltes Token: Sender bricht ab, wenn fremder Token emfangen wird
    • Ausfall des Monitors: neuen AM aushandeln
    • Ausfall einer Netzschnittstelle: mit Ringleitungsverteilers überbrücken

FDDI

  • Funktionsweise:
    • 100 Mbps
    • Übertragung über Multi-/Monomode-Glasfaser über lange Distanz (200km)
    • physikalisch über doppelten Ring verbunden
    • token bus:
      • Unterteilung in synchrone/asynchrone Bandbreite
      • Token wird über ganzes Netzwerk geschickt
      • Target Rotation Timer - Token Hold Timer = Zeit für asynchrone Datenübertragung
    • verschiedene Anbindung an den Ring:
      • Dual Attached Stations
      • Dual Attached Concentrators mit Single Attached Stations/Concentrators
    • 4B5B-Code
  • Datensicherung:
    • sekundärer Ring falls primärer Ring ausfällt

Highspeed-LANs

  • Fastethernet:
    • 4B5B-Code statt Manchester (Wechsel zwischen High/Low -> Taktrückgewinnung)
    • Twisted Pair, Glasfasern
  • Gigabitethernet:
    • 8B10B-Code
    • Vollduplex: keine Kollisionen
    • direkte Verbindungen ohne Crossover-Kabel möglich
    • 1000BASE-T: vier Doppeladern in beide Richtungen

WLAN IEEE 802.11

  • Funktionsweise:
    • verbreiteste Variante: Distributed Coordination Function
    • 2.4GHz und 5GHz
    • 802.11:
      • DSSS (Direct Sequence Spread Spectrum): Frequenzspreizcode
      • FHSS (Frequency Hopping): Subfrequenzen, welche durch eine vorgebene Sequenz durch gewechselt wird
      • IR (Infrared): Infarot
    • 802.11b: nur DSSS
    • 802.11a and 802.11g: OFDM, mehrere orthogonale Träger -> resistenter gegen Übersprechen
    • DIFS:
      • Zeitraum wird genutzt, wenn mehre APs um einen Channel konkurrieren
      • Zeit, die ein Sender vor dem Senden min. wartet -> wenn besetzt Random Backoff
    • PIFS – PCF Inter Frame Space:
      • Zeit, die gewartet wird bevor "Point coordination function"-Stationen senden (QoS für WLAN)
      • DIFS > PIFS > SIFS
    • AIFS - Arbitration Inter Frame Space:
      • Zeit bevor der Sender sendet (größer IDFS)
      • unterschiedlich je nach Wichtigkeit der Daten
    • EIFS – Extended Inter Frame Space:
      • statt DIFS nach einem Fehlerfall
    • nach dem Senden wird nach SIFS (Short Inter Frame Space) vom Empfänger ein ACK gesendet -> sonst Random Backoff + Retransmit
    • Unterteilung in Zellen (Basic Service Sets)
  • Zugriffsverfahren CSMA/CA
    • Collision-Avoidance durch RTS/CTS (optional):
      • Sender: Ready-To-Send-Signal (RTS)
      • Basisstation Clear-To-Send-Signal (CTS)
  • Probleme
    • Hidden Terminal:
      • Verkehr 2 Sender, die sich nicht sehen, kollidiert beim Empfänger
      • Vermeidung durch RTS/CTS
      • Erkennung durch ACKs
    • Exposed Terminal:
      • B will an A senden, A ist außer Reichweite von C
      • C will an D senden, B ist außer Reichweite von D
      • es besteht kein Konflikt aber trotzdem, kann nur B oder C senden aufgrund von RTC/CTS

Internet - Protokoll

  • IP (IPv4/IPv6):
    • packet-basiert
    • ipv4: 2^32 = 4.294.967.296, ipv6: 2^128
    • cidr/hosts/mask: 24/256/0, 25/128/127, 26/192/64, 27/32/224, 28/16/240, 29/8/248, 30/4/252, 31/2/254, 32/1/255
    • v6: mehr Adressraum, QoS, kein Fragmentation, Fixed Header, stateless Autoconfiguration, icmp neighbor discovery statt ARP
    • Fragmentierung, wenn MTU vom link kleiner als Größe des Packetes. Muss anhand der Header später wieder zusammen gesetzt werden
  • Routing/Forwarding
    • Forward: Übertragung eines Packet von einem Port zum anderen Port
    • Routing:
      • Einteilung in hirarische Subnetze
      • Routingentscheidung anhand des Subnetzes

Protokolle

  • ARP:
    • Address Resolution Protocol
    • IP zu MAC-Addressauflösung im LAN bei ipv4
  • DHCP
    • Dynamic Host Configuration Protocol
    • Port 68, udp
    • Requests:
      • Client: DHCP discover
      • Server: DHCP offer (mit vorgeschlagener ip addressen/network mask, gateway, dns, ntp, hostname...)
      • Client: DHCP request
      • Server: DHCP ack
  • NAT:
    • Ersetzung der Source IP/Source Port des Clients beim Versenden von Packeten mit der öffentlichen Ip des Routers/neuen zufälligen Source Port
    • Bei Antwort auf Router IP/neuen Source Port -> rückübersetzung Client IP/Source Port
    • Problem: P2P-Anwendungen, eigene Services -> Lösungen: statische Portweiterleitung, UPnP

Internetworking / Routing

Koppelelemente

  • Hub:
    • alle Kabel in eine Kollisionsdomain
    • Ethernetframe wird kopiert
  • Bridge
    • Verbindet 2 Netzwerksegmente
    • lernt MAC-Addressen, wenn Sender sie benutzen
    • Frames mit unbekannten Ziel-MAC-Addressen werden an alle Ports geschickt
  • Switch: wie Bridge, aber mehrere Segmente
  • Router:
    • entscheidet anhand des IP-Headers und der Routingtabelle die Route (Layer 3)
    • Longest Prefix Match

Aufbau Router

  • Input ports/output ports: (queuing, Header inspezieren)
  • Routing processor (implementiert routing protocol)
  • switching fabric (leitet Packete weiter):
    • via memory: Packet in Hauptspeicher kopieren -> auf Speichergeschwindigkeit begrenzt
    • via Bus: geteilter Bus zwischen allen Ports -> auf Busgeschwindigkeit begrenzt
    • via interconnection network: Banyannetzwerke, Crossbar,

Routingprotokolle

  • RIP:

    • udp
    • distance vector protocol
    • alt -> Begrenzung bei Distanzmetrik (15 Hops), Anzahl der Peers, jedes Advertisment hat nur 25 Subnets
    • poison reverse: sendet die Benachrichtigung, wenn ein Netz nicht mehr erreichbar ist (16 Hops)
  • OSPF:

    • Eigenes Protokoll (weder UDP noch TCP)
    • Interiorroutingprotokoll
    • CPU-/Speicher-/Trafficintensive bei größeren Netzen -> Abhilfe mit Hirachiebildung
    • Designated-Router: Quelle für neue Routen
    • Unterstützt Mulicast/Broadcast
    • kurze Reaktionszeit bei Topologieänderungen:
      1. Interface status changes
      2. Failure to receive hello packets from its neighbor (dead timer)
  • BGP:

    • tcp
    • gut filterbar mit Attributen (policy-based routing)
    • skaliert gut
    • konvergiert langsam
    • EBGP: Routenaustausch zwischen autonomen Systeme
    • IBGP: Routenaustausch innerhalb einer AS
    • BGP message contains "routes"
    • "route" is a prefix and attributes: AS-PATH, NEXT-HOP,...
    • es wird eine Route ausgewählt
  • Hot-Potato-Routing: wenn bei BGP mehre Intra-Routen mit gleicher Metrik auftauchen, wird Route mit nächstem Hop gewählt (z.B. bestimmt mit OSPF)

  • Broadcast-Routing:

    • Problem: Packetduplizierung
    • Lösung 1:
      • Spanning-Tree
      • Zentrumsknoten bestimmen (Bridge-ID, MAC-Addresse)
      • jeder Switch/Bridge sendet Nachricht an Zentrumsknoten
      • Nachricht wird weitergeleitet, bis sie einen Knoten erreicht, der bereits zum Baum dazugehört
    • Lösung 2:
      • kontrolliertes Flooding
      • nur Packete weiter geleitet, deren Sequenznummer nicht schon gesehen wurde
  • Multicast-Routing (DVMRP):

    • beruht auf RIP + Reverse Path Forwarding
    • Reverse Path Forwarding: beim Empfangen von Multicastpacketen wird überprüft, ob die Source-IP auch über dem empfangnen Interface geroutet wird -> bei erfolgreichen Check wird Multicastpacket an alle Interface geschickt.
    • mit IGMP können sich Stationen beim Router für den Empfang bestimmte Multicastgruppen registrieren

Dijkstra

  • link state algorithm, Grundlage von OSPF
  • iterativ Nachbarknoten hinzufügen und neue kürzeste Wege hinzufügen
  • sobald ein Nachbarknoten ausgewählt wurde, ist der aktuellste Weg der kürzeste

Bellman-Ford

  • distance vector algorithm, Grundlage von BGP
  • unterstützt auch negative Gewichtungen und verteilte Berechnung
  • wann immer sich die Gewichtung der eigenen kürzesten Route ändert, werden die Nachbar benachrichtigt -> sobald sich nichts ändert: Konvergierung

Transportprotokolle

UDP

  • verbindungslos
  • kein Retransmit
  • kleine Headergröße
  • keine Garantie der Reihenfolge der Nachrichten
  • kein Congestion vorgegeben
  • Payload so groß, wie die MTU
  • Vor- und Nachteil: Anwendung kann entscheiden wie Fehler behandelt werden
  • niedrigere Latenz durch verbindungslosigkeit möglich
  • Checksummenberechnung:
    • IP-Header, UDP-Header und Daten zu 16-bit Zahlen zusammenfassen und addieren
    • dabei das Carry-Out wieder bei jeder Addition wieder auf das Ergebnis als 1 aufaddieren

TCP

  • verbindungsorientiert:
    • Dreiwege-Handshake:
      • [Client] TCP SYN: SYNbit=1, Seq=x
      • [Server] TCP SYNACK: SYNbit=1, Seq=y, ACKbit=1; ACKnum=x+1
      • [Client] ACK für SYNACK: ACKbit=1, ACKnum=y+1
    • Abbau:
      • [A] TCP FIN: FINbit=1, seq=x
      • [B] ACKbit=1; ACKnum=x+1
      • [B] FINbit=1, seq=y
      • [A] ACKbit=1; ACKnum=y+1
      • B kann auch in einem Packet TCP FIN bestätigen und selber FIN einleiten
  • flow control (Flußsteuerung):
    • Empfänger sendet in Antwortpacketen (z.B. ACK) im Window-Feld, wieviel Bytes im Empfangspuffer noch frei sind
    • Window-Feld == NULL (Zero-Window): keine Daten mehr schicken
  • maximum segment size (MSS): Größe der Nutzdaten eines TCP-Packets
  • congestion control (Überlaststeuerung):
    1. zu Begin wird congestion window auf 1 gesetzt
    2. tcp slow start:
    • nach jedem Packet bestätigten wird das congestion window um ein MSS erhöht
    • = effektiv pro Fenster verdoppelt
    • wenn congestion window den Wert slow start threshold (ssthresh) erreicht -> Übergang in congestion avoidance
    1. Wenn doppelte ACKs empfangen unterscheidung zwischen TCP Tahoe und TCP Reno
    • Tahoe: Erkennung von Packetverlust durch individuelle Timer -> Reduktion des ssthresh auf die Hälfte des aktuelle congestion window; Reduzierung des congestion window auf 1 MSS -> slow start
    • TCP Reno: Wenn 3 doppelte ACKs empfangen wurden -> Reduktion des sslthres und das congestion window auf die Hälfte des aktuellen congestion Window -> Übergang in Fast Recovery: verloren geganges TCP-Packet erneut senden (fast retransmit) und bei Bestätigung (ACK) Übergang in Congestion Avoidance, wenn keine Bestätigung -> Slow Start

Probleme von TCP

  • RTT: (Round-Trip-Time)
    • zu kurz: unnötige Timeouts, Retransmission
    • zu lang: langsame Reaktionszeit auf verlorene Packete
    • Lösung: exponentieller gewichteter laufender Mittelwert
    • EstimatedRTT = (1 - α) * EstimatedRTT + α * SampleRTT
    • DevRTT = (1 - β) * DevRTT + β * |SampleRTT - EstimatedRTT|
    • TimeoutInterval = EstimatedRTT + 4 * DevRTT
  • Long Fat Networks:
    • Problem:
      • Sender kann alle Sequenznummern zyklisch durchlaufen, während immer noch alte Pakete existieren
      • kleine Flusskontrollfenster von alten Protokollen -> niedrige Effizienz
      • Verschwendung von Ressourcen bei Go-Back-N Protokollen -> Protokolle mit selektiven Wiederholungen
      • Kommunikationsgeschwindigkeit steigt schneller als Rechengeschwindigkeit -> weniger Zeit zur Protokollverarbeitung -> Protokolle müssen einfacher werden
    • Bandwidth-Delay-Product: Multiplikation der Bandbreite mit der Paketumlaufzeit
    • Empfängerfenster sollte mindestens so groß sein wie das Bandwidth-Delay-Product
    • Lösung:
      • kleinere Header -> Reduzierung der Verarbeitungszeit
      • Felder im Header sollten groß genug sein -> löst Problem der Wiederverwendung von Sequenznummern während alte Pakete unterwegs sind
      • maximale Datengröße so groß, um Software-Overhead zu reduzieren
        • Jumboframes bei Gigabit-Ethernet (max. 9KB)
        • Jumbopakete bei IP (IPv4 bis 64KB, IPv6 > 64KB)
      • aufgrund hoher Verzögerung Feedbacks vermeiden
      • Pakete für Verbindungsanforderung mit Nutzdaten versehen

Netztechnologien

Digital Subscriber Line

  • symmetrisch verdrillte Doppeladern -> Balance von Induktivität/Kapazität -> Übersprechen verringern
  • Reflexionen bei Stichleitungen durch Nachjustieren vermindern
  • Bei größere Entfernung steigt die Dämpfung
  • Parallele POTS/ISDN-Kanäle begrenzen die nutzbare Bandbreite
  • Modulierungsmöglichkeiten:
    • DMT: 256 freimodulierbare Träger
    • CAP: Variante von QAM, einfach, 1 Träger für Upstream, 1 Träger für Downstream
  • VDSL:
    • Glasfaser, verschiedene Entfernung zum Kunden
    • Ebenfalls Frequenz für Telefon notwendig
    • VDSL-Allianz: DMT (Zeitmultiplexing)
    • VDSL-Koalition: QAM/CAP (Frequenz-/Zeitmultiplexing)

Carrier Grade Ethernet

  • verschiedene Trägernetze wie SDH/Sonet, MPLS, Carrier-Ethernet
  • standardisierte Services:
    • E-Line: Punkt zu Punkt Ethernetverbindung über WAN
    • E-LAN: Ethernetsegment zwischen mehreren Teilnehmern über WAN
    • E-Tree: Verbindung mehrerer Rootknoten, welche mit verschiedenen Kindsknoten verbunden sind für zum Beispiel für Mobilefunknetze, Video-on-Demand
  • Skalierbarkeit:
    • der Dienste
    • der Netzgröße
    • der Datenrate
  • Zuverlässigkeit:
    • spezifierte Zuverlässigkeitsklassen
    • schneller Methoden zur Methoden zur Konvergierung als Spanning Tree Protocol
  • Quality-of-Service
    • MPLS-TE: Bandbreitengarantien
    • Spezifikation von Performanceparameter(Verfügbarkeit, Verzögerung)/Bandbreitenprofilen
  • Service Management
    • Loss/Delay Measurement: Verlust/Verzögerungsmessungen
    • Continuity- und Connectivitychecks der Verbindung
    • Linktrace, Layer-2-Ping

Virtual LAN (VLAN?)

  • Tag im Ethernetframe auf der selben physikalische Hardware verschiedene logische Layer2-Netze zu erstellen

MPLS

  • innerhalb eines autonomen Systems
  • Router mit OSPF/IS-IS untereinander bekannt machen
  • Pfade nennt man Label Switched Path (LSP)
  • Einstiegspunkte heißen Ingress-Router, Ausgangspunkte Egress-Router
  • jedem Packet wird beim Betreten des MPLS-Netzwerk ein Label vorangestellt
  • LSPs werden entsprechend der (QoS)-Anforderungen geschaltet
  • Nur Auswertung des Labels -> kleinere Routingtabellen, weniger Delay beim Lesen des Headers (virtuelle Kanäle über das IP-Netz)
  • flexibler als andere Routingprotokolle (jedes Packet kann unabhängig geroutet werden)
  • Für Traffic Engineering wird beim Schalten der LSPs und bei OSPF zusätzliche Contstraints umgesetzt (COPS, OSPF-TE, RSVP-TE)

Dienste im NGN (VoIP), Quality of Service

  • Migration von leitungsvermittelter Telekommunikations zu packetvermittelten (IP-)Netze
  • Konvergenz von Diensten zwischen fest/mobil
  • homogenere kostengünstigere Netze
  • Breitbandgaratien für bestimmte Dienste
  • Trennung von Dienst und Transport
  • Media Gateways:
    • Brücke zwischen verschiedenen Legacynetzen (z.B. ISDN, analog Telefonie) und packetvermittelten Netzen (SIP, H.263)
    • Konvertierung zwischen Mediaformaten
    • Media Gateway Controller: steuert Mediagateway
    • Signalling Gateway: zusätzlich notwendig bei Sprachnetzen um Transport der Signalisierung zu konvertieren
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment