Từ sự hiểu biết của tôi về cờ đặt lại TCP (RST) được đặt bất cứ khi nào một phân đoạn nhận được không dành cho kết nối hiện tại và kết quả là hủy bỏ phiên TCP hiện tại. Nhưng việc chụp hình wireshark dán dưới đây dường như không tuân theo lý thuyết này. Về cơ bản, A đã khởi tạo RESET (frame # 466) cố gắng truyền lại các khung TCP qua cùng một phiên TCP và cũng tiếp tục đáp ứng bất kỳ yêu cầu kết nối mới [SYN] nào từ cuối B với [RST, ACK] và hành vi lặp lại chính nó trong 5 lần và 3 lần bắt tay lại thành công chỉ trong lần thử thứ 6 (frame # 486).Truyền lại TCP tiếp tục ngay cả sau khi cờ RST đặt lại xuất hiện
464 04:35.1 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
465 04:35.2 enpc > 50000 [ACK] Seq=7454 Ack=31999 Win=32127 Len=0
466 04:35.2 50000 > enpc [RST] Seq=31999 Win=0 Len=0
467 04:35.4 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
468 04:36.1 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
469 04:37.5 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
470 04:40.3 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
471 04:45.9 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
472 04:57.1 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
473 05:17.1 fg-fps > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
474 05:17.1 50000 > fg-fps [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
475 05:17.5 fg-fps > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
476 05:17.5 50000 > fg-fps [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
477 05:18.0 fg-fps > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
478 05:18.0 50000 > fg-fps [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
479 05:19.5 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
480 05:23.2 fg-gip > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
481 05:23.2 50000 > fg-gip [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
482 05:23.7 fg-gip > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
483 05:23.7 50000 > fg-gip [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
484 05:24.2 fg-gip > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
485 05:24.2 50000 > fg-gip [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
486 05:29.7 dyniplookup > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
487 05:29.7 50000 > dyniplookup [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=2
488 05:29.7 dyniplookup > 50000 [ACK] Seq=1 Ack=1 Win=65536 Len=0
489 05:29.7 dyniplookup > 50000 [PSH, ACK] Seq=1 Ack=1 Win=65536 Len=105
490 05:29.7 50000 > dyniplookup [ACK] Seq=1 Ack=106 Win=5840 Len=0
491 05:29.7 dyniplookup > 50000 [PSH, ACK] Seq=106 Ack=1 Win=65536 Len=105
Câu hỏi của tôi:
Tại sao kết thúc A tiếp tục tái truyền các gói dữ liệu qua kết nối nơi RST được tạo ra từ cuối riêng của nó?
Có lẽ người khởi xướng đã gửi ACK ban đầu không mong đợi ACK cho gói khác (số thứ tự khác nhau), vì vậy nó sẽ gửi RST và sau đó gửi lại gói trong khoảng thời gian phát triển cho đến khi người nhận gửi lại đúng thông điệp. không, do đó, người khởi xướng gửi RST một lần nữa và một lần nữa). Có vẻ như một sự cố trong kênh, có thể là cáp bị lỗi hoặc sự khác biệt trong chế độ giao diện (half-duplex so với full-duplex, v.v.) – Alfabravo
@Alfabravo: Tại sao nó lại cố gắng truyền lại gói khi kết nối được chuyển sang trạng thái ĐÃ ĐÓNG CỬA một lần RST được gửi? – amit
RST không có nghĩa là đóng cửa. RST có nghĩa là "hãy thử lại lần nữa". Đối với một kết nối đóng, trình tự là FIN->, <-ACK, <-FIN, ACK->. Và thường, RST có nghĩa là "chúng ta hãy chờ một thời gian ngẫu nhiên (tăng) cho mỗi lần thử mới để tránh va chạm và các thứ". – Alfabravo