2013-07-29 39 views
6

Tôi có hai tệp PCAP, AB.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ỉ 0xd4c3b2a10xa1b2c3d4 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?

Trả lời

10

Sự khác nhau giữa tệp PCAP với số ma thuật “0x4d3cb2a1” và “0xd4c3b2a1” là gì?

Một tập tin pcap với một con số kỳ diệu của 0xa1b23c4d hoặc 0x4d3cb2a1 là một tập tin pcap trong đó tem thời gian gói tin là chỉ trong vài giây và nano giây.

Tệp pcap có số ma thuật 0xa1b2c3d4 hoặc 0xd4c3b2a1 là tệp pcap "thông thường" trong đó thời gian đóng gói bằng giây và micro giây.

Bạn lấy tệp B ở đâu? Phiên bản tiêu chuẩn duy nhất của libpcap ghi tệp ở định dạng "độ phân giải nano giây" là phiên bản trên thân cây libpcap Git và điều đó sẽ chỉ xảy ra nếu chương trình sử dụng libpcap đang đọc định dạng "độ phân giải nano giây" khác hoặc yêu cầu rõ ràng tem thời gian độ phân giải nano giây từ bộ điều hợp mạng (hiện chỉ được hỗ trợ trên Linux và có thể yêu cầu một hạt nhân đủ gần đây). Đó cũng là phiên bản duy nhất có thể đọc chúng. Wireshark sẽ không sản xuất chúng theo mặc định, mặc dù các phiên bản gần đây của Wireshark có thể đọc chúng.

+0

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

+1

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? –

+0

Đã 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