Client/server architectuur en sockets info



Dovnload 197.06 Kb.
Pagina2/3
Datum20.08.2016
Grootte197.06 Kb.
1   2   3

2. Bespreek de client/server interactie bij FTP.

  • Gebruiker draait lokaal FTP toepassing.

  • open legt control-connectie

        • Opdrachten zenden

        • Antwoorden ontvangen

        • Blijft gedurende de hele c/s-sessie

  • App interpreteert commando’s gebruiker en doet desnoods een aanvraag bij FTP server, volgens het protocol

  • Server antwoord volgens protocolregels


- Welke verschillende stappen worden doorlopen tijdens een FTP-sessie?

FTP-programma openen



open: Control-connectie opzetten met server

Autorisatie

=>remote user =>zelfde rechten op de verbonden computer als moest ie lokaal

Dataconnectie: bestandstransfer



close: control-connectie verbreken
- Welke verschillende verbindingen worden gehanteerd?

    • Control-connectie

      • Opdrachten zenden

      • Antwoorden ontvangen

      • Blijft gedurende de hele c/s-sessie

    • Data-connectie

      • Nieuwe connectie per file (zowel up- als download)

    • Beid connectie-types zijn TCP, maar hanteren verschillend protocolpoortnummer


- Welke voordelen zijn aan deze werkwijze verbonden?

Voordelen tweevoudige connectie:



    • Bestandsdata wordt nooit verward met FTP-opdrachten => vereenvoudiging protocol

    • Tijdens data-transfer, kan de control-connectie nog voor iets anders gebruikt worden

    • EOF wordt in data-connectie meegegeven, bestandsgrootte niet in control-connectie

  • Tijdens transfer kan bestand nog van grootte veranderen



3. Bespreek TFTP. Wat is het? Wat zijn de voordelen t.o.v. FTP? Geef enkele toepassingen

van TFTP.

- TFTP = Trivial File Transfer Protocol (trivial = simpel = beperkt)

- Primitieve versie van FTP

- Beperkte interactiemogelijkheden

- Enkel file transfer

- Directory opvragen onmogelijk

- Geen login-identificatie (bestand moet globale toegang toestaan)

- UDP-communicatie ipv TCP connecties


- Voordelen:

  • Geen TCP nodig, enkel UDP

  • Minder geheugen nodig dan voor FTP

- Toepassingen:

  • Download bootprogramma naar diskless toestellen (‘bootstrapping’)

  • Downloaden firmware naar ‘minder intelligente’ toestellen (routers, telefoontoestellen, CD-ROM torens,

  • Toestellen moeten enkel over ROM met TFTP, UDP en IP beschikken.

  • TFTP broadcast bij boot

  • TFTP-server verstuurt bootprogramma naar toestel

  • Flexibiliteit: bootprogramma aanpassen aan specifieke noden of upgraden zonder ROM te moeten wijzigen


4. Bespreek de algemene werking van de op TCP/IP gebaseerde file access services NFS en

CIFS.

Principe: (gedeelte van het) file systeem van een server (‘share’) wordt gesimuleerd deel uit te maken van het lokale file systeem (als een extra drive)

- Simultane toegang door # clients, met locks

- Security

* Toegang tot ‘share’ kan beveiligd worden met paswoordidentificatie

* beperkingen opleggen op user en op file niveau

HTTP
1) Bespreek de eerste headerlijn van een http-aanvraag bericht. Geef de vier verschillende basismogelijkheden en bespreek hun functionaliteit.


  • HTTP-request begint met speciale lijn:

GET http://gonzo.hogent.be/intranet HTTP/1.1

HEAD /intranet HTTP/1.1

POST /bin/gastenboek.pl HTTP/1.1
Aanvraagmethode URL/URI protocolversie

servernaam vaak opgenomen in aparte Host-header

Host: gonzo.hogent.be


      • http versies zijn backward compatibel

1. GET

- Client wil bron raadplegen (ev. afh. van query)

- Bericht bevat enkel headerlijnen, geen corpus

- Vaak bestand op server

- Geen verandering op server

- Caching toegestaan

- URL opgeven/link klikken => GET-aanvraag

2. HEAD

- Client wil informatie over bron opvragen

- Antwoord server bevat enkel headerlijnen

- Grootte v/e bron te weten komen

- Laatste wijziging => cache nog geldig?

3. PUT

- Client wil bron naar server overbrengen

- Omgekeerde van GET

- Uploaden ipv met FTP

- Door weinig servers ondersteund

4. POST

