The first issue to cover is how devices communicate with each other. They do this by sending "unicast" messages to one another using the destination B/IP address. How is the BACnet message itself packaged? The obvious solution is to take advantage of the 'data' portion of the UDP packet to contain the APDU. IP already has a networking layer, so the simplest solution would seem to be to just encapsulate the APDU portion of the BACnet frame. But the NPCI may contain important information such as the version number, priority, whether the message should be routed to a non-BACnet/IP node, and so on. Therefore, the entire NPDU is encapsulated.
A further problem is that some BACnet/IP devices may need to know how a message was conveyed, whether by unicast or broadcast addressing. We'll see why shortly. Since some commercially available IP protocol implementations don't provide this information to the recipient, we have had to create a sure-fire method to make the addressing mode available to the higher protocol layers. Enter the BVLL "Original-Unicast-NPDU" and "Original-Broadcast-NPDU."
The BVLCI indicates that this is an Original-Unicast-NPDU.
The NPCI in this simple example shows that this is "data expecting a reply."