De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Internet Internet Diensten Informatie Maatschappij

Verwante presentaties


Presentatie over: "Internet Internet Diensten Informatie Maatschappij"— Transcript van de presentatie:

1 Internet Internet Diensten Informatie Maatschappij
Prof. dr. R.J. Meijer Oktober 2004 (c) KPN Valley

2 Het OSI model PDU Computer 1 Computer 2 Applicatie laag
Internet Diensten Het OSI model Computer 1 Computer 2 Applicatielaag toepassingsspecifieke functies Presentatielaag: functies voor het transport- en ontvangstrijp maken van informatie Sessielaag functies voor het opzetten, afbreken van verbindingen en synchroniseren van informatie Transportlaag transport van data over een rechtstreekse verbinding tussen zenders en ontvangers Netwerklaag informatietransport en -routering functies over een virtueel net (internet) gevormd door de interconnectie van vele datalink lagen Datalink laag Foutvrij transport tussen aangrenzende nodes Fysieke laag Protocol over fysieke medium Transportmedium Electrische en mechanische standaarden Applicatie laag Presentatie laag Sessie laag Transport laag Netwerk laag "Data link" laag Fysieke laag Applicatie laag Presentatie laag Sessie laag Transport laag Netwerk laag "Data link" laag Fysieke laag PDU (c) KPN Valley

3 Internet en Internet Diensten
TELNET 23 FTP 21 DNS 53 TFTP 69 Port TCP Port UDP TCP(6) UDP(17) IP layer datalink layer Ethernet Token Ring FDDI

4 De Informatie Maatschappij is veel meer dan gadgets ...
Internet Diensten De Informatie Maatschappij is veel meer dan gadgets ... COMMUNICATIONS (c) KPN Valley

5 Internet Diensten Internet L.S. ! Dit college behandelt de belangrijkste technieken en principes die bij de creatie van Internetdiensten gehanteerd worden. Hierbij worden een flink aantal demonstraties getoond. Tevens zult U geconfronteerd worden met mijn eigen inzichten van de opbrengsten of waarde van deze diensten. Het zal echter niet lukken om in drie uur van U een echte Internet ingenieur of business developper te maken. Na deze drie uur zult U wel een goed overzicht hebben van het hele spectrum van Internettechnologie en welke intrigerende mechanismen aan de exploitatie daarvan ten grondslag liggen. Deze syllabus bevat meer stof dan in het college wordt gepresenteerd en tijdens het college gaan we ook niet overal even uitvoerig op in. Regelmatig verwijst de syllabus naar het mooie boek van Tanenbaum dat hierdoor als een soort naslag werk functioneert en voorkomt dat deze syllabus oversized wordt. Robert Meijer, oktober 2001. Literatuur: Computer Networks (third edition), A.S. Tanenbaum ISBN TCP/IP & Related protocols (second edition) Uyless Black ISBN (c) KPN Valley

