一、直接交付
如果主机是直连,或者在一个以太网内。IP数据报直接发送到目的地。(见文“以太网”)
二、间接交付
主机既可以配置为主机,也可配置为路由器。两者处理IP数据报的区别在于:主机不转发不是由它生成的数据报,但是路由器会。
路由表:路由表至少应该含有:目的IP、掩码、下一跳IP、物理出口(下一跳IP对应的物理地址)
路由过程:路由器在接收到IP数据报之后,根据路由表查找下一跳地址,然后得到下一跳的MAC地址,然后选择合适的路由进行转发。
IP数据报中的源IP和目的IP不会改变,但是帧中的MAC地址每一跳都会改变,目的MAC地址指向下一跳的低层地址。
如下图所示:
路由过程
当不知道低层的MAC地址时,会通过ARP协议获得。(见文“ARP协议”)
三、路由器如何确定下一跳的地址
最长前缀匹配算法:
1、设IP数据报中的目的地址为D,第j条目中的目的地址为dj,第j条目中的掩码为mj。
2、在表中搜索所有满足下列条件的条目:(D ^ mj) = dj
3、在所有满足条件的条目中,选取掩码中1的位数最多的条目,获得下一跳相关信息。
若没有满足第1步的条目,这个数据报无法交付。(这台主机出现这个情况,返回“主机不可达”;路由器出现这种情况,ICMP返回信息)
若多个条目满足第3步,由操作系统的协议来决定如何选择。(选择第一个匹配的结果,或进行负载均衡等)