Permalänk
Medlem

Små eller Stora Paket med router.

Tja funderar på en sak här. Säg att man ska skicka ett paket mellan punkt A och B. Denna paket passerar då 8 routers. Frågan är alltså om paketet anländer snabbare om den är uppdelad i flera mindre delar eller än om den skickas ouppdelad?

Permalänk
Medlem

anta att vi har datamängden x

vi skickar den i 10 paket respektive 100 paket

på varje paket ligger ett iphuvud, 160 bit
dvs den totala mängden som skickas är x+1600 resp x+16000

att mer data tar längre tid att skicka är nog inte oförståligt så låt oss skippa det

men vad händer i routrarna? jo varje router läser av detta huvud, funderar lite och skickar den vidare. Denna tid är liten, vi pratar om nanosekunder, men den är ändå existerande. Så med fler paket routern kommer har fler tillfällen att fundera på vad den ska göra med paketen.

Så i slutändan så kommer du skicka mer data och routrarna kommer spendera mer tid på att klura ut vart dina paket skall. Så det är en marginell skillnad med fler paket. Men detta betyder inte att du kommer uppleva en dock.

Permalänk
Medlem

Man tackar. Ser att du är expert inom området så jag ställer en fråga till. Så här står det i en miniövning i boken

-----------------------------------------------------------------------------------------------------------------------------
Imagine that you have an unreliable data channel. On top of that channel you wish to build a reliable data transfer mechanism.
One of the problems you have to solve is how to deal with packet losses over the unreliable channel. Discuss how you will solve the problem.
State any assumptions made.
------------------------------------------------------------------------------------------------------------------------------

Eftersom jag inte riktigt blir haj på hur egentligen detta ska byggas, jag läste att man kan använda TCP protokollet eftersom IP är en opålitlig protokoll. Men just hur man ska lösa denna problem kan jag inte förstå mig på.

Tack på förhand.

Permalänk
Testpilot

IP har ingen förlustkontroll, om ett paket förloras så kommer inte ett nytt att skickas. Då använder man exempelvis TCP (ovanpå IP) som har bra säkerhet inbyggt, försvinner ett paket så kommer det att skickas en gång till.

Angående att dela upp paketet i flera delar, kallat segmentation:
Säg du har en bit data som är 0.5MB stort (L) och din anslutning (R) är 1Mbps.
Tiden för ett paket (hela paketet) vid ingen uppdelning t = (L/R) = 0.5s
Totala tiden: T = t*j
j = antalet routerhopp
2 routrar ger altså T = 1s

Delar du däremot upp datan i 5 segment på 0.1BM styck så kan du tjäna på det eftersom en router kan skicka ett segment redan innan den fått nästa så behöver inte varje router vänta på att hela packetet ska komma fram innan den skickar det vidare. Segment nr 2 kommer på detta sätt komma fram bara 0.1s efter det första.
Tiden för ett paket (ett segment) vid uppdelning t = (L/R) = 0.1s
Totala tiden: T = i*t + j*t
i = antalet segment
j = antalet routerhopp
2 routrar ger altså T = 0.6s

Nu har jag inte räknat med tiden det tar för routern att kontrollera och ändra varje header men det iallafall inte 0.4s så man vinner i mit exempel på att skicka små paket. Självklart så går det en gräns nånstanns, att skicka 1 bit åt gången tjänar man inget på

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av hunden
IP har ingen förlustkontroll, om ett paket förloras så kommer inte ett nytt att skickas. Då använder man exempelvis TCP (ovanpå IP) som har bra säkerhet inbyggt, försvinner ett paket så kommer det att skickas en gång till.

Angående att dela upp paketet i flera delar, kallat segmentation:
Säg du har en bit data som är 0.5MB stort (L) och din anslutning (R) är 1Mbps.
Tiden för ett paket (hela paketet) vid ingen uppdelning t = (L/R) = 0.5s
Totala tiden: T = t*j
j = antalet routerhopp
2 routrar ger altså T = 1s

Delar du däremot upp datan i 5 segment på 0.1BM styck så kan du tjäna på det eftersom en router kan skicka ett segment redan innan den fått nästa så behöver inte varje router vänta på att hela packetet ska komma fram innan den skickar det vidare. Segment nr 2 kommer på detta sätt komma fram bara 0.1s efter det första.
Tiden för ett paket (ett segment) vid uppdelning t = (L/R) = 0.1s
Totala tiden: T = i*t + j*t
i = antalet segment
j = antalet routerhopp
2 routrar ger altså T = 0.6s

Nu har jag inte räknat med tiden det tar för routern att kontrollera och ändra varje header men det iallafall inte 0.4s så man vinner i mit exempel på att skicka små paket. Självklart så går det en gräns nånstanns, att skicka 1 bit åt gången tjänar man inget på

visst det är bättre i ditt fall, men det du säger är även att du snabbar upp start tiden. Det är allmänt känt att du inte når full hastighet för ens efter nån sekund så frågan är kanske vad man menar med frågan.

Men men jag vet inte exakt vad som ska vara svaret på frågan, beror nog lite på vad hans kurs går ut på....

Edit: trådskaparen:

de vill att du beskriver hur man kan göra för säkerhetesställa att allt kommer fram. Om jag ger dig svaret så är det nog inget du lär dig.

Så vad måste du göra för att med säkerhet kunna bestämma att alla paket kommigt fram?
Och hur gör du om du märker att ett paket saknas?
hur bestämmer du att ett paket som kommigt fram är korrekt?

Permalänk
Testpilot

Beror också på vad för protokoll och inställningar man använder, inte alla protokoll som börjar långsammt för att sen öka, även om TCP brukar göra det.
Men som sagt så är det rätt svårt att svara på i det här exemplet.

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk
Medlem

Stora paket är alltid bättre så länge du har en länk av bra kvalité och hög bandbredd, så som är fallet med de flesta internetanslutningar vi har idag. Den beräkning som hunden visar stämmer i teorin men som han också säger tar han inte hänsyn till ett ett antal faktorer, dessa faktorer har betydligt större effekt än något annat. TCPs prestanda kan optimeras kraftigt om man anpassar dess parametrar efter bandbredd och fördröjning på länken, mest effekt får man dock på länkar med riktigt hög bandbredd 50mbit+.