4 components needed for data communication to take place