Pakke >> netkort >> Operativ System (via netkortets driver) >> program som lytter på aktuel port
Det er "netkort >> Operativ System" du ønsker at vide noget om. Det er jo Operativ System specifikt.. Hvilket Operativ System snakker vi om ? :-)
Men sådan generelt, så sidder netkortet typisk på PCI bussen. Derfor må data blive transporteret via denne. Da netkortet ikke kan benytte DMA, må data gå direkte til CPU'en. Hvad der sker i CPU'en er Operativ System specifikt.
Når pakken når Operativ Systemet skal den pakkes ud. Lag1 og lag2's header og tailer har netkortet sørget for at fjerne. Tilbage er så lag 3 og lag4: Lag3 (i yderst kortfattethed): Undersøgelse af pakkens header for at kunne redegøre for afsender og modtager IP.
Lag4 (i yderst kortfattethed): Undersøgelse af pakkens header for at kunne redegøre for afsender og modtager port.
Herefter sendes indholdet af pakken - strippet for lag1-4 headers og tailers til den service som lytter på den aktuelle port.
Hvad servicen gør (programmet) det er jo forskelligt fra program til program :-)
(Lag'ene er fra TCP/IP protokolstakken - men kunne ligeså godt være OSI eller andre)
offerlam>> det komemr jo helt an på hvad der skal ske? men normalt gør netkortet ikke andet end at den fortæller OS'et at der er kommet en pakke, og afleverer den. Så må din Windows 2000 selv tage stilling til hvad der skal ske, f.eks. fortælle ICQ at der er kommet en besked, og så skal ICQ til at beregne hvilken kontakt den er kommet fra og poppe en besked op i programmet som du kan se.
Generelt må du gå udfra at al håndtereing foregår i CPU. Der er enkelte implementeringer der lægger noget processing ned på netkortet hvis det har komponenter til det. Det kunne f.eks. være kryptering/dekryptering.
Netop fordi at CPU'en skal kigge på alle pakker der kommer fra NIC driveren kan f.eks et angreb med mange dummy pakker forårsage at en server går ned.
Cyberfessor nu sidder jeg lige og kigger i min bog og den siger at lag 5 som så ville være det næste er sessionslaget. Det virker på mig at det med programmer først kommer i aplikationslaget...så hvad sker der med sessionslaget og applikationslaget? eller har jeg helt fat i den forkerte ende...
Jeg kunne også tænke mig at vide hvor TCP stakken kommer ind i billedet?
OSI er en reference protokol med 7 lag. TCP/IP er en praktisk implementering af de 4 første lag.
Efter lag 7 i OSI kommer applikationen. Efter lag 4 i TCP/IP kommer applikationen.
Efter som OSI lag 5-7 ikke findes i TCP/IP skal programmet selv tage højde for little/big-endian konvertering, kryptering, komprimering og hvad der nu ellers findes i lag 5-7.
offerlam>> sessionslaget håndterer det med at koordinere sessioner mellem f.eks. client/server, mens præsentation omdatter de rå data, til noget vi andre kan forstå.
i min super hurtige enkle forklaring havde jeg taget mig den frihed at samle OSI-modellens 7 lag i to overordnede, nemlig Data Transport (de 4 nederste) og Applikation (de 3 øverste). Det plejer at virke bedst for de fleste folk, da det er de to "lag" der giver mest mening for dem.
offerlam>> og som soreno siger, så består TCP/IP netop af de 4 nedester, nemlig Data Transport. Applikationslaget begynder i det at ICQ får besked fra Windows at der er kommet en pakke. Det er nemlig op til ICQ at oprette forbindelse til serveren, at omsætte det du skriver i message-vinduet til noget data der kan sendes over ICQ's egen protokol, og præsentere de pakker den får for dig på en letlæselig og intuitiv måde.
renehinsch du er inde på noget af dit mit projekt drejer sig om....så jeg kan forstå at det er en blanding af af OS og CPU der fortolker datapakken. Har jeg ret? Og det vil betyde at fx RAMne ikke bliver mærkbart brugt.
Men når du siger at computeren kan gå ned fordi du lægger CPUen ned med junk pakker (det vi ville kalde et DOS angreb) er det så ikke chche på CPUen du flyder op?
CPU'en gør det som Operativ Systemet siger den skal. Derfor synes jeg det er forkert at sige at "det er en blanding af af OS og CPU der fortolker datapakken".
Mere korrekt synes jeg vil være "OS fortolker datapakken".
For at OS kan behandle data skal data være i RAM. Fra RAM bliver det fetched til CPU'en når det skal behandles - og resultatet bliver skrevet tilbage til RAM. Derfor skal der også være RAM til rådighed for at kunne behandle pakker.
Det er en som cyberfessor kommenterer OS som benytter CPU til at udføre de funktioner der er defineret i de enkelte protokolstakke. Om det er CPU cache overflow der skyldes nedbrud afgøres af hvordan OS og protokolstack er skrevet. Men det ved jeg ikke nok om til at svare kvalificeret på.
Min pointe med mit tidligere svar er at hvis lægges intelligens på netkortet så aflastes OS og CPU og derfor vil f.eks en server ikke gå ned hvis det der overloades med kun har indflydelse på netkortet. Så oplever den blot at der er forsinkelse på pakke niveau. Det kan så afstedkomme retransmissioner pga timeout, som jo alligevel vil have nogen indflydelse på CPU da de jo genereres af TCP eller højere OSI lag.
Jeg synes at kunne huske at med ethernet (netkortet) smides pakker væk som der ikke er båndbredde til at kunne behandle (hvis der modtages mere data end netkortet kan klare). Det er dog sjældent et problem - 100Mb er meget data, 12.5 MB pr. sek. Det er nok til at PCI bussen får problemer med at følge med.
offerlam>> det lader til du mangler en smule generel foståelse for en computers opbygning.
soreno>> det er ikke bare dig der synes det er forkert at sige det sådan... det ER nemlig forkert.
offerlam>> en CPU er ikke andet end en "dum" chip der gør hvad den får besked på. Et netkort kan ikke finde ud af at få CPU'en til at lægge 2 og 2 sammen, al dens kumminaktion foregår gennem driveren der er installeret på dit OS. når du kan DOS'e en maskine er det altså fordi at dit OS enten har en fejl der gør at den behandler data (bruger CPU'en) på pakker den egentlig bare burde have smidt væk, eller fordi at dit netkort/din CPU simpelthen ikke er hurtig nok til at modtage/behandle de data/pakker du modtager.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.