in section 4.2 , we saw that a router typically consists of input ports, output ports, a switching fabric and a routing processor. which of these are implemented in hardware and which are implemented in software? why?