IPFS biểu diễn dữ liệu thành các content-addressed block và thao tác trên các block đó sử dụng những subsystem sau:
Content Identifiers (CID)
CID là mã định danh cho từng block, được tính toán bằng cách dùng hàm băm mã hóa SHA256 với input là nội dung của dữ liệu. Output của hàm băm sẽ được encode dưới dạng Base58 (là một dạng mà các ký tự dễ gây nhầm lẫn đối với một số font chữ chẳng hạn như chữ O và số 0 sẽ được loại bỏ).
CID thường có dạng như sau: Qmb2qMRHTzEgxZKMYN4dFZhHjuHTqoFhLgTDbBndx6VxgM.
Thay vì dùng URL để mô tả địa chỉ của một tài nguyên nào đó trên Internet (location based addressing) thì IPFS lại dùng CID để mô tả nội dung của tài nguyên (content based addressing). Nói cách khác, thay vì dùng URL để truy cập đến tài nguyên thì ta dùng CID.
Ví dụ, CID dưới đây là đường dẫn cho Wikipedia ở trên mạng của IPFS:
ipfs://QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6ucoChúng ta cũng có thể điều hướng đến những items có trong thư mục chẳng hạn như sau:
ipfs://QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Vincent_van_Gogh.htmlHiện tại thì chỉ có hai trình duyệt hỗ trợ phân giải định danh CID là Brave và Opera. Đối với các trình duyệt khác, ta cần chạy một IPFS node hoặc truy cập thông qua IPFS HTTP Gateways.
Cũng có thể xem nội dung của resource thông qua ipfs CLI:
ipfs cat <CID>InterPlanetary Linked Data (IPLD)
IPFS sử dụng một data model có tên là InterPlanetary Linked Data (IPLD) để biểu diễn mối quan hệ giữa các content-addressed data, tương tự việc biểu diễn cây thư mục, bằng cách sử dụng một đồ thị có hướng không tuần hoàn (Directed Acyclic Graph - DAG) có tên là Merkle DAG.
Đối với những dữ liệu lớn, IPFS sẽ chia nhỏ ra làm nhiều object (là block mà tuân theo cấu trúc Merkle DAG). Về bản chất, object là một cấu trúc dữ liệu gồm hai phần: data và links.

Các object sẽ được liên kết lại trong một root block nào đó1.

Chúng ta có thể sử dụng tool sau để vẽ cây Merkle DAG của một file bất kỳ: DAG builder visualization.
Xét thư mục sau:
📂 My Videos
🖼️ logo.jpg
📂 In progress
📄 IPFS script.txt
🎥 render.mp4Merkle DAG của nó sẽ là:

IPLD cho phép IPFS biểu diễn và thao tác với bất kỳ định dạng dữ liệu nào, có thể là file, thư mục, etc.
Content Addressable aRchive (CAR) Files
IPFS sử dụng các tập tin CAR để lưu trữ một chuỗi các content-addressed data liền kề. Các tập tin CAR tương tự với các tập tin TAR.
Cấu trúc của file CAR có thể có dạng như sau2:

Resources
Footnotes
-
Có vẻ tương tự như Indexed allocation. ↩
-
Nguồn ảnh: IPLD ♦ CARv1 Specification ↩