mam przesiewanie niektórych śladów sieciowych i zauważyłem na moim komputerze, który po podłączeniu za pośrednictwem protokołu HTTP, pakiety wyglądać mniej więcej tak:ładowność danych w sieci TCP ack
client --> server: GET
server --> client: tcp ack
server --> client: HTTP response
client --> server: tcp ack
Ja jednak spojrzał na jakiś CIFS (SMB), które ocaliłem od kilku lat. Widzę rzeczy takie jak:
client --> server: Create Request
server --> client: Create response (This packet also acks the request)
Na wysokim poziomie, zastanawiam się, dlaczego różnica - co powoduje różne zachowania? Co to jest kontrolowanie, czy odpowiedź aplikacji jest umieszczona na żądaniu ack lub innym pakiecie: aplikacji lub systemie operacyjnym?
czy można określić licznik opóźnienia w dowolnych ustawieniach inicjowania TCP? – NHDaly
Możesz wyłączyć tę opcję za pomocą opcji TCP_QUICKACK z setsockopt w IPPROTO_TCP (nie przenośne btw). Ale zmiana wartości może nie być możliwa, ponieważ uważam, że jest ona zakodowana na sztywno, chyba że jest do niej dodany nowy sysctl (lub coś podobnego). – Milan
Po ustawieniu opcji gniazda TCP, aby wyłączyć opcję TCP Quick ACK, nadal nie otrzymałem odpowiedzi na połączony pakiet: opt = 0; setsockopt (sockfd, IPPROTO_TCP, TCP_QUICKACK, (char *) i opt, sizeof (opt)); –