c # - Hvordan kan jeg få den tilgængelige båndbreddehastighed?

Indlæg af Hanne Mølgaard Plasc

Problem



Vi har en DSL, hvordan kan vi beregne den tilgængelige båndbredde, så vi kan forme pakken. Vi kan antage, at båndbredden er 100mbps på ethernet-grænsefladen
I DSL-enheder varierer toghastigheden (båndbreddehastighed) afhængigt af forskellige situationer.
Hvordan kan jeg få den tilgængelige båndbreddehastighed (fra varierer) ?.
Er der nogen metode til at få den tilgængelige båndbreddeværdi?

Bedste reference


'Båndbredde' er ikke noget, du kan bestemme for en enkelt computer. Som minimum skal du angive begge endepunkter. Selv din antagelse om 100 Mbps på Ethernet kan være forkert, da kablet eller det andet endepunkt muligvis ikke er i stand til fuld overførselshastighed. Normalt sker dette ved hjælp af Quality of Service-funktionalitet indarbejdet i netværksoverførslen, og det er ikke en nem ting at gøre. [1]


I vores multiplayer-spil (ved hjælp af UDP) har vi brugt Packet Pair Probing med succes, og selvom det ikke er universelt, var det mest pålidelige af alle de metoder, vi har forsøgt. Jeg er bange for, at det ikke er muligt for dette svar at beskrive det mere detaljeret, men dette svar giver en ganske god beskrivelse af noget meget ensartet i letforståelige termer: [2]



  Dybest set, hvis du starter fra nul båndbredde og øger båndbreddeanvendelsen, øges latenheden meget langsomt - indtil du rammer ca. 90\% af din båndbredde. Så går latens gennem taget, op til et andet plateau, hvorefter det igen stiger langsomt.


Andre referencer 1


Tilgængelig båndbredde ændres hver gang en pakke sprøjtes ind i netværket, hvor som helst. Det er ikke tilgængeligt via nogen API. TCP/IP gør allerede 'pakkeformning'. Dit mål er uklart.