6 TCP protocol stack / adressen
Internet Diensten TCP protocol stack / adressen End User ID’s IP, ARP, ICMP FTP, SMTP, WWW TCP, UDP Ethernet, ATM, X.25, PSTN Application SIP Presentation Session Port Numbers Transport Protocol names Network Internet diensten, voor de engineer computerprogramma’s die op een server draaien, dienen door de gebruiker gevonden en geadresseerd te worden. Adressen zijn belangrijk - zonder adressen geen diensten. Lees over IP adressen en de subnetmask Tanenbaum p.416 e.v. Het voorbeeld rechts laat zien dat ook IP adressen (en andere belangrijke netwerk gegevens via het DHCP protocol automatisch kunnen worden ingesteld. IP addresses LLC Data Link LSAP numbers MAC MAC addresses Physical In de rechterkolom (boven) staan de adressen die in de internet situatie van belang zijn. Met MAC en LLC adressen (Tanenbaum, p.243) heeft zelfs de doorwinterde Internet ingenieur in de dagelijkse praktijk weinig te maken, ze zijn verborgen in de computer. Wat men dient te onthouden is dat het MAC adres het adres is van de netwerk interface kaart (NIC, C=Card). Met het commando winipconfig of ipconfig kan met dit adres achterhalen (als de NIC goed geïnstalleerd is). Op een PC vindt men niet een LLC interface, men spreekt hier over NDIS (Network Datalink Interface System). None OSI TCP/IP TCP/IP (c) KPN Valley

7 PC protocol stack TCP/IP TCP/IP TCP/IP Applicatie Poort nummer
Internet Diensten Applicatie Poort nummer Poortnummer PC protocol stack Laag TCP, UDP Protocol names Protocol naam 4 IP IP adres 3 Protocol ID NDIS De NDIS laag op een PC heeft als functie om het “verkeer” tussen de verschillende lagen te regelen. Een computer kan i.h.a. verschillende netwerk interfaces hebben. Een mooi voorbeeld is laptop met een PCMIA insteekkaart waarop een modem en ethernetkaart aanwezig is. De Ethernetverbinding wordt op het kantoor gebruikt en koppelt daar de laptop aan het LAN. Het modem wordt gebruikt wanneer men onderweg is en op het LAN inbelt. Het modem wordt op een (virtuele) seriële poort aangesloten. Het datalinkprotocol is dan niet LLC maar PPP (Tanenbaum p.231). Naast de TCP/IP protocol familie bestaan er tal van andere (zie volgende bladzijde). Het is de taak van de NDIS laag om het binnengekomen MAC of PPP pakketje te analyseren en de daarin bevatte protocol identifier af te lijden welk protocol in het pakket zit. Zit er IP in dan wordt het pakketje aan de IP stack gegeven, zit er een NetBEUI of IPX/SPX pakket in (zie volgende bladzijde) dan gaan deze naar dus naar de NetBEUI en IPX/SPX stack. Omgekeerd heeft NDIS o.a. de functie om de juiste protocol identifiers aan de MAC of PPP laag door te geven en vervolgens deze samen met met het IP (of IPX of NetBeui, of ...) datagram te versturen. 2 LLC LSAP PPP 2 / 1 TCP/IP Netwerkkaart MAC addresses MAC adres TCP/IP Seriële poort HDLC adres TCP/IP Seriële poort HDLC adres (c) KPN Valley

8 PC Protocol Stack (2) Windows XP
Internet Diensten PC Protocol Stack (2) Opmerkingen: IPX/SPX een netwerk (IPX) en transport laag protocol (SPX) van Novell en eens werelds populairste protocol. (Tanenbaum p.45) TCP/IP versie 6 is de opvolger van het huidige TCP/IP versie 4 protocol. Het wordt echter maar sporadisch gebruikt. Windows XP Onder het Windows (95, 98, NT, 2000, XP) besturingssysteem kan men via het control pannel, bij het netwerkconfiguratie scherm komen. Het linker plaatje laat de protocollen en services zien die gebonden zijn aan de “3Com 3C920 Integrated Fast Ethernet Controller”. Het vinkje geeft aan of zij ook actief zijn. Het rechter plaatje laat zien welke protocollen en diensten nog meer geïnstalleerd kunnen worden. In dit geval is het NWLINK, een protocol dat door de firma Novell is ontwikkeld. (c) KPN Valley

9 DNS-Round Robining Reliability & load balancing of Internet services
Internet Diensten DNS-Round Robining Reliability & load balancing of Internet services www1.xxx.org www2.xxx.org www3.xxx.org DNS DNS - het Domain Name Systeem, Tanenbaum p.421, p wordt gebruikt om het adres behorende bij een IP naam als te vinden. Tanenbaum legt uit dat het DNS een Internet omvattend systeem is van met elkaar communicerende DNS servers is. In het voorbeeld hierboven wordt zwaar op een truc met een DNS server geleund om een web site een hoge mate van beschikbaarheid en goede performance te geven. In het voorbeeld is xxx.org een domein behorende bij een organisatie die een drietal webservers heeft met de zelfde informatie. Als via via een DNS server behorende bij het xxx.org domein het adres van de webserver wordt gevraagd wordt om de beurt het adres van de webservers www1.xxx.org, www2.xxx.org een www3.xxx.org doorgegeven. Op deze manier worden de hits over de web servers verdeeld (load balancing) en wordt het systeem betrouwbaarder. Deze heel belangrijke engineeringtruc heet round robin(ing). …. (c) KPN Valley

10 Internet Diensten Op is deze kaart (2002) van het Internet te zien. IP adressen spelen bij het maken van de kaart een belangrijke rol. De 21 monitors gebruiken “traceroute” achtige functies om aan IP adressen en hun verbanden te komen. Probeer maar eens het commando tracert onder windows. “Graphing dimensions of peering richness and geographic information reveals the highly 'core-concentric' nature of ASes (Autonomic Systems) based in North America. This is true despite the recent ascendance of two European ISPs into the top 15 ASes. The top 13 ISPs are still in North America and one of the top European ISPs is the European branch of an American company. While ISPs in Europe and Asia have many peering relationships with ISPs in the U.S. there are few direct links between ISPs in Asia and Europe. Both technical (cabling and router placement and management) as well as policy (business and cost models, geo-political considerations) factors contribute to peering arrangements represented in this graph. “ (c) KPN Valley

11 Internet kaart Topology of the Net ©Bell Labs
Internet Diensten Internet kaart Hier een andere kaart, 2002, van het internet, gemaakt door Bell Labs. De menselijke geest wordt in het algemeen aangesproken door de chaotische, fractale karakter van de topologie. Kaarten van het internet zijn in de praktijk niet exact te maken/krijgen. Er zijn diverse bronnen. Sommige komen voort uit gegevensbestanden als die waar de domeinnamen instaan. In de praktijk blijkt echter dat geen enkele bron exacte gegevens heeft. Een belangrijke reden is natuurlijk dat het Internet tijdens het verkrijgen van de gegevens reeds veranderd. Ook zijn er een aantal meetmethoden die internetadressen en hun relaties bepalen. Ook hier blijkt dat van een exacte relatie geen sprake is. Topology of the Net ©Bell Labs (c) KPN Valley

12 Demonstratie WINIPCFG of IPCONFIG PING + opties Tracert +demo
Internet Diensten Demonstratie WINIPCFG of IPCONFIG PING + opties Tracert +demo DNS server op WinNT NSLOOKUP op WinNT WWW met poortadres Op de volgende bladzijden wordt dieper ingegaan op het TCP en UDP protocol. Wat men van de verdiepingstof moet onthouden zijn de pro’s en contra's van “connection oriented” en “connection less” communicatie. (c) KPN Valley

13 Datacommunicatie Application Application Presentation Presentation
Internet Diensten Datacommunicatie Presentation Application Session Transport Network Data Link Presentation Application Session Transport Network Data Link Application Transport router’s We verplaatsen nu onze aandacht van het onderwerp stacks en adressen naar het onderwerp informatie transport. Het OSI model (geschetst hierboven), onderscheidt “application en transport oriented layers”. Dit zijn dus protocollen die dus applicatie specifiek, respectievelijk transport specifiek zijn. Al eerder in dit document, en ook in Tanenbaum p. 36, kan men zien dat TCP/IP transport oriented protocollen vooral TCP, UDP en IP zijn. In het algemeen (Tanenbaum p.396) vindt routering van informatie in het netwerk op laag twee (bridging, Tanenbaum p.398) en drie (routing,p.405) plaats. Apparaten die dat doen worden door engineers bridges en routers genoemd. Routers die meerdere protocollen routeren (IP, IPX) heten multiprotocol routers. Een hub is een combinatie van een bridge en (multiprotocol) router. Ook wordt informatie op laag 7 door applicaties gerouteerd (en geconverteerd) en men spreekt hier over applicatie gateway’s. Een voorbeeld van dit laatste is een systeem dat enerzijds op basis van Microsoft Exchange functioneert en anderzijds op basis van SMTP mail van en naar het Internet verstuurt. bridge Physical Physical (c) KPN Valley

14 TCP/IP model Applicaties 1 4 3 2 2 1 Ethernet cable TCP UDP IP ARP
Internet Diensten TCP/IP model Applicaties 1 Ethernet cable 4 TCP UDP 3 IP ARP ICMP 2 Ethernet Hierboven het model van TCP/IP dat de Internet applicatie ontwikkelaar dient te onthouden. Het geeft relaties tussen een aantal datacommunicatie functies: TCP: Transmission Control Protocol voor het maken van connection oriented verbindingen, Tanenbaum p.521. UDP: User Datagram protocol voor connectionless verbindingen, Tanenbaum p.521. IP: Internet Protocol, voor het routeren van informatie, Tanenbaum p.412 ARP: Address Resolution Protocol voor het opzoeken van MAC adressen op een LAN, Tanenbaum p.420. ICMP: Internet Control Message Protocol voor het uitwisselen van informatie (als “destination unreachable”, “echo request”) tussen de IP lagen. Tanenbaum p.419. Ethernet als voorbeeld van een LAN netwerktechniek dat op MAC gebaseerd is. Tanenbaum p.243. PPP (Tanenbaum p.231) als voorbeeld van een techniek die voor dial-in WAN-access gemaakt is (inbellen op een modem dus) en van HDLC (Tanenbaum, p.225) is afgeleid. In dit college zijn vooral de applicaties van belang. Applicaties vormen de technische kant van de Internetdienst. 2 PPP 1 Modem / ISDN/ ADSL (c) KPN Valley

15 User Datagram Protocol (UDP)
Internet Diensten Verdiepingstof TCP / IP User Datagram Protocol (UDP) 4 Connectionless Geen flow control, reliability, error recovery TCP UDP 3 ARP IP ICMP 2 Een datagram protocol, ook wel send and pray protocol genoemd, is simpel. Je verstuurt gewoon de informatie. UDP encapsuleert de data slechts met de poorten (sockets) van zender en ontvanger, de totale lengte van de informatie en een checksum waarmee de integriteit van de informatie vastgesteld kan worden. UDP kent geen toestanden, is daarom ook simpel, en snel. UDP verlegt een deel van de foutafhandeling naar de applicatie. In een aantal gevallen is dit een voordeel omdat de applicatie specifiek met de fouten kan omgaan. Als bijvoorbeeld een UDP datagram met video informatie “wegraakt” kan de ontvanger besluiten dit maar te ignoreren omdat de gebruiker dit toch niet merkt. Zou de transmissie mbv TCP plaatshebben gevonden dan zou TCP om een hertransmissie van het verloren geraakte pakketje hebben gevraagd. In sommige gevallen zou TCP zelfs de processing van ontvangen pakketjes hebben stop gezet omdat het ontbrekende pakketje onderdeel was van over meerdere pakketjes gesegmenteerde data. UDP is simpel en vaak erg handig. Voor de rest heeft ook Tanenbaum p.542 er niet veel meer over te vertellen. Tenslotte een tweetal generieke engineeringwijsheden die uit het vergelijk van TCP en UDP afgeleid kan worden. Systemen met toestand zijn veel moeilijker te maken dan systemen zonder (dit komen we later bij de webpagina’s ook tegen). connection oriented verbindingen (dus verbindingen met toestand) zijn veel moeilijker te engineeren dan connectionless verbindingen. Ethernet 1 Ethernet cable (c) KPN Valley

16 RFC Request voor Comments Internet Standaarden
Internet Diensten RFC J. Postel ISI 28 August 1980 User Datagram Protocol Introduction This User Datagram Protocol (UDP) is defined to make available a datagram mode of packet-switched computer communication in the environment of an interconnected set of computer networks. This protocol assumes that the Internet Protocol (IP) [1] is used as the underlying protocol. This protocol provides a procedure for application programs to send messages to other programs with a minimum of protocol mechanism. The protocol is transaction oriented, and delivery and duplicate protection are not guaranteed. Applications requiring ordered reliable delivery of streams of data should use the Transmission Control Protocol (TCP) [2]. Format ------ | Source | Destination | | Port | Port | | | | | Length | Checksum | | | data octets ... User Datagram Header Format Fields Source Port is an optional field, when meaningful, it indicates the port of the sending process, and may be assumed to be the port to which a reply should be addressed in the absence of any other information. If not used, a value of zero is inserted. Postel [page 1] Verdiepingstof TCP / IP Ter illustratie. Als voorbeeld van hoe een Internetstandaard (RFC- Request For Comment) er uitziet, is op deze en de volgende twee bladzijden de UDP RFC afgedrukt. Een waarachtig simpel protocol ... RFC Request voor Comments Internet Standaarden Eenvoudige teksten en diagrammen Postel Een van de pioniers van het Internet, † Jon(athan) B. Postel. (c) KPN Valley

17 Deze slide niet tonen Notepages bevatten UDP RFC 2
Internet Diensten Deze slide niet tonen Notepages bevatten UDP RFC 2 28 Aug 1980 User Datagram Protocol RFC 768 Fields Destination Port has a meaning within the context of a particular internet destination address. Length is the length in octets of this user datagram including this header and the data. (This means the minimum value of the length is eight.) Checksum is the 16-bit one's complement of the one's complement sum of a pseudo header of information from the IP header, the UDP header, and the data, padded with zero octets at the end (if necessary) to make a multiple of two octets. The pseudo header conceptually prefixed to the UDP header contains the source address, the destination address, the protocol, and the UDP length. This information gives protection against misrouted datagrams. This checksum procedure is the same as is used in TCP. | source address | | destination address | | zero |protocol| UDP length | If the computed checksum is zero, it is transmitted as all ones (the equivalent in one's complement arithmetic). An all zero transmitted checksum value means that the transmitter generated no checksum (for debugging or for higher level protocols that don't care). User Interface A user interface should allow the creation of new receive ports, receive operations on the receive ports that return the data octets and an indication of source port and source address, and an operation that allows a datagram to be sent, specifying the data, source and destination ports and addresses to be sent. [page 2] Postel Verdiepingstof TCP / IP Let op de datum (c) KPN Valley

18 Deze slide niet tonen Notepages bevatten UDP RFC 3
Internet Diensten Deze slide niet tonen Notepages bevatten UDP RFC 3 28 Aug 1980 RFC User Datagram Protocol IP Interface The UDP module must be able to determine the source and destination internet addresses and the protocol field from the internet header. One possible UDP/IP interface would return the whole internet datagram including all of the internet header in response to a receive operation. Such an interface would also allow the UDP to pass a full internet datagram complete with header to the IP to send. The IP would verify certain fields for consistency and compute the internet header checksum. Protocol Application The major uses of this protocol is the Internet Name Server [3], and the Trivial File Transfer [4]. Protocol Number This is protocol 17 (21 octal) when used in the Internet Protocol. Other protocol numbers are listed in [5]. References [1] Postel, J., "Internet Protocol," RFC 760, USC/Information Sciences Institute, January 1980. [2] Postel, J., "Transmission Control Protocol," RFC 761, USC/Information Sciences Institute, January 1980. [3] Postel, J., "Internet Name Server," USC/Information Sciences Institute, IEN 116, August 1979. [4] Sollins, K., "The TFTP Protocol," Massachusetts Institute of Technology, IEN 133, January 1980. [5] Postel, J., "Assigned Numbers," USC/Information Sciences Institute, RFC 762, January 1980. Postel [page 3] Verdiepingstof TCP / IP (c) KPN Valley

19 The Transmission Control Protocol (TCP) (1)
Internet Diensten The Transmission Control Protocol (TCP) (1) 4 3 2 Ethernet cable TCP UDP IP ARP ICMP Ethernet Connection oriented Stream oriented data transfer service (“byte by byte”) Bytes packed into segments (c) KPN Valley

20 Het Transmission Control Protocol (TCP) (2)
Internet Diensten Het Transmission Control Protocol (TCP) (2) “Push” service garandeert verzending op verzoek van applicatie (sluit segment af) Flow control Multiplexing voor meerdere applicaties via “port numbers” (b.v. RPC=111, SMTP=25) Graceful close (verbinding wordt pas afgebroken na volledige acknowledge) (c) KPN Valley

21 TCP Connection State diagram
Internet Diensten Verdiepingstof TCP / IP TCP Connection State diagram TCB Transmission Control buffer (holds connection id +info) MSL Max Segment Life Time Closed passive OPEN create TCB active OPEN create TCB send SYN CLOSE del TCB CLOSE del TCB Listen rcv SYN send SYN,ACK SEND send SYN Sent SYN Rcvd SYN rcv SYN snd ACK rcv ACK of SYN rcv SYN, ACK send ACK CLOSE send FIN Established CLOSE send FIN rcv FIN send ACK wait1 FIN Close wait rcv FIN send ACK Dit is wat men niet moet onthouden, maar wel zou moeten bestuderen. Het toestandsdiagram geeft weer in welke toestand een dialoog is tussen twee TCP peers (eindsystemen). Bovenstaand diagram is overgetekend uit de TCP standaard en staat ook in Tanenbaum p.532. Opmerkingen: De volgende bladzijde beschrijft de toestanden rcv betekent receive Een pijl als hiernaast geeft een typische overgang aan van een TCP implementatie op een cliënt die met een passieve, dwz luisterende server verbinding maakt Deze pijl geeft de typische overgangen van luisterende een server aan De overige (smalle) pijlen geven overgangen aan die met bijzondere gebeurtenissen te maken hebben De TCB, Transmission Control Block bevat informatie over de huidige verbinding. Ook bestaat er een connection name/identifier. De standaard legt één en ander het best uit: “A connection is specified in the OPEN call by the local port and foreign socket arguments. In return, the TCP supplies a (short) local connection name by which the user refers to the connection in subsequent calls. There are several things that must be remembered CLOSE send FIN rcv ACK of FIN Closing Last Ack FIN wait2 rcv ACK of FIN rcv FIN send ACK Timeout=2MSL delete TCB Time Wait Closed (c) KPN Valley

22 Verdiepingstof TCP / IP
Internet Diensten Verdiepingstof TCP / IP about a connection. To store this information we imagine that there is a data structure called a Transmission Control Block (TCB). One implementation strategy would have the local connection name be a pointer to the TCB for this connection. The OPEN call also specifies whether the connection establishment is to be actively pursued, or to be passively waited for. A passive OPEN request means that the process wants to accept incoming connection requests rather than attempting to initiate a connection. “ Beschrijving TCP protocol toestanden (ook uit de standaard): CLOSED - is fictional because it represents the state when there is no TCB, and therefore, no connection. LISTEN - waiting for a connection request SYN-SENT - waiting for a matching connection request after having sent a connection request. SYN-RECEIVED - waiting for a confirming connection request acknowledgment after having both received and sent a connection request. ESTABLISHED - represents an open connection, data received can be delivered to the user. The normal state for the data transfer phase of the connection. FIN-WAIT-1 - waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent. FIN-WAIT-2 - waiting for a connection termination request from the remote TCP. CLOSE-WAIT - waiting for a connection termination request from the local user. CLOSING - waiting for a connection termination request acknowledgment from the remote TCP. LAST-ACK - waiting for an acknowledgment of the connection termination request previously sent to the remote TCP (which includes an acknowledgment of its connection termination request). TIME-WAIT - represents waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request. Deze slide bevat uitsluitend een note page en hoort bij het TCP state diagram. (c) KPN Valley

23 Firewall Applicatie TCP UDP IP LLC Analyse LLC Application TCP UDP IP
Internet Diensten Firewall Logging Logging Logging Applicatie TCP UDP IP LLC Analyse LLC Application TCP UDP IP LLC Firewall (Tanenbaum p.410) wie heeft er nog nooit van gehoord? Om firewalls hangt een mystieke hype... Daar waar firewalls zijn geplaatst kan er niets meer gebeuren... Zonder firewalls kan het niet veilig zijn … Voordat we hierop ingaan is het verstandig eerst de werking van de firewall uit te leggen. Firewalls zijn routers die twee netwerken (b.v. Internet en Intranet) scheiden. Dit doet men onder andere op basis van IP- adressen (IP-laag). Hierdoor kan een firewall bepalen welke computers met elkaar mogen communiceren Poortnummers (TCP-UDP-laag). Hierdoor kan de firewall bepalen welke IP diensten mogen worden gebruikt. Zo zou je wel kunnen websurfen van het Intranet op het Internet, maar het omgekeerde niet. Applicatie content (Applicatie-laag). Hierdoor kan je b.v. checken of of een webpagina wel een “correcte” content heeft. Ook kunnen firewalls alle gebeurtenissen loggen - b.v. welke websites bekeken worden door wie. Firewalls zijn kostbaar en kunnen voor aanzienlijke verslechtering van de dienstkwaliteit zorgen. Fanatieke gamers merken vrijwel direct aan het spel wanneer ergens een firewall gebruikt wordt. De betere routers kunnen veel sneller op IP adressen en poortnummers filteren. Physical Physical (c) KPN Valley

24 Firewall yes/no Analyse LLC WWW Telnet server TCP UDP IP LLC HTTP
Internet Diensten Firewall yes/no Analyse LLC WWW Telnet server TCP UDP IP LLC HTTP Telnet System password HTTP WWW TCP UDP IP LLC HTTP Telnet System password geen telnet server Indien men een eenvoudig recept (zie eind deze bladzijde) voor de constructie van Internet servers hanteert kan men zich goed wapenen tegen inbreekpogingen vanuit het Internet. Eerst uitleg van het figuur hierboven. Stel men heeft een server met TELNET en WWW deamons die beiden luisteren (gebonden zijn) aan de netwerkkaart waarop het Internetverkeer binnen komt (bovenste helft figuur hierboven). In deze situatie is het onwenselijk om de Telnet deamon vanuit het Internet bereikbaar te maken. Iemand zou immers dan het wachtwoord van de superuser, system of andere gebruikers kunnen kraken en nare dingen doen. Een Firewall kan dmv van filtering op het poort nummer alle Telnet inlog pogingen blokkeren. In de praktijk wordt een firewall al snel een performance bottleneck. Daardoor is een firewall ook gevoelig voor een zogenaamde denial-of-service attack. Later over een dergelijke beveiligingszaken meer. Een andere oplossing voor bovenstaand probleem is om GEEN Telnet deamon te binden aan netwerkkaarten die aan het Internet gekoppeld zijn (onderste helft figuur hierboven). Om beheerders toch toegang te geven op het systeem dient men een tweede netwerkkaart te installeren die uitsluitend en alleen aan het zogenaamde beheernetwerk is verbonden (niet getekend). Deze maatregelen maken een firewall overbodig en verhogen de betrouwbaarheid. Dergelijke bind-tactieken dient men ook voor de X-window deamon (Unix) en voor het Workstation en Server proces (Windows NT) te volgen. dus geen reactie (c) KPN Valley

25 Architectuur met firewall
Internet Diensten Architectuur met firewall Internet Firewall database Web server Werkplekken met Database clients Een typische site waar een firewall vanuit beveiligingsoogpunt noodzakelijk is: een bedrijfsnetwerk die aan het Internet is gekoppeld. Remote Access server Local Area Network (c) KPN Valley

26 Architectuur zonder firewall
Internet Diensten Architectuur zonder firewall database Web server Werkplekken met Database clients Router Internet Hetzelfde bedrijfsnetwerk met een design dat een firewall overbodig maakt. Nauwelijks enig verschil qua componenten behalve dan dat deze anders gearrangeerd zijn en sommige dubbele netwerk aansluitingen hebben. De (soms kostbare) firewall is verdwenen. Deze architectuur vindt men ook vaak terug bij grote Internet sites. Remote Access server Local Area Network (c) KPN Valley

27 ICT anatomie van groot bedrijf
Internet Diensten ICT anatomie van groot bedrijf Centrale IT faciliteiten waaronder en Web Proxy server firewall bridge of router Internet Centrale Router Switch Verbindingen naar andere bedrijfslocaties (c) KPN Valley

28 Internet Diensten De interactie tussen clients en servers
We hebben op de voorgaande pagina’s gezien hoe met behulp van sockets applicaties, services, diensten en deamons kunnen worden gemaakt. Eigenlijk allemaal synoniemen. Maar de vraag is nu “hoe valt met een deamon te communiceren?” Het antwoord is met een client of met Telnet! Er zijn natuurlijk al een flink aantal Internetdiensten gestandaardiseerd en geïmplementeerd. Wij zullen een aantal er van bestuderen om te kijken hoe ze functioneren en hoe de communicatieprotocollen er uitzien. De beste bron van deze protocollen zijn de Internetstandaarden (RFC’s) zelf. Ze zijn goed leesbaar en alle finesses staan er in. Finesses zijn nodig om iets tot in de finesses te begrijpen. Leerboeken, en dit college, brengen vooral begrip bij - de engineer moet zelf verder studeren wanneer deze in een situatie geraakt om een protocol te ontwerpen. Hierboven een schets van de functies van de OSI Sessielaag, Presentatielaag en Applicatielaag, Tanenbaum p.29. In TCP/IP ontbreekt de Sessie- en Presentatie laag. TCP/IP protocollen zijn heel pragmatisch. Dit wordt afgedwongen door de regel dat de te standaardiseren protocollen volledig geïmplementeerd moeten zijn. En dat de broncode van de implementatie zonder verdere rechten daarop, openbaar moet worden gemaakt. Deze regel leidt er toe dat problemen die Presentatie en Sessielaag trachten op te lossen, in TCP/IP specifiek en waar nodig wordt opgelost. Onlangs verscheen voor het eerst een applicatielaag hulp standaard: het session initiation protocol, SIP RFC 2534. (c) KPN Valley

29 Internet Diensten Uit de SIP RFC: The Session Initiation Protocol (SIP) is an application-layer control signaling) protocol for creating, modifying and terminating sessions with one or more participants. These sessions include Internet multimedia conferences, Internet telephone calls and multimedia distribution. Members in a session can communicate via multicast or via a mesh of unicast relations, or a combination of these. SIP invitations used to create sessions carry session descriptions which allow participants to agree on a set of compatible media types.SIP supports user mobility by proxying and redirecting requests to the user's current location. Users can register their current location. SIP is not tied to any particular conference control protocol. SIP is designed to be independent of the lower-layer transport protocol and can be extended with additional capabilities. Hieronder een plaatje uit de rfc dat weer de straightforward manier van standaardiseren illustreert: cs.columbia.edu : : : (~~~~~~~~~~) : : ( location ) : : ( service ) : : ^ | : : | : : 2| 3| : : | | : : henning | : +.. cs.tu-berlin.de ..+ 1: INVITE : | | : : : | \/ 4: INVITE 5: ring : : ========================>(~~~~~~)=========>(~~~~~~) : : < ( )< ( ) : : : 7: 200 OK : ( )6: 200 OK ( ) : : : : ( work ) ( lab ) : : : 8: ACK : ( )9: ACK ( ) : : ========================>(~~~~~~)=========>(~~~~~~) : ====> SIP request ....> SIP response ^ | non-SIP protocols | (c) KPN Valley

