What are the basic components required for data communication?