Wo kommt’s her…

…wo geht’s hin?

Die Abschaffung der Klassengesellschaft! Aufgrund von rund 600.000 Einträgen in der Tabelle eines „durchschnittlichen“ Routers im Internet zu Zeiten der Klassennetze und keiner einheitlichen Vergabe von IP-Adressen an Institutionen und Organisationen wurden folgende Lösungen gefunden:

CIDR (Classless Inter-Domain Routing): RFCs 1518/1519 führten ein hierarchisches Routing, VLSM (Variable Length Subnet Mask) und die Präfix-Schreibweise (Anzahl der gesetzten Bits in der Subnetzmaske) ein. Das ermöglicht die beliebige, optimale Aufteilung des Ausgangsnetzwerk ohne viel „IP-Adressen-Verschnitt“ und Optimierung durch Routen-Zusammenfassung (Supernetting und Route Summarization).

Subnetz-Maske mit VLSM

Bit-Hilfstabelle

Fazit: Klassennetze sind seit Einführung des VLSM ebenso nur noch Subnetze!

RFC 1918 legt private Adressbereiche fest, als letzte Angabe in CIDR-Schreibweise (Netzanteil/Subnetz-Bits):

  • Klasse A: 10.0.0.0 – 10.255.255.255 / 255.0.0.0 – 10/8
  • Klasse B: 172.16.0.0 – 172.31.255.255 / 255.255.0.0 – 172.16/12
  • Klasse C: 192.168.0.0 – 192.168.255.255 / 255.255.255.0 – 192.168/16

Das Klasse A – Netz 127.0.0.0 / 255.0.0.0 ist als Loopback-Netz bei jedem System reserviert und wird nicht über die physische NIC, sondern direkt in der TCP/IP-Logik verwaltet. „localhost“ löst bekanntlich über 127.0.0.1 („die loopback-Adresse“) auf.

„Aus dem Internet“ kommen Antworten auf Anfragen nur per NAT (Network Address Translation) zurück zum System im internen Netzwerk.

Bekommt das System weder per DHCP noch manuell eine IP-Adresse und Subnetzmaske, greift Zeroconf (RFC 3927) [bzw. die Microsoft-Extrawurst APIPA (Automatic Private IP-Adressing)] und das System weist sich selbst eine zufällige, nicht besetzte IP-Adresse aus dem Klasse B – Netz 169.254.0.0 / 255.255.0.0 zu.

Daneben gibt es noch die unspezifische IP-Adresse 0.0.0.0 / 0.0.0.0, die den gesamten Adressbereich umfasst und sowohl im Rahmen der DHCP-Aushandlung als Client-Startadresse eingesetzt wird, als auch als Ziel für die Default-Route.

Attention! Trotz aller Layer-3-Logik der Broadcast-Domäne findet der Austausch von IP-Paketen in einem Subnetz über die MAC-Adressen der NICs statt – deswegen auch die ARP-Tabelle, in der vor jedem Austausch (auch ICMP/ping!) erst geklärt wird, welche MAC-Adressen als Ziel- und Quelladressen hinter den IP-Adressen stecken.

Beim Routing über das Gateway heißt das, dass ein externes System zur Kommunikation die MAC-Adresse der Schnittstelle des Gateways für seine IP-Adresse bekommt!

Unterschied Brutto – Netto

Der Netto-Arbeitslohn ist der Anteil des mit Lebenszeit erarbeiteten Geldes, der verwendet wird, um die täglichen Zwangsabgaben zu leisten: Mehrwertsteuer, Kraftstoffsteuer, Erbschaftssteuer, Vermögenssteuer, Versicherungssteuer, alkoholbezogene Steuern, Schaumweinsteuer, Alkoholsteuer, Biersteuer, Tabaksteuer, Kaffeesteuer, umweltbezogene Steuern, Kfz-Steuer, Grundsteuer, Energiesteuern, Zollsteuer, Hundesteuer, Verwaltungsgebühren, Rundfunkgebühren, „Finanzdienstleistungen“ (Kontoführungsgebühren, Finanztransaktionsgebühren, Referenzzinssatz-Aufschlägen…) u.v.a.

Der Teil vom Brutto-Arbeitslohn, der nach Abzug des Netto-Arbeitslohnes noch übrig bleibt, ist die zumeist monatliche Zwangsabgabe für alle Ausgaben des Reichsunternehmens-Haushaltes, die sich die Regierungen ausdenken.

Die jeweilige konkurrenzbefreite und in ihrer Mächtigkeit stets wachsende Regierung besteht aus Bürgern wie Dir und mir, quasi sozusagen sogar Menschen. Wie Du und ich haben die einen Plan für ihr Handeln und wie alle Angestellten sind sie für ihre selbst legalisierten Entscheidungen im Rahmen ihres Planes, der mit Agilität, menschlicher Liebe respektive resultierender Blindheit sowie den restlichen üblichen menschlichen Irrungen verfolgt wird, nicht haftbar.

So großzügig, wie die Herren Söder und Scholz Geld rausgeben,
kann es nur unseres sein

Und wie wir alle wollen die wenigen Damen und vielen Herren der Regierung, dass es eine Wirtschaft gibt, die sie bezahlt. Denn der Baum bezahlt keine Steuern und der Fluss bezahlt keine Steuern und die Blume bezahlt keine Steuern und auch der Corona-Virus bezahlt, gemeinsam mit allen Millionen anderer Viren und Bakterien, Kakerlaken, Vögel und allem Getier und Gewächs, keine Steuern.

Die erneute Auflage einer heiligen Zeit, in der atheistische Anarchisten
mehr Gottvertrauen zeigen als erzkonservative Christen

Denn in der Bibel steht: „Sehet die Vögel unter dem Himmel an: sie säen nicht, sie ernten nicht, sie sammeln nicht in die Scheunen; und euer himmlischer Vater nährt sie doch. Seid ihr denn nicht viel mehr denn sie?“ (Matthäus 6:26)

Und genau so läuft das im Himmel und auf Erden: Hauptsache, wir halten das, „was ihr essen und trinken werdet, auch nicht für euren Leib, was ihr anziehen werdet“ nicht für so wichtig.

„Ist nicht das Leben mehr denn Speise? Und der Leib mehr denn die Kleidung?“ Ja, und ist nicht das Leben mehr als die Klimaveränderung? Wenn das Sterben der Menschen in die Medien kommt und auch einmal Thema wird? Der Tod, Schlafes Bruder, als Ende unseres irdischen Lebens – urplötzlich aus den Tiefen aufgetaucht, wird er hindrapiert, in ARD, ZDF und den anderen öffentlichen und nicht-öffentlichen (sondern ganz privaten) Sendern. Und alles bleibt daheim, da kommt er nicht hin, der grausame Schnitter. Daheim sterben die Leute? Im 21. Jahrhundert nicht mehr!

Das ist schon alles gut so, Greta; nur ruhig, kleines, zorniges Kind vom Berg. Es ist völlig o.k., mit der Welt nicht zurecht zu kommen – sie tut sich auch recht schwer mit uns.

Wir sind alle in Gottes Hand. Außer Kant!

 

Der IP-Header

Ein „Word“, der Header eines IP-Paketes:

IP-Header: ein Word

(alle Zeilen im Screenshot untereinander stehen im IP-Header hintereinander)

Die Länge des IP-Headers kann bis 32 Bit gefüllt werden (mit Options and Padding), ist aber meistens 20 Bit lang.

Protocol: welches Protokoll wird von IP transportiert. Mögliche Werte z.B.:

  • TCP: 6
  • UDP: 17
  • ICMP: 1

Type of Service (ToS-Feld): DSCP (Differenciated Services Code Point) – bestimmte Art der Interpretation dieses Feldes, die die Priorisierung regelt und die verschiedenen Bits, die gesetzt sind, entsprechend auswertet

Identification, Flags, Fragment Offset: nur relevant, wenn das IP-Paket fragmentiert wurde

TTL (Time to Live, Wert zwischen 0 und 255): Anzahl der möglichen Sprünge über Router, wird von jedem Router um -1 auf 0 reduziert, bevor das Paket verworfen wird zur Vermeidung von Endlos-Zirkulation bei Routing-Schleifen . Bei 0 liefert der Router eine TTL-exceeded-Meldung zurück.

Durch die IP-Adresse aus vier Bytes (z.B. 010.000.027.001) wird ein System im Netzwerk logisch adressiert, die physische Adresse eines Systems ist die MAC-Adresse.

Kommunikation über IP-Adressen ist eine Ende-zu-Ende-Kommunikation.

Ein Oktett: ein Byte sind 8 Bits, Wertebereich 0-255.
Die IP-Adresse wird durch die Subnetzmaske (RFC 950) vervollständigt. Die Subnetzmaske besteht aus Netzanteil (Bereich, in dem das System angesiedelt ist) und Hostanteil (der eindeutige Identifizierer des Systems innerhalb des Subnetzes), verknüpft mit logischer UND-Operation zur Netzadresse:

Die Subnetzmaske
Reservierte Adressen:

  • die Subnetz-Adresse – alle Bits im Hostanteil stehen auf 0 (z.B. 10.0.27.0 bei 255.255.255.0) – ist die erste verfügbare Adresse im Netz und bezeichnet alle Systeme, die IP-Adressen in diesem Subnetz haben: Einsatz beim Routing als Ziel.
  • die Broadcast-Adresse – alle Bits im Hostanteil stehen auf 1 (z.B. 10.0.27.255 bei 255.255.255.0) – ist die letzte verfügbare Adresse im Netz und wird benutzt, um alle Systeme, die IP-Adressen in diesem Subnetz haben, anzusprechen: ein Rundruf an alle Systeme.

Subnetze werden benötigt, um die Netzwerklast zu reduzieren und Bandbreite zu sparen. V.a. Windows ist sehr gesprächig und nutzt z.B. Broadcast sehr exzessiv: das Internet wäre ohne Subnetze „dicht“! Zudem werden Verantwortlichkeiten für Netzsegmente aufgeteilt. Durch Subnetting ist ein Schutz von Systemen möglich.

Die Netzklassen (Classful Networks):
(einzige Festlegung der Netzwerk-Größe vor Einführung der Subnetzmasken mit RFC 950)

Netzklassen 1 Netzklassen 2

Und: wer hat’s erfunden? https://tools.ietf.org/html/ !!

Spickzettel-Download

Alle zusammen!

Des hammer net nötig:

  • auf fallende Aktienkurse zu wetten und in der momentanen Situation so seinen Geldbeutel zu stopfen. Geiz ist nicht geil und es ist keine Dummheit, Schwächen nicht auszunutzen – wir sind Menschen mit Seele, Gehirn und Bauchgefühlen, zusammen auf einer Erde, miteinander füreinander verantwortlich
  • das finanzielle Schutzschild der Regierung zur Unterstützung der Wirtschaft mit Falschangaben oder ausgefuchsten Betrügereien ungerechtfertigt einzuheimsen
  • nie genug zu bekommen. Ob Mehl, Nudeln, Toilettenpapier oder Geld: mehr zu sammeln als man gebrauchen kann: wozu? Nie genug zu bekommen bedeutet einfach nur nie glücklich zu sein – was für ein persönlicher Erfolg…
  • die Ärzte, Krankenschwestern, Pflegekräfte uva. zu verhöhnen und deren Bitten nicht ernst zu nehmen: „Wir bleiben für euch da!!! Bleibt ihr bitte für uns daheim!!“

Wir bleiben für euch da!!! Bleibt ihr bitte für uns daheim!!

All experts are turkeys…

Bezug nehmend auf den immer wieder äußerst beachtenswerten Vortrag von Pragmatic Dave fällt mir nach stundenlangem Lernen in Kursen immer deutlicher auf, wie viel Idiotie wir Experten uns schuldig machen. Und wie „das Internet“ als freie Kommunikations- und Wissenstechnologie und die OpenSource-Philosophie als Fortsetzung des menschlichen Strebens nach Freiheit uns davon heilt!

Früher gab es doch einige höchstbezahlte Fachleute, die mit „sh vl br“ uva. auf der Cisco-Kommandozeile Eindruck schinden konnten. Solches Pseudo-Fachwissen über proprietäre Systeme – das auch im Falle von SAP und MS Dynamics NAV (uva.) immer wieder Rechnungen für marginale Leistungen in schwindelerregende Höhen steigen und Firmen mit ihren Investitionen in der Sackgasse landen lässt – ist glücklicherweise überholt: Wissen braucht keine Macht!

IT kann einfach bleiben, wenn der Benutzer das als Voraussetzung festsetzt. Automaten sind nicht dazu erschaffen worden, den Menschen Untertan zu machen und werden das auch nie machen, denn sie wollen nichts.

Maximal der Kapitalismus macht in unserer Zeit und unserer ersten Welt manche Menschen zu Untertanen. Die wollen das aber auch nicht anders: chacun à son goût.

Fusion News im Corona Stress

„Fusion Festival findet statt“ trotz Corona-Gefahr – haben diverse
Zeitungen in der vergangenen Woche verkündet. Da wir bekanntlich nicht
fromm sind, ist dies auch kein frommer Wunsch. Aber schön wär’s
natürlich, wenn wir heute schon absehen könnten, dass die sich weiter
ausbreitende Pandemie Ende Juni soweit überwunden wäre, dass wir dies
gemeinsam auf der Fusion feiern könnten.