30 Application Program Interface (API)
Internet Diensten Application Program Interface (API) Sockets Application Voor de Internet Service Engineer wordt het nu menens. Zijn, haar, domein begint met de socket, een Applicatie Programmeer Interface - API - naar de netwerkprotocollen TCP en IP. Hierboven zijn deze suggestief als een chip socket getekend, waar “applicatie chips” opgemonteerd kunnen worden. Op Unix systemen staan de sockets bekend als Berkeley Sockets Tanenbaum p.486), op PC’s zijn worden ze Winsock genoemd. Onder Windows worden ze door het object Winsock.dll geïmplementeerd. Door de sockets hoeft de engineer niet meer precies de details van TCP en UDP (en andere protocollen) te weten en kan volledig zijn aandacht richten op het maken van services. Services worden in het Unix jargon ook wel deamons genoemd. Een ander belangrijk effect van de sockets is dat applicaties in de meest voorkomende gevallen ook niet hoeven te weten door wie de TCP/IP stack is geïmplementeerd worden (op de PC veelal door Microsoft), wat het aanzienlijker goedkoper maakt om een applicatie te ontwikkelen. Bij dit alles dient echter wel opgemerkt worden dat meestal wel kleinere verschillen tussen Unix en Windows versie van een programma bestaan. Wij gaan nu de Windows versie van de socket onder de loep nemen. TCP IP Logo van de Internet Engineering TaskForce het standaardisatie orgaan voor het Internet (c) KPN Valley

