jwt27
jwt27
Looking at Wireshark on the Linux side:  It uses the TCP timestamp option and window size of 3MB. Window size does always stay constant. ACKs are sent fairly late....
Thinking out loud: Problem is the delay between receiving the last packet and sending a window update. We can receive packets pretty quick, but then it takes a while before...
Hm, not likely. I do think the Nagle implementation is slightly wrong, but that is another topic. I've done some more experimenting. If I remove the window update treshold, the...
To elaborate on the "slightly wrong" Nagle mode: While there is still unacked data, it's supposed to send only whole segments. But if we have a whole segment and a...
Oh now you're on to something. I had been using the default, which I thought should be rdtsc. I saw you can toggle it with environment var `USE_RDTSC`. So I...
This would all make sense if the timer code was using `gettimeofday()` since that is a very slow function. So that could be the "fairly constant delay" I was talking...
I did some benchmarking: ```c #include #include static uint64_t rdtsc() { uint64_t count; asm volatile ("rdtsc" : "=A" (count)); return count; } int main() { uint64_t begin, end; init_misc(); //hires_timer(0);...
> > But maybe there is some reason why you hadn't done that? > > Perhaps. But like I wrote earlier, there is some years since I wrote that. >...
Was wondering, why does the BSD interface call `tcp_Retransmitter (TRUE)` everywhere? Is it just to poll for ARP lookups?
I see, there's a lot going on there. But normally that is on a timer (`tcp_RETRAN_TIME`), called from `tcp_tick()`. Why does the BSD interface need to bypass that timer? I...