10. Applikationsskikt

Applikationslagret tillhandahåller uppkopplingsuppgifter mellan applikationer vi använder för kommunikation över nätverk. Kommunikationen styrs av regler vilka programmeras in på nätverksorienterade applikationer, därmed kan vi definiera ett program som ett resultat av protokollstillämpningar. Ur kommunikationsenheter är program egentligen en process. Varje gång man startar ett program startas automatiskt en process i vilken körs programmet. Processerna tilldelas resurser exempelvis en del av arbetsminne, processor, exekveringstrådar osv.

Bild 1: Applikationsskikt i OSI modell

Applikationsskiktet i en kommunikationsmodell definierar bland annat följande:

  • processer när kommunikationen initieras/avslutas
  • meddelandetyp
  • meddelandets syntax
  • hur styrinformation ska användas
  • hur meddelanden överförs
  • interaktionen med nästa lägre skikt

Server-klient nätverk

Kommunikationssignaler överförs i det underliggande nätverket till vilket anpassas applikationers funktioner.

Bild 2: Serverprocesser i  Applikationsskiktet

I klient-server nätverksmodell begär klienten data/tjänst och servern svarar på begäran. Klient och serverprocesserna anses tillhöra i applikationsskiktet och därför beskriver applikationsprotokollen kommunikationsprocessen mellan klienter och servrar. Vi kan också säga att server tillhandahåller resurser som finns på servern och klienten använder/utnyttjar resurserna.

Serverapplikationer

En server är vanligtvis en kraftfull dator som kör serverapplikationer och som innehåller information och mjukvara som ska delas med många klientsystem.

Bild 3: Server i Applikationsskiktet

En sådan dator behöver ett serveroperativsystem som innehar nätverksanpassad funktionalitet just för att servera resurser. Däremot ett klientoperativsystem är designat för att använda serverresurser även om en klientdator kan också agera som serverdator, men i ett begränsat sätt.

Liksom de flesta tjänster brukar serverprocesser köras i bakgrunden utan användarens direkta kontroll.

Namnsystem – DNS

I ett datanät identifieras nätverksenheter med numeriska IP-adresser så att de kan hitta varandra. Vi människor använder namn istället. Därför har domännamn skapats för att omvandla den numeriska adressen till namn. Att omvandla namn till numeriska adresser kallas för namnupplösning (name resolution).

Bild 4: DNS – en distribuerade databas

Systemet som hanterar domännamn heter Domain Name System, eller bara DNS. Den är en hierarkisk distribuerad databas som använder en distribuerad uppsättning servrar, utsprida i olika länder. Dessa servrar räknas upp till 13 logiska DNS server, men i verkligheten är de flera hundra.

Nätverkstjänster körs ofta inom någon applikation men DNS, som är en klient/server tjänst, körs som en självständig nätverkstjänst och inte i någon applikation.

När datorklienter (hosts) behöver omvandla ett domännamn till en IP adress konfigureras de att kontakta en eller flera lokala DNS-servrar. Dessa lokala DNS servrar tillhandahåller adresser för lokala resurser registrerade i en lokal databas. Resurserna heter “Resource Records” eller på svenska resursposter, här nedan anges några av de:

  • SOA – finns i varje auktoritative zon.
  • NS – auktoritative (lokal) namnserver.
  • Host (A eller AAAA) – associerar DNS namn till IP adress.
  • Alias (CNAME, canonical name) – tillåter flera namn som pekar samma resurs.
  • Mail Exchanger (MX) – postserver tjänster som lokaliserar mailserver.
  • Service location (SRV) eller service records, används för att mappa specifika servertjänster mot DNS namn.
Bild 5: DNS Name Resolution

