Strictly speaking it's all laid out in the CIP Specification, but just telling you to read up on the object model isn't terribly helpful. I'll try to simplify.
An "Assembly" is a data object built up out of smaller data objects like BOOL, INT, DINT, REAL, etc. I/O connections are generally made to an Assembly object.
There can be more than one Assembly Object in a device. There might be one for basic I/O, and a different one for advanced functionality.
The most common Assembly Objects are 100 and 101, but it's largely up to the vendor.
The documentation for the EtherNet/IP device should have a little table or chart showing what each bit or byte in the Assembly means.
"Input" and "Output" are from the ControlLogix perspective, here. The "Output" assembly is data that the ControlLogix produces, the device consumes, and the device then applies to its output functions.
The Configuration Assembly is setup information that's sent to the device when a connection is made from the ControlLogix, usually at powerup. This is frequently not used, so they just make the Size value zero.