iFCP is one form of storage over TCP/IP that allows hosts and Fibre Channel storage devices to communicate directly. It is an encapsulation protocol that dictates the means by which Fibre Channel frames become the payload in an iFCP message. In addition, iFCP introduces a few new types of messages for purposes of control. This thesis is comprised of the design and implementation of iFCP end devices. The initiator has been implemented as a software module that behaves like a Fibre Channel Host Bus Adapter with an attached encapsulator. The target has been implemented as a stand-alone software program that acts both as an encapsulator and as a Fibre Channel switch that is attached through a generator to a Fibre Channel disk.