När DNS-frågan handlar om externa resurser och när lokala DNS servrar inte har svar till DNS frågar kontaktar de till Internet DNS servrar (vid behov). “vid behov” innebär att en lokal DNS server sparar alla svar från Internet DNS servrar i sitt “cacheminne” så att den kan svara frågor om externa resurser direkt utan att vidarebefordra frågan till “Root DNS servers”.
I DNS världen kan fel uppstå när som helst och då är bra att kunna hur systemet fungerar och självfallet ha felsökningsverktyg, till exempel NSLOOKUP eller DIG.

Webb server och HTTP

När du skriver en webbadress (URL) in i en webbläsare upprättar webbläsaren en anslutning (med hjälp av DNS servern) till webbtjänsten som körs på servern. Webbsidans innehåll skickas från servern i form av kommandorad. Klienten exekverar dessa kommandon för att konstruera webbsidans innehåll.

Bild 6: HTTP trafik

Hypertext Transfer Protocol är ett av de protokollen som specificeras i TCP/IP stacken. HTTP utvecklades ursprungligen för att publicera och hämta HTML-sidor och den används nu för distribuerade kollaborativa informationssystem. HTTPS används vid autentiserad och krypterad kommunikation.

När en klient skickar ett meddelande till en server definierar HTTP meddelandetyper så att server kan svara. Tre följande meddelandetyp förekommer oftast vid kommunikation mellan en webb klient och en webb server:

GET används när klienten begär data. När servern tar emot ett GET-meddelande svarar den med en statusrad.

POST (download) och PUT (uppload) används för att skicka meddelanden som laddar upp data från/till webbservern.

E-post och SMTP/POP protokoll

Bild 7: SMTP – skicka och POP hämta e-post

E-post systemet kräver flera applikationer och tjänster i den processen att skicka ut och att hämta e-postmeddelande.

För att hämta e-postmeddelanden från en e-postserver kan e-postklienter använda protokollet POP som finns i flera versioner.

Att skicka e-post från antingen en klient eller en server används protokollet SMTP.

Hantering av e-post nätverkstjänster

För att hantera e-post (skicka/hämta)brukar användas en Mail User Agent (MUA) eller e-post klient exempelvis Microsoft Outlook, Pine, Thunderbird, mm.

Bild 8: MTA tar emot e-post

Bild 9: MDA levererar e-post
E-postklienter kontaktar E-postserver som finns i två olika varianter, MTA och MDA. Mail Transfer Agent (MTA) tar emot e-post från MUA och kontrollerar om den har registrerade postlåda för klienten. Om postlådan för klienten hittas agerar MTA server som MDA, det vill säga att den är redo att leverera e-posten. Annars vidarebefordrar MTA e-posten till andra MTA server.

Förutom e-postleveransen kan en MDA server skanna e-posten efter virus eller filtrera spam. En klient kan använda andra alternativ förutom en MUA och ändå vara med till exempel via en webbläsare.

POP och POP3 likaså SMTP är typiska klient/server protokoll som används mellan MUA, MTA och MDA koppling. SMTP använder följande specifika meddelandeformat:

  • HELO identifierar SMTP-klient
  • EHLO är en ny version
  • MAIL FROM identifierar sändare
  • RCP TO identifierar brevlåda
  • DATA identifierar meddelandets innehåll.
Bild 10: FTP process

FTP

File Transfer Protocol (FTP) är ett annat vanligt förekommande protokoll i applikationsskiktet, FTP används för att föra filer fram och tillbaka mellan klienter och servrar.

För att kunna föra över filer, kräver FTP två anslutningar:

  • TCP-port 21 trafikstyrning.
  • TCP-port 20 filöverföring.

Den filöverföringen kan hända i endera riktningen. Klienten kan ladda ner (pull) en fil från servern, eller ladda upp (push) en fil till servern.

Bild 11: DHCP server – klient

DHCP

DHCP automatiserar tilldelning av IP- adresser och andra IP nätverksparametrar.

  • När en DHCP-klient kontaktar DHCP-servern begär denna att få låna en IP adress.
  • Servern väljer en adress från en konfigurerad adressintervall (IP pool) och lånar IP adressen för en viss tid.
  • När tiden börjar ta slut kan klienterna fråga servern om en förlängning annars måste adresserna returneras till poolen för återanvändning.

