An I2C bus needs at a minimum an I2C master and an I2C slave.
The I2C master is a transaction initiator (a master can write-to or read-from a slave).
The I2C slave is a transaction recipient (a slave can be written-to or read-from a master).
Here's how it looks on the bus.
This a write to an EEPROM at address 0x51, with 2 data bytes 0x50 and 0x0F.
An I2C transaction begins with a "start" condition, followed by the address of the device we wish to speak to, a bit to indicate if we want to read or write, the data written or read, and finally a "stop".
There are other details, like the need to have an "acknowledge" bit after each byte transmitted... see the waveform above, and the project's links.