Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel [email protected].
-
Upload
hardwin-aden -
Category
Documents
-
view
106 -
download
1
Transcript of Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel [email protected].
Seite 2Dipl. Inf. (FH) Paul Mizel
Inhalt
•Motivation•Anforderungen•Inhalt der Arbeit
▫ Client- / Server-DV▫ Servermodule▫ Plugin-Lader▫ Serverstart
•Protokolle•Demonstration•Ausblick
Seite 3Dipl. Inf. (FH) Paul Mizel
Motivation
•Was ist OMNINO?
•Es sollte ein Server-Kern unter .NET entworfen und entwickelt werden
•Mithilfe dieses Server-Kerns soll es möglich sein verschiedene Protokolle ohne viel Aufwand umzusetzen
•Erfahrungen in Standardnetzwerkprotokollen
Seite 4Dipl. Inf. (FH) Paul Mizel
Anforderungen
•Schnittstelle für die Protokolle•Serverkern
▫Grundlage TCP, Synchron•Servermanagement•Protokolle
▫HTTP, FTP▫POP3, SMTP▫Telnet, Echo, (S)NTP▫DNS
Seite 5Dipl. Inf. (FH) Paul Mizel
Client-/Server-DV• TCP (Transmission Control Protocol)
• UDP (User Datagram Protocol)
SYN SEQ=x
Verarbeitung
ServerClient / Server 3-Wege-Handshake
SYN,ACK=x+1 SEQ=y
ACK SEQ=y+1
Verarbeitung ist abgeschlossen
Verarbeitung
ServerClient / Server
Seite 6Dipl. Inf. (FH) Paul Mizel
Server Module
ServerServer
Cli
en
tC
lie
nt
ServerkernelServerkernel
requestrequest
responseresponse Se
rve
r M
an
ag
em
en
tS
erv
er
Ma
na
ge
me
nt
ProviderProvider
ProtocolProtocol
ConfigurationConfiguration
MembershipMembership
SessionSession
SecuritySecurity
Seite 7Dipl. Inf. (FH) Paul Mizel
Plugin-Laderpublic List<T> GetPlugins<T>(string folder){
string[] files = Directory.GetFiles(folder, "*.dll");List<T> tList = new List<T>();
foreach (string file in files){
try{
Assembly assembly = Assembly.LoadFile(file);foreach (Type type in assembly.GetTypes()){
if (!type.IsClass || type.IsNotPublic)continue;
Type[] interfaces = type.GetInterfaces();if (((IList)interfaces).Contains(typeof(T))){
T protocol = (T)Activator.CreateInstance(type);tList.Add(protocol);
}}
}catch (Exception ex) {}}return tList;
}
Seite 8Dipl. Inf. (FH) Paul Mizel
Serverstart1. IServerConfiguration cfg = new ServerConfigurationImpl(80); //Configuration2. PluginHelper ph = new PluginHelper(); 3. IServerProtocol protocol = ph.GetProtocol(ProtocolType.HTTP); //Protocol4. IServerProvider provider = new ServerProviderImpl(cfg, protocol); //Provider5. 6. IServer server = new SynchronousSocketListener(provider); //create Server7. server.Start();
Seite 9Dipl. Inf. (FH) Paul Mizel
Protokolle
OSI-Layer
AnwendungApplication
Darstellung(Presentation)
Sitzung(Session)
Transport(Transport)
Vermittlung(Network)
Sicherung(Data Link)
Bitübertragung(Physical)
7
7
5
4
3
2
1
Netzzugang(Network)
Transport(Transport)
Anwendung(Application)
TCP/IP Layer TCP/IP Protokolle
Eth
erne
t
Tok
en R
ing
FD
DI
X.2
5
Fra
me
Rel
ay
SLI
P
AT
M
PP
P
IP, ICMP, ARP, RARP
Internet(Internet)
RIP, OSPF, NLSP, EGP, BGP
TCP UDP
Tel
net
FT
P
HT
TP
PO
P3
DN
S
Hub, Repeater
WLAN Access Point, Switch, Bridge
Router, Layer-3 Switch
Layer 4-7 Switch, Content Switch,
Gateway
Ech
o
(S)N
TP
Hardware
SM
TP
•Kommunikationsgrundlage▫ TCP basierte / Sitzungsbasierte▫ UDP basierte
•Kommunikationsart▫ Zeichenbasierte / Kommandobasierte▫ Bytebasierte
•Performanceuntersuchung
▫ Speicherverwaltung▫ Kodierung
Seite 10Dipl. Inf. (FH) Paul Mizel
Protokolle
Normal System.Byte System.String
x10.000 126 783 5118
x100.000 716 8145 49354
x1.000.000 6614 80385 501130
0
100000
200000
300000
400000
500000
600000
x10.000 x100.000 x1.000.000
Normal
System.Byte
System.String
Seite 11Dipl. Inf. (FH) Paul Mizel
Protokolle• HTTP 1.1 - Hypertext Transfer Protocol Version 1.1
(RFC 2068)• FTP - File Transfer Protocol
(RFC 959)• POP3 - Post Office Protocol Version 3
(RFC 1939)• SMTP - Simple Mail Transfer Protocol
(RFC 2821 und Service Extension for Authentication 2554)• Telnet
(RFC 854 - 861)• Echo
(RFC 862)• (S)NTP - (Simple) Network Time Protocol
(RFC 868 (RFC 2030))• DNS - Domain Name System
(RFC 1034)*RFC - Request For Comments
Seite 12Dipl. Inf. (FH) Paul Mizel
HTTP
•Ein Protokoll zur Übertragung von Daten über ein Netzwerk. Es wird hauptsächlich eingesetzt, um Webseiten und andere Daten in einen Webbrowser zu laden.
•Standard Port: 80•Alternativen / Erweiterungen
▫Gopher▫HTTPS (HTTP over SSL(Secure Socket
Layer))▫SOAP (Simple Object Access Protocol)▫. . .
Seite 13Dipl. Inf. (FH) Paul Mizel
FTP
•Download (Server zum Client) und zum Upload (Client zum Server) von Dateien.
•Standard Port: 21•Alternativen / Erweiterungen
▫SCP (Secure Copy Protocol)1 Alle Daten werden verschlüsselt
▫SFTP (SSH FTP) 1+ Alle Daten über den SSH-Tunel
▫SFTP (Secure FTP) nur Steuerkanal über SSH-Tunel
▫FTPS (FTP over SSL(Secure Socket Layer))▫. . .
Seite 14Dipl. Inf. (FH) Paul Mizel
POP3
•Protokolle zum Empfangen von E-Mails•Standard Port: 110•Alternativen / Erweiterungen
▫POP3S (SSL Erweiterung)▫. . .
Seite 15Dipl. Inf. (FH) Paul Mizel
SMTP
•Protokolle zum Senden von E-Mails•Standard Port: 25•Alternativen / Erweiterungen
ESMTP (Extended SMTP) . . .
Seite 16Dipl. Inf. (FH) Paul Mizel
Telnet
•Wird dazu verwendet, Benutzern den Zugang zu Internetrechnern über die Kommandozeile zu bieten
•Standard Port: 23•Alternativen / Erweiterungen
▫SSH (Secure shell)▫RDP (Remote Desktop Protocol)▫. . .
Seite 17Dipl. Inf. (FH) Paul Mizel
Echo
•Funktion dieses Dienstes ist: Alle empfangenen Daten unverändert zum Client zurückzusenden
•Standard Port: 7•Alternativen / Erweiterungen
▫Ping (ICMP (Internet Control Message Protocol ))
▫. . .
Seite 18Dipl. Inf. (FH) Paul Mizel
(S)NTP
•Protokoll zur Synchronisation von Uhren in Computersystemen
•Standard Port: 123•Alternativen / Erweiterungen
▫PPS (Pulse-Per-Second)▫Time Protocol ▫Daytime Protocol ▫. . .
Seite 19Dipl. Inf. (FH) Paul Mizel
DNS
• DNS ist eine verteilte Datenbank, die den Namensraum im Internet verwaltet. Dient zur Umsetzung von Domainnamen in IP-Adressen (forward lookup) und umgekehrt (reverse lookup).
• Standard Port: 53• Alternativen / Erweiterungen
▫EDNS (Extended DNS) Paketgröße/Weiterer Headercode
▫ IDNA (Internationalizing Domain Names in Applications)
▫ENUM (tElephone NUmber Mapping)▫ . . .
Seite 20Dipl. Inf. (FH) Paul Mizel
Demonstration
•Wie erstelle ich einen Protokoll?▫ Enivo.Net.dll einbinden.▫ Erben von ServerProtocolImpl oder IServerProtocol
implementieren▫ ProtocolAttribute setzen oder die Parameter zum Auffinden
ändern▫ Methoden ausprogrammieren
void Request(TcpConnection req); void Connected(TcpConnection req); void Disconnected(TcpConnection req);
•Präsentation des Managers
DEMO
Seite 21Dipl. Inf. (FH) Paul Mizel
Demonstration
Seite 22Dipl. Inf. (FH) Paul Mizel
Ausblick
•Server-Kern auch als Client/Proxy erweitern•UDP Erweiterung•Synchron und Asynchron Optimierung•Lastverteilung (Load Balancing)•Sicherheit
▫ IDS(Intrusion Detection System)▫ Syn-Flooding▫ SSL Erweiterung
•Umgebung als Service
Danke!
Seite 24Dipl. Inf. (FH) Paul Mizel
Quellen[Abhinaba]Abhinaba B.: C# 2.0: Loading plugins at run-time using late binding [Internet]
http://blogs.msdn.com/abhinaba/archive/2005/11/14/492458.aspx
[Archer, Whitechapel]Archer, T. und Whitechapel, A.: Inside C#: Objektorientiertes Programmieren mit C# und dem .NET Framework. Microsoft Press, 2002
[Microsoft MSDN#1]Microsoft.: Asynchronous Server Socket Example [Internet] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/
html/cpconnon-blockingserversocketexample.asp , 2005
[Microsoft MSDN#2]Microsoft.: Asynchronous Server Socket Example [Internet] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/
html/cpconblockingserversocketexample.asp, 2005
[Schwichtenberg]Schwichtenberg, H.: Deutsche Community-Site für .NET [Internet] http://www.it-visions.de/glossar/default.aspx?g=alle IT Visions, 2005
[Selke]Selke, G. W.: Kryptographie: Verfahren, Ziele, Einsatzmöglichkeiten. O’Reilly GmbH & Co. KG, 2000
[Wikipedia DE]Wikimedia Foundation: Wikipedia. [Internet] http://de.wikipedia.org/wiki/Hauptseite, Wikimedia Foundation, 2004
[Wikipedia EN]Wikimedia Foundation: Wikipedia : The free Encyclopedia. [Internet] http://en.wikipedia.org/wiki/Main_Page, Wikimedia Foundation,
2004
[Winkler]Winkler, P.: M+T Computerlexikon. Markt+Technik Verlag, 2000
Anhang Demo
[.\demo\] Präsentation
[.\paul mizel projektarbeit 2006.ppt] Source Code
[.\src\]
Links[.\links\]
RFCs[.\rfcs\]