• regenerating data signals
• acting as a client or a server
• providing a channel over which messages travel
• applying security settings to control the flow of data
• notifying other devices when errors occur
• serving as the source or destination of the messages