I realise BOOTP is a legacy system, but this is for my reading for my studies.
Consider a client, C, that is bootstrapping itself. It sends a BOOTP request to the server—obviously because it does not know its server location yet. C sends a BOOTP request with all the usual information: its hardware address, the (blank) IP, the transaction ID, the server IP address, the gateway IP address, etc., etc.
Its server, S, receives the BOOTP request whilst listening at port 67. In the datagram, S finds the hardware address of C. S already knows the network location of C, which is 18.104.22.168.
Given that S knows the hardware address of C, why can't the server just send the BOOTP reply to C using the hardware address?
My textbook says this isn't possible, because if S did try to do this, the server's host (whatever that is—if someone could explain I would be grateful) would broadcast an ARP request to C, which doesn't know its IP and would respond with an ICMP error (I'm assuming).
Why would this mysterious host decide to do this? Why can't S just send the thing to C with the hardware address it has been given? What's the point of sending a hardware address if it can't?
Thanks to everyone that took the time to read this!