天将降大任于斯人….

路由表表项

1.目的IP地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段制定。

2.下一站路由器的IP地址,或者有直接连接的网络IP地址。

3.标志。其中一个标志指明目的地址是网络地址还是主机地址。另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口。

4.为数据报的传输指定的一个网络接口。

这是我本机上的路由表项,对于一个给定的路由器,可以打印出五种不同的标志:

U 该路由可以使用

G 该路由是到一个网关,如果没有该标志,说明目的地址是直接相连的。

H该路由是到一个主机,也就是说目的地址是一个完整的主机地址。如果没有设置标志,说明该路由是到一个网络,,而目的地址时一个网络地址。

D该路由是由重定向报文创建的。

M该路由是已被重定向报文修改的。

IP路由选择过程

1.搜索路由表,寻找能与目的地址的iP地址完全匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或者直接相连的网络接口。

2.搜索路由器,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或者直接连接的网络接口。

3.搜索路由器,寻找标为默认的表目。如果找到,则把报文发送该表目指定的下一站路由器。

4.如果上面的都没成功,则数据报不能被发送。

ARP协议协议格式

工作原理

当一台主机要把以太网数据帧发送到位于同一个局域网的另一台主机时,是根据48bit的以太网物理地址来确定目的接口的。设备驱动程序从来不检查IP数据报中的目的IP地址,IP地址是协议分层设计中虚拟出来的用来进行路由选择的,而真正用于通信的地址是物理网卡的地址即MAC地址。当主机发送数据确定了目的IP地址后,就需要知道目的地址的

物理地址,因为根据链路层的以太网帧格式,我们发现其封装了目的MAC地址。ARP协议正是为IP地址到对应的硬件地址之间提供动态的映射,它工作在以太网。当它想要给知道网络中某一IP地址(可以是路由器或者主机) 对应的物理地址,就发送广播消息,消息内容大致就是:“喂,我是192.168.152.xxx,物理地址是xxxxx,我想要知道192.168.152.yyy的物理地址”。以太网中的主机收到该消息就将消息中的ip地址和自己进行比较,如果是自己,就发送响应告诉发送主机自己的mac地址。这样发送主机就能向其发送ip数据了。

arp缓存

其实并非每次发送数据前都要发送arp广播消息,这主要是由于每个主机都有一个arp高速缓存。这个高速缓存存放了最近ip地址到硬件地址之间的映射地址。因此可以通过该缓存读取到对端的物理地址。但高速缓存中每一项有一定的生存时间,一般为20分钟。

可以通过arp -a 命令来查看最近的arp表目。

下面看一个例子:

首先在本机(192.168.152.130 mac addr:00:0c:29:e3:72:92)上运行tcpdump -e 命令来捕获arp消息,在另一台主机(ip:192.168.152.128 mac addr: 00:0c:29:7c:cf:fc)上运行telnet命令。得到的arp消息如下:

首先消息中0x0806代表该消息为arp请求或者应答。length 60 是指以太网数据帧的长度,由于arp请求或者应答的数据帧长都是42字节(28字节的arp数据,14字节的以太网帧头)因此必须加入填充字符以达到以太网的最小长度要求:60字节(有些书籍说是64,它包含了以太网的帧尾)。后面的46代表arp请求数据大小。在请求中可以看到ubuntu-2.local发送了该arp请求。

在响应消息中本机对其进行了回复告诉它自己的硬件地址。响应数据长度为28.

接着打印出本机的arp缓存条目,发现增加了第二条表目,这说明了在其他主机请求本主机的硬件地址时,同时也将对端的硬件地址添加到映射表来,这样以后和其通信就不需要进行arp请求了,如下图:

RARP协议

RARP协议和ARP协议的目的相反,它的作用是只知道自己硬件地址的主机能够通过RARP协议找到其IP地址。RARP的分组格式与ARP分租基本一致。主要是其帧类型代码为0x8035。这个协议在过去比较重要,用于无盘引导系统时获取主机的IP地址。现在的DHCP协议已经包含了RARP的功能。在这里就不多做介绍了。

完。

爱情纯属天性,不用思考。你不能为爱而爱,

天将降大任于斯人….

相关文章:

你感兴趣的文章:

标签云: