Internetworking Concepts, Devices, Internet Basics,
2.3 DEALING WITH INCOMPATIBILITY ISSUES
In spite of the problems mentioned earlier, computer scientists have found out a mechanism by which computer networks can be connected together to form an internet. The incompatibility issues are addressed in two respects.
2.3.1 Hardware Issues
At the hardware level, some additional hardware is used to connect physically distinct computer networks.
This hardware component is most commonly a router. A router is a special-purpose computer that is used specifically for internetworking purposes. A router has a processor (CPU) and memory like any other computer.
However, it has more than one I/O interface that allows it to connect to multiple computer networks. From a network’s point of view, connecting to a router is not extraordinary in any way. A network connects to a router in the same way as it connects to any other computer. A router connects two or more computer networks, as shown in Fig. 2.1.
A network has many computers or nodes attached to it. Therefore, an address of a node or a computer could be treated as network id + node id. Each node has a Network Interface Card (NIC), which has this address hardcoded into it. If a router is treated as yet another computer by the network, it means that the router basically has two addresses—one for each network, at points X and Y, as shown in the figure.
The router is a special computer that has two Network Interface Cards (NICs), which connect to these two networks. These two NICs correspond to the two physical addresses of the router.
Fig. 2.1 A router connects two or more computer networks together
The most important point in this discussion is that a router can connect incompatible networks. That is, networks A and B in the figure could be both LANs of the same or different types, both WANs of the same or different types, or one of them could be a LAN and the other a WAN, etc. A router has the capability to connect them together. How is this possible? For this, a router has the necessary hardware (NIC for each type of network) as well as software (protocols) that make it possible. Moreover, even if both A and B in the figure are of the same category—say LANs—they could internally use different technology (one could use Ethernet and another could use FDDI). The router handles all these incompatibilities as well. Again, this is possible because of the hardware and software contained by a router. The point is that A and B in the figure could be arbitrary networks. However, the router would still be able to interconnect them.
Interestingly, the Internet (note the uppercase I) looks as shown in Fig. 2.2.
25
Fig. 2.2 A portion of the Internet
The figure shows seven networks connected by ten routers. Network A could be an Ethernet, network B could be an FDDI, and network C could be a Token Ring, whereas network G could be a WAN! A router connects two networks through two NICs that are contained by each such router.
If computer X on network A wants to send a message to computer Y on network D, the message can be sent in different routes or paths given below.
1. X – Net A – R2 – Net G – R10 – Net C – R5 – Net D – Y 2. X – Net A – R1 – Net F – R7 – Net E – R6 – Net D – Y 3. X – Net A – R3 – Net B – R4 – Net C – R5 – Net D – Y Many more routes also exist.
The router is responsible for routing the packets to the destination. To do this, the software computes the routing algorithm, and based on this, each router stores the routing table, which states for each destination, the next hop, to which the packet is to be sent.
It is for this reason that the router is supposed to act at the network layer of the OSI model. It neither examines the contents of the packet, nor tries to interpret them. Figure 2.3 shows this.
26
Fig. 2.3 Router is at the network layer of the OSI model
2.3.2 Software Issues
At the software level, routers must agree about the way in which information from the source computer on one network would be transmitted to destination computer on a different network. Since this information is likely to travel via one or more routers, there must be a pre-specified standard to which all routers must conform.
This task is not easy. Packet formats and addressing mechanisms used by the underlying networks may not be the same. Does the router actually perform the conversion and re-conversion of the packets corresponding to the different network formats? Though not impossible, this approach is very difficult and cumbersome. This is done by defining a standard packet format in which the sender breaks down the original message. We will study this later. Therefore, some networking protocols are required that can standardize communication between incompatible networks. Only then, the concept of universal service can be truly realized. In the case of all Internet communications, the TCP/IP suite of protocols makes this possible.
The basic idea is that TCP/IP defines a packet size, routing algorithms, error control methods, etc., universally. Let us refer to Fig. 2.2 again. If node X wants to send some message to node Y by route number 1 given above (X – Net A – R2 – Net G – R10 – Net C – R5 – Net D – Y), the following processes happen, imagining that Net A is Ethernet and Net G is Token Ring.
(i) The message is broken down into the packets as per the TCP/IP protocol. Each packet has the source and destination addresses of X and Y.
27 (ii) Each packet is inserted into the Ethernet frame. Ethernet frame can be carried only on the Ethernet
network (in this case, Net A). The TCP/IP packet along with its final source/destination addresses (of X and Y) is enclosed within an Ethernet frame, which has additional source and destination addresses, which are physical addresses on the same network (of X and R2 as both are on Net A). After this, the CRC is computed and appended to the Ethernet frame.
(iii) Both, node X as well as R2 are on Net A, which is Ethernet. Thus, the frame travels from X to R2 using CSMA/CD, using the Ethernet source/destination addresses of X and R2.
(iv) At R2, the CRC is checked, the Ethernet header dropped, and the original TCP/IP packet recovered.
It contains the final source and destination addresses of X and Y.
(v) From the destination address, routing algorithm is used to find out the next hop, which is R10, in this case. We know that both R2 and R10 are on the Token Ring network Net G.
(vi) Net G is a Token Ring. Therefore, R2, which knows this fact, puts this TCP/IP packet as data in the Token Ring frame format after adding the header, etc. Here also, the TCP/IP packet, which contains the final addresses of X and Y, is encapsulated in the Token Ring frame, which has additional source and destination addresses of R2 and R10, respectively, for transporting the packet from R2 to R10 on the Token Ring, etc.
(vii) Like before, R2 as well as R10 are on Token Ring using the Token Ring source/destination addresses of R2 and R10. Thus, the packet reaches R10, etc.
(viii) This process repeats until the packet reaches Y. At Y, the header is removed to get the original TCP/IP packet. The destination address is verified and the packet is stored.
(ix) After all the packets are received at Y, the TCP/IP at Y ensures the error-free receipt of all packets of the message and then passes it on to the application layer at Y.
This is how TCP/IP solves the problem of connecting heterogeneous networks seamlessly.