Wir nehmen zur Kenntnis, dass die Politik angesichts fehlender
medizinischer Kapazitäten auf Zeit spielt und versucht, die Ansteckung auf
Raten zu verteilen und den Zusammenbruch des Gesundheitssystems durch die
Unterbindung sozialer Kontakte und der Untersagung jeglicher kultureller
Aktivitäten zu verhindern. Ob das gelingt, wenn trotzdem alle weiterhin
brav arbeiten sollen, damit der Kapitalismus nicht auch noch völlig
implodiert, ist fraglich. Aber die Hoffnung stirbt ja bekanntlich zuletzt
und so geht es auch uns.

„Fusion News im Corona Stress“ weiterlesen

Auf dem Boden bleiben…

Heimarbeit. Pause von Verzweigungen, Schleifen, Funktionen und Eigenschaften. Back to the roots:

ISO-OSI Schichtmodell

Eric Amberg und das CompTIA Network+ Examen. „Aus internen Kreisen“ habe ich heute erfahren, dass es die Lehrer ganz schön schwer haben: die Plattform, auf der sie „virtuelle Klassenzimmer“ einrichten sollen, ist schwer überlastet – und wurde bereits von Schülern gehackt.

So. Suche Haus in Kroatien!
(Kuća tražena na prodaju u Hrvatskoj!)

Wir wiederholen…

Meine Empfehlung: der Kurs „Spring framework 5: Beginner to Guru, den ich im Februar 2019 angefangen habe, um die Basics von JHipster besser zu verstehen.

John Thompson erneuert in diesem Kurs zudem „deprecated Videos. Das mag erst einmal nerven („Bekomme ich den Kurs denn nie zu Ende…), dient aber auch zur Wiederholung.

Zum prinzipiellen Verständnis des Spring frameworks zählen sicher die

SOLID principles of OOP:

I.) Single Responsibility Principle

Single Responsibility Principle

  • Jede Klasse sollte eine Zuständigkeit verwalten
  • Es sollte nie mehr als einen Grund geben, eine Klasse zu ändern
  • Die Klassen sollten klein sein – nie mehr Code als auf einen Bildschirm passt
  • „Göttliche“ Klassen sollten vermieden werden
  • Große Klassen sollten in kleinere Klassen aufgeteilt werden

II.) Open-Close Principle

Open-Close Principle

  • Eine Klasse sollte offen für Erweiterungen sein
  • Eine Klasse sollte geschützt sein vor Änderungen
  • Es sollte möglich sein, das Verhalten einer Klasse zu ändern ohne die Klasse selbst zu ändern
  • Es sollten private Variablen mit Gettern und Settern verwendet werden – letztere Methoden ausschließlich dann, wenn diese gebraucht werden!
  • Es sollten wann immer möglich abstrakte Basisklassen verwendet werden, in denen den erbenden Klassen ggf. abstrakte Methoden zur Implementierung vorgegeben werden

III.) Liskov Substitution Principle (Barbara Liskov, 1998)

Liskov Substitution Principle

  • Objekte innerhalb eines Programms sollten austauschbar sein mit Instanzen ihrer Subtypen ohne die Korrektheit des Programmes zu ändern
  • Ein Verstoß gegen dieses Prinzip kann oft entdeckt werden mit dem „… ist ein …“-Test: ein Quadrat ist ein Rechteck
  • Jedoch: ein Rechteck „ist kein“ Quadrat!

IV.) Interface Segregation Principle

Interface Segregation Principle

  • Interfaces sollten detailliert und client-spezifisch (spezifisch für einen Anwendungsfall) ausgearbeitet sein
  • Eine Vielzahl client-spezifischer Interfaces ist besser als ein „Universal-Interface“
  • Alle Komponenten sollten fokussiert bleiben und Abhängigkeiten untereinander sollten vermieden werden
  • Der Zusammenhang zum Single Responsibility Principle ist offensichtlich: „göttliche“ Interfaces sollten vermieden werden

V.) Dependency Inversion Principle

Dependency Inversion Principle

  • Abstraktionen sollten nicht von Details abhängen
  • Details sollten von Abstraktionen abhängen
  • Es ist wichtig, dass Objekte höherer Ordnung und Objekte niedrigerer Ordnung von derselben abstrakten Interaktion abhängen
  • Dependency Inversion nicht mit Dependency Injection verwechseln! Dependency Injection beschreibt, wie Objekte die weitere Objekte erhalten, von welchen sie abhängig sind