Föreläsning Flashcards
Vad är ett protokoll?
- Protokoll är en uppsättning med regler.
- Standardiserat, några har bestämt hur information ska skickas och vilken information som ska med.
- HTTP är ett exempel på protokoll där man måste uppfylla vissa krav.
Varför är det viktigt att känna till TCP/ IP-stacken
- Felsökning: Om något går fel är det bra att ha koll på stacken, så man kan enklare finna vad felet är. Debugga mer effektivt.
- Optimering: Om man förstår interaktionen mellan lagrena kan man optimera processer så att man inte använder sig av fel protokoll, försöker skicka för stora datapaket etc.
- Säkerhetsanalys: Förstå vilka savgheter som varje lager har. Bara för att applikationen är säker betyder det inte att allt är säkert.
- Interoperabilitet: Utan protokollen hade det varit svårt att kommunicera mellan olika datorer, ex Mac och Windows. Vi har standardiserade protokoll vilket gör att kan ta del av samma information och dela mellan olika enheter. Utan lager 1 och 2 hade internet hemma, med trådade och trådlösa enheter, inte kunnat kommunicera med varandra.
- Systemintegrering: Första hur integreringen mellan systemen fungerar.
Förklara de olika TCP/IP-lagrerna
- Applikationslagret: specifierar hur applikationer kommunicerar genom olika protokoll.
- Transportlagret: sköter kommunikation mellan program på en dator till program på en annan dator.
- Internetlager: specifierar hur kommunkation ska ske över nätverk (IP).
- Nätverksgränssnittslagret: även kallat MAC-lagret eller Data Link-lagret. Innehåller standarder för ethernet. Varje nätverkskort har en MAC-adress. Specifierar hur de övre lagrerna ska kommunicera genom det fysiska lagret.
- Fysiska lagret: kablar, frekvenser och signaler. Förhålla sig till lagar, får inte använda vissa frekvenser i Sverige. Ex militären och polisen, de frekvenserna får ingen annan använda. Problemet är att det är enkelt att skapa de radiofrekvenserna så det är lätt att störa. Utan det fysiska lagret hade vi inte kunnat kommunicera mellan olika standarder.
Vad är “X-as-a-Service” och nämn de tre primära tjänsterna.
“X-as-a-Service” (XaaS) är en övergripande term som används för att beskriva olika tjänster och resurser som levereras över internet som molntjänster. Många verksamheter har inte egna servrar/datacenter. De betalar någon annan för att hosta deras infrastruktur, plattform och mjukvara. Det kan var molntjänster som AWS (amazon web services).
De tre primära tjänsterna är:
- Iaas (infrastructure-as-a-Service): Man hyr hårdvara, en virtuell server oftast. Det andra företaget har servrarna och sköter nätverksbiten. Man måste själv underhålla operativsystem, programvaror, hur allt kopplas samman med varandra.
- PaaS (Platform-as-a-Service): Man hyr hårdvara + underhåll + miljöer. Man måste sätta upp och konfigurera miljöerna, du får ex en databas men bestämmer själv vilka tabeller som ska finnas osv.
- SaaS(Software-as-a-Service): Man får hela mjukvarulösningar. Fördelen är att man slipper konfiguration och utveckling. Slipper installationen. Nackdelen är att du inte gör individuella anpassningar. Beror på verksamheten och vem man köper tjänsten av.
Vad är Klient-server arkitektur?
Majoriteten av system vi använder idag är av typen Client-server arkitektur. Ex email, HTTP, DNS etc. Vissa protokoll används dock som Peer-to-Peer, såsom: BitTorrent, Direct Connect, Tor, I2P.
Klient-serverarkitekturen är en modell där ett system är uppdelat i två huvuddelar: klienten och servern. Klienten begär tjänster eller resurser, medan servern levererar dessa tjänster genom att behandla klientens förfrågningar. Kommunikationen sker över ett nätverk, och uppdelningen av ansvar gör systemet mer skalbart och underlättar underhåll. Klienten hanterar användargränssnittet och presentation, medan servern hanterar resurser och utför nödvändiga beräkningar eller åtgärder.
Förklara standarden HTML
HTML står för HyperText Markup Language och är en standard för innehåll och layout på hemsidor. HTML möjligör att innehåll kan tolkas eller visualiseras på samma sätt i olika webbläsare. HTML använder sig av XML-struktur.
Förklara standarden URL
URL Uniform Resource Locator är den generella strukturen för en URL protokoll: //datornamn:port/dokument?parametrar
- Protokoll är namnet på protokollet som används, detta kan oftast utelämnas.
- Datornamn är domännamn inklusive subdomän (www) och toppdomän (com). Subdomänen är inte lika viktig som de andra.
- Port är det portnummer som servern lyssnar på, behöver inte alltid anges om en standardport används.
- Dokument är namnet på det dokument/sida vi vill komma åt.
- Parametrar är oftast valfritt och kan vara flera, den representerar data/information som man vill skicka till sidan.
Förklara standarden HTTP
HTTP HyperText Transfer Protocol fungerar som gränssnittet mellan en webbläsare och en webbserver. Den traditionella användningen av HTTP har gradvis ersatts av HTTPS, där “S” står för säkert, och det är nu den nya standarden för säker överföring av data på webben.
- HTTP använder textbaserade kontrollmeddelanden för att underlätta kommunikationen mellan en klient (webbläsare) och en server. Genom detta protokoll kan olika typer av data överföras, inklusive binära datafiler, textfiler och vanliga filer. Det möjliggör både nedladdning och uppladdning av data.
- En intressant funktion i HTTP är användningen av caching. Till exempel kan CSS-filer cachelagras i webbläsaren, vilket innebär att om inga förändringar görs, kan webbläsaren använda den cachade versionen istället för att hämta filen på nytt från servern. Detta bidrar till att förbättra webbprestanda genom att minska den tid det tar att hämta data.
Vad finns det för HTTP requests?
- GET: Gör en request till servern, jag vill ha den här informationen från servern. Ger ett svar tillbaka och vi kan få ner en hemsida/fil/liknande.
- HEAD: Skickar en request för att få information om ett dokument, inte det faktiska dokumentet. Vi vill ha metadatan. Servern svarar med en status och metadatan om dokumentet, när det skapades, när det senast uppdaterades.
- POST: Om vi vill skicka data till servern, alltså ladda upp någonting. Behandlas på olika sätt beroende på datatyp och hur servern har implementerat hanteringen av post-requesten.
- PUT: Lik POST men PUT skriver över data/skapar ny om den ej existerar. Skickar data till servern. Servern kommer att skriva över befintlig data med den nya. PUT handlar om att byta ut ett helt objekt på servern, PATCH är att byta ut information i ett objekt på servern.
Hur fungerar Caching i webbläsare?
En lokal version sparas på hårddisken. Om en sida är cachead så utförs först en HEAD-request. Då ges senaste versionen av sidan som svar, och vi kan jämföra den informationen med den filen vi sparat lokalt. Om datum och tid är samma så används den lokala kopian. Annars hämtas den nyare versionen från servern (GET-request). Webbläsaren cachear oftast endast större filer. Vid mindre filer så tjänar man oftast inget på att utföra ett HEAD-request.
Hur fungerar E-mail?
(Inte så relevant fråga)
E-mail bygger på flera olika protokoll. SMTP används för att skicka mail. POP3 / IMAP används för att ta emot mail.
Vad står DNS för och vad används det till?
DNS står för Domain Name System och andänds för att mappa domännamn till IP-adresser (ex. facebook.com). Man kan se det lite som en telefonbok som mappar telefonnummer till personer. DNS fungerar som en översättningsmekanism som gör det möjligt för användare att komma åt webbplatser och andra tjänster genom att ange lättmemorerade domännamn istället för att behöva komma ihåg komplicerade numeriska IP-adresser.
Först kontrolleras det om enheten har cacheat domännamnet. Om inte så görs en förfrågan till DNS-servern.
Denna kan i sin tur fråga andra servrar för att slutligen kunna ge den IP-adress som är kopplad till domännamnet.
Authoritative DNS server, identifiera de servrarna som vi har tillgång till/styr över. Varje post i en DNS-databas består av 4 delar. Domännamn (vilket värde är vi ute efter från en viss domän), en typ (record type), ett värde och en TTL (time to live). När en förfrågan skickas till en DNS-server så specificeras både domännamn och
typ.
Vad står SSH för och vad används det till?
SSH Secure Shell : används för att säkert kunna kommunicera med andra datorer/ servrar genom en konsol, med hjälp av kryptering. Den krypterade kommunikationen kan ske på olika sätt, symmetrisk (samma nyckel för kryptering och dekryptering) eller asymmetrisk (privat & publik nyckel).
Man kan interagera med shellen för att få tillgång till en annan IP-adress, då kan man t.ex. få tillgång till hemsidor utan att ha fysisk tillgång till dem. T.ex. från en annan plats i världen, Kanada. Man kan starta upp andra servrar t.ex. en webbserver som ligger någon annanstans.
Vad är WebSocket och vad används det för?
WebSocket är standardiserat API (inte ett protokoll). Websocket möjliggör tvåvägskommunikation simultant mellan klient och server. Ställer inga krav på hur data/meddelandet är strukturerat. Använder oftast samma port som http/https dvs port 80/443
Vad står MQTT för och vad används det till?
(Inte så relevant fråga)
MQTT står för Message Queuing Telemetry Transport och är ett Lightweight meddelandeprotokoll som ofta används för IoT. Använder sig utav en publish-subscribe modell.
Har en broker som är själva servern som kan ta emot och vidarebefordra meddelanden. En publisher publicerar meddelanden under en specifik topic, även här används JSON men även XML eller plaintext.
En subscriber prenumererar på specifika topics (eller huvudtopicen med #) för att få snabba uppdateringar när något sker, wildcards kan användas för information för alla uppdateringar i olika topics.
Brokern lagrar endast den senaste informationen. Knappt det, den är egentligen gjord för att vidareförmedla informationen. Den lagrar senaste informationen enbart om det är skickat med en RETAIN flagga. Om vi inte har en flagga så får vi ingen information.