31 Verdiepingstof VB object
Internet Diensten Verdiepingstof VB object Socketoperaties Events tcpServer_ConnectionRequest tcpServer_DataArrival tcpServer_Error Methods tcpServer_Accept tcpServer_GetData tcpServer_Close tcpServer_Listen Properties Protocol RemoteHost RemotePort State BytesReceived …. (c) KPN Valley

32 Internet Diensten Maken Winsock applicatie
Demonstratie Maken Winsock applicatie (c) KPN Valley

33 TCP/IP Applicatie Protocollen
Internet Diensten TCP/IP Applicatie Protocollen NFS FTP Telnet SMTP XWIN HTTP RPC SNMP .... TCP UDP Overzicht van de belangrijkste Internet (TCP/IP) applicaties. FTP - File Transfer Protocol , Tanenbaum p.693. Tanenbaum is bijzonder summier hierover en meent dat FTP op den duur zal verdwijnen. Black (zie bladzijde 1 van deze hand out) behandeld het uitvoerig op p.258. Telnet. De Telnet deamon wordt gebruikt om het “remote login” op Unix systemen naar de command line prompt te faciliteren. Telnet client applicaties bieden daarvoor een eenvoudig “character based” gebruikersinterface. Black p.247 behandelt Telnet uitvoerig. Voor Internet Engineers is de Telnet client bijzonder handig voor het testen van allerlei soorten servers (HTTP, FTP, SMTP...). Dat komt om dat Telnet clients niets anders doen dan een TCP verbinding naar een op te geven poort op een server openen en alle user input in TCP pakketten naar de server te sturen. Omdat alle TCP Applicaties op leesbare commando’s (b.v. OPEN, HELP, GET…) reageren kan men de server eenvoudig commando’s geven. De response daarop, ook leesbaar (b.v. 250 OK) wordt door de Telnet client gepresenteerd. Dit is dan ook het enige wat Tanenbaum op p.686 over Telnet kwijt wil en demonstreert. Men kan zelf de andere protocollen in Tanenbaum, Black maar zeker op het Internet opzoeken: (c) KPN Valley

34 File Transfer Protocol (FTP)
Internet Diensten File Transfer Protocol (FTP) User Interface Telnet connection between PI’s ! User FTP commands User PI Server PI FTP replies File System Helaas is Tanenbaum kort over FTP. Weliswaar heeft hij gelijk als het gaat om het feit dat je het zelfde kan met HTTP (het protocol van het World Wide Web) en dat FTP op den duur verouderd is, desalniettemin zullen we nog heel wat jaren met FTP te maken hebben. FTP is op zich zelf een van de gecompliceerdere protocollen. Het gaat namelijk om “client-server” interactie waarin er twee TCP verbindingen nodig zijn: 1) voor het oversturen van data en 2) voor het communiceren van commando’s. Op de volgende bladzijde een voorbeeld van zo’n commando dialoog. PI, oftewel te protocol interpreter, heeft als taak om gebruiker commando’s als RETR in acties om te zetten. De volgende poorten zijn voor FTP gereserveerd, en zowel TCP als UDP mag worden gebruikt. ftp-data /tcp File Transfer [Default Data] ftp-data /udp File Transfer [Default Data] ftp /tcp File Transfer [Control] ftp /udp File Transfer [Control] Server DTP User DTP File System Data connection FTP Model PI: protocol interpreter DTP: Data transfer process (c) KPN Valley

35 ftp (host) multics<CR>
Internet Diensten ftp (host) multics<CR> username Doe <CR> password mumble <CR> retrieve (local type) ASCII<CR> (local pathname) test 1 <CR> (for. pathname) test.pl1<CR> type Image<CR> store (local type) image<CR> (local pathname) file dump<CR> (for.pathname) >udd>cn>fd<CR> terminate Connect to host S, port L, establishing control connections. < Service ready <CRLF>. USER Doe<CRLF>----> < User name ok, need password<CRLF>. PASS mumble<CRLF>----> < User logged in<CRLF>. User-FTP opens local file in ASCII. RETR test.pl1<CRLF> ----> < File status okay; about to open data connection<CRLF>. Server makes data connection to port U < Closing data connection, file transfer successful<CRLF>. TYPE I<CRLF> ----> < Command OK<CRLF> User FTP opens local file in Image. STOR >udd>cn>fd<CRLF> ----> < Access denied<CRLF> QUIT <CRLF> ----> Server closes all connections. Voorbeeld van een dialoog tussen een FTP client en server. Het transfer van de files vind plaats via een ander kanaal, zie vorige bladzijde. Men had echter ook voor kunnen kiezen om commando’s en data over de zelfde TCP verbinding te versturen. Per slot van rekening kan je daar alles over sturen. Maar daar heeft men niet voor gekozen. Aan de lezer de vraag, waarom niet? (c) KPN Valley

