Tôi có hai tệp PCAP, A
và B
.Sự khác biệt giữa tệp PCAP với số ma thuật là "0x4d3cb2a1" và "0xd4c3b2a1" là gì?
A
có 'số ma thuật' trong tiêu đề d4 c3 b2 a1
, B
có 'số ma thuật' trong tiêu đề 4d 3c b2 a1
. Theo tài liệu wireshark (http://wiki.wireshark.org/Development/LibpcapFileFormat), chỉ 0xd4c3b2a1
và 0xa1b2c3d4
là số ma thuật hợp lệ, dẫn tôi nghĩ rằng B không phải là số ma thuật hợp lệ.
Chạy file
trên linux sao này lên, với sản lượng của file A
phúc:
tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)
file B
chỉ đơn giản là cung cấp cho:
data
Dường như rằng bất cứ điều gì đã viết B
đã viết nó trong một 'hoán đổi định dạng '(ít người cuối cùng'), nhưng đã viết byte byte thứ hai bằng cách nibbles vòng sai. Cho rằng tôi mong đợi một hệ thống lớn để viết toàn bộ int32 theo cách khác và không phải là các byte riêng lẻ, cho một số ma thuật là 1a 2b 3c 4d
.
Có phải là B
tệp hợp lệ không? Nếu vậy, tại sao? Các hệ thống khác nhau có thể viết cả int-bit 32 bit và các nibbles riêng lẻ trong một byte theo thứ tự tùy ý không?
Nhìn vào Wireshark, tôi thực sự có thể thấy rằng nó hiển thị dấu thời gian Frame là 9dp cho 'B' nhưng hiệu quả chỉ 6dp cho' A' (ba số cuối luôn là 0). 'B' được tạo ra bởi một NIC chuyên dụng, có vẻ như nó hỗ trợ độ phân giải ns. :) – growse
Bạn sẽ cần một NIC chuyên dụng hoặc một hệ điều hành có cơ chế chụp hỗ trợ độ phân giải nano giây để nhận tem thời gian có độ phân giải nano giây. Bạn cũng * cũng cần một chương trình và/hoặc thư viện có thể nhận được những tem thời gian có độ phân giải cao từ NIC/OS và có thể viết tem thời gian độ phân giải nano giây; bất kỳ ý tưởng những gì chương trình đã viết rằng? –
Đã thực hiện thêm một số thao tác đào. Nhiều khả năng một trong những http://www.napatech.com/products/network_adapters.html này - nghĩ rằng các trình điều khiển hỗ trợ viết PCAP ở độ phân giải 1ns. – growse