- Client wil gegevens op server aanpassen

- Zonder volledige bestanden door te sturen

- Gegevens toevoegen aan databank,…

- HTML-formulieren

- Corpus = inhoud formulier


2. Bespreek de eerste headerlijn van een http-antwoord bericht. Welke vijf verschillende types zijn mogelijk?

  • Eerste headerlijn = statuslijn

HTTP/1.1 200 OK

HTTP/1.1 404 Not Found

=>Protocolversie statuscode tekstbericht


  • Statuscodes:

    • Eerste cijfer geeft type status aan

1??: informatief

aanvraag is ontvangen

verdere berichten volgen

2??: succes

200 OK : aanvraag gelukt, corpus antwoord bevat bijv. gevraagde HTML-tekst

3??: omleiding

aanvraag zal opnieuw moeten gebeuren

301 Moved Permanently

302 Found

303 See Other

- Location header bevat nieuwe locatie

- gebruiker merkt normaal niets



4??: fout bij client

De aanvraag is verkeerd

401 Unauthorized (client moet wachtw vragen a/gebruikr & a/vraag opnieuw prob

403 Forbidden: niet toegankelijk (zelfs niet met wachtwoord)

404 Not Found: bron bestaat niet (meer)

5??: fout bij server

501 Not Implemented serverSW ondersteund het gebruikte type aanvraag (nog) niet



3. Geef schematisch de architectuur van een browser weer. Bespreek. Welke verschillende onderdelen kan je onderscheiden? Hoe werken ze samen?

Gebruiker typt URL of clickt op link

Controller roept client aan

Client haalt document op bij server

Interpreter geeft document weer op scherm

Interpretatie tags

Functionaliteit koppelingen

HTTP client

FTP client

- Ev. automatisch en in achtergrond - Bestand ophalen



  • Initialisatie

Bespreek BOOTP. Waarvoor dient dit protocol? Bespreek de velden van een BOOTP-bericht (berichtformaat figuur gegeven)
BOOTP (Bootstrap Protocol)

  • Protocol dat zichzelf op gang zet & onderhoudt, computer weet zelf wat gecontroleerd moet worden en welke bestanden geladen meoten worden = Bootstrapping

  • Bootp = protocol dat gebruikt wordt om via bootstrapping te communiceren, zonder voorafgaande instructies

  • Werking:

    • Indien een pc geconfigureerd als Bootp Client het internet wil gebruiken zendt hij een broadcast (request) over het lokale netwerk. Als er een bootp-server geïnstalleerd is op het netwerk zal deze de broadcast horen, zijn referentietabellen raadplegen en een pakket naar de bootp client terugsturen met volgende informatie:

      • IPMA / gateway / DNS

  • Eerst had men RARP dan BOOTP en uiteindelijk DHCP

BOOTP-server antwoordt met BOOTP Reply

* IP-adres computer

* IP-adres en naam server

* IP-adres standaardgateway

Request en Reply

* Client stuurt met bronadres 0.0.0.0 naar bestemming 255.255.255.255

(broadcast)

* Server antwoordt naar MAC-adres of gebruikt ook broadcast



-> (berichtformaat figuur gegeven)Bespreking velden…



Verwerking van het bericht:

OP: Request of Reply

HTYPE: type netwerk-hardware

HLEN: lengte hardeware-adres

HOPS: aantal relays dat het bericht gepasseert is

TRANSACTION-IDENTIFIER: unieke identificatie v/ deze vraag-&antwoord

CLIENT IP: indien reeds gekend (bijv. via RARP)

CLIENT HARDWARE ADDRESS: MAC adres client



Netwerkconfiguratie:

YOUR IP: client IP configureren indien nog onbekend

SERVER IP, SERVER HOST NAME: informatie over de server

ROUTER-IP: standaard gateway



Boot-image doorgeven:

BOOT FILE NAME: client stuurt generieke aanvraag

server antwoordt met locatie van boot-image

daarna gebruikt de client TFTP om het bootimage op te halen



Waarvoor dient dit protocol?

BOOTP berust op een vooraf geconfigureerde database van IP-entries.

Om zonder handmatige configuratie een computer te kunnen laten booten, moet een computer dynamisch een IP-adres toegewezen krijgen.

Mogelijkheden:

IPX: IP berekenen uit (uniek) hardwareadres

AppleTalk bidding: willekeurig adres kiezen en testen



DHCP
Bespreek DHCP. Waarvoor dient dit protocol? Vergelijk met BOOTP.

DHCP= Dynamic Host Configuration Protocol

      • kan alles wat bootp kan, maar veel meer

      • Verschil: is felxibel in afhandelen van ip-adressen & afhandelen van tijdelijke ip-adressen. Men kan ook niet gebruikte adressen recupereren…handig met mobiele werkstations.

      • Het is een service die mogelijk maakt om individuele computers die in een netwerk zitten automatisch de juiste configuratiegegevens mee te geven

      • Automatiseert alles, vroeger alles zelf ingeven adhv mac-adres worden nu gegevens toegekend.

      • Dynamisch en statisch adres

  • Doel

- gecentraliseerde configuratie en beheer

eenvoud ö , kans op fouten ø (adresconflicten)



configureren mobiele computers

# beschikbare IP-adressen < # computers
WERKING DHCP

Net zoals bij BOOTP begint het met een client die een broadcast doet. Alleen heet die hier DHCPDISCOVER. Dit dient in eerste instantie om te weten te komen of er DHCP-servers in de buurt zijn en zo ja, welke. Zo'n DHPDISCOVER kan via een router naar andere netwerken gestuurd worden. Alle DHCP-servers die dit DHCPDISCOVER-bericht ontvangen, antwoorden met een DHCPOFFER. Die komen allemaal bij de client en die moet nu één zo'n aanbod uitkiezen.




voorbeeld van een toegewezen DHCP-configuratie

Zo'n aanbod omvat overigens een heel erg tijdelijk ip-adres (geldig voor hooguit een minuut of twee) waarmee de client nu volwaardig van het ip-netwerk gebruik kan maken zodat hij de rest van zijn onderhandelingen probleemloos kan uitvoeren. De client stuurt nu naar de uitgekozen server een DHCPREQUEST (in tegenstelling tot een BOOTPREQUEST is dit dus geen broadcast maar een unicast): "ik wil graag een adres hebben". In feite vraagt een client hier meer dan alleen een adres, hij geeft een volledige waslijst van instellingen op die hij ingevuld wil hebben. Deze instellingen heten de DHCP-opties. De uitgekozen server reageert met een DHCPACK (zoals als een BOOTPREPLY, de 'ack' staat voor 'acknowledgement' en dat betekent bevestiging) waarin dus het uiteindelijke ip-adres voorkomt samen met een huurtijd (dat is de voorziene duurtijd voor de client om van dit ip-adres gebruik te maken, daarna vervalt deze 'huur'). Deze huurtijd wordt ingesteld door de netwerkbeheerder en kan enkele minuten, enkele uren of enkele dagen bedragen. Een permanente huur is ook mogelijk: dan reikt de server in feite een statisch adres uit. In dit DHCPACK-antwoord komen ook alle gevraagde opties ingevuld voor: de standaardgateway, één of meerdere dns-serveradressen, indien gewenst het wins-serveradres, en eventueel de adressen van andere servers zoals standaard webserver, ftp-server, mailserver en nog meer.


In de DHCP-standaard werden een aantal vaste opties voorgedefinieerd, maar je kunt ook zelf nog opties definiëren. Als een DHCP-huur (DHCP 'lease') vervalt, kan de client de huur vernieuwen zolang het adres vrij blijft en de server geen bezwaar heeft. Een server kan bezwaar hebben als de client vanuit een ander netwerk komt en hernieuwing vraagt van een adres dat helemaal niet in dit netwerk (of tenminste in dit DHCP-park) thuishoort. In zo'n geval krijgt de client van de server geen DHCPACK maar een DHCPNAK (negative acknowledgement of negatieve bevestiging, dat is dus een ontkenning: "nee, je mag dit adres niet gebruiken!". In dat geval moet de client helemaal opnieuw beginnen met DHCPDISCOVER (omdat de tot dan gebruikte DHCP-server immers niet de meest geschikte hoeft te zijn). Als de client bij het hernieuwen van een DHCP-huur vaststelt dat hij de server die hem die huur verstrekt had niet meer kan bereiken, mag hij de DCHPREQUEST zolang de huur nog geldig is uitsturen via een broadcast in plaats van een unicast in de hoop dat een back-up-DHCP-server actief is en de broadcast opvangt. Dan zal die back-upserver de huur vernieuwen.

Als de client echter geen antwoord krijgt (of een DHCPNAK), dan verliest hij zijn huur en moet hij helemaal opnieuw beginnen met DHCPDISCOVER. Dat geldt ook als de client de DHCPREQUEST niet binnen zijn huurtijd kan verzenden. Als de client via DHCPDISCOVER een server kan contacteren en dus een nieuwe huur onderhandelt, betekent dat wel dat aan die nieuwe huur dus een nieuw ip-adres en eventueel ook andere DHCP-opties vasthangen. In zo'n geval zouden uiteraard alle bestaande netwerkverbindingen verbroken worden op het moment dat de huur verviel.



Bespreek het initialisatie- en vernieuwingsproces van DHCP.
initialisatie proces (1)

optie 51: gewenste leasetijd

optie 55: geordende lijst van gewenste opties
initialisatie proces (2)

optie 54: IP-adres van de server

initialisatie proces (3)




optie 54: IP-adres geselecteerde server
initialisatie proces (4)


initialisatie proces (5)

    • Indien client ongeldig (buiten de scope, reeds gebruikt,…) IP-adres aanvroeg,

stuurt de DHCP server een negatief DHCP-Acknowledgement bericht. Initialisatie proces moet herbegonnen worden

    • Indien client niet tevreden is met verkregen lease adres, stuurt hij DHCP-decline naar server. Initialisatie wordt herbegonnen

    • Client stuurt DHCP-release om IP terug vrij te geven, bijv bij shutdown (windows clients doen dit niet)



Vernieuwingsproces(1)

na verstrijken van T1 (renewing)

vernieuwingsproces (2)

na verstrijken van T1 (renewing)

Default: T1 = ½ leasetijd

Client stuurt DHCP request

Server antwoordt met positief DHCP acknowledgment

Opties kunnen bij renewing dynamisch aangepast worden


vernieuwingsproces (3)

na verstrijken van T2 (rebinding)



vernieuwingsproces (3)

na verstrijken van T2 (rebinding)

Default T2 = 7/8 leasetijd

Als oorspronkelijke DHCP server niet reageerde op renew-aanvraag, client gaat op zoek naar willekeurige andere DHCP server op het netwerk.

+ een server antwoordt met DHCP-offer om huidige lease voort te zetten bij hem

- een server antwoordt met negatief DHCP acknowledgement, lease vervalt, initialisatie moet herbeginnen.


Wat is een DHCP relay agent? Bespreek zijn werking.

    • Wordt ingesteld op router. Kijkt of er op bepaalde netwerken een DHCP Discover pakket wordt verstuurd. Als Dit zo is dan wordt het pakket doorgestuurd naar het netwerk waar een dhcp-server is geïnstalleerd. Deze server suurt dan weer een pakket terug met de info die de client nodig heeft. Dit pakket wordt ook opgevangen door de router en doorgestuurd naar client

    • Dank zij DHCP relay software, geïnstalleerd op een router (of software-router),hoeft er nt in elk subnet e/ DHCP server vr te komen

    • De relay agent ontvangt broadcasts van client en broadcast ze verder naar een volgend subnet (max. 4 hops) OF stuurt ze gericht door naar een DHCP server

        1. Broadcast van de client

        2. Router stuurt aanvraag door naar server

        3. Server antwoord naar router

        4. Router broadcast terug naar client



relay-agents: hardware routers

- aanvullende velden in header: hop en gateway adres



bootp relay-agents: Linux of Windows 2000


relay-agents:

Linux


dhcrelay IP-adres1 IP-adres2 ...

Windows 2000



rrasmgmt.msc

* DHCP Relay Agent configureren als nieuw routing protocol + invullen van General tabpagina

* Interface(s) toevoegen + invullen van General tabpagina


  • relay-agents verhogen de fouttolerantie

  • Er is geen inter-server communicatie voorzien in DHCP

    • Verschillende DHCP servers best in ≠ subnetten plaatsen.

    • Elke server moet beschikken over unieke address scope

Bespreek de samenwerking tussen DHCP en DNS. Welk(e) commando(‘s) zou je gebruiken om een Windows2000 DHCP client een nieuw IP-adres te geven?


    • DHCP & DNS

    • Telkens een host een nieuw IP-adres krijgt, moet de DNS server opnieuw geconfigureerd worden

    • Vroeger werkten DHCP en DNS niet samen, en moesten DNS updates manueel uitgevoerd worden.

    • recente DNS ondersteunt dynamische updates

* Dynamische updates kunnen door de client (Win2000) verzonden w.

* Sommige clients kunnen dit niet (WinNT). Dan zorgt de DHCP server voor DNS update.



    • recente DNS ondersteunt dynamische updates

+ optie 81: Fully Qualified Domain Name (FQDN)





  • DHCP-cliënt configuratie (Windows 2000)

      • DHCP Client service

        • netsh interface ip set address interface dhcp

        • netsh interface ip set dns interface dhcp

        • net stop|start “DHCP Client”

        • ipconfig /all

        • ipconfig /release [interface]

        • ipconfig /renew [interface]

      • DHCP gegevens worden gecached in het register

      • geen server beschikbaar? Automatic Private IP Addressing (APIPA), random uit gereserveerd bereik: 169.254/16

        • niet verwarren met adresbereiken 10/8, 172.16/12, 192.168/16



CGI
INFO

CGI= Common Gateway Interface

- overeenkomst tussen http-server implementors om gateway scripts en programma’s te integreren

- Interactiviteit van een website verhogen door vb. webformulieren

- Draaien op www server => er zijn geavanceerde mogelijkheden om dynamische/interactive website

te maken
WERKING



  1. Als u een formulier invult en verzendt dan wordt de inhoud van dat formulier

doorgegeven aan een CGI programma, dit CGI programma kan dan die gegevens

verwerken. Bv. via email.

CGI programma worden vaak in redelijk eenvoudige script talen geschreven zoals

Perl, vandaar dat CGI programma’s ook vaak CGI scripts worden genoemd.

(kunnen ook voorgeinstalleerd zijn op de hosting sever)


  1. Een client pc stuurt input naar een CGI server, (bv formulier). De CGI server verwerkt

de input & stuurt output naar bestand of webserver. Deze verstuurt vervolgens content

naar gebruiker.



1) Welke drie verschillende basistypes van webdocumenten kan je onderscheiden? Bespreek,