36 Simple Mail Transport Protocol
Internet Diensten Simple Mail Transport Protocol Client Server SMTP Sender Receiver File SMTP SMTP File System System TCP TCP IP IP ... ... Architectuur van de SMTP server, Tanenbaum p.658. Tanenbaum is heel uitvoerig over het verschijnsel , p.643. Software. Wij zullen daarom hier heel beknopt zijn. Cliënt software gebruikt het SMTP protocol om te versturen over het Internet. Meestal bewaart de cliënt dat bericht eerst op het filesysteem alvorens het bericht te verzenden. Het verzenden geschiedt rechtstreeks, of via een routing SMTP server, naar de SMPT server van de ontvanger. Een routing SMTP server, meestal een domein (kpn.com, luc.be) vertegenwoordigend, analyseert welke interne SMTP server de moet ontvangen. DNS servers hebben daarvoor speciale MX records, Tanenbaum p.622. In het plaatje hierboven is deze niet getekend. In dit plaatje verstuurd de cliënt de rechtstreeks via het Internet na de ontvangende server. Na ontvangst wordt de op de server opgeslagen. Een persoon leest zijn berichten uit met het POP3 protocol (Post Office Protocol), Tanenbaum, p.662. Internet (c) KPN Valley

37 TCP connection cleared
Internet Diensten Client SMTP Server SMTP TCP connection establishment (port 25) Helo Alpha.ARPA 220 ready for mail Beta.ARPA MAIL FROM: 250 OK RCPT TO: RCPT TO: 550 No such user there DATA 354: Start mail input; end with <CRLF>.<CRLF> hallo, dit is een test (mail received) <CRLF>.<CRLF> QUIT 221 Beta.ARPA Service closing transmission channel TCP TCP connection cleared Na het openen van een TCP verbinding geeft de cliënt een aantal SMTP commando's om naar meerdere adressen een te versturen. Eerst moet de afzender zich bekend maken (MAIL FROM). Sommige servers checken niet of de gebruiker bestaat. Deze servers worden vaak misbruikt voor spamming (zie verder op). Met RCPT TO worden de geadresseerden bekend gemaakt. Een van de ontvangers is niet bekend. Daar moet de cliënt software dus een foutmelding op genereren. Na het DATA commando volgt de tekst van het bericht. Deze wordt met de ASCII symbolen CRLF.CRLF afgesloten (op de PC genereert de ENTER toets de symbolen CRLF, dus CRLF.CRLF maak je door ENTER.ENTER). QUIT eindigt de sessie. (c) KPN Valley

38 HTTP – het WWW protocol Tools zorgen er gelukkig voor dat je het niet (meer) met de hand commando’s moet geven HTTP - Hypertext Transfer Protocol Overview Wel HTTP is de basis van het Web en alles wat er uit ontstaat HTTP meer en meer de drager van specifieke applicatieprotocollen

39 De Web Server Resource management Security Server
Internet Diensten De Web Server Resource management Security Server management Server Requests, naar tier 3: Fileservers (met HTML pagina’s) Databases HTTP GET, POST Scripts, programma’s die bepalen wat de resultaten zijn Een Internet service/dienst/deamon is niets anders dan een computer met een programma dat naar het Internetverkeer luistert en daarop in actie komt. Maar aan dat programma dient men wel speciale eisen te stellen. Hoe gedraagt het programma zich als de server door te veel clients te gelijk benaderd wordt? Heel vaak zijn Unix en Windows NT de besturingsystemen waarop de specifieke deamons of serverprocessen als WWW en SMTP draaien. Het ontwerp en implementatie van dergelijke deamons van scratch is bijzonder moeilijk. In de praktijk is het veel handiger om bestaande code (programmatuur) aan te passen. Hieronder een bloemlezing van aandachtspunten bij het ontwerp van server software beveiliging meerdere gebruikers tegelijkertijd fouten in de applicatielaag protocollen overload situaties en gebrek aan resources (b.v. computergeheugen) klantgegevens, personificatie back-end systemen - men moet rekening houden met het feit dat front-end-servers zelden stand-alone zijn. Oftewel front-end-servers hebben weer back-end-servers (databases, billing systeem) nodig om te functioneren transactie - Niet zelden moet men ook een transactie mechanisme implementeren. Men moet de gehele actie (b.v. accepteren van een ) ongedaan kunnen maken als er iets fout gaat (b.v. te weinig ruimte in de box). logging - voor bijzondere situaties wil men gelogd hebben wat er gebeurt customer care -b.v. wachtwoord vergeten, wat dan? Responses antwoorden Transactions (c) KPN Valley

40 HTTP basics: Hyper Text Transport Protocol URL
Tranporteert resources (text, scripts binaries, XML, ...) waar de URL naar wijst URL Uniform Resource Locator E.g.

41 HTTP is een client-server protocol
HTTP client opent een TCP/IP connection naar HTTP server HTTP zendt een request En krijgt (meestal) van de server een response Server sluit de connectie HTTP is dus state less, tussen twee requests door wordt geen verbindinginformatie in bewaard

42 Nul of meer header lines Lege regel dus CRLF Optionele message body
HTTP requests en responses hebben het zelfde formaat en zijn eenvoudig te interpreteren Regel 1 met “methode” Nul of meer header lines Lege regel dus CRLF Optionele message body <regel 1, verschillend voor request en responses> Header1: waarde1 Header2: waarde2 Header3: waarde 3 <CRLF> <optionele message body, (binaire) data >

43 Regel 1 Voor requests: Voor responses Response codes
Drie delen gescheiden door spaties <method name> <pad naar requested resource> <HTTP versie> GET /path/to/file/rob.html HTTP/1.0 Voor responses Wordt status regel genoemd <HTTP versie> <response status code> <engelse uitleg/reden voor de status code> HTTP/1.0/ 200 OK Response codes 1xx informational messages 2xx succes messages 3xx redirect naar andere URL 4xx client error messages 5xx server error messages

44 Header lines Informatie voor request en response
Of informatie over object in de message body Format: <Header name: value> <CRLF> HTTP 1.0 16 headers Geen verplicht HTTP 1.1 46 headers Host header is verplicht, er mogen namelijk meer webdomeinen op 1 ip adres aanwezig zijn Host:

45 Request Methods GET HEAD POST Ophalen resource
Ophalen van alleen de response headers Dus niet van de resource Dus message body wordt achterwege gelaten POST Zendt informatie naar een resource op server Meestal HTML “form” data naar scripts POST /path/script.cgi HTTP/1.0 FROM: User-Agent: HTTPtool/2.4 Content-Type application/x-www-form-urlencoded Content-Length: 32 Home=Cosby&favorite+flavor=flies

