The top level window where the drag and drop operation starts is called the ``source window''. The client who owns this window is called the initiator client, or short ``initiator''. The drop operation then takes place in the ``destination window'' and the client who owns that window is called the ``receiver''. The initiator and the receiver of the drag and drop operation can be the same client - but this need not necessarily be always the case. Besides this, even the source and the destination window may be the same.
From the user's point of view there are no such things like windows recognizable. The only ``objects'' the user deals with are the ``drop sites'', which appear to her/him as entities supplying or receiving information. On the technical side, a drop site may be drawn into its own window or may be drawn as a part of a larger window containing other objects too. The protocol does not put any restrictions on how drop sites are organized within windows. To avoid a possible upcoming confusion, the protocol only knows of and works with the top level windows. Remember, according to the ICCCM 2.0, top level windows are distinguishable from ordinary windows by their WM_STATE properties.
Okay, after you've now learned some new ``drag and drop'' buzz words, you're now ready to dive into the world of bitfields and status codes. Afterwards, you'll meet the various drag and drop messages which make up the protocol.