2

From Hunt's TCP/IP Network Adminstration:

Gateways route data between networks, but all network devices, hosts as well as gateways, must make routing decisions.

Is it correct that routing decisions are made only for communication across different networks?

For communication within a network (whether it is in an internetwork or not),

  • does any device in the network need to make routing decisions?

  • does any device in the network necessarily have a routing table or something similar?

If a device makes routing decision, that that mean the device has a routing table or something similar? If a device has a routing table or something similar, does it make routing decision?

Or, do only gateway devices have to make routing decisions and have routing tables or something similar?

I have these questions because my Linux laptop isn't a gateway in the local wifi network, but has a routing table to my surprise. Is it cecause any device in a network has a routing table? My laptop doesn't seem to connect two networks, because the network for all the loopback addresses and the wifi network can't communicate with each other. But its routing table shows a route for communicating with other devices in the same wifi network, and a default route for all other destinations outside the wifi network.

Thanks.

6

Every IP device has a routing table, and therefore makes a routing decision. It may be quite simple with only two entries, but fundamentally, a device needs to decide if the destination is on the directly connected network or not. If not, it forwards the packet to the gateway. For most devices like PCs, there is only a default gateway, but there can be more than one.

  • 1
    Three entries usually. There's also localhost. – Zan Lynx Mar 27 at 23:07
  • @ZanLynx You’re right. I forgot to mention that. – Ron Trunk Mar 27 at 23:10
4

Theoretically, consider a computer that has an IP address of 192.168.1.3/24 and wants to send some data to the IP address 192.168.2.5/24 then it should make a subnet checking to see if the IP address it wants to reach is in the same network or not; to be able to decide to forward the packet to its gateway or not.

when you have a subnet mask of /24 which refers in binary to 11111111.11111111.11111111.00000000. Zeros are the places you can modify your IP address in the "same network". If you change anything before zeros start, it means you are changing the network you are in and to be able to communicate with such an IP you need a router between two of them. After all, being able to make this decision is considered as making a routing decision.

Hope the answer helps.

1

Every host needs to decide what to do with the packets it has generated. For a typical single homed host configuration that means one of three things.

  1. Loop them back from the output queue to the input queue and process them locally.
  2. Send them to another host on the same subnet (for example by ARPing for the destination's MAC address)
  3. Send them out of the network by sending them to the default gateway (for example by ARPing for the default gateway's MAC address).

If you read the early RFCs then they are written on the assumption that this logic will be coded explicitly.

However modern operating systems (at least full-feature ones) support multi-homing and acting as a router (though the latter is typically disabled by default). So they use an explicit routing table to decide what to do with packets. The interface configurations are used to fill-out default entries in this routing table, but entries can also be added manually.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.