46 Architectuur Business applicaties
Internet Diensten Architectuur Business applicaties Tier 1 Tier 2 Tier 3 Firewall Internet Browser Web Server Application Services Data Web interface Presentatie Het figuur hierboven, net zoals het figuur op de vorige bladzijde schetst een voorbeeld van het zogenaamde three-tier client server model. Tier één verzorgt de presentatie en invoer functie. Tier drie bevat specifieke (business) applicaties zoals een klantenadministratie op mainframes in het rekencentrum, of een database met “corporate data”, of verbindingen met message queues (een applicatiecommunicatie voorziening). Enz. Tier twee bestaat uit een webserver (Tanenbaum p.685) met zogenaamde server side scripting mogelijkheden. Op de server draaien dan scripts (i.h.a. kleinere, krachtige programma’s) die als respons op gebruikersacties in tier drie, één of meerdere services aanroepen. Voorbeelden daarvan zij het opzoeken van klanteninformatie in een database, een doen van een creditcard check, het berekenen van de positie van het ruimtestation MIR ( Server Side Scripts combineren delen van responses van tier drie tot een HTML die als respons weer naar de gebruiker (terug)gestuurd wordt. Server side scripts worden vaak in PERL (Unix, Tanenbaum p.705) , en Visual Interdev (lijkt op Visual Basic, Windows NT) geprogrammeerd. Niet zelden worden de tiers op verschillende computers geplaatst. Tiers zijn dan ook vaak simpel in een diagram van een site te herkennen. Op de volgende pagina gaan we in op tier 1, de webbrowser. Business Logic (c) KPN Valley

47 Internet Diensten De gebruiker kan vaak aan de URL (de Uniform Resource Locator, Tanenbaum p.692) zien dat bij het klikken een server side script wordt aangeroepen. Dergelijke URL’s hebben namelijk heel vaak de extensie .cgi, voor PERL scripts of .asp voor Microsoft’s active server pages. Bij de Internet Explorer kan men de URL linksonder zien als de muis boven een hyperlink staat. In bovenstaand figuur staat de muis op “specify your location manually”. Helaas is de extensie .asp net niet te zien. De link “select your location from the database” verwijst naar een pagina dat links naar server side scripts heeft die data bases raadplegen. Scripts die in de omgeving van een browser lopen heten client side scripts. Veelal worden deze in Java script geprogrammeerd omdat zowel Netscape en Microsoft deze ondersteunen. De moderne browser ziet een webpagina als een instantiatie van een object. Het bevat HTML (Tanenbaum p.695), objecten en scripts. Als een muis naar deze woorden zou wijzen kan het een MOUSE_OVER event genereren. De webpagina gedraagt zich immers als een object. Een bijhorend script zou dan de kleur van de tekst kunnen veranderen. Objecten komen in twee soorten - JAVA applets (Tanenbaum p.706), en Active X controls (Microsoft technologie). Een voorbeeld van objectgebruik zou zijn dat je op een HTML FORM (Tanenbaum p.701) in een Kalender object een datum aanklikt en deze wordt dan door een script naar de server gestuurd. (c) KPN Valley

48 Business applicaties Tier 1 Tier 2 Tier 3 Data Firewall
Internet Diensten Verdiepingstof Webserver architectuur Business applicaties Tier 1 Tier 2 Tier 3 Data Internet Information Server 4.0 Transaction server Firewall Internet Browser Active Server Pages (scripts) To / from other applications Message Queue Presentatie Objects Hierboven tier twee volgens de Microsoft Internet architectuur. De Microsoft webserver heet de Internet Information Server (IIS). Belangrijk onderdeel van de IIS zijn de faciliteiten voor Server Side Scripting, door Microsoft Active Server Pages (faciliteit) genoemd. Een .asp script wordt het eenvoudigst door de tool Visual Interdev gemaakt. Deze wordt tijdens het college gedemonstreerd. De webserver ondersteunt echter ook andere scriptalen. De ASP omgeving is zodanig ingericht dat de programmeur minimale moeite hoeft te doen om code te maken die betrouwbaar en schaalbaar is, fatsoenlijk met resources omgaat, etc. Code dus die aan alle bij de pagina “Server Software” genoemde criteria voldoet. ASP scripts kunnen gebruik maken van de transactie server (TS). De TS wordt niet allen gebruikt om transacties te ondersteunen maar ook om objecten schaalbaar te maken waarbij de TS aan resource management doet. De TS is vooral van belang bij het maken van e-commerce toepassingen. Wanneer transacties misgaan moet namelijk de effecten van de actie worden teruggedraaid. Ook heeft Microsoft speciale objecten (winkelwagentje, koppeling aan VISA, order processing pipeline, …_ die het maken van een elektronische winkel vergemakkelijkt. NT Server Business Logic Computer centre (c) KPN Valley

49 Commerce Runtime Architecture
Internet Diensten Verdiepingstof Webserver architectuur Commerce Server Objects Content OrderForm DataFunctions Datasource DBStorage MessageManager CookieStorage Page ShopperManager TrafficLogFile TrafficTable Product Info Merchant Info Shopper Info Order Init Order Check Item Price Adjust Order Price Adjust Shipping Handling Tax Order Total Inventory Payment Accept .asp NT/IIS Order Pipeline Global .asa Hierboven de architectuur van Microsofts Commerce Server. Deze, en implementaties van anderen, volgen de principes zoals die op de vorige bladzijden zijn beschreven. .pcf SQL Server or ODBC Database Store Data Shopper Profiles (c) KPN Valley

50 Service integratie /dienstbesturing
Internet Diensten Service integratie /dienstbesturing Business applications Web browser WWW Video Video-on-demand Voor de click to dial dienst moet men twee verbindingen hebben: één voor de telefoon en één voor de Internet verbindingen. Welke netwerk techno-logieën maken dat mogelijk? In de Internet context zullen in de nabije toekomst diensten (sites) op bovenstaande manier georganiseerd worden. De gebruiker maakt met behulp van een webbrowser contact met een webserver via welke toegang krijgt tot een dienst. Op dit moment krijgt men toegang tot zogenaamde business applicaties. Voorbeelden zijn reiziger informatie systemen, en on-line winkels (e-commerce). Voor Intranetten kunnen dat ook een specifiek applicaties zijn - b.v. een portfolio met actuele prijzen. Maar het zal niet lang duren en men kan zo een video bestellen die op een speciale decoder wordt afgespeeld. Ook zal men op een telefoongids kunnen klikken en de webserver zal de telefooncentrale opdracht geven om een verbinding tussen het eigen en een ander telefoon toestel te maken (click to dial). Het aardige van dit model voor de dienstenleverancier is dat de klant betaalt voor het apparaat (PC, NetPC, Set-top box) dat de interactieve dienst presenteert. Dit is het apparaat dat het snelst verouderd. Een videodecoder gaat veel langer mee en leent zich daardoor veel beter voor investeringen van de netwerk/diensten leverancier. Telefonie Telefonie Netwerk (c) KPN Valley

51 Server netwerkconfiguratie
Internet Diensten Server netwerkconfiguratie Program If … Then … Else …. End If Het is verstandig om pas na enige overwegingen een server aan het Internet te “hangen” zoals dat in het jargon heet. Men zou zich moeten bezinnen over kwesties als het gebruik van firewalls, kabelbreuken, brand, etc. Hierboven een van de meest robuuste netwerkconfiguraties van een server die aan het Internet hangt. Er zijn twee (dus redundante) verbindingen van de server met de Internet backbone voor het geval dat er een uitvalt. Dit heeft alleen zin wanneer dit consequent (“all the way up”) wordt doorgevoerd. Om twee redenen heeft het beheer van de server via een apart beheernetwerk de voorkeur: 1) om inbraakpogingen uit te sluiten en 2), een beheernetwerk garandeert ook toegang tot de server wanneer de netwerkverbindingen met het Internet overbelast zijn. Wanneer (zie verder) de serversoftware bovendien goed geconfigureerd is dan is met de bovenstaande setup ook een firewall overbodig. De beschikbaarheid van een Internet dienst is extra te verhogen door meerdere servers te gelijk te gebruiken en round-robin DNS (zie begin college) toe te passen. Servers die aan het Internet gekoppeld zijn worden front-end-servers genoemd. Beheernetwerk Internet 1 Internet 2 (c) KPN Valley

52 Classificatie van bedreigingen
Internet Diensten Classificatie van bedreigingen (tekst document met een logging van pop3 enSMTP waarin gespamd wordt) De creativiteit en uithoudingsvermogen (en resources van professionele) hackers lijkt onbegrensd. De lijst hierboven, die een aantal bedreigingen voor de ISP categoriseert, is dus verre van compleet. Bij “Denial of service attack” bestaat de bedreiging uit het overbelasten van server of de TCP/IP stack op de server. SMTP servers versturen, tenzij bijzondere maatregelen worden genomen, elke dat hen aangeboden wordt. In het bijzonder wordt zelden gebruik gemaakt van de mogelijkheden om voor het versturen te controleren of de afzender daartoe gerechtigd is. Dit kan misbruik van de service tot gevolg hebben. Dit heet spamming. Corrupte protocollen hebben kunnen er voor zorgen dat software fouten maakt (b.v. buiten array (grenzen) schrijven). Een voorbeeld van een corrupt protocol is een TCP pakket veel korter is dan de header aangeeft. (c) KPN Valley

53 XML en toepassingen X E-company 1.. n Billing Customer Care
Internet Diensten XML en toepassingen De volgende pagina’s gaan in op het verschijnsel XML en toepassingen daarvan. XML omvat een aantal Internet standaarden voor de specificatie van inhoud, semantiek en opmaak. Dat XML nu zo in de belangstelling staat komt doordat het besef doordringt dat web servers ook en wellicht, in de hedendaagse context, ideaal geschikt zijn om op /via het Internet computerprogramma’s te koppelen. Stel je eens voor dat jouw computerprogramma via het internet de (vaste en mobiele) telefonie infrastructuur opdrachten kan geven... Een garagebedrijf dat gebruikt maakt van de E-services telefonie en billing? E-interface E-company 1.. n E-interface X E-interface Billing Customer Care (c) KPN Valley

54 XML <?xml version="1.0"?>
Internet Diensten <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="portfolio.xsl"?> <portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes" xml:space="preserve"> <stock exchange="nyse"> <name>zacx corp</name> <symbol>ZCXM</symbol> <price dt:dt="number">28.875</price> </stock> <stock exchange="nasdaq"> <name>zaffymat inc</name> <symbol>ZFFX</symbol> <price dt:dt="number">92.250</price> <stock exchange="nastata"> <stock exchange="dfdfdf"> <name>zysmergy inc</name> <symbol>ZYSZ</symbol> <price dt:dt="number">20.313</price> </portfolio> XML XML – de eXtensible Markup Language is nauw verwant aan HTML. XML, net zoals HTML, net zoals WML (zie elders) en vele andere ML-en is afkomstig van SGML – Standardized General Markup language, dat zo’n jaar of 11 bestaat. Men zou XML kunnen zien als een lean en mean dialect van SGML. XML is op dit moment het belangrijkste specifiecatie mechanisme van content, semantiek en opmaak. SGML is ontworpen voor de uitgeverswereld. In deze context vond men het logisch dat inhoud en opmaak van een document gescheiden gespecificeerd en aangeleverd worden. XSL – de eXtensible Style sheet Language specificeert hoe een XML structuur moet worden afgebeeld. Semantiek wordt gedefinieerd in een bijbehorende DTD –Data Type Definition (Zie de xmlnstag (ns is namespace*) in het XML voorbeeld hierboven. Een DTD is een afspraak tussen een aantal partijen over wat de XML-tags voorstellen. Dit maakt XML geschikt voor applicatie-applicatie koppelingen. Een XML structuur verwijst meestal naar de bijbehorende DTD en XSL. XML wordt gestandaardiseert door het W3 consortium, zie ook de link: *Uit de standaard: [Definition:] An XML namespace is a collection of names, identified by a URI reference [RFC2396], which are used in XML documents as element types and attribute names. (c) KPN Valley

55 XSL <?xml version='1.0'?>
Internet Diensten XSL <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl=" <xsl:template match="/"> <HTML> <BODY> <TABLE BORDER="6"> <TR> <TD>Symbol</TD> <TD>Name</TD> <TD>Price</TD> </TR> <xsl:for-each select="portfolio/stock"> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="name"/></TD> <TD><xsl:value-of select="price"/></TD> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet> Click voor ie Met behulp van XSL kan je een XML structuur afbeelden. Het plaatje hieronder illustreert dit. Op de volgende pagina staat het resultaat van wanneer de XSL hierboven wordt gebruikt om de XML structuur van de vorige bladzijde in HTML om te zetten. Duidelijk zijn in de XSL de HTML tags en een for-loop te herkennen. Verschillende XSL specificaties behorende bij een en het zelfde XML document beelden de XML pagina dus verschillend af. XSL is dus handig als je een HTML pagina wilt genereren voor verschillende apparaten vanuit een en hetzelfde bron document. (c) KPN Valley

