2010-07-15 42 views
5

Tôi chụp giao thông http với tcpdump và đang quan tâm trong đầu TCP chậm và cách cửa sổ kích thước tăng:Wireshark và tcpdump -r: cửa sổ tcp lạ kích thước

$ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80 

Khi tôi xem các tập tin dump với Wireshark sự tiến triển của kích thước cửa sổ trông bình thường, tức là 5840, 5888, 5888, 8576, 11.264, vv ...

Nhưng khi tôi xem các tập tin dump qua

$ tcpdump -r wget++.tcpdump -tnN | less 

tôi nhận được những gì dường như là vô nghĩa cửa sổ kích thước (địa chỉ IP bị bỏ qua cho ngắn gọn):

: S 1069713761:1069713761(0) win 5840 <mss 1460,sackOK,timestamp 24220583 0,nop,wscale 7> 
: S 1198053215:1198053215(0) ack 1069713762 win 5672 <mss 1430,sackOK,timestamp 2485833728 24220583,nop,wscale 6> 
: . ack 1 win 46 <nop,nop,timestamp 24220604 2485833728> 
: . 1:1419(1418) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728> 
: P 1419:2002(583) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728> 
: . ack 1419 win 133 <nop,nop,timestamp 2485833824 24220604> 
: . ack 2002 win 178 <nop,nop,timestamp 2485833830 24220604> 

Có cách nào để nhận kích thước cửa sổ bình thường/tuyệt đối trên dòng lệnh không?

Trả lời

8

Kích thước cửa sổ chính xác - chúng chỉ là chưa được đánh giá.

Trình khởi tạo kết nối đã đặt wscale (hệ số chia tỷ lệ cửa sổ) là 7, vì vậy giá trị win tiếp theo của nó phải được nhân với 128 để có kích thước cửa sổ tính theo byte. Do đó, win 46 cho biết cửa sổ là 5888 byte.

Người nhận kết nối đã thiết lập một wscale 6, vì vậy win giá trị của nó phải được nhân với 64. Như vậy win 133 chỉ ra một cửa sổ của 8512 byte, và win 178 chỉ 11.392 byte.

+0

Thứ nhất, tại sao điều này được thực hiện? Thứ hai, có cách nào tôi có thể nhận 'tcpdump' để tự động thực hiện việc mở rộng quy mô trong đầu ra khi xem tệp kết xuất theo cách Wireshark thực hiện không? –

+0

@Robert: Nó được thực hiện theo cách này vì thông số TCP/IP gốc cung cấp trường 16 bit cho kích thước cửa sổ; khi điều này được phát hiện là không đủ, cơ chế mở rộng cửa sổ cho phép nó đại diện cho các số lớn hơn mà không phải thay đổi kích thước trường. Nó không xuất hiện rằng có một cách để hiển thị kích thước cửa sổ thu nhỏ trong 'tcpdump' - bạn luôn có thể gửi một bản vá;) Bạn luôn có thể sử dụng' tshark' (phiên bản dựa trên văn bản của Wireshark) để thay thế. – caf

2

Ngoài ra, nếu công cụ (Wireshark hay tcpdump, nó không quan trọng) không thấy syn, nó có để in các giá trị chưa định tỷ lệ, có thể đánh lừa bạn

Các vấn đề liên quan