server management serverentwicklung unter.net dipl.-inform. (fh) paul mizel [email protected]

25
Server Management Serverentwicklung unter .NET Dipl.-Inform. (FH) Paul Mizel [email protected]

Upload: hardwin-aden

Post on 05-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Server Management

Serverentwicklung unter .NET

Dipl.-Inform. (FH) Paul Mizel

[email protected]

Page 2: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Seite 2Dipl. Inf. (FH) Paul Mizel

Inhalt

•Motivation•Anforderungen•Inhalt der Arbeit

▫ Client- / Server-DV▫ Servermodule▫ Plugin-Lader▫ Serverstart

•Protokolle•Demonstration•Ausblick

Page 3: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 4: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 5: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 6: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 7: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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;

}

Page 8: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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();

Page 9: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 10: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

•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

Page 11: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 12: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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)▫. . .

Page 13: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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))▫. . .

Page 14: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Seite 14Dipl. Inf. (FH) Paul Mizel

POP3

•Protokolle zum Empfangen von E-Mails•Standard Port: 110•Alternativen / Erweiterungen

▫POP3S (SSL Erweiterung)▫. . .

Page 15: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Seite 15Dipl. Inf. (FH) Paul Mizel

SMTP

•Protokolle zum Senden von E-Mails•Standard Port: 25•Alternativen / Erweiterungen

ESMTP (Extended SMTP) . . .

Page 16: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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)▫. . .

Page 17: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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 ))

▫. . .

Page 18: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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 ▫. . .

Page 19: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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)▫ . . .

Page 20: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 21: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Seite 21Dipl. Inf. (FH) Paul Mizel

Demonstration

Page 22: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 23: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Danke!

Page 24: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

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

Page 25: Server Management Serverentwicklung unter.NET Dipl.-Inform. (FH) Paul Mizel paul.mizel@enivo.de

Anhang Demo

[.\demo\] Präsentation

[.\paul mizel projektarbeit 2006.ppt] Source Code

[.\src\]

Links[.\links\]

RFCs[.\rfcs\]