Föreläsning XX - Från mjuk kontakt till hård kontakt

Kontakt mellan personer eller datorer

Datorer kopplade till Internet har stora likheter med Posten och deras rutiner för paketförmedling.

Posten

Postens verksamhet kan åskådliggöras med nedanstående bild:
Posten

Ett postkontor (P0) tar emot ett paket. Paketet är markerat med mottagarens postnummer (MAdress) och ska skickas vidare till ett av flera möjliga postkontor (P1-4). Varje postkontor (Px) tar hand om det postnummerintervall som bestäms av det postkontorets postnummer (PxAdress) och vilka siffror i postnumret som anses viktiga (PxViktiga). Notera att vissa postkontor tar hand om större postnummerintervall, vilket motsvaras av färre viktiga siffror. Postkontoret P0 följer följande algoritm då ett paket anländer:

  1. Ordna P1-4 så det kontor med flest viktiga siffror hamnar först. Detta kan göras en gång för alla, innan första paketet tas om hand.
  2. Kontrollera ett postkontor Px i taget för att avgöra om paketet ska skickas dit genom att:
    1. Ta ut de viktiga siffrorna ur mottagaradressen, d v s utnyttja PxViktiga och MAdress. Kalla detta tal för FörkortadMAdress.
    2. Ta ut de viktiga siffrorna ur Px:s adress, d v s utnyttja PxViktiga och PxAdress. Kalla detta tal för FörkortadPAdress.
    3. Jämför FörkortadMAdress med FörkortadPAdress. Om de är lika ska paketet skickas till postkontoret Px. Är de olika fortsätter kontrollen med nästa postkontor.

Internet

Internet har datorer som kan ses som postkontor, men som som kallas Routers (från engelskans route, d v s rutt på svenska). I likhet med postsystemet skickas information i små paket markerade med mottagarens adress. Adresserna är stora tal och kallas IP-adresser, där IP står för InternetProtokollet. Ett protokoll är en samling spelregler och IP är således spelreglerna för Internet. Då långa tal är jobbiga att hålla reda på (för människor) ser man nästan alltid en adress på punktform, t ex 192.168.10.3, d v s det långa talet är uppstyckat i fyra delar där varje del motsvarar en byte (8 bitar, intervallet 0-255). Man får dock inte glömma bort att tal i datorns värld bara består av en massa ettor och nollor.

Verksamheten för en Router åskådliggörs nedan.
Internet

En router (R0) tar emot ett paket. Paketet är markerat med mottagarens adress (MIP) och ska skickas vidare till en av flera möjliga routrar (R1-4). Varje router (Rx) tar hand om den del av Internet som bestäms av den routerns IP-adress (RxIP) och vilken del av IP-adressen som anses viktig (RxSM). Den viktiga delen kallas SM från engelskans "Subnet Mask", vilket innebär "del av nätverket".

Notera att vissa routrar tar hand om en större del av Internet, vilket motsvaras av färre ettor i den routerns Subnet Mask. Routern R0 följer följande algoritm då ett paket anländer:

  1. Ordna R1-4 så den router med flest ettor i sin Subnet Mask hamnar först. Detta kan göras en gång för alla, innan första paketet tas om hand.
  2. Kontrollera en router Rx i taget för att avgöra om paketet ska skickas dit genom att:
    1. Ta ut den del av mottagaradressen som markeras ("maskas" ut) av routern Rx:s Subnet Mask, d v s utnyttja MIP och RxSM. Denna uträkning kan göras genom att logiskt "OCHa" varje bit i MIP med RxSM och skrivas (MIP & RxSM).
    2. Ta ut den del av routern Rx:s IP-adress som markeras ("maskas" ut) av routerns Rx:s Subnet Mask, d v s utnyttja RxIP och RxSM. Resultat: (RxIP & RxSM).
    3. Jämför de båda talen (MIP & RxSM) och (RxIP & RxSM). Om de är lika ska paketet skickas till routern Rx. Är de olika fortsätter kontrollen med nästa router.

Det är tack vare ovanstående routing som information mellan två datorer kopplade till Internet hamnar rätt. Det enda som behövs är de två datorernas IP-adresser. Smart, eller hur?

Att tala samma språk

För att en mottagare ska ha nytta av ett paket måste hon förstå språket som används i paketet. Ett språk är en uppsättning spelregler som säger hur informationen i paketet ska tolkas, d v s ett protokoll. Då det finns många olika språk/protokoll som utnyttjas i världen har man på Internet valt att organisera dem i olika nivåer eller lager. Längst ned finns det fysiska och ganska korkade lagret som bara klarar av att överföra elektriska signaler (ettor och nollor). Högre upp finns smartare lager som också tolkar innehållet och gör något vettigt med det. Högst upp finns den smartaste av alla: användaren.

