|
|
De lagen 1 en 2.
Zoals we in het OSI model hebben kunnen zien, hebben we eerst een stukje
"fysieke" hardware nodig om te kunnen communiceren. Dit kan een modem zijn een
ethernetkaart interface (onder diverse operatingsystemen is het ook mogelijk
net te doen of je een stuk hadware geinstalleerd hebt (emuleren wordt dat
genoemd). Voor de verdere uitleg gaan we uit van een ethernet, omdat dit een
soort netwerk verbinding is die zeer veel gebruikt wordt en omdat we hierop
mooi de gehele problematiek van het IP protocol kunnen laten zien.
Schematische weergave versturen data over ethernet
We gaan er vanuit dat station A met de server C wil communiceren. Het eerste
wat er gebeurt is, is dat de stations op de tekening van een netwerk kaart en
de benodigde driver software zijn voorzien. Voor het gemak gaan we er hier nog
vanuit dat ons netwerk verder nergens op aangesloten is / hoeft te worden.
Wat gebeurt er nu als station A met de server C op IP nivo wil
communiceren?
Op ethernet nivo hebben heeft de driversoftware, waar de pakketjes als eerste
doorheen moeten, geen notie van IP adressen. Hier worden mac-adressen
gebruikt. Mac-adressen zijn adressen die op ethernet bestaan uit 6 bytes, die
voor de afwisseling hexidecimaal uitgeschreven worden. 00.0f.12.34.aa.bb is
bijvoorbeeld een adres. Deze adressen zijn gecodeerd in de hardware en in
principe wereldwijd uniek (er zijn tegenwoordig helaas fabrikanten die nummers
hergebruiken). Stations zijn hierdoor op een eenduidige wijze te
identificeren. Op broadcast netwerken (pakketjes op het segment worden naar
alle adapters gestuurd) worden deze adressen gebruikt door de adapters om te
herkennen met welk pakktje ze wel iets moeten doen en welke pakketjes
genegeerd kunnen worden.
Wil station A nu pakketjes gaan sturen naar de server C, dan moet hij zien te
achterhalen wat het mac-adres is van server C. Dit doen ze met het zgn. ARP
(Adres Resolution Protocol) protocol. Station A zal hiertoe een pakketje
sturen, met een speciaal destination (=bestemmings) mac-adres
"ff.ff.ff.ff.ff.ff" en als source (zijn eigen) mac-adres het eigen adapter
adres. Tevens wordt het gezochte IP adres meegestuurd. Alle stations dienen
dergelijke requests te bekijken en te vergelijken met het eigen IP adres.
Server C zal dit adres herkennen en een zgn ARP-response frame sturen met zijn
eigen mac-adres en ip-adres. Station A zal deze data lokaal in zijn eigen ARP
tabel opslaan, zodat hij die informatie in het vervolg niet meer hoeft op te
zoeken. Vervolgens kan station data naar server C gaan sturen.
Normaalgesproken beschikt C reeds over en ARP entry in de ARP tabel
en kan deze een response direkt adresseren
Hieronder vindt je een voorbeeld van een ARP request en response frame
ARP: Request, Target IP: 172.31.249.249
FRAME: Base frame properties
FRAME: Time of capture = Jun 14, 2000 15:25:50.44
FRAME: Time delta from previous physical frame: 224 milliseconds
FRAME: Frame number: 63
FRAME: Total frame length: 60 bytes
FRAME: Capture frame length: 60 bytes
FRAME: Frame data: Number of data bytes remaining = 60 (0x003C)
ETHERNET: ETYPE = 0x0806 : Protocol = ARP: Address Resolution Protocol
ETHERNET: Destination address : FFFFFFFFFFFF
ETHERNET: .......1 = Group address
ETHERNET: ......1. = Locally administered address
ETHERNET: Source address : 00600848E10F
ETHERNET: .......0 = No routing information present
ETHERNET: ......0. = Universally administered address
ETHERNET: Frame Length : 60 (0x003C)
ETHERNET: Ethernet Type : 0x0806 (ARP: Address Resolution Protocol)
ETHERNET: Ethernet Data: Number of data bytes remaining = 46 (0x002E)
ARP_RARP: ARP: Request, Target IP: 172.31.249.249
ARP_RARP: Hardware Address Space = 1 (0x1)
ARP_RARP: Protocol Address Space = 2048 (0x800)
ARP_RARP: Hardware Address Length = 6 (0x6)
ARP_RARP: Protocol Address Length = 4 (0x4)
ARP_RARP: Opcode = 1 (0x1)
ARP_RARP: Sender's Hardware Address = 00600848E10F
ARP_RARP: Sender's Protocol Address = 172.31.0.36
ARP_RARP: Target's Hardware Address = 000000000000
ARP_RARP: Target's Protocol Address = 172.31.249.249
ARP_RARP: Frame Padding
ARP: Reply, Target IP: 172.31.0.36 Target Hdwr Addr: 00600848E10F
FRAME: Base frame properties
FRAME: Time of capture = Jun 14, 2000 15:25:50.46
FRAME: Time delta from previous physical frame: 2 milliseconds
FRAME: Frame number: 64
FRAME: Total frame length: 60 bytes
FRAME: Capture frame length: 60 bytes
FRAME: Frame data: Number of data bytes remaining = 60 (0x003C)
ETHERNET: ETYPE = 0x0806 : Protocol = ARP: Address Resolution Protocol
ETHERNET: Destination address : 00600848E10F
ETHERNET: .......0 = Individual address
ETHERNET: ......0. = Universally administered address
ETHERNET: Source address : 003080F27F76
ETHERNET: .......0 = No routing information present
ETHERNET: ......0. = Universally administered address
ETHERNET: Frame Length : 60 (0x003C)
ETHERNET: Ethernet Type : 0x0806 (ARP: Address Resolution Protocol)
ETHERNET: Ethernet Data: Number of data bytes remaining = 46 (0x002E)
ARP_RARP: ARP: Reply, Target IP: 172.31.0.36 Target Hdwr Addr: 00600848E10F
ARP_RARP: Hardware Address Space = 1 (0x1)
ARP_RARP: Protocol Address Space = 2048 (0x800)
ARP_RARP: Hardware Address Length = 6 (0x6)
ARP_RARP: Protocol Address Length = 4 (0x4)
ARP_RARP: Opcode = 2 (0x2)
ARP_RARP: Sender's Hardware Address = 003080F27F76
ARP_RARP: Sender's Protocol Address = 172.31.249.249
ARP_RARP: Target's Hardware Address = 00600848E10F
ARP_RARP: Target's Protocol Address = 172.31.0.36
ARP_RARP: Frame Padding
De entries in een ARP tabel worden normaal gesproken 900 seconden bewaard,
waarna indien de communicatie nogsteeds actief is er weer een ARP uitgevoerd
moet worden.
Vervolg: IP routering.
|
|