In-band full-duplex (FD) systems have been widely studied because they can double the spectral efficiency (SE) compared with conventional half-duplex (HD) systems, theoretically. However, inherent interference caused by both self-interference (SI) and co-channel interference (CCI) makes FD systems to achieve theoretical SE hard. In this paper, we propose a CCI estimation and cancellation (CCI-EC) protocol for the FD systems to overcome performance degradation due to CCI. We suggest to use a coherence channel block for two phases: CCI channel is estimated at a downlink (DL) user through uplink (UL) pilot signals in the first phase, then a base station (BS) and a UL user transmit their data simultaneously in the second phase, in which a DL user cancels interfering signals from a UL user by utilizing the estimated CCI channel information. We analyze the achievable SE of FD systems with CCI-EC and formulate a resource allocation problem to maximize it, where resource includes pilot and data transmission time, and transmit power of a BS and a UL user. A closed-form optimal power allocation for UL pilot and data transmissions and a suboptimal power allocation for DL data transmission are provided. The simulation results show that FD systems with the proposed CCI-EC achieve near-optimal achievable SE and outperform the conventional HD systems and FD systems without CCI-EC in terms of the achievable SE. Especially, the SE gain achieved by the proposed CCI-EC protocol in FD systems is remarkable under severe interference environment.