Nedanstående bild visar vilka protokoll som är inblandade då en användare vill hämta en hemsida från Internet. Användaren (klienten) sitter hemma med ADSL-uppkoppling (bredband) och hemsidan ligger på en server.
protokoll

  1. Användaren skriver in en fullständig adress (URL) till hemsidan.
  2. Application Layer: webbläsaren på användarens dator översätter adressen till en text som uppfyller HTTP (Hyper Text Transfer Protocol) och skickar texten till underliggande lager.
  3. Transport Layer: programvara som pratar TCP (Transfer Control Protocol) tar hand om texten, styckar upp den i små paket som numreras och markeras med ett nummer associerat med webbläsaren. Varje paket skickas i turordning vidare till underliggande lager.
  4. Network Layer: programvara som pratar IP (Internet Protocol) tar hand om ett paket, markerar paketet med mottagaren och sändarens IP-adress innan det skickas vidare till underliggande lager.
  5. Link Layer: maskinvara som pratar Ethernet (en standard) tar hand om informationen och skickar innehållet som en ström av bitar genom en kabel till ADSL-utrustningen.
  6. Link Layer: ADSL-utrustningens Ethernet-maskinvara tar hand om bitströmmen och skickar innehållet vidare (uppåt) till bryggan mot ADSL.
  7. Brygga mellan Ethernet och ADSL vidarebefordrar informationen (ned) till ADSL-maskinvaran.
  8. Link Layer: ADSL-maskinvara skickar bitströmmen vidare genom gamla telefonledningar till ADSL-leverantörens växel.
  9. Link Layer: ADSL-maskinvara tar hand om bitströmmen och skickar innehållet vidare (uppåt) till till bryggan mot Ethernet.
  10. Brygga mellan Ethernet och ADSL vidarebefordrar informationen (ned) till Ethernet-maskinvaran.
  11. Link Layer: Ethernet-maskinvaran tar hand om informationen och skickar innehållet som en ström av bitar genom en kabel till servern.
  12. Link Layer: Ethernet-maskinvara hos servern tar hand om bitströmmen och skickar den i ett paket upp till överliggande lager.
  13. Network Layer: IP-programvara avgör om paketet ska vidarebefordras upp till smartare lager eller skicas vidare i nätverket till annan dator. Paketet skickas i detta fall upp till överliggande lager.
  14. Transport Layer: TCP-programvara ser till att lappa ihop inkomna paket i rätt ordning och skickar vidare texten till överliggande lager.
  15. Application Layer: webbserverns programvara tar hand om texten, tolkar HTTP-meddelandet och skaffar fram en svarstext (det eftersökta hemsidedokumentet).
  16. Svaret skickas tillbaka på liknande sätt som frågan.
  17. Webbläsaren hos användaren tolkar och presenterar resultatet för användaren som väljer en annan hemsida och proceduren upprepas...
Ovanstående modell av lager (Application / Transportation / Network / Link) kallas Internet-stacken och är en av de vanligare protokollstackarna som används idag. Det finns även en mer finindelad stack med sju lager istället för fyra. Principen är dock densamma.

Varför delar man upp programvaran och hårdvaran i flera lager? Den mest uppenbara fördelen är att högre/smartare lager inte behöver bry sig om detaljer som hur och varför informationen hittar fram. Dessutom kanske olika tekniker utnyttjas i olika delar av nätverket, som i detta fall med både Ethernet och ADSL. Nyare bättre tekniker kan införas utan att påverka användaren och programmen negativt. Fördelarna kommer alltså av att man har använt sig av abstraktion.

Fysiska förutsättningar för tal

Hur fungerar en dator? Det är uppenbart att den måste klara av en massa saker och man kan tro att den måste vara oerhört invecklad. Så är dock inte fallet! En dator utnyttjar visserligen modern teknik, men principen bakom är lika enkel som genial: Datorns processor (CPU) är den som bestämmer när, varifrån och vart data ska flyttas. Detta görs med program, d v s data vars bitar får processorn att aktivera olika delar i datorn i varje ögonblick. Hur bitarna ska tolkas bestäms av processorns uppbyggnad som kallas mikrokod.

Data lagras i datorns minnen. Med datorns minnen menas både flyktigt minne (RAM), minnen i processorn (register), samt minnen hos andra enheter (hårddisk, CD-ROM, floppy, grafikkort, ljudkort, Ethernet-kort, ...).

Nedanstående bild visar en dators principiella uppbyggnad. datorer
PS = Power Supply, RAM = Random Access Memory, CPU = Central Processing Unit, IO = Input/Output, HDD = Hard Disc Drive, CD-R = Compact Disc Reader/Writer, FDD = Floppy Disc Drive, SB = Sound Blaster, GA = Graphic Adapter, MDM = MoDeM, NIC = Network Interface Card, SP = Speaker, HUB = Ethernet repeater.


^ Upp till kurssidan.


Sidansvarig: <efo@nada.kth.se>
Senast ändrad 24 februari 2002
Tekniskt stöd: <webmaster@nada.kth.se>