56 XSL(XML) … XSL(XML) HTML (in dit geval) Click voor ie
Internet Diensten XSL(XML) … Click voor ie XSL(XML) HTML (in dit geval) Hierboven het resultaat als de stylesheet van de vorige bladzijde wordt gebruikt om (m.b.v. de Internet Explorer) de informatie van de bladzijde daarvoor af te beelden. Technisch gezien is dat een behoorlijke klus. Programma’s als de IE bouwen intern eerst een document object model (DOM) met een aantal “nodes” en “leaf nodes”. Vervolgens kan je nu het in XSL gespecificeerde “afbeelding script” op de objecten laten opereren. Dat genereert opnieuw een DOM dit maal voor HTML of DHTML (Dynamic HTML). Deze DOM’s instrueren de browser hoe de objecten moet worden afgebeeld. In DHTML kan je zelfs specificeren (in Java script b.v.) wat er moet gebeuren als een muis boven een object als ‘zin’ of ‘letter’ staat (het zogenaamde On_mouse_over event). <CUSTOMER> <NAME> <FIRST>Joe</FIRST> <LAST>User</LAST> </NAME> <ADDRESS> <STREET>123 Main Street</STREET> <CITY>Anywhere, USA</CITY> </ADDRESS> </CUSTOMER> Customer Name First Last Joe User Address Street City 123 Main Street Anywhere, USA (c) KPN Valley

57 Internet diensten 2004 wordt vooral gebruikt voor op personen gerichte communicatie en diensten www Kazaa MSN Messenger Customer support – updates, faq, routeplanners Tot nu toe weinig kosten aan verbonden

58 Informatie Maatschappij
Internet Diensten Informatie Maatschappij De interactie tussen clients en servers We hebben op de voorgaande pagina’s gezien hoe met behulp van sockets applicaties, services, diensten en deamons kunnen worden gemaakt. Eigenlijk allemaal synoniemen. Maar de vraag is nu “hoe valt met een deamon te communiceren?” Het antwoord is met een client of met Telnet! Er zijn natuurlijk al een flink aantal Internetdiensten gestandaardiseerd en geïmplementeerd. Wij zullen een aantal er van bestuderen om te kijken hoe ze functioneren en hoe de communicatieprotocollen er uitzien. De beste bron van deze protocollen zijn de Internetstandaarden (RFC’s) zelf. Ze zijn goed leesbaar en alle finesses staan er in. Finesses zijn nodig om iets tot in de finesses te begrijpen. Leerboeken, en dit college, brengen vooral begrip bij - de engineer moet zelf verder studeren wanneer deze in een situatie geraakt om een protocol te ontwerpen. Hierboven een schets van de functies van de OSI Sessielaag, Presentatielaag en Applicatielaag, Tanenbaum p.29. In TCP/IP ontbreekt de Sessie- en Presentatie laag. TCP/IP protocollen zijn heel pragmatisch. Dit wordt afgedwongen door de regel dat de te standaardiseren protocollen volledig geïmplementeerd moeten zijn. En dat de broncode van de implementatie zonder verdere rechten daarop, openbaar moet worden gemaakt. Deze regel leidt er toe dat problemen die Presentatie en Sessielaag trachten op te lossen, in TCP/IP specifiek en waar nodig wordt opgelost. Onlangs verscheen voor het eerst een applicatielaag hulp standaard: het session initiation protocol, SIP RFC 2534. (c) KPN Valley

59 HTTP Response with HTML page
Internet Diensten Web gebruik… HTTP GET HTTP Response with HTML page XML Application De webserver bleek in de loop der tijd ook heel handig voor koppelingen tussen computerprogramma’s. Computers bij bedrijf A sturen een opdracht via HTTP GET naar bedrijf B. Deze voert de opdracht uit en geeft een HTTP RESPONSE met het resultaat. Een reden daarvoor was dat poort 80 op de firewall bij de meeste bedrijven openstaat. Recentelijk heeft gebruikt men ook XML als de data van de HTTP GET en HTTP RESPONSE. XML Response (c) KPN Valley

60 Webservices (from Webservice essentials, E.Cerami)
Internet Diensten Webservices (from Webservice essentials, E.Cerami) Web service Any service available over the Internet That uses a standardized XML messaging system XML Hierboven staat een definitie van webservices. Volgens deze definitie is iets een webservice als er maar XML berichten worden uitgewisseld. De protocollen mogen van alles zijn: , ftp en natuurlijk HTTP. XML (c) KPN Valley

61 Webservice Nice to have Wordt wel complexer…. Self describing
Internet Diensten Webservice Nice to have Self describing Discoverable Wordt wel complexer…. ICT –ers hebben jarenlange ervaring met het maken van gedistribueerde computersystemen. Als je ze zou vragen aan welke diensten software voor een gedistribueerd systeem moet hebben noemt men “self describing” en “discoverable”. Met andere woorden gedistribueerde diensten moeten gevonden kunnen worden en vervolgens moeten ze zelf kunnen uitleggen hoe je kan gebruiken. Dit zorgt ervoor dat het hebben van een service complexer wordt. Je moet zorgen dat je de service ergens aanmeldt, dat je nadenkt over hoe je veranderingen in de functie of interfaces aan je klanten meldt, hoe je met klachten omgaat, hoe… (c) KPN Valley

62 Webservice Implementations
Internet Diensten Webservice Implementations Alternatives XML RPC (remote procedure call) SOAP HTTP Post/Get Een webservice wordt veelal met bovenstaande protocollen geïmplementeerd. SOAP (dat vroeger stond voor Simple Object Application Protocol) is nu wel de meest populaire wijze. IBM en Microsoft hebben veel software development tools daarvoor beschikbaar, zie bijvoorbeeld msdn.microsoft.com (c) KPN Valley

63 Web Service Roles 1, discover services 2, use services Service
Internet Diensten Web Service Roles Service Registry 1, discover services Voorbeeld van hoe een webservice wordt aangeroepen. In stap 1 wordt door de “service requestor”van een programma bij een “service registry” gevraagd waar een bepaalde webservice beschibaar is. Het UDDI protocol wordt hiervoor gebruikt. UDDI betekent Universal discovery description and integration (of applications over the web) , zie Vervolgens wordt de service aangesproken. Dit gebeurt, zoals al is geschreven, meestal met het SOAP protocol. Service Requestor Service Provider 2, use services (c) KPN Valley

64 Web Service onderdelen
Internet Diensten Web Service onderdelen Discovery - UDDI Description - WSDL XML Messaging SOAP, XML We weten dat bij een XML bericht een document behoort dat de semantiek beschrijft. Bij XML webservices heet dat document WSDL – webservices description language. Hierin wordt de syntax van een XML bericht vastgelegd. Transport – HTTP, FTP,SMTP (c) KPN Valley

65 Internet Diensten Webservices Een gedetailleerder plaatje van de invocatie van een webservice. (c) KPN Valley

66 Internet Diensten Webservice life cycle Hierboven staat beschreven hoe een webservice wordt aangeroepen. Men maakt daartoe uit de WSDL file een proxy object aan - dat is voor te stellen als een lokale vertegenwoordiger van de webservice. De software op de client heeft hiermee interactie als ware het een lokaal object. Het proxy object roept via SOAP/XML de webservice aan. Daartoe wordt eerst de opdracht ge “serialized” Serialize is, in deze, de bewerking op computergegevens zodat men deze kan transporteren over een netwerk. Daartoe gebruikt men SOAP. Moderne software-ontwikkelomgevingen als Visual Studio.Net kunnen automatisch vanuit een WSDL file proxy objecten aanmaken. (c) KPN Valley

67 SOAP Message Simple Object Application Protocol W3C SOAP Message
Internet Diensten SOAP Message Simple Object Application Protocol W3C SOAP Message Envelope (Required) Header(s) (Optional) Body(s) (Required) SOAP wordt door het W3C consortium ontwikkeld: Fault(s) (Optional) (c) KPN Valley

68 WSDL Webservice description language W3C
Internet Diensten WSDL <definitions>:Root WSDL Element Webservice description language W3C <Types>: transmitted data types <message>: transmitted messages <portType>: supported functions /operations Abstract overzicht van een WSDL Specificatie. Hieronder die van de GOOGLE zoek engine. <?xml version="1.0"?> <!-- WSDL description of the Google Web APIs. The Google Web APIs are in beta release. All interfaces are subject to change as we refine and extend our APIs. Please see the terms of use for more information. --> <definitions name="urn:GoogleSearch" targetNamespace="urn:GoogleSearch" xmlns:typens="urn:GoogleSearch" xmlns:xsd=" xmlns:soap=" xmlns:soapenc=" xmlns:wsdl=" xmlns=" <!-- Types for search - result elements, directory categories --> <types> <xsd:schema xmlns=" targetNamespace="urn:GoogleSearch"> <xsd:complexType name="GoogleSearchResult"> <xsd:all> <xsd:element name="documentFiltering" type="xsd:boolean"/> <xsd:element name="searchComments" type="xsd:string"/> <xsd:element name="estimatedTotalResultsCount" type="xsd:int"/> <xsd:element name="estimateIsExact" type="xsd:boolean"/> <xsd:element name="resultElements" type="typens:ResultElementArray"/> <xsd:element name="searchQuery" type="xsd:string"/> <xsd:element name="startIndex" type="xsd:int"/> <xsd:element name="endIndex" type="xsd:int"/> <xsd:element name="searchTips" type="xsd:string"/> <binding>: wire formats <service>: location of service (c) KPN Valley

