Hello Rahul
This is an excellent question. As you know, a /31 address space provides only two addresses. However, since all subnets need a network address and a broadcast address, such a network seems unusable, since the only two addresses available must be used for network and broadcast. There are no available host addresses. However, vendors including Cisco have supported the use of /31 addresses for a while now. Because they are used only for point to point links, the two available addresses can be assigned to hosts. For example, if you have 192.168.1.2/31, then you can assign 192.168.1.2 to one end of a link and 192.168.1.3 to the other. There is no need for a network or broadcast address. If you try it on both serial or ethernet ports on a Cisco device, it should work (assuming the IOS or the emulator (GNS3, PacketTracer) supports it). Indeed, if you assign such an address, you may even see an ominous warning message like so:
Router(config)# interface f0/0
Router(config-if)# ip address 10.0.0.0 255.255.255.254
% Warning: use /31 mask on non point-to-point interface cautiously
But it will work. This has been done to avoid the unnecessary wastage of IP addresses in the event that you have many point to point links and you’re using public addresses.
I hope this has been helpful!
Laz