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