69 Internet Diensten Abstract overzicht van een WSDL Specificatie. <?xml version="1.0"?> <!-- WSDL description of the Google Web APIs. The Google Web APIs are in beta release. All interfaces are subject to change as we refine and extend our APIs. Please see the terms of use for more information. --> <definitions name="urn:GoogleSearch" targetNamespace="urn:GoogleSearch" xmlns:typens="urn:GoogleSearch" xmlns:xsd=" xmlns:soap=" xmlns:soapenc=" xmlns:wsdl=" xmlns=" <!-- Types for search - result elements, directory categories --> <types> <xsd:schema xmlns=" targetNamespace="urn:GoogleSearch"> <xsd:complexType name="GoogleSearchResult"> <xsd:all> <xsd:element name="documentFiltering" type="xsd:boolean"/> <xsd:element name="searchComments" type="xsd:string"/> <xsd:element name="estimatedTotalResultsCount" type="xsd:int"/> <xsd:element name="estimateIsExact" type="xsd:boolean"/> <xsd:element name="resultElements" type="typens:ResultElementArray"/> <xsd:element name="searchQuery" type="xsd:string"/> <xsd:element name="startIndex" type="xsd:int"/> <xsd:element name="endIndex" type="xsd:int"/> <xsd:element name="searchTips" type="xsd:string"/> <xsd:element name="directoryCategories" type="typens:DirectoryCategoryArray"/> <xsd:element name="searchTime" type="xsd:double"/> </xsd:all> </xsd:complexType> <xsd:complexType name="ResultElement"> <xsd:element name="summary" type="xsd:string"/> <xsd:element name="URL" type="xsd:string"/> <xsd:element name="snippet" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="cachedSize" type="xsd:string"/> <xsd:element name="relatedInformationPresent" type="xsd:boolean"/> <xsd:element name="hostName" type="xsd:string"/> <xsd:element name="directoryCategory" type="typens:DirectoryCategory"/> <xsd:element name="directoryTitle" type="xsd:string"/> De Google WSDL gaat nog een paar bladzijden verder. Een proxy objectmaken doe je dus niet met de hand! (c) KPN Valley

70 Web Services Invocatie Modellen
Internet Diensten Web Services Invocatie Modellen One way Client <input> Server Request response <1, input> Client Server <2, output> Solicit response <1, output> Client Server Er zijn vier modellen voor de invocatie van webservices. Nummer 2 wordt het meest gebruikt. <2, input> Notification Client <output> Server (c) KPN Valley

71 Application Program Interface (API)
Internet Diensten Application Program Interface (API) Sockets zijn interfaces naar de TCP/IP protocol stacks op een computer Applicaties worden “op” sockets gebouwd Maar vrijwel niemand doet dat nu nog Men gebruikt Webservers Applicatie Servers die een groot (ste) gemene deel van Server ontwikkeling aanbieden Application HTTP HTTP Voor de Internet Service Engineer wordt het nu menens. Zijn, haar, domein begint met de socket, een Applicatie Programmeer Interface - API - naar de netwerkprotocollen TCP en IP. Hierboven zijn deze suggestief als een chip socket getekend, waar “applicatie chips” opgemonteerd kunnen worden. Op Unix systemen staan de sockets bekend als Berkeley Sockets Tanenbaum p.486), op PC’s zijn worden ze Winsock genoemd. Onder Windows worden ze door het object Winsock.dll geïmplementeerd. Door de sockets hoeft de engineer niet meer precies de details van TCP en UDP (en andere protocollen) te weten en kan volledig zijn aandacht richten op het maken van services. Services worden in het Unix jargon ook wel deamons genoemd. Een ander belangrijk effect van de sockets is dat applicaties in de meest voorkomende gevallen ook niet hoeven te weten door wie de TCP/IP stack is geïmplementeerd worden (op de PC veelal door Microsoft), wat het aanzienlijker goedkoper maakt om een applicatie te ontwikkelen. Bij dit alles dient echter wel opgemerkt worden dat meestal wel kleinere verschillen tussen Unix en Windows versie van een programma bestaan. Wij gaan nu de Windows versie van de socket onder de loep nemen. TCP IP Logo van de Internet Engineering TaskForce het standaardisatie orgaan voor het Internet (c) KPN Valley

72 Een telefoongesprek opzetten is het zelfde als het bekijken van een webpagina
SME 1 SME 2 SME 2 Telephony-ASP private void ButtonCall_Click(object sender, System.EventArgs e) { WebApplication10.com.kpn.research.t_lab.ictnn1.WebTelSoapService wt = new WebApplication10.com.kpn.research.t_lab.ictnn1.WebTelSoapService(); WebApplication10.com.kpn.research.t_lab.ictnn1.Response rt = new WebApplication10.com.kpn.research.t_lab.ictnn1.Response(); ///make call rt = wt.ConnectAB(“GoNorth",“xxx","236b53:f2c7bbb4b5:-7aee","meijer", TextA.ToString(),"",TextB.ToString(),""); TextResult.Text=rt.ToString(); }

73 Internet Diensten Call Notification Gewaarschuwd worden als er een telefoontje voor je is geweest. Verschillende gebruikers hebben verschillende wensen (My-Rules) de een wil een SMS-je de ander een tje en een derde een regel in zijn outlook calender met tijdstip en nummer voor personen uit zijn contact list wordt ook de naam vermeld (c) KPN Valley

74 Van Telematica naar Information Society Technologies
Internet Diensten Van Telematica naar Information Society Technologies Traditional Contemporary Technologies for information exchange Future Technologies for information exchange Technologies for the abstraction of individual computers – aka middleware Presentation Session Transport Link Data Link Physical Application OSI Specifications of protocols between computers and/or telecommunication systems Middleware Application Virtual Computer computer Technologies for the abstraction of individual computers – aka middleware DNA sequencer DB 3d Super computer Workstation Technologies to use the “physica”l facilities of others Web Services horen bij de nieuwste ontwikkelingen op het Internet. Webservices worden gebruikt om andermans faciliteiten op afstand onderdeel te laten zijn van je eigen proces of applicatie. Eigentijdse applicaties gebruiken hooguit, via middleware, andermans programmatuur. (c) KPN Valley

75 Maar op deze manier is een ding online gezet, en dat is het voorbeeld voor veel meer …
wireless link computer and sensors Step 1: Think and link the things Build in a computer Give that computer control Link the computers (via the Internet) i Teaspoon Software Online internet Step 2: Create virtual “agent” for a group of things That offers easy, controlled, service, to many “customers” via the internet “the service of an online resource” Forget about the individual things

76 … uiteindelijk bepaald de virtuele wereld hoe de echte wereld interactie heeft
Step 3: Service integration and creation Software integrates the services and interactions of various resources into a new service Caffeine advisor Teaspoon Software Online Human caffeine model Billing Software Telephone Company

77 Met software wordt de informatiemaatschappij aan elkaar geschroefd
namespace FarmingApplication10 { /// <summary> /// Test program for optimal farming field management, trial 10: /// see if we can image analyze the field, measure soil composition and get /// an irrigation /// </summary> public class WebForm10 : System.Web.UI.Page /// everything starts with a mouse click private void ButtonCall_Click(object sender, System.EventArgs e) /// declare and initialize the farming field object farmingField field = new farmingField(“GreenField”, “Lot 7”); Try ///connect the video measurement system for 20 seconds field.Image = new VideoImage(field.observationPointSet(19),”20 s”); ‘make image field.Soil = new SoilImage(field.observationPointSet(19)); ‘measure soil composition /// Obtain growth analysis, but first reserve computer and network capacity /// then load the growth program and field.State.GrowthAdvise = new field.farmingAnalysis.growth(“TUCCC”,”Telecompany”,”GreenFieldProgramGrowthTest10”); /// Execute only the irrigation advice irrigationResult IR = new field.garmingAnalysis.growth.irrigate(“Water Institute”); } Catch MsgBox(“Experiment not succesful”); Met software wordt de informatiemaatschappij aan elkaar geschroefd The Underground Computer Company The Tele- company The Vibration Sensor Company Green Field Farming The Secure and Anonymous Image Interpretation Group The Precision Farming ASP Coop The Water Intstitute

78 Watermanagement ... Toepassing 1 Instantie 1 Toepassing 2 Bedrijf
Kennisinstelling Watermanagement ... Computer infrastructuur Exploitatie Informatieverwerking Ontvanger Sensorsysteem met elektronische dataoverdracht

79 Internet Diensten … telecommunicatie en computers worden in alles ingebouwd: het fundament van de informatiemaatschappij … in our things in our cities in our environment in our country And in us (c) KPN Valley

80 Why things should things link and think. Waarom doen we dit
Why things should things link and think? Waarom doen we dit? Het is het westerse antwoord om welvarend te blijven. Met techniek halen we er meer uit… Ecological border withhout Information society technologies Ecological border with Information society technologies Less security More technology Less care Less roads Less economy Less fun


Download ppt "Internet Internet Diensten Informatie Maatschappij"

Verwante presentaties


Ads door Google