OVH Cloud OVH Cloud

Que veut dire ce paquet TCP: ACK+WindowUpdate+ZeroWindow

2 réponses
Avatar
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

--
MaXX

2 réponses

Avatar
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.

Avatar
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

1078 749.415620 img.dsh.org 10.0.0.1 TCP http > 52610 [SYN, ACK]
Seq=0 Ack=1 WinW92 Len=0 MSS52 TSV–2783047 TSER!9694635 WS=0

1079 749.415900 10.0.0.1 img.dsh.org TCP 52610 > http [ACK] Seq=1
Ack=1 Winf240 Len=0 TSV!9694772 TSER–2783047

1080 749.416521 10.0.0.1 img.dsh.org HTTP GET /images/sans_small.gif
HTTP/1.0

1091 749.571023 img.dsh.org 10.0.0.1 TCP http > 52610 [ACK] Seq=1
AckV4 Wing56 Len=0 TSV–2783063 TSER!9694772

1095 749.824736 img.dsh.org 10.0.0.1 HTTP HTTP/1.1 200 OK (GIF89a)

1096 749.824856 img.dsh.org 10.0.0.1 HTTP Continuation or non-HTTP
traffic

1097 749.825058 img.dsh.org 10.0.0.1 TCP http > 52610 [FIN, ACK]
Seq30 AckV4 Wing56 Len=0 TSV–2783088 TSER!9694772

1098 749.825194 10.0.0.1 img.dsh.org TCP 52610 > http [ACK] SeqV4
Ack30 Wind710 Len=0 TSV!9695181 TSER–2783088

1099 749.825355 10.0.0.1 img.dsh.org TCP 52610 > http [ACK] SeqV4
Ack31 Winf240 Len=0 TSV!9695181 TSER–2783088

1111 749.830371 10.0.0.1 img.dsh.org TCP 52610 > http [FIN, ACK]
SeqV4 Ack31 Winf240 Len=0 TSV!9695186 TSER–2783088

1122 749.965508 img.dsh.org 10.0.0.1 TCP http > 52610 [ACK] Seq31
AckV5 Wing56 Len=0 TSV–2783102 TSER!9695186

1180 750.762642 10.0.0.1 img.dsh.org TCP [TCP ZeroWindow] [TCP
Window Update] 52610 > http [ACK] SeqV3 Ack31 Win=0 Len=0

1184 750.762798 10.0.0.1 img.dsh.org TCP [TCP Keep-Alive] 52610 >
http [RST] SeqV4 Ackr540942 Win=0 Len=0

1200 750.896026 img.dsh.org 10.0.0.1 TCP [TCP Keep-Alive ACK] http >
52610 [ACK] Seq31 AckV5 Wing56 Len=0 TSV–2783195 TSER!9695186

--
MaXX