A hálózati réteg feladatai A csomagok szállítása a forrás-
állomástól a cél-állomásig A hálózati réteg protokollja minden állomáson és forgalomirányítón fut (a forrás-állomástól a célállomásig)
A TCP/IP modell hálózati rétege (Network Layer)
application transport network data link physical
network data link physical
A legjobb útvonal meghatározása: a csomagok
network data link physical
útvonala a forrástól a célig.
network data link physical
network data link physical
network data link physical
network data link physical
Két fontos funkció:
network data link physical
network data link physical
Routing algorithms Átmásolás: a forgalomirányító
application transport network data link physical
bejövı portjától a megfelelı kimenı portjáig 3a-1
Datagramma hálózatok: az Internet
Protokoll-készlet: a csomagok továbbítása Host A
modell Nincs hívás-felépítés a hálózati rétegnél Forgalomirányító: nincs ismerete a a forrás-állomás cél-
állomás kapcsolatról
Host B Router R
3a-2
Router W
címe alapján irányítják
HTTP
HTTP
Ethernet
IP Ethernet link
IP link Ethernet
Ugyanazon forrás cél között közlekedı csomagok egészen más útvonalat járhatnak be
Legjobb szándékú kézbesítés
TCP
TCP IP
Nem létezik a „kapcsolat” koncepció a hálózati réteg szintjén
A hálózati rétegben a csomagokat tipikusan a cél-állomás IP-
IP Ethernet
application transport network data link 1. Adatok küldése physical
application transport network 2. Adatok fogadása data link physical
3a-3
3a-4
A hálózati réteg
Legjobb szándékú kézbesítés
Egy állomás, forgalomirányító hálózati rétegbeli funkciói :
Mi történhet egy datagrammal?
Transport layer: TCP, UDP
A fizikai rétegben megsérül Megtelt forgalomirányító-puffer miatt
Hálózati réteg
eldobásra kerül A cél elérhetetlen Forgalomirányítási hurkok
Irányító protokollok •útvonalválasztás •RIP, OSPF, BGP
IP protokoll •Címzési konvenciók •datagramm formátum •Csomag-kezelési konvenciók
Irányítási tábla
ICMP protocol •hibajelentés •router “jelzések”
Link layer physical layer
3a-5
3a-6
1
Irányító protokollok: késıbb
Internet Protokoll
3a-7
Az Internet a heterogén hálózatok hálózata :
Különbözı technológiákat használ (pl. különféle maximális csomagméreteket)
Különbözı cégekhez tartozó eszközöket használ (például képes fogadni a legkülönbözıbb címekrıl érkezı csomagokat)
Az IP célja: úgy kapcsolja össze az egyes végpontokat, hogy azoknak semmit sem kell tudniuk a közbensı hálózatokról
Forgalomirányítók, kapcsolók, hidak: a heterogén hálózatokban a datagrammok továbbítására szolgáló eszközök
IP-csomag formátum
IP címzés: késıbb
IP protocol version Number header length “type” of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to
32 bits ver head. type of len service
length fragment 16-bit identifier flgs offset time to upper Internet layer live checksum
total datagram length (bytes) for fragmentation/ reassembly
32 bit source IP address 32 bit destination IP address Options (if any)
data (variable length, typically a TCP or UDP segment)
E.g. timestamp, record route taken, pecify list of routers to visit.
3a-9
IP fragmentálás & visszaállítás A hálózati kapcsolatoknak van egy MTU-ja (max.transfer size) – a létezı legnagyobb adatkapcsolati rétegbeli keret mérete. Különbözı protokollok, különbözı MTU-k A nagy IP csomagokat a hálózaton belül darabokra tördelik (“fragmentálják”) Egy csomagból több csomag lesz csak a végpontban kerülnek “visszaállításra” IP fej bitjeit használják arra, hogy azonosítsák és sorrendbe állítsák a fragmenseket
3a-8
3a-10
IP fragmentálás & visszaállítás
fragmentálás: be: egy nagy csomag out: 3 kisebb csomag
Példa 4000 bájtos csomag MTU = 1500 bájt Az IP-fej hossza 20 byte Jellemzık: Hossza változhat Identification ugyanaz Fragflag változik Offset nı az elızı adat hosszával (1500 – 20 = 1480)
visszaállítás
3a-11
length ID fragflag offset =4000 =x =0 =0 Egy nagy csomag több kisebb csomagra fragmentálódik length ID fragflag offset =1500 =x =1 =0 length ID fragflag offset =1500 =x =1 =1480 length ID fragflag offset =1040 =x =0 =2960
3a-12
2
IP-fej: Time-to-live mezı / TTL (8 bits)
IP-fej: Protokoll
8bit, tehát a két állomás közötti ugrás-korlát: 28-1 = 255 A forrás állítja be a kezdı értékét; Általában 32-re, 64-re vagy 128-ra állítják minden ugrás azaz forgalomirányító eggyel csökkenti azt Amikor eléri a nullát, akkor a datagramm eldobásra kerül Megakadályozza a végtelen irányítási hurkok káros hatását A traceroute ezt használja (késıbb meglátjuk, hogyan)
Meghatározza, hogy az IP protokoll melyik felsıbb rétegő protokollnak adja át a datagrammot. 8 bits: 28-1 = 255 a maximális protokoll-szám
1= ICMP 2= IGMP 6 = TCP 17 = UDP 135-254: Nincs kiosztva
Ki osztja ki ezeket a számokat?
http://www.iana.org/assignments/protocol-numbers
3a-13
3a-14
IP-címek: hogyan szerezhetünk egyet?
IP-fej: forrás és cél IP-cím Késıbb tekintjük át.
Állomások (állomás-címrész): LAN esetén: A
rendszergazda manuálisan beállítja Dynamic Host Configuration Protocol:
DHCP:
dinamikus cím-szerzés “plug-and-play”
WAN esetén, például otthon: Az Internet szolgáltatótól kapjuk, tipikusan a gépünk (forgalomirányítónk) bekapcsolásakor
3a-15
3a-16
ICMP: Internet Control Message Protocol
ICMP: A forgalomirányításnál használják
Állomások,
ICMP-t használnak a forgalomirányítók
forgalomirányítók, átjárók (gateways) használják, hogy a hálózati szintő információkat továbbítani tudják a hálózati feltételek lekérdezésére-közlésére hibaüzenetek közlése IP “feletti” hálózati réteg : ICMP üzenetek IP datagrammokban közlekednek ICMP üzenet: típus (type), kód (code) plusz az IP datagramm elsı 8 bájtja
ICMP üzenet-formátum 8-bit type
8-bit code
16-bit checksum
A tartalom a típustól (type) függ
feltárásához illetve a forgalomirányító hirdetéséhez ICMP-t használnak “redirection” céljára A
forrásnak lehet jelezni, hogy egy nem hatékony porton keresztül kommunikál
3a-17
3a-18
3
3. réteg: ICMP
ICMP: Internet Control Message Protocol Hiba-feltételek unreachable host, network, port, protocol echo request/reply (used by ping) Need to fragment and can’t; TTL expired Source Quench Kérdés-válasz Ping Address mask request/reply Timestamp request/reply Reply echos identifier from query so they can be matched
ICMP echo kérés és válasz keret 0
8
TYPE (8 v. 0)
16
31
CHECKSUM
CODE (0)
IDENTIFIER
SEQUENCE NUMBER OPTIONAL DATA ...
Type 0 3 3 3 3 3 3 4
Code 0 0 1 2 3 6 7 0
8 9 10 11 12
0 0 0 0 0
description echo reply (ping) dest. network unreachable dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement router discovery TTL expired bad IP header
3a-19
3a-20
ICMP üzenet ICMP üzenetre?
ping
Sohasem megy ICMP üzenet a
ICMP visszhang kérést (echo request) küld
következıkre válaszul:
egy állomásnak, és vár tıle egy ICMP visszhang-választ (echo reply) Használata
A
speciális IP-címre küldött üzenetre (broadcast, multicast, loopback,..) Más ICMP hibaüzenetre (error messages)
A
másik állomás elérhetıségének ellenırzésére (pont-pont mőködıképesség) Az RTT mérésére
3a-21
3. réteg: ping
3a-22
Ping request
3a-23
3a-24
4
Ping reply
traceroute /tracert
TTL + ICMP Egy IP-csomag sorozatot küld növekvı TTL-mezı értékkel
A forrás elküld egy TTL =1 csomagot, kap egy TTL-mezı expired üzenetet az elsı ugráson lévı forgalomirányítótól A forrás beállít egy TTL=2, kap egy TTL-mezı expired üzenetet a második ugráson lévı forgalomirányítótól
Lényeges a hálózat feltárásában Korlátok
Az egymást követı csomagok egészen más útvonalon is haladhatnak
3a-25
3. réteg: tracert
3a-26
tracert kérés
3a-27
3a-28
A tracert „válaszok” egyike Visszaküldi a hibaüzenetet: Type 11 (time to live exceeded) a kapott IP+ICMP fejet, elemzés céljára
3a-29
5