PP kapcsolat
Nagy Endre
gumo at lucifer.kgt.bme.hu
Sat Mar 15 19:17:49 CET 2003
> Atfogalmazom a kerdest. Van ra mod, hogy a topologia valtoztatasa
> nelkul, azaz plusz kartya nelkul, egy meglevo halon egy non-standard
> kommunikaciot folytassak az egyik kituntetett geppel? Az nem baj, ha
Persze. Azt a ket dolgot kell tudni hozza, amit irtam, tehat utkozest
figyelni, es ethernetet cimezni.
Most mar leirom reszletesebben is...
Fizikai szinten:
Figyelni kell, hogy csak olyankor adjunk, ha masvalaki epp nem ad. Ha
megis egyszerre sikerult kezdeni, akkor utkozes van, varni kell veletlen
idot.
========================================================================
Ethernet szinten:
Ethernet csomagot kell osszerakni, ahogy irtam. Ebbe kerul az
adattartalom. Mivel benne vannak a cimek, ezert valaki kuldi valakinek,
masokat nem zavar. Helyi halon ez a legbutabb kommunikacios modszer, ami
szabvanyosan hasznalhato (PC oldalon amugy nem tul tamogatott a nyers
Ethernet).
Ethernet csomagba rengeteg fele protokoll elhelyezheto, a tipus mezoben
kell jelolni, hogy mi megy benne.
========================================================================
IP szinten:
Az Ethernet csomag tipus mezojebe 0x800 kerul, az adatreszbe pedig IP
fejlec (azonositok: IP cimek) es maga az adattartalom. Ez mar bonyolultabb
joszag, de meg mindig csak sima adat.
Az IP-hez helyi halon szukseg van egy segedprotokollra is, ez az ARP
(tipus=0x806). Mikor ugyanis IP alapjan erunk el egy gepet, nem tudjuk,
hogy mi neki a MAC cime.
Az ARP pont erre valo: a 0-as Ethernet cimre (broadcast) kuldunk egy
csomagot (tipus), amiben a kerdeses IP van. Ezt Ethernet szinten mindenki
beolvassa, es akie az adott IP cim, az egy ARP valaszt kuld, amiben mar a
sajat MAC cime szerepel a kerdeses IP mellett. (A valaszt egyebkent ARP
proxy is kuldheti, de ez messzire vezet.)
Ezt a valaszt el is tesszuk egy ARP tablaba, hogy ne kelljen folyton
kerdezgetni. IP csomag kuldesekor innet szedjuk ki a szukseges MAC cimet,
aminek Ethernet szinten cimezni kell.
Az IP-hez tarsul meg az ICMP is, ami szinten egy segedprotokoll.
Sokmindenre jo (ping, routing uzenetek, MTU, ...), de nelkule is
van elet. Tehat ezt nem eletbevago implementalni.
Az IP az elso route-olhato szint, tehat egy IP csomagot mar barhova lehet
kuldeni, nemcsak a helyi halora. Ezert az IP cimhez alapesetben
(minimalis implementacio) egy netmask es egy gateway cim tartozik:
Ameddig a netmaskban 1-es bit van, addig tart a halozatcim, utana gepcim.
(VLSM...)
Pelda: IP cim=145.236.239.1, netmask=255.255.255.240 (binarisan:
11111111 11111111 11111111 11110000), gateway=145.236.239.14
A netmasknak megfeleloen az IP cim elso 28 bitje halozatcim, ezt nem
hasznaljuk semmire :) (A 255.255.255.240-et szokas /28-nak is
roviditeni, mert 28db 1-es bit van benne). Tehat ha a maradek 4 bitet
kinullazzuk, akkor a halozatcim 145.236.239.0-nak adodik.
Ha a maradek 4 bitet tiszta 1-essel toltjuk ki, akkor ennek a halozatnak a
legmagasabb cimet, 145.236.239.15-ot kapunk. Ezt szokas IP broadcastnak
tekinteni, tehat ha erre kuldunk egy csomagot, azt az adott halozaton levo
osszes gepnek fel kell dolgoznia.
A gateway arra valo, hogy ha nem a helyi halon beluli IP cimre kuldunk
csomagot (azaz nem 145.236.239.1-145.236.239.15 kozott), akkor annak
nyilvan nem tudjuk ARP-vel megallapitani a MAC cimet, mert a vilag masik
felen van, egy masik halon. De mivel a cim es a netmask alapjan kiderul,
hogy nem helyi a celgep, ezert helyette a gateway MAC cimet kerdezzuk meg
ARP-vel. Az IP csomagot ekkor a kivant IP cimmel cimezzuk, de az ot
tartalmazo Ethernet csomagot a gateway (router) MAC cimevel. Az Ethernet
csomagot tehat a router fogadja el, es a benne levo IP csomagot tovabbitja
mas routerekkel egyuttmukodesben a kivant IP cimhez. (Ezt megint hosszu
lenne reszletezni, de a vegpontok szempontjabol atlatszo a dolog.)
========================================================================
Szallitasi szinten ket alapveto protokoll van, ezek az IP csomag
adatrakomanyaba agyazodnak. (Itt mar kezd hasonlitani a matrjoska babara
a TCP/IP :)
UDP:
Nyugtazatlan, kapcsolatmentes protokoll, egyszeru uzenet (mint eddig az
osszes). Ebbe is lehet adatot tenni, es egy forras es celportot.
Tehat a forras- es celgepet az IP fejlec hatarozza meg, de egy gepen tobb
kulonbozo porton tobb kulonbozo program figyelhet, ezeket kuloniti el a
szallitasi reteg. Pl. egy nameserverhez fordulva szokasosan az 53-as UDP
porton lehet elerni a feladatot ellato programot. Mas portokon kozben
lehetnek mas programok is. Portok: 0-65535-ig.
TCP:
Ez mar magikus dolog. Kapcsolatokat lehet felepiteni, sorszamozott,
nyugtazott, allapotai vannak, sok szempontbol szabalyozott. Itt van a
legnagyobb valtozatossag, mindenki maskepp csinalja, sok a szivas. Aki
jol akarja implementalni, annak sok sikert kivanok... Szinten port alapjan
cimezheto, sot itt mar multiplexaltak is a portok, de ezt kulon tanulmany
lenne leirni. Persze ezt a protokollt hasznalja a legtobb alkalmazas,
telnettol a webszerverig, de szerencsere egy homerohoz nincs ra
szukseg.
========================================================================
A TCP-re es az UDP-re meg ezernyi protokoll epul, de eddig a szintig (vagy
legalabb az IP szintig) rendszerint kozosek. Sima IP-vel mar az egesz
vilag cimezheto, az UDP-t pedig mar PC-n is kellemes feldolgozni.
Uff, en megprobaltam osszefoglalni a lenyegesebb reszeit a TCP/IP-nek.
Remelem sikerult, bar elsore biztosan borzalmasnak fog tunni, es ezek meg
csak az alapok.
Azert a TCP kivetelevel ez egy kellemes dolog, sot azt is csak megirni
rossz, hasznalni mar elvezet :)
Gumo
More information about the Elektro
mailing list