Quantcast
Channel: Project Customization and Programming forum
Viewing all articles
Browse latest Browse all 5347

no SYN/ACK reply received for most of the SYN packets sent from windows7/2008/2012/8

$
0
0
I have a small program that sends several TCP packets to a server. 

    client-portA -- > server-portB  
    client-portA -- > server-portC  
    client-portA -- > server-portD  
    client-portA -- > server-portE  

Packets are sent through libnet, in a loop.

    client-portA ----SYN----- > server-portB (via Code)  
    client-portA ----SYN----- > server-portC (via Code)  
    client-portA ----SYN----- > server-portD (via Code)  
    client-portA ----SYN----- > server-portE (via Code)  

If I run the program in windows XP, it works fine, I receive SYN/ACK for each packet. 
After receiving the SYN/ACK, the kernel(?, Im not sure what, but not my code) sends a RST for every SYN/ACK received.

    client-portA < ----SYN/ACK----- server-portB  
    client-portA ------RST------- > server-portB (not by my Code)  
    client-portA < ----SYN/ACK----- server-portC  
    client-portA ------RST------- > server-portC (not by my Code)  
    client-portA < ----SYN/ACK----- server-portD  
    client-portA ------RST------- > server-portD (not by my Code)  
    client-portA < ----SYN/ACK----- server-portE  
    client-portA ------RST------- > server-portE (not by my Code)  

However, if I run the program  in windows7(or window2012 or windows2008 or windows8), SYN/ACK is only received for the first port, portB.
And no RST is sent from the client side. Also, the SYN/ACK is received repeatedly.

    client-portA ----SYN----- > server-portB (via Code)  
    client-portA ----SYN----- > server-portC (via Code)  
    client-portA ----SYN----- > server-portD (via Code)  
    client-portA ----SYN----- > server-portE (via Code)  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  

I already tried sending RST after receiving SYN/ACK to replicate what happened in XP but still no SYN/ACK is received for ports C to E.
Also, after sending RST for portB, the server continues to send SYN/ACK from portB.

    client-portA ----SYN----- > server-portB (via Code)  
    client-portA ----SYN----- > server-portC (via Code)  
    client-portA ----SYN----- > server-portD (via Code)  
    client-portA ----SYN----- > server-portE (via Code)  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA ------RST------- > server-portB (this time via Code)  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  
    client-portA < ----SYN/ACK----- server-portB  

Instead of sending RST, I also tried sending ACK, RST/ACK or FIN/ACK but nothing worked.

Can anyone help me with this please?
I need to make my program work for all windows platform.
What I want is to receive SYN/ACK for each port(B to E).

Are there any differences in these windows platforms that can affect this TCP behavior?

Viewing all articles
Browse latest Browse all 5347

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>