Que veut dire ce paquet TCP: ACK+WindowUpdate+ZeroWindow
2 réponses
MaXX
Bonjour,
j'essaye de comprendre un peu mieux comment fonctionne TCP/IP.
En jouant avec ethereal j'ai remarqué que de temps à autres ma machine lors
d'une connection http, émettait des paquets TCP WindowUpdate TCP ZeroWindow
avec le drapeau ACK.
Le paquet en question est suivi par un keep-alive avec le drapeau RST.
Est-ce que la machine dit : "bien reçu le paquet, mais je n'ai plus de place
dans mon tampon d'entrée"?
ou bien: "OK j'ai tout reçu on se recause plus tard..."?
Autre choix?
Merci d'avance,
MaXX
Détails:
Fin de la conversation entre ma machine et images.dshield.org après avoir
transféré un fichier gif.
Transmission Control Protocol, Src Port: 52610 (52610), Dst Port: http (80),
Seq: 563, Ack: 1531, Len: 0
Source port: 52610 (52610)
Destination port: http (80)
Sequence number: 563 (relative sequence number)
Acknowledgement number: 1531 (relative ack number)
Header length: 20 bytes
Flags: 0x0010 (ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgment: Set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 0
Checksum: 0x376d [correct]
SEQ/ACK analysis
TCP Analysis Flags
This is a tcp window update
This is a ZeroWindow segment
Transmission Control Protocol, Src Port: 52610 (52610), Dst Port: http (80),
Seq: 564, Ack: 72540942, Len: 0
Source port: 52610 (52610)
Destination port: http (80)
Sequence number: 564 (relative sequence number)
Header length: 20 bytes
Flags: 0x0004 (RST)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...0 .... = Acknowledgment: Not set
.... 0... = Push: Not set
.... .1.. = Reset: Set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 0
Checksum: 0x5613 [correct]
SEQ/ACK analysis
TCP Analysis Flags
This is a TCP keep-alive segment
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Xavier Roche
MaXX wrote:
d'une connection http, émettait des paquets TCP WindowUpdate TCP ZeroWindow avec le drapeau ACK.
Cela ressemble à une rupture brutale de connexion, mais difficile d'en dire plus avec deux paquets (et pas les paquets correspondant au ACK)
Le 'Window = 0' est effectivement utilisé pour notifier que l'autre côté n'est plus disposé à recevoir de données (quand le buffer est plein, par exemple). Le fait qu'il soit envoyé avec un RST suggère que la connexion est coupée brutalement.
MaXX wrote:
d'une connection http, émettait des paquets TCP WindowUpdate TCP ZeroWindow
avec le drapeau ACK.
Cela ressemble à une rupture brutale de connexion, mais difficile d'en
dire plus avec deux paquets (et pas les paquets correspondant au ACK)
Le 'Window = 0' est effectivement utilisé pour notifier que l'autre côté
n'est plus disposé à recevoir de données (quand le buffer est plein, par
exemple). Le fait qu'il soit envoyé avec un RST suggère que la connexion
est coupée brutalement.
d'une connection http, émettait des paquets TCP WindowUpdate TCP ZeroWindow avec le drapeau ACK.
Cela ressemble à une rupture brutale de connexion, mais difficile d'en dire plus avec deux paquets (et pas les paquets correspondant au ACK)
Le 'Window = 0' est effectivement utilisé pour notifier que l'autre côté n'est plus disposé à recevoir de données (quand le buffer est plein, par exemple). Le fait qu'il soit envoyé avec un RST suggère que la connexion est coupée brutalement.
MaXX
Bonjour, Merci d'avoir consacré un peu de temps pour moi. Xavier Roche wrote:
MaXX wrote:
d'une connection http, émettait des paquets TCP WindowUpdate TCP ZeroWindow avec le drapeau ACK. [...]
Le 'Window = 0' est effectivement utilisé pour notifier que l'autre côté n'est plus disposé à recevoir de données (quand le buffer est plein, par exemple). Le fait qu'il soit envoyé avec un RST suggère que la connexion est coupée brutalement.
Comment savoir si c'est "brutal"? Je veux dire par là que le delta t entre les paquets est fort court (<1.5sec pour toute la conversation). La plupart des paquets on un TTL = 51.
Quand Ack=1 ça veut bien dire que le prochain numéro de séquence sera 1? Serait-il possible qu'ils se soient emmêlé les pinceaux du côté de la trame 1180? Je ne suis plus très bien les numéros de séquence à partir de là..
Merci, MaXX
Détails: la conversation en abrégé:
No. Time Source Destination Proto Info 1066 749.279796 10.0.0.1 img.dsh.org TCP 52610 > http [SYN] Seq=0 Ack=0 Wine535 Len=0 MSS60 WS=1 TSV!9694635 TSER=0
Bonjour,
Merci d'avoir consacré un peu de temps pour moi.
Xavier Roche wrote:
MaXX wrote:
d'une connection http, émettait des paquets TCP WindowUpdate TCP
ZeroWindow avec le drapeau ACK.
[...]
Le 'Window = 0' est effectivement utilisé pour notifier que l'autre côté
n'est plus disposé à recevoir de données (quand le buffer est plein, par
exemple). Le fait qu'il soit envoyé avec un RST suggère que la connexion
est coupée brutalement.
Comment savoir si c'est "brutal"? Je veux dire par là que le delta t entre
les paquets est fort court (<1.5sec pour toute la conversation). La plupart
des paquets on un TTL = 51.
Quand Ack=1 ça veut bien dire que le prochain numéro de séquence sera 1?
Serait-il possible qu'ils se soient emmêlé les pinceaux du côté de la trame
1180? Je ne suis plus très bien les numéros de séquence à partir de là..
Merci,
MaXX
Détails:
la conversation en abrégé:
No. Time Source Destination Proto Info
1066 749.279796 10.0.0.1 img.dsh.org TCP 52610 > http [SYN] Seq=0
Ack=0 Wine535 Len=0 MSS60 WS=1 TSV!9694635 TSER=0
Bonjour, Merci d'avoir consacré un peu de temps pour moi. Xavier Roche wrote:
MaXX wrote:
d'une connection http, émettait des paquets TCP WindowUpdate TCP ZeroWindow avec le drapeau ACK. [...]
Le 'Window = 0' est effectivement utilisé pour notifier que l'autre côté n'est plus disposé à recevoir de données (quand le buffer est plein, par exemple). Le fait qu'il soit envoyé avec un RST suggère que la connexion est coupée brutalement.
Comment savoir si c'est "brutal"? Je veux dire par là que le delta t entre les paquets est fort court (<1.5sec pour toute la conversation). La plupart des paquets on un TTL = 51.
Quand Ack=1 ça veut bien dire que le prochain numéro de séquence sera 1? Serait-il possible qu'ils se soient emmêlé les pinceaux du côté de la trame 1180? Je ne suis plus très bien les numéros de séquence à partir de là..
Merci, MaXX
Détails: la conversation en abrégé:
No. Time Source Destination Proto Info 1066 749.279796 10.0.0.1 img.dsh.org TCP 52610 > http [SYN] Seq=0 Ack=0 Wine535 Len=0 MSS60 WS=1 TSV!9694635 TSER=0