Trạng thái CLOSE_WAIT và TIME_WAIT là gì?


166

Khi tôi làm netstat -atrên máy Windows của mình, tôi nhận được một danh sách các cổng với một trong bốn trạng thái:

- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED

Làm gì CLOSE_WAITTIME_WAITcó nghĩa / chỉ ra?



xem 'man netstat', cuộn xuống phần trạng thái: linux.die.net/man/8/netstat
MaQleod

1
Không biết xấu hổ cắm vào câu trả lời trên Lỗi máy chủ chị em của chúng tôi .
Hennes

Trang web lừa đảo chéo: Askubfox.com/questions/538443/ Kiếm
Mokubai

Câu trả lời:


179

Do cách thức hoạt động của TCP / IP, các kết nối không thể bị đóng ngay lập tức. Các gói có thể đến ngoài trật tự hoặc được truyền lại sau khi kết nối đã được đóng. CLOSE_WAIT chỉ ra rằng điểm cuối từ xa (phía bên kia của kết nối) đã đóng kết nối. TIME_WAIT chỉ ra rằng điểm cuối cục bộ (bên này) đã đóng kết nối. Kết nối đang được giữ xung quanh để mọi gói tin bị trễ có thể được khớp với kết nối và được xử lý phù hợp. Các kết nối sẽ bị xóa khi hết thời gian trong vòng bốn phút. Xem http://en.wikipedia.org/wiki/Transmission_Control_Protocol để biết thêm chi tiết.


Nhưng điều này có nghĩa là, ngay cả khi các gói đến sau khi hàm được trả về, chúng vẫn bị ứng dụng loại bỏ?
MonsterMMORPG

@MonsterMMORPG Các gói không hoạt động sau khi đóng kết nối sẽ được xử lý bởi ngăn xếp mạng. Chúng thường có thể được loại bỏ một cách an toàn theo các quy tắc gói trùng lặp thông thường. Các gói dường như có liên quan đến một kết nối hoạt động không xác định thường bị loại bỏ và tạo ra phản hồi. Các tiểu bang WAIT bảo vệ chống lại lưu lượng này.
BillThor

29

Về cơ bản các trạng thái "WAIT" có nghĩa là một bên đã đóng kết nối nhưng xác nhận cuối cùng về việc đóng đang chờ xử lý.

Xem ví dụ: sơ đồ trạng thái TCP này để biết chi tiết:

http://www.jxos.org/Projects/TCP/tcpstate.html


14
Điều này mô tả chính xác CLOSE_WAIT nhưng không phải TIME_WAIT. TIME_WAIT chỉ ra rằng ứng dụng cục bộ đã đóng kết nối và phía bên kia thừa nhận và gửi FIN của chính nó. Bây giờ chúng tôi đang chờ đợi bất kỳ gói trùng lặp đi lạc nào có thể làm phiền một người dùng mới của cùng một cổng.
Chris Smowton

1
@ChrisSmowton, vậy ai đang sử dụng thuật ngữ đúng? Sơ đồ hay netstat? ( xem )
Pacerier

@Pacerier Tôi nghĩ họ hợp nhau - bạn nghĩ họ không đồng ý ở đâu?
Chris Smowton

@ChrisSmowton Vì vậy, điều này có nghĩa là chủ sở hữu cổng tiếp theo có thể nhận thêm byte và điều đó có thể phá vỡ phản hồi nếu chúng ta đặt TIME_WAIT = 0?
MonsterMMORPG

Có thể nhưng rất khó xảy ra, vì các số thứ tự sẽ cần khớp với ứng dụng để xem gói tin lừa đảo được chia thành luồng hoặc người nhận sẽ cần phải đệm gói rõ ràng cho đến khi số thứ tự bên phải xuất hiện. Tôi không biết đủ về các triển khai thực tế để cho bạn biết liệu cái sau có được thực hiện trong thực tế hay không.
Chris Smowton

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.