geef voorbeelden en geef voor- en nadelen.

  • Statisch

volledig bepaald door auteur webpagina, steeds hetzelfde

+ Eenvoudig, betrouwbaar, snel



        • inflexibel




  • Dynamisch

webserver voert applicatie uit en genereert dynamisch een webpagina (CGI-script, Java Servlet, PHP, … -> HTML voor browser)

+ Up-to-date informatie

- Kosten(programmeren, HW, tijd), statisch in browser


  • Actief

server stuurt kopie applicatie op naar client. Client draait applicatie en bepaalt uitzicht webpagina (Java applets)

+ informatie wordt voortdurend bijgewerkt

- kosten, complexiteit (geschikt voor willerkeurig systeem)
2) Geef de basisbewerking van CGI schematisch weer. Bespreek de verschillende stappen

kort. Bespreek de in- en uitvoer van een CGI-script uitvoeriger (je hoeft geen uitgewerkte

voorbeelden van scripts te geven).



  1. Actie gebruiker (URL ingeven, link, submit,…)

  2. HTTP client stuurt HTTP aanvraag GET of POST

  3. Server zoekt toepasselijke CGI-script + doorgeven gegevens uit headerlijnen en corpus HTTP-aanvraag

  4. Script verwerkt gegevens en geeft output aan server

  5. Server stuurt HTTP-antwoord naar client

  6. Browser toont resultaat



