Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Mạng máy tính] Phân mảnh IP: số mảnh từ MTU

    Một gói IP kích thước total byte (gồm header hdr byte) phải đi qua đường truyền có MTU giới hạn. Mỗi mảnh có header riêng hdr byte; phần dữ liệu của mỗi mảnh (trừ mảnh cuối) phải là bội số của 8 (do trường fragment offset đếm theo đơn vị 8 byte).

    • Dữ liệu tối đa mỗi mảnh = ⌊(MTU−hdr)/8⌋×8\lfloor (\text{MTU} - hdr)/8 \rfloor \times 8⌊(MTU−hdr)/8⌋×8.
    • Tổng dữ liệu cần chia = total−hdr\text{total} - hdrtotal−hdr.
    • Số mảnh = ⌈tổng dữ liệu/dữ liệu moˆ˜i mảnh⌉\lceil \text{tổng dữ liệu} / \text{dữ liệu mỗi mảnh} \rceil⌈tổng dữ liệu/dữ liệu moˆ˜i mảnh⌉.

    Ví dụ: total = 4000, MTU = 1500, hdr = 20. Dữ liệu/mảnh = ⌊1480/8⌋×8=1480\lfloor 1480/8 \rfloor \times 8 = 1480⌊1480/8⌋×8=1480. Tổng dữ liệu = 3980 → ⌈3980/1480⌉=3\lceil 3980/1480 \rceil = 3⌈3980/1480⌉=3 mảnh.

    • Định dạng đầu vào:

      Một dòng chứa: total, mtu, hdr (cách nhau khoảng trắng).

    • Ràng buộc đầu vào:

      hdr<mtu≤totalhdr < mtu \le totalhdr<mtu≤total, các số nguyên dương.

    • Định dạng đầu ra:

      In ra số mảnh.

    Ví dụ:

    Đầu vào:

    4000 1500 20

    Đầu ra:

    3

    Giải thích:

    Dữ liệu mỗi mảnh = floor(1480/8)*8 = 1480. Tổng dữ liệu = 3980 nên ceil(3980/1480) = 3 mảnh.

    Đang tải editor...