mjimeno
July 18th, 2008, 04:46 PM
Hello,
I'm kind of new in Ubuntu. Even so, I jumped into recompiling the kernel to make TCP do something I want it to do. I've managed it well, =). The problem is the following:
Test bed: one machine on Windows, one with Ubuntu 7.10, kernel 2.6.14.22, (I guess, or 22.14). Client app running on Windows, server app running on the Ubuntu. Machine with Client is disconnected on purpose (no socket shutdown).
Problem: When TCP can't deliver a packet, it will start retransmitting. I read and found the constant that sets the maximum number of retransmissions, which is 15. After that, TCP "should" give up and close the connection. I changed that number to be large, (for research purposes) but, it doesn't work, because:
Ubuntu doesn't wait until 15 retransmissions. After like 6 or 7 retransmissions, it starts sending ARP packets asking for the missing PC. After 9 rounds of 3 ARP packets, it closes the connection and the socket returns "no route to host". Meanning, ARP triggered the connection shutdown. Is there something else I'm missing in Ubuntu?
I tried the same with Unix, and it actually retransmits until the maximum (13 in Unix) and then gives up, with no ARP packets.
Any suggestions, please???
Thanks a lot!!!
Regards, Miguel
I'm kind of new in Ubuntu. Even so, I jumped into recompiling the kernel to make TCP do something I want it to do. I've managed it well, =). The problem is the following:
Test bed: one machine on Windows, one with Ubuntu 7.10, kernel 2.6.14.22, (I guess, or 22.14). Client app running on Windows, server app running on the Ubuntu. Machine with Client is disconnected on purpose (no socket shutdown).
Problem: When TCP can't deliver a packet, it will start retransmitting. I read and found the constant that sets the maximum number of retransmissions, which is 15. After that, TCP "should" give up and close the connection. I changed that number to be large, (for research purposes) but, it doesn't work, because:
Ubuntu doesn't wait until 15 retransmissions. After like 6 or 7 retransmissions, it starts sending ARP packets asking for the missing PC. After 9 rounds of 3 ARP packets, it closes the connection and the socket returns "no route to host". Meanning, ARP triggered the connection shutdown. Is there something else I'm missing in Ubuntu?
I tried the same with Unix, and it actually retransmits until the maximum (13 in Unix) and then gives up, with no ARP packets.
Any suggestions, please???
Thanks a lot!!!
Regards, Miguel