Cách diễn giải đầu ra của netstat -o / netstat --timers


17

netstat -obao gồm một số thông tin hẹn giờ trong đầu ra nhưng tôi không tìm thấy lời giải thích về đầu ra trong Timercột ở bất cứ đâu.
Bất cứ ai có thể giải thích điều này hoặc chỉ ra một lời giải thích?

Đây là những gì xuất hiện của netstat -o trông như thế nào (trên Ubuntu 8.04).

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
tcp        0      0 192.168.22.1:443        111.111.11.210:5804     ESTABLISHEDkeepalive (6176.47/0/0)
tcp        0      0 192.168.22.1:443        192.168.22.253:48379    TIME_WAIT  timewait (36.57/0/0)
tcp        0    924 192.168.22.1:47763      10.9.169.60:443         ESTABLISHEDon (0.34/0/0)
tcp        0      0 192.168.22.1:443        192.168.111.99:4059     ESTABLISHEDkeepalive (6963.60/0/0)
tcp        0      0 192.168.22.1:443        192.168.111.74:1729     ESTABLISHEDkeepalive (1393.60/0/0)
tcp        0      0 192.168.56.1:42204      10.9.169.60:443         ESTABLISHEDoff (0.00/0/0)
tcp        0      0 192.168.56.1:42207      10.9.169.60:443         ESTABLISHEDoff (0.00/0/0)
tcp        0    940 192.168.22.1:42186      10.9.169.60:443         ESTABLISHEDon (0.28/0/0)
tcp        0      0 192.168.22.1:443        192.168.22.253:48367    TIME_WAIT  timewait (31.57/0/0)
tcp        0      0 192.168.22.1:42234      10.9.169.60:443         ESTABLISHEDoff (0.00/0/0)
tcp        0      0 192.168.22.1:42209      10.9.169.60:443         ESTABLISHEDoff (0.00/0/0)

Câu trả lời:


7

Số đầu tiên rõ ràng là đồng hồ đếm ngược. Tùy thuộc vào loại trạng thái, khi hết thời gian hẹn giờ, nó sẽ thử lại và gửi một FIN khác hoặc bất cứ gói nào cần thiết để thử lại. Vì vậy, số thứ hai theo dõi số lần thử lại. Lưu ý rằng bộ định thời tăng vì TCP có bộ định thời lùi trong trường hợp có điều kiện giao thông. Đồng hồ bấm giờ dự phòng tránh thử lại quá thường xuyên. Mỗi thất bại dẫn đến một backoff lớn hơn và lớn hơn. Backoff có thể là tăng trưởng theo cấp số nhân hoặc tuyến tính, tùy thuộc vào ngăn xếp TCP. Tôi chưa tìm ra con số 3 để làm gì. Luôn luôn bằng không trong màn hình của tôi.


30

Cột hẹn giờ có hai trường (từ o / p của bạn ở trên):

keepalive (6176.47/0/0)  
<1st field> <2nd field>

Các 1st fieldgiá trị có thể có:
keepalive- khi bộ định thời giữ lại được BẬT cho ổ cắm
on- khi bộ hẹn giờ truyền lại được BẬT cho ổ cắm
off- không có giá trị nào ở trên là BẬT

2nd fieldBA trường con:

(6176.47/0/0) -> (a/b/c)

a= giá trị bộ đếm thời gian (a = bộ đếm thời gian giữ, khi trường thứ nhất = "keepalive"; a = bộ đếm thời gian truyền lại, khi trường thứ nhất = "bật")
b= số lần truyền lại đã xảy ra
c= số lượng đầu dò giữ lại đã được gửi

Ví dụ, tôi có hai ổ cắm được mở giữa máy khách và máy chủ (không phải loopback). Các thiết lập giữ là:

KEEPALIVE_IDLETIME   30
KEEPALIVE_NUMPROBES   4
KEEPALIVE_INTVL      10

Và tôi đã tắt máy khách, vì vậy ở phía máy chủ tôi chạy netstat và đầu ra là:

Cổng 1:

netstat -c --timer | grep "192.0.0.1:43245             192.0.68.1:49742"

tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (1.92/0/0)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (0.71/0/0)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (9.46/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (8.30/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (7.14/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (5.98/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (4.82/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (3.66/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (2.50/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (1.33/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (0.17/0/1)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (9.01/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (7.75/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (6.47/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (5.29/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (4.08/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (2.89/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (1.73/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (0.54/0/2)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (9.38/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (8.23/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (7.08/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (5.93/0/3)                                                                                                                               
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (4.76/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (3.62/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (2.48/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (1.32/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (0.13/0/3)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (8.98/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (7.78/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (6.62/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (5.45/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (4.29/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (3.14/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (1.99/0/4)
tcp        0      0 192.0.0.1:43245             192.0.68.1:49742            ESTABLISHED keepalive (0.85/0/4)

Bạn có thể thấy ở trên rằng máy chủ đã gửi BỐN đầu dò cố định, mỗi lần sau 10 giây và vì nó không nhận được bất kỳ phản hồi nào, số lượng đầu dò được gửi tăng lên và sau 4, nó sẽ ngắt kết nối với máy khách.

Cổng 2:

Đối với kết nối thứ 2, ổ cắm giống hệt nhau, ngoại trừ, ứng dụng của tôi ở phía máy chủ đang cố gửi một số tin nhắn sau khi máy khách bị hỏng & trước khi hết hạn bảo trì:

 netstat -c --timer | grep "192.0.0.1:36483             192.0.68.1:43881"

tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (8.18/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (7.00/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (5.86/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (4.71/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (3.55/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (2.40/0/1)                                                                                                                               
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (1.21/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (0.05/0/1)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (8.91/0/2)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (7.75/0/2)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (6.56/0/2)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (5.39/0/2)
tcp        0      0 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED keepalive (4.14/0/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.21/2/2)  // <---- retransmission timer kicks in
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.68/3/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.74/4/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.59/4/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.43/4/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.28/5/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.11/5/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.95/6/2)

. . . . . 

tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.65/249/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.58/250/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.48/250/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.36/250/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.26/251/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.15/251/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (3.01/252/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.92/252/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.84/252/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.72/253/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.64/253/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.55/253/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.47/254/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.39/254/2)                                                                                                                                    
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (0.31/254/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (2.19/255/2)
tcp        0    210 192.0.0.1:36483             192.0.68.1:43881            ESTABLISHED on (1.12/255/2)

Như bạn có thể thấy, trong trường hợp này mọi thứ có một chút khác biệt. Khi máy khách ngừng hoạt động, máy chủ của tôi bắt đầu gửi các tin nhắn cố định, nhưng trong khi nó vẫn đang gửi những thông báo đó, máy chủ của tôi đã cố gắng gửi một tin nhắn cho khách hàng. Do máy khách bị hỏng, máy chủ không thể nhận được bất kỳ ACK nào từ máy khách, do đó, quá trình truyền lại TCP bắt đầu và máy chủ đã cố gửi lại dữ liệu, mỗi lần tăng số lần truyền lại (trường thứ 2) khi bộ đếm thời gian truyền lại (lần 1 lĩnh vực) đã hết hạn.

Hy vọng điều này giải thích các netstat --timertùy chọn tốt.


Chào. Nếu bạn đã mở một kết nối, tại sao netstat hiển thị nhiều mục như vậy?
Marco Marsala

1
Cờ '-c' làm cho nó in thông tin này liên tục mỗi giây.
gãy chân

1

Lĩnh vực đầu tiên: timewait/keepalive

Thời gian tính bằng giây kể từ khi dữ liệu cuối cùng được chuyển cho đến khi đầu dò giữ lại TCP tiếp theo sẽ được gửi.

Theo mặc định, điều này bắt đầu từ 7200 giây và đặt lại mỗi lần gửi thêm dữ liệu. Nếu giá trị thấp, ví dụ. 4000 giây, điều đó có nghĩa là một số kết nối duy trì đang bị treo hoặc không làm gì trong một thời gian dài.

Các kết nối với proxy nội bộ hoặc các quy trình nội bộ khác có thể bị treo lâu hơn nhưng điều này không xảy ra với kết nối dựa trên web.


2
Chỉ để tránh nhầm lẫn trên Linux: bộ đếm thời gian hiển thị trong netstat -onhưng nó sẽ không bao giờ được đặt lại, nó được tính thành 0 và sau đó kiểm tra xem dữ liệu đã được gửi chưa. nếu không nó sẽ gửi một gói, nếu không sẽ tính thời gian còn lại và bắt đầu lại. Bằng cách này, nó không bao giờ cần phải thay đổi một bộ đếm thời gian chạy.
eckes

@eckes bạn có thể vui lòng giải thích những gì bạn có ý nghĩa? không hiểu lắm
Irika Popa

Như tôi đã nói, số được hiển thị bởi netstat không thiết lập lại hoạt động. Nó đếm về 0 và sau đó đặt lại thời gian còn lại.
eckes
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.