Danh sách lưu trữ địa chỉ nguồn được thiết kế dựa trên tư tưởng của danh sách dữ liệu do T. M. Gil [9] đề xuất. Cấu trúc dữ liệu do Gil đưa ra phục vu cho các thiết bị định tuyến lưu trữ thông tin về băng thông của các địa chỉ nguồn truy cập tới dịch vụ. Ở đây, đề xuất sử dung cơ chế đánh mã tương tự như danh sách của Gil nhưng có sửa đổi các tham số cần theo dõi.
Danh sách địa chỉ IP được lập theo mô hình cây có 4 mức, mỗi mức có 256 node, đủ để đánh mã địa chỉ IP V4. Mỗi node trong cây sẽ là một bảng có 256 bản ghi. Mỗi bản ghi sẽ bao gồm các trường:
- Tần xuất truy cập. Được tính theo số lần đã truy cập trong một khung thời gian định trước. Khuyến nghị là 2 tuần.
- Thời gian tồn tại của node trong cây. Thời gian này sẽ được đếm ngược. Khi nào giảm bằng 0 thì node sẽ bị tự động xóa bỏ trong cây.
- Một con trỏ trỏ đến node ở mức tiếp theo trong cây.
Càng xuống sâu trong cây thì độ dài của netmask càng lớn, địa chỉ càng cụ thể. Sơ đồ của cây được mô tả như hình 15. Node gốc sẽ lưu các địa chỉ có byte đầu tiên là 0.*.*.*, 1.*.*.* , 2.*.*.* … Node tiếp theo thuộc bản ghi thứ x trong node gốc sẽ lưu trữ các địa chỉ có dạng x.y.*.*
Với mỗi địa chỉ IP khi kết nối đến hệ thống mạng, hệ thống sẽ cập nhật các thông số vào danh sách; kiểm tra địa chỉ đó thuộc block nào được cấp cho khách hàng cuối. Khi có cuộc tấn công DDoS xảy ra, việc lọc địa chỉ IP truy cập sẽ dựa vào các block hay subnetmask của lớp địa chỉ. Khi đó, công tác tìm kiếm trên bảng sẽ được rút ngắn hơn rất nhiều. Hoặc nhà quản trị có thể thiết lập các khối địa chỉ IP ưu tiên để phục vụ hệ thống. Việc phục vụ theo khối này tương tự như việc điều tiết khí đốt hoặc nước theo các khối nhà, khu dân cư, khu vực cơ quan nhạy cảm.
Hình 15 Sơ đồ dữ liệu lưu trữ cây IP