Uso il socket raw per creare pacchetti TCP, con particolare attenzione al numero di sequenza e ai flag TCP (SYN, ACK)
Ho usato una macchina S per inviare un pacchetto tcp ACK (flag ACK è impostato su 1) e un'altra macchina R per riceverlo, queste due macchine sono in sottoreti diverse, tutte nella mia scuola
nel frattempo, ho usato tcpdump per acquisire i pacchetti.
Succedono cose strane! Sulla macchina S, il pacchetto acquisito è come previsto, è un pacchetto ACK, tuttavia sulla macchina ricevente R, il pacchetto diventa un pacchetto SYN e il numero di sequenza viene modificato, il numero di sequenza è 1 più piccolo del previsto e il valore ack_seq diventa 0!
cosa c'è di sbagliato in questo? la mia ipotesi è che il router / firewall abbia modificato il pacchetto ACK in un pacchetto SYN perché non vede mai uno scambio SYN SYN / ACK prima dell'ACK? E 'possibile o no?
i due pacchetti acquisiti sono:
https://docs.google.com/file/d/0B09y_TWqTtwlVnpuUlNwUmM1YUE/edit?usp=sharing https://docs.google.com/file/d/0B09y_TWqTtwlTXhjUms4ZnlkMVE/edit?usp=sharing