diff --git a/main.tex b/main.tex index 61c3d89..bb3f8f0 100644 --- a/main.tex +++ b/main.tex @@ -12,6 +12,7 @@ \usepackage{verbatim} \usepackage{listings} \usepackage{url} +\usepackage{xcolor} \usepackage{caption} \usepackage[autostyle=true,german=quotes]{csquotes} @@ -54,336 +55,124 @@ {°}{{${^\circ}$}}1 } +% Define colors +\definecolor{hlr}{RGB}{255,180,180} +\definecolor{hlg}{RGB}{180,255,180} +\definecolor{hlb}{RGB}{180,180,255} + \mode -\title{Intelligente Systeme} -\subtitle{Ontologieprojekt: RDFS Ontologie } -\author{Marcel Felix, Jan Philipp Timme} +\title{IPv6} +\subtitle{Einführung und Sicherheitsaspekte} +\author{Jan Philipp Timme} \date{\today} \begin{document} -%\tableofcontents[hideallsubsections] +\tableofcontents[hideallsubsections] -\section{Einleitung} -\begin{frame}{Szenario} +\section{Einstieg IPv6} + +\begin{frame}{Neuigkeiten mit IPv6} \begin{itemize} -\item Welt der Spielekonsolen mit Bewertungen -\item Spielekonsolen mit einigen Attributen beschrieben -\item Spielekonsolen werden von Organisationen hergestellt -\item Spielekonsolen haben einen Nachfolger/Vorgänger -\item Organisationen haben einen CEO -\item \dots +\item 128 Bit Adressraum +\item Neu: Link-lokale Adressen +\item Multicast anstelle von Broadcast +\item ICMPv6 für Betrieb essentiell +\item Konfiguration via SLAAC und DHCPv6 +\item Router Advertisments +\item Vollwertiges Routing, kein NAT! +\item Paketfragmentierung nur durch den Absender \end{itemize} \end{frame} -\begin{frame}[fragile]{Selbstdefinierte Prädikate} -\begin{lstlisting} -:foundingYear rdf:type rdf:Property ; - rdfs:domain foaf:Organization ; - rdfs:range xsd:int . - -:internetEnabled rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range xsd:boolean . - -:consoleName rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range xsd:string . -\end{lstlisting} +\begin{frame}{Notation und Kurzschreibweise} +Gegeben: IPv6-Adresse +\texttt{2001:0db8:2407:08d3:0000:0000:0000:1234} \newline +\newline +1) Führende Nullen streichen \newline +\texttt{2001:\colorbox{hlb}{0}db8:2407:\colorbox{hlb}{0}8d3:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:1234} \newline +$\Rightarrow$ \texttt{2001:db8:2407:8d3:0:0:0:1234} \newline +\newline +2) Zusammenhängende Nullsegmente mit \texttt{::} ersetzen +\texttt{2001:db8:2407:8d3:\colorbox{hlb}{0:0:0}:1234} \newline +$\Rightarrow$ \texttt{2001:db8:2407:8d3::1234} \end{frame} -\begin{frame}[fragile]{Ein eigener Datentyp und mehr \dots} -\begin{lstlisting} -# rdfs:Datatype -:PriceEur rdf:type rdfs:Datatype . -:PriceEur rdfs:label "Preis in Euro"^^xsd:string . - -# rdfs:subPropertyOf -:predecessorOfConsole rdfs:subPropertyOf :relatedToConsole . -:successorOfConsole rdfs:subPropertyOf :relatedToConsole . - -# rdfs:subClassOf -:GameConsole rdf:type rdfs:Class . -:PortableGameConsole rdf:type rdfs:Class . - -:PortableGameConsole rdfs:subClassOf :GameConsole . -\end{lstlisting} +\begin{frame}{Präfix} +IPv6-Adresse mit angegebener Prefix-Länge: \texttt{2001:db8:2407:8d3::1234/128} \end{frame} +\subsection{Adressklassen} -\begin{frame}[fragile]{Überblick Daten A-Box (1/2)} -\begin{lstlisting} -@prefix : . -@prefix rdf: . -@prefix xsd: . -@prefix rdfs: . -@prefix foaf: . -@prefix rev: . - -:Nintendo rdf:type foaf:Organization ; - :ceo :Kimishima ; - :foundingYear 1889 ; - foaf:name "Nintendo Co., Ltd."^^xsd:string . - -:Kimishima rdf:type foaf:Person ; - foaf:familyName "Kimishima"^^xsd:string ; - foaf:givenName "Tatsumi"^^xsd:string . - -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile]{Überblick Daten A-Box (2/2)} -\begin{lstlisting} -:Switch rdf:type :PortableGameConsole . -:Switch rev:hasReview :SwitchReviewByJPT . - -:Wii rdf:type :GameConsole . - -:Wii_u rdf:type :GameConsole ; - :internetEnabled true ; - :consoleName "Wii U"^^xsd:string ; - :numOfSupportedControllers 8 ; - :predecessorOfConsole :Wii ; - :releaseYear 2012 ; - :successorOfConsole :Switch . -\end{lstlisting} -... -\end{frame} - -\begin{frame}[fragile]{T-Box (1/2)} -\begin{lstlisting} -@prefix : . -@prefix rdf: . -@prefix xsd: . -@prefix rdfs: . -@prefix foaf: . -@prefix rev: . - -# Our own properties -:ceo rdf:type rdf:Property ; - rdfs:domain foaf:Organization ; - rdfs:range foaf:Person . - -:foundingYear rdf:type rdf:Property ; - rdfs:domain foaf:Organization ; - rdfs:range xsd:int . - -:internetEnabled rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range xsd:boolean . -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile]{T-Box (2/2)} -\begin{lstlisting} -:consoleName rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range xsd:string . - -:numOfSupportedControllers rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range xsd:string . - -:successorOfConsole rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range :GameConsole . -\end{lstlisting} - -\end{frame} - -\begin{frame}[fragile]{Anwendung von RDFS-Regeln} -Gegeben sei folgende A-Box -\begin{lstlisting} -:Wii_U rdf:type :GameConsole . -:Switch :successorOfConsole :Wii_U . -\end{lstlisting} -mit dieser T-Box -\begin{lstlisting} -:successorOfConsole rdf:type rdf:Property ; - rdfs:domain :GameConsole ; - rdfs:range :GameConsole . -\end{lstlisting} -Anwendung der Regel \texttt{rdfs2} -\begin{lstlisting} -s p o . -p rdfs:domain c . ==> s rdf:type c . -\end{lstlisting} -Ergebnis: -\begin{lstlisting} -:Switch rdf:type :GameConsole . -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile]{SPARQL-Anfragen (1/2)} -Wie viele verschiedene Konsolen wurden von Nintendo hergestellt? -\begin{lstlisting} -SELECT COUNT(?console) AS ?numConsoles -WHERE { - ?console :madeBy ?organization . -} -GROUP BY ?organization -\end{lstlisting} -Welche Konsolen kamen nach Jahr X raus? -\begin{lstlisting} -SELECT ?console -WHERE { - ?console :madeBy :Nintendo . - ?console :releaseYear ?releaseYear . - FILTER(?releaseYear > 1997) -} -\end{lstlisting} -\end{frame} -\begin{frame}[fragile]{SPARQL-Anfragen (2/2)} -Einen CEO einer Konsole zuordnen. -\begin{lstlisting} -CONSTRUCT { - ?ceo :isRelatedToConsole ?console . -} -WHERE { - ?console rdf:type :GameConsole . - ?console :madeBy ?org . - ?org :ceo ?ceo . - ?ceo rdf:type foaf:Person . -} -\end{lstlisting} -Alle Konsolen die mindestens ein Review haben. -\begin{lstlisting} -SELECT DISTINCT ?console -WHERE { - ?console rev:hasReview ?anyReview . -} -\end{lstlisting} -\end{frame} - -\begin{frame}{Description Logic: T-Box (1/2)} -A PortableGameConsole is a specific type of GameConsole. +\begin{frame}{Adressklassen: Unspezifizierte Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.2.}} +Aus IPv4 bekannt als \texttt{0.0.0.0/0} \newline +\newline +In IPv6: \texttt{0000:0000:0000:0000:0000:0000:0000:0000} (kurz: \texttt{::}) \newline \begin{itemize} -\item \texttt{PortableGameConsole $\sqsubseteq$ GameConsole} +\item Zeigt das Fehlen einer Adresse an +\item \dots oder signalisiert Erreichbarkeit eines Sockets auf allen Adressen eines Geräts +\item Darf nie einem Gerät zugewiesen werden +\item Als Quelladresse für Pakete erlaubt +\begin{itemize} +\item \dots sofern Rechner noch keine IPv6-Adresse besitzt +\item \dots diese dürfen dann nicht geroutet werden +\end{itemize} \end{itemize} \end{frame} -\begin{frame}{Description Logic: T-Box (2/2)} -An Organization can have a Person as CEO. +\begin{frame}{Adressklassen: Loopback Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.3.}} +Aus IPv4 bekannt als \texttt{127.0.0.1/8} \newline +\newline +\texttt{0000:0000:0000:0000:0000:0000:0000:0001} (kurz: \texttt{::1}) +\newline \begin{itemize} -\item \texttt{$\exists$ ceo.$\top$ $\sqsubseteq$ Organization} -\item \texttt{Organization $\sqsubseteq$ $\forall$ceo.Person} -\end{itemize} -A GameConsole is made by an Organization. -\begin{itemize} -\item \texttt{$\exists$ madeBy.$\top$ $\sqsubseteq$ GameConsole} -\item \texttt{GameConsole $\sqsubseteq$ $\forall$madeBy.Organization} +\item Wie bereits aus IPv4 bekannt \end{itemize} \end{frame} -\begin{frame}{Description Logic: R-Box (1/2)} +\begin{frame}{Adressklassen: Globale Unicast Adresse (GUA)\footnote{Siehe RFC 4291, Kapitel 2.5.4.}} +Analog zu global gerouteter IPv4-Adresse \newline +\newline +\texttt{2001:db8:2407:8d3::1234} +\newline \begin{itemize} -\item \texttt{$\exists$ successorOfConsole.$\top$ $\sqsubseteq$ relatedToConsole} +\item Wie bereits aus IPv4 bekannt \end{itemize} \end{frame} -\begin{frame}{Description Logic: R-Box (2/2)} +\section{Hauptteil} +\begin{frame}{TODO} \begin{itemize} -\item \texttt{relatedToConsole $\circ$ relatedToConsole $\sqsubseteq$ relatedToConsole} -\item \texttt{successorOfConsole $\circ$ successorOfConsole $\sqsubseteq$ successorOfConsole} -\item \texttt{predecessorOfConsole $\circ$ predecessorOfConsole $\sqsubseteq$ predecessorOfConsole} +\item TODO \end{itemize} \end{frame} -\begin{frame}{Description Logic: A-Box} +\section{Schluss} +\begin{frame}{TODO} \begin{itemize} -\item \texttt{\{Nintendo\} $\sqsubseteq$ foaf:Organization} -\item \texttt{\{Nintendo\} $\sqsubseteq$ $\exists$ :ceo.Kimishima} -\item \texttt{\{Nintendo\} $\sqsubseteq$ $\exists$ :foundingYear.\{1889\}} -\item \texttt{\{Nintendo\} $\sqsubseteq$ $\exists$ :foaf:name.\{Nintendo Co., Ltd.\}} - -\item \texttt{\{Wii\_U\} $\sqsubseteq$ foaf:Organization} -\item \texttt{\{Wii\_U\} $\sqsubseteq$ $\exists$ :consoleName.\{Wii U\}} -\item \texttt{\{Wii\_U\} $\sqsubseteq$ $\exists$ :predecessorOfConsole.Wii} -\item \texttt{\{Wii\_U\} $\sqsubseteq$ $\exists$ :successorOfConsole.Switch} +\item TODO \end{itemize} \end{frame} -\begin{frame}{Description Logic: New Concepts} -Boolean concept constructors: +\begin{frame}{} \begin{itemize} -\item \texttt{HomeConsole $\equiv$ GameConsole $\sqcap$ $\neg$ PortableConsole} -\end{itemize} -Existential restriction: -\begin{itemize} -\item \texttt{NintendoConsole $\sqsubseteq$ $\exists$ madeBy.Nintendo} -\end{itemize} -Universal restriction: -\begin{itemize} -\item \texttt{GameConsole $\sqsubseteq$ $\forall$madeBy.Organization $\wedge$ $\forall$foundingYear.\{ $\geq$1700\}} -\end{itemize} -Number restrictions: -\begin{itemize} -\item \texttt{PartyConsole $\sqsubseteq$ $\leq$1 madeBy.Organization} -\end{itemize} -Reflexivity restriction: -\begin{itemize} -\item \texttt{GameConsole $\sqsubseteq$ $\nexists$ predecessorOfConsole.Self} -\end{itemize} -Nominals: -\begin{itemize} -\item \texttt{HomeConsole $\equiv$ \{Switch\} $\sqcap$ \{Wii\} $\sqcap$ \{Wii U\}} +\item \end{itemize} \end{frame} -\begin{frame}[fragile]{OWL (1/2)} -\begin{lstlisting} -:HomeConsole owl:differentFrom :PortableConsole . -\end{lstlisting} -\begin{lstlisting} -:predecessorOfConsole owl:propertyChainAxiom (:predecessorOfConsole :predecessorOfConsole) . -\end{lstlisting} -\begin{lstlisting} -:HomeConsole owl:equivalentClass [ - rdf:type owl:Class ; - owl:intersectionOf ( - :GameConsole [owl:complementOf :PortableConsole] - ) -] . -\end{lstlisting} -\begin{lstlisting} -:NintendoConsole owl:equivalentClass [ - rdf:type owl:Restriction ; - owl:onProperty :madeBy ; - owl:someValuesFrom :Nintendo -] . -\end{lstlisting} +\begin{frame}{} +\begin{itemize} +\item +\end{itemize} \end{frame} -\begin{frame}[fragile]{OWL (2/2)} -\begin{lstlisting} -:PartyConsole rdf:equivalentClass [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "2"^^xsd:nonNegativeInteger ; - owl:onProperty :numOfSupportedControllers ; - owl:onClass :GameConsole -] . -\end{lstlisting} +\begin{frame}{} +\begin{itemize} +\item +\end{itemize} \end{frame} -\begin{frame}[fragile]{Jena Rules} -With Jena built-ins -\begin{lstlisting} -[rule1: (?con rdf:type :GameConsole) (?con :predecessorOfConsole ?otherCon) - noValue(?otherCon :successorOfConsole ?con) - -> (?otherCon :successorOfConsole ?con)] -\end{lstlisting} -Removing facts -\begin{lstlisting} -[rule2: (?con :hasPrice ?someValue) - -> remove(?con :hasPrice ?someValue)] -\end{lstlisting} -Insert new facts -\begin{lstlisting} -[rule3: (?con rev:hasReview ?rev) (?rev rev:reviewer ?reviewer) - -> (?reviewer :hasReviewedConsole ?con)] -\end{lstlisting} -Testing with Jena Rule \dots by using the rules in our code. -\end{frame} + % The end. \end{document} \ No newline at end of file