Rundresetiden och paketavståndet
Storheter utanför systemet · uttrycks i SI-sekunder · RTT och Δt mellan paket
År 1983 skrev Mike Muuss, medan han redde ut ett fel i ett nät, på en enda kväll ett litet program som sände en värd en kort förfrågan och skrev ut tiden fram till svaret. Namnet tog han från sonarfolket: en ubåt sänder ett klick och lyssnar efter ekot, och avståndet räknas ur en enda tidsskillnad. Ur den vanan att mäta föddes enheten: det som antecknas är varken vägen dit eller vägen hem, utan hela slingan.
Finessen är att rundresan mäts med en enda klocka: förfrågan går ut från samma maskin som svaret kommer till, och därför beror skillnaden mellan avläsningarna inte på om klockorna i andra änden stämmer överens. En fördröjning åt ett håll är inte lika lätt att få — till den behövs klockor som går samman finare än fördröjningen själv, alltså antingen ett eget protokoll för tidsöverföring eller en mottagare av satellittid i vardera änden.
01 · Definition
Rundresetiden är tidsrymden mellan att ett paket sänds och att svaret på det kommer, mätt av en och samma klocka. Paketavståndet är tiden mellan att två grannpaket i en och samma ström släpps ut; det sätts inte av nätet utan av den som belastar det.
Rundresan består av tre termer av olika slag, och att skilja dem åt betyder mycket, eftersom var och en botas på sitt sätt. Den första är utbredningstiden, som bestäms av sträckans längd och ljusets hastighet i fibern och som inte viker för något annat än en kortare kabel. Den andra är serialiseringen, tiden att skjuta ut paketet i linjen, och den sjunker ju snabbare länken är. Den tredje är kön i de mellanliggande nodernas buffertar, och endast den beror på hur hårt nätet är belastat just då.
Härav följer en föga uppenbar omständighet: man kan vidga länken tiofalt och rundresan ändras inte alls, eftersom vidgningen bara tar bort serialiseringen, medan köerna och sträckans längd blir kvar där de var. Än mer: i buffertar byggda med marginal «för säkerhets skull» går paketen inte förlorade utan väntar, och rundresan under belastning växer till sekunder — det är det onda man har kallat bufferbloat.
Paketavståndet står inte bredvid av en slump: nästan allt som händer en ström avgörs av förhållandet mellan avståndet och rundresan. Så länge paketen går ut oftare än bekräftelserna kommer tillbaka arbetar avsändaren i blindo och måste hålla så mycket data i sträckan som fysiskt ryms i den — och den mängden är just produkten av hastigheten och rundresan.
Välj en sträcka och för reglaget över paketets storlek. Det blå paketet går från vänstra stället till det högra och kommer tillbaka orange; bandet under sträckan delar upp rundresan i tre termer, så att det syns vad den verkligen går åt till. Att vidga länken kortar bara den mellersta delen — just den som på långa sträckor ändå är den minsta.
Minnet blev billigt tidigare än algoritmerna ändrades, och tillverkarna började sätta köer på hundratals paket i apparaterna, i tron att en buffert för mycket inte kunde skada. Det blev tvärtom: en full kö tappar inte paketen utan håller upp dem, avsändaren får inget tecken alls på stockning och fortsätter att fylla på. Rundresan på en hemlänk under belastning växte till en och en halv sekund, medan hastigheten förblev densamma.
02 · Omräkning
Rundresa, rör och paketström
Mata in en rundresa i vilka enheter som helst, så räknar bladet om den till de övriga och beräknar därefter det som beror av den: hur mycket data som ryms i sträckan vid olika hastigheter, vilken gräns fönstret sätter och vilket paketavstånd olika kodare väljer.
Hastigheten för att räkna rymden hämtas från den sträcka som valts i det interaktiva stycket; i de finare inställningarna kan den låsas vid en gigabit.
Ping mäter inte riktigt det som ett tillämpningsprogram behöver. Behandlingen av en ekoförfrågan i en avlägsen nod går en egen väg, ofta förbi huvudräknaren, och därför sammanfaller dess fördröjning inte med en verklig förbindelses; andra apparater svarar däremot på sådana förfrågningar allra sist, eller inte alls. Därför betyder ett stort ping inte alltid en långsam förbindelse, och ett litet borgar inte för en snabb.
| Värde | Anmärkning | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Storleksordningar
logaritmisk skala: från mikrosekund till sekund04 · Mätinstrument
Vad man fångar rundresetiden med
Programmet sänder ett paket med en tidsstämpel och väntar på dess återkomst, och skillnaden mellan avläsningarna är rundresan. Dess förtjänst är att en klocka räcker och att ingenting krävs av motparten utom villigheten att svara; dess brist, att den svarar en egen, inte nödvändigtvis snabb väg.
Har man spelat in hela utbytet får man rundresan ur strömmen själv: ur tiden mellan att ett segment går ut och att bekräftelsen på det kommer. Så mäts just den fördröjning som tillämpningsprogrammet ser, och därtill blir spridningen synlig — det som i ett samtal stör mer än en jämn fördröjning.
Apparater som stämplar tiden direkt i nätkretsen tar bort den obestämdhet som operativsystemet för in och driver upplösningen till tiotal nanosekunder. De utbyter enligt en egen överenskommelse där vardera änden sätter två stämplar — och just det tillåter att rundresan delas i sina två ojämna halvor.
En fördröjning åt ett håll mäts endast där klockorna i båda ändar är förda till en gemensam tid finare än fördröjningen själv — därför stakas linjerna ut med ett eget synkroniseringsprotokoll eller sätts mottagare av satellittid upp. Utan det förblir rundresan den enda ärliga siffran.
05 · Skrivregler
Rundresan med sin enhet, spridningen för sig
Beteckningen skrivs med tre latinska versaler utan punkter, värdet med sin enhet och en uppgift om vad som egentligen mättes: ett enstaka prov, medelvärdet av en serie eller dess median. Spridningen anges bredvid som eget tal, eftersom ett medelvärde ensamt inte säger något om huruvida paketen går jämnt.
Den första skrivningen klarar sig utan enhet och därmed utan mening: hundratrettio av vad — millisekunder eller mikrosekunder? Den andra ger ut ett antagande för en mätning, medan vägen dit och vägen hem ofta går olika banor och halvorna blir ojämna. Den tredje upprepar det vanligaste felet och håller rundresan för en egenskap hos länken och inte hos hela sträckan. Den fjärde förväxlar storheterna: ett avstånd mellan paket är ingen rundresa.
06 · Närliggande enheter
Rundresan beskriver sträckan från tidens sida, hastigheten från mängdens, och deras produkt ger en tredje storhet, sträckans rymd, utan vilken ingen snabb förbindelse över långt avstånd går att ställa in. Bredvid står fördröjningens spridning, som i samtal och spel stör mer än en jämn eftersläpning.
hur mycket som ryms i en sekund
hastighet × rundresa
jitter enligt RFC 3550
Bland Simetriums datablad står bredvid biten och byte, i vilka sträckans rymd räknas, sekund, till vilken båda storheterna till sist förs tillbaka, decibel ur länkbudgetar och klockcykeln, som sätter upplösningsgränsen för maskinvarans tidsstämplar.
07 · Historisk del
Klicket och ekot
När det första ordet fördes över mellan universitetet i Kalifornien och institutet i Menlo Park dikterade operatören det i telefon och väntade på bekräftelse bokstav för bokstav. Förbindelsen brast vid tredje bokstaven, men själva förfarandet — sänt, väntat på svaret, sett på klockan — visade sig vara just det som är i bruk än i dag.
Mike Muuss skrev sitt program på en kväll medan han redde ut ett fel, och kallade det efter ljudet från ekolodet: en kort stöt, sedan väntan på återkastningen. Namnet blev så träffande att verbet «pinga» kom in i språket långt utanför nätverksfacket och betyder numera vilket kort meddelande som helst som man skickar för att se om någon finns där.
Hösten 1986 föll genomströmningen på en av universitetslänkarna tusenfalt: avsändarna, som inte fick några bekräftelser, sände allt nya avskrifter och gav sträckan nådastöten. Van Jacobson föreslog en bot som verkar än i dag: hålla ögonen på rundresan och dess spridning och ta deras växt för ett tecken på stockning, alltså hålla igen sändandet innan förlusterna börjar.
Nutidens algoritmer för flödesstyrning ser inte längre på förlusterna utan direkt på hur rundresan växer, och håller igen sändandet innan kön hinner fyllas. Hemroutrar har fått discipliner som med flit håller bufferten kort — och rundresan under belastning faller från en och en halv sekund till tiotal millisekunder på samma länk.
Halva rundresan är ett antagande, inte en mätning
Rundresan är bekväm däri att den inte kräver att klockorna stämmer överens: både sändandet och mottagandet stämplas av en enda apparat, och en skillnad mellan skalorna går helt enkelt inte in i differensen. Just därför fungerar ping överallt och behöver ingen inställning, medan fördröjningen åt ett håll är en långt nyckfullare storhet, som kräver en finare samgång än det som mäts.
Vanan att halvera rundresan håller i sig av det skälet, fastän lite talar för den: strömmen till motparten och den tillbaka går inte sällan olika vägar, av olika längd och olika belastning, så att de verkliga halvorna kan skilja sig dubbelt. Den storhet som är lättast att mäta i hela nätverksfacket är också den som oftast läses fel.
Katalog · måttenheter
Ett datablad för varje storhet
Sju SI-basenheter, tjugotvå härledda med egna namn och storheter utanför systemet som varken tekniken eller kalendern klarar sig utan.