INVOER CGI-script (3)

  • Parameters voor uitvoer CGI-script

  • Kan afkomstig zijn van:

    • Standaardinvoerkanaal

    • Opdrachtlijnparameters (command line parameters, historisch, gebruik afgeraden)

    • Omgevingsvariabelen (environment variables)

      • Informatie, deels meegegeven in URL, wordt in omgevingsvariabelen geplaatst

      • Script leest informatie uit omgevingsvariabelen in

* Protocol

* Servernaam

* Serverpoort

* Scriptnaam cgi-dump/cgidump

* Pad /dir/file

* Query naam-waarde-paren na ‘?’


* Van URL naar omgevingsvariabelen:

* Andere door het script gebruikte omgevingsvariabelen:

-> Serversoftware en CGI-versie:

-> Info over de aanvrager (soms zijn dit eigenlijk de gegevens van de proxyserver)

-> Authenticatie informatie

-> Rechtstreeks uit HTTP-headers

* Aanvraagmethode: POST of GET

* REQUEST_METHOD = POST: corpus van de HTTP-aanvraag wordt aan script doorgegeven via standaard invoerkanaal.

* REQUEST_METHOD = GET: omgevingsvariabelen worden via QUERY_STRING meegegeven

* Structuur: naam1=waarde1&naam2=waarde2&…

* Codering in URL:

-> Spatie: ’’ + ’’

-> Speciale tekens: % + ASCII-code



1   2   3


De database wordt beschermd door het auteursrecht ©opleid.info 2017
stuur bericht

    Hoofdpagina