8. Applikationsskikt

Applikationslagret tillhandahåller uppkopplingsuppgifter mellan applikationer vi använder för att kommunicera över nätet. Kommunikationen styrs av regler vilka programmeras in på nätverksorienterade applikationer, därmed kan vi definiera ett program som ett resultat av protokollstillämpningar. För kommunikationsenheter är program egentligen en process. Varje gång man startar ett program startas automatiskt en process i vilket programmet körs. 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 som anpassas efter applikationers funktioner.

Bild 2: Serverprocesser i  Applikationsskiktet

I klient-serverns nätverksmodell begär klienten data/tjänst och servern svarar på begäran. Klient och serverprocesserna anses tillhöra applikationsskiktet och därför beskriver applikationsprotokollen kommunikationsprocessen mellan klienter och servrar. Vi kan också säga att servern tillhandahåller resurser som finns på servern och klienten använder 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 har nätverksanpassade funktioner i syfte att servera dess resurser. Ett klient operativsystem är skapat och designat för att kunna ta del av serverns resurser, men har även de möjligheter att agera som en server, dock med en viss begränsning.

Likt 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 något svar på DNS frågor så kontaktar den Internet DNS servrar. den lokala DNS servern sparar alla svar från Internet DNS servrar i sitt “cacheminne” så att den senare kan svara på frågor som gäller 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 meddelandetyperna så att servern kan svara. Tre följande meddelandetyper förekommer oftast vid kommunikation mellan en webbklient och en webbserver:

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 processen att skicka ut och att emot 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 det 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.

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.

Bild 10: FTP process

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.

DHCP

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

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

Bild 11: 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 12: SMB protokoll

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 13: 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.