DHCP discovery

Så här går det till när en dator lånar en IP adress:

Bild 12: IP adresslån
  • När en dator startas eller ansluts till ett nätverk och om den är konfigurerad som DHCP-klient sänder ut en DHCP DISCOVER paket för att identifiera tillgängliga DHCP-servrar i nätverket.
  • En DHCP-server (eller flera) kan svara med en DHCP OFFER paket som innehåller leasingofferten och andra IP parametrar.
  • Klienten väljer en server och sänder en DHCP REQUEST paket som innehåller leasingofferten klienten accepterar.
  • Förutsatt att IP-adressen är fortfarande giltig returnerar servern en DHCP- ACK meddelande som bekräftelse. Men om adressen inte längre anses giltig sänder servern istället en DHCP-NACK och klienten måste starta om en ny leasingprocess.
Bild 13: SMB protokoll

SMB fildelningsprotokoll

Server Message Block är en klient/server fildelningsprotokoll. IBM utvecklade SMB i slutet av 1980-talet för att beskriva strukturen i delade nätverksresurser. Till skillnad från FTP etablerar SMB-klienter en långsiktig anslutning till servrar med syfte att ha konstant åtkomst till utdelade resurser.

Microsoft har förändrat SMB protokollstrukturen och anpassat den till TCP/IP stacken.
Linux använder en annan version av SMB som heter SAMBA.

Peer-to-Peer nätverk

Bild 14: Gnutella protokoll

I ett peer-to-peer (P2P) nätverk delar en eller flera datorer resurser utan att ha en dedikerad server. En dator (peer=Jämlik) kan anta rollen som server för en transaktion och samtidigt fungerar som en klient för en annan. Ett enkelt hemnätverk med två anslutna datorer som delar filer eller skrivare är ett exempel på ett peer-to-peer nätverk. Ett annat exempel är två datorer anslutna till ett stort nätverk som använder programvara för att dela resurser mellan varandra via nätverket. De flesta av de nuvarande operativsystemen stöder fil och skrivardelning utan att kräva extra serverprogramvara. Men användarkonton och åtkomsträttigheter måste ställas in individuellt på varje enhet.

Förutom FTP och SMB finns det andra liknande protokoll som baseras på Gnutella protokoll. Gemensamt för dessa protokoll är det att de tillåter åtkomst till resurser på andra system än den lokala.

Gnutella Protokollet använder följande pakettyper:

  • Ping – device discovery
  • Pong – replay to a ping
  • Query – file location
  • Query hit – replay to a query
  • Push – download request

Telnet nätverkstjänster och SSH protokoll

Långt innan PC existerade använde man fysiska terminaler anslutna till en central stordator. Vid åtkomst av PC kunde man ersätta terminalerna men det uppstod behovet av fjärruppkoppling till stordatorsystem. Terminalerna kunde emuleras med hjälp av program installerade på PC. Dessa program har inbyggt flera tjänster för fjärråtkomst exempelvis telnet och SSH.

Bild 15: Telnet daemon

Telnet emulerar textbaserade terminaler (virtuella terminaler, VTY).  Telnet är en klient-server protokoll således den kräver att en servertjänst är igång för att en klient ska kunna logga in på servern (port 23). Inloggningsprocessen och hela kommunikationen är textbaserad.

I en Windows-dator, kan Telnet köras från kommandoprompt. Andra vanliga terminal program som körs som Telnet klienter är Hyperterminal, Putty, Minicom och TeraTerm.

I ett klient-server nätverk kör servern en tjänst eller process som ibland kallas “daemon”.

Daemon “lyssnar” till klienters begäran och associerar de med något specifik protokoll.

Telnet stödjer autentisering men inte kryptering därmed vid behov av säkrare tjänster kan användas istället Secure Shell, SSH.