Q:

Why it is neccesary to assign IP adresses to interfaces?

I know this is a very very basic doubt, but never I thought of it in a deep perspective. For example, I am going to use the following scenario:

You know that we usually use a /30 mask when you are configuring a link between two routers, each router with his own interface. My doubt is: ¿why do we need to assing two ip's, for each interface? why it is neccesary a subnet in this link? I say this becasuse, if you have, for example, in router "CE_Valencia" an ethernet wire connected to router "PE_Este", you send the packets to that wire and they are going to arrive to the another router, I dont see the need for such ip's and subnet. I know that I am wrong, but I'd appreciate a good explanation of this, and why this happen. Thanks in advance, hope I have explained enough myself. Thanks in advance.

A:

You're right: you can have unnumbered point-to-point interfaces, for the reason you gave.
Have a read of this explanation of unnumbered interfaces work in Cisco routers.
We normally do number interfaces for the convenience of monitoring.
[EDIT] Ethernet interfaces, which are inherently multipoint interfaces, always get numbered.  The two-host ethernet network, which looks like just a direect link between two routers, is treated by the router just like any other ethernet segment and needs an address, mask and so on.  You might also like to read RFC 3021 "Using 31-Bit Prefixes on IPv4 Point-to-Point Links".

A:

At a very high level, it's not necessary for each network interface to have its own network address.  For example, with CLNP (OSI connectionless network protocol, which is now rarely used), a node can have a single network address, with no network addresses assigned to individual interfaces.  IPv6 takes a different approach, without a need for subnet addresses.  IPv6's Neighbor Discovery (equivalent of ARP) works using "link local" addresses which are not even advertised externally.
Also, as @jonathanjo points out, even with IP we can have "unnumbered" interfaces, but there are a number of restrictions on those interfaces.
In general, IP and its related routing protocols (and ARP) work best when each interface has its own IP address, and each subnet has its own subnet prefix.  For example, for one router to find an adjacent router's Ethernet address, it uses ARP, which requires IP addresses.
The real answer here is that while it's not theoretically necessary to have an IP address for every port, the protocols were designed so that it generally is necessary.  Early routing protocols (like RIP) relied on subnet addressing.  Modern routing protocols (like OSPF) do not need them, but implementations often depend on lower-level plumbing that does.  In many implementations, adjacencies are internally represented as IP addresses rather than (port, link-address) tuples.

