Limit transferu

0

Witam, chciałbym napisać program, który ograniczyłby prękość transferu do 50kb/s. Pisałem ten post na forum Delphi, nie odpisali, na C++ nie odpisali, więc napisałem go tutaj, ponieważ jest to dość trudne zagadnienie.

0

Z reguły trudno jest odpowiedzieć na niesprecyzowane zagadnienie ;)

0

Widać, nie zdajesz sobie sprawy z tego, jak skomplikowane jest to zagadnienie. A jest bardzo trudne, bo wymaga ingerencji w stos TCP/IP, który w Windows w ogóle nie jest udostępniony programistom. Jest zaszyty w systemie operacyjnym i kontrola jego pracy wymaga albo podmiany sterownika NDIS na własny (jak robi to komercyjny zestaw bibliotek do pisania takich rzeczy WinpkFilter [ostatnio często strona nie chodzi]) albo pisanie wirtualnej karty sieciowej (mało popularne rozwiązanie), albo też pisanie całego sterownika TCP/IP na nowo (rzucanie się z motyką na słońce, ale były i takie próby rozwiązania tego problemu).

Jak już to Ci się uda zrobić (gratulacje i nagroda Jabola gwarantowana), to zostaje prosta implementacji algorytmów z rodziny CBQ/HTB, ale przy pierwszym problemie, to już będzie bułka z masłem.

Tylko na boku napiszę, że - choć nie jest to niemożliwe, po prostu trudne - nie znam żadnego średnio zaawansowanego programisty, któremu by się to udało bez gotowych bibliotek (w stylu wspomnianej powyżej).

0

ale jak uzywa sie biblioteki WinpkFilter to nie trzeba chyba juz bawic sie z alg. CBQ.

jak ograniczyc transfer wykorzystujac lib WinpkFilter? jest tam jakas przeznaczona do tego metoda albo dedykowane rozwiazanie tego zagadnienia? :-) [???]

0

Myślę, że nikt nie udzieli Ci odpowiedzi na to pytanie. A jeżeli ktoś Ci już odpowie to da ci wykład na temat sieci :-) Też się z tym męczyłem, nawet zacząłem uczyć się assemblera. Teraz umiałbym napisać w assemblerze kalkulator 3D, a ograniczyć transferu i tak nie umiem :-)

0

ciagle siedze i szukam jakiegos rozwiazania. opieram sie na bibliotece WinpkFilter i dochodze do takiego wniosku ze trzeba odpowiednio sterowac rozmiarami okienek odbiorczych w naglowku tcp ktory jest wysylany w potwierdzeniu ACK do nadawcy. moj pomysl na ograniczenie transferu jest taki zeby napisac cos w rodzaju algorytmu powolnego startu - np. jak nadawca wysle nam wiecej danych niz bysmy chcieli(limit transferu) to zmniejszamy rozmiar okna i wysylamy naglowek tcp do nadawcy w potwierdzeniu a potem zwiekszamy rozmiar okna wykladniczo czy cos takiego chyba tak ??? podgladnalem pewien program ktory ogranicza transfer i cos podobnego tam sie dzialo. rozmiar okna zmienial sie dynamicznie bardzo dynamicznie. jesli macie jakies pomysly albo cokolwiek wiecie na temat tcp, gdzie mozna poczytac dokladne opisy dzialania algorytmow zarzadzajacych praca tcp itp. to prosze piszcie sam na razie bede szukal cos o powolnym starcie. dzieki za tak dlugo oczekiwana odpowiedz :-) :-) :-) :-)

0

czytaliscie moze RFC 813? mysle ze to moze duzo wyjasnic. algorytm powolnego startu na razie odpada bo to tyczy sie sendera. dla mnie sukcesem byłoby opanowac downstream. mysle ze kluczem do zagadki jest okno odbiorcze. tylko jak sie do tego zabrac hmmm. :-) ale sie nie poddaje moze sie udac :-)

0

był już taki temat o tym samym tytule. Użytkownik Szczawik pisałł m.in o konieczności ingerencji w stos.

0

Jak się kliknie refresh w oknie przeglądarki, to przenosi właśnie do tego tematu. Czary!

0
Autre napisał(a)

Teraz umiałbym napisać w assemblerze kalkulator 3D

już to widze [rotfl]

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0