Software
Software in end nodes implements techniques and protocols which define the rules and end procedures for initiating and terminating data transfers, interpreting how data is represented and transmitted and how errors are handled.
Software in the network electronics performs other functions to ensure data is transmitted from source to destination(s).