networking · beginner · ~15 min
Split a payload into MTU-sized datagrams.
UDP does not segment data, so an application must split a payload into MTU-sized datagrams itself. Compute how many datagrams a payload needs.
Implement int datagrams_needed(int total_bytes, int mtu) that returns the number of datagrams of at most mtu bytes needed to carry total_bytes (a ceiling division). Return 0 if mtu <= 0.
total_bytes: the payload size in bytes.mtu: the maximum bytes per datagram.Returns ceil(total_bytes / mtu), or 0 when mtu <= 0.
datagrams_needed(3000, 1500) -> 2
datagrams_needed(1600, 1500) -> 2
datagrams_needed(100, 1500) -> 1
datagrams_needed(100, 0) -> 0
mtu <= 0: return 0 (avoid dividing by zero).Two integers: total_bytes and mtu.
ceil(total_bytes / mtu), or 0 if mtu <= 0.
Use ceiling division; guard mtu <= 0 by returning 0.
int datagrams_needed(int total_bytes, int mtu) {
/* TODO */
return 0;
}
Solve this exercise in the browser editor — compile and run against the test harness, no setup required.