一个网络底层问题

时间:2021-10-15 00:56:03
在一个Lan环境中,一PC只设定了Static IP 和net mask ,若它试图与非本网的机器进行通讯时(如在ie中输入了一个ip地址),此PC会不会调用arp协议,去试图发现目标的mac地址。

9 个解决方案

#1


不会。

#2


不会,非本网又没有设置路由

#3


这根不同IP协议栈的实现有关,WINDOWS的IP协议栈则不会发送ARP请求;如果是UNIX/LINUX,好像将网关的地址设为其本身的IP地址,就会发送ARP请求。

#4


arp是地址转换协议,如果你直接使用IP地址,当然不用转换,即使使用也不会获得MAC地址,你的包传给网关的时候以太网包里是网关的MAC地址,网关传给外部主机的时候甚至不一定是以太网协议,所以你根本不需要获得远程主机的MAC地址。

#5



但不一定每次发送都会

#6


先查找本机的ARP表,如果没有,广播一个ARP请求

#7


会发送ARP包来解析其他机器的IP地址,这样才能得到路由信息。

#8


同意ipnet的

#9


整个发送过程(Start From IP Layer):
1.Ip Layer 接收到Tcp 的数据段或Udp的数据报后,会按照路由策略(ip地址精确匹配,网络号匹配,模认路由器地址匹配)在其路由表中查找下一站地址.
一般windows下的路由表(可用tracert命令查看):
1).本机地址:包括每个接口的地址,环路接口地址.如果该机上有Slip连接还会有Slip接口的ip 地址.若该机加入了多播组,还会有每一个多播组的ip地址.
2).本网地址:包括本网(子网)的ip地址,受限的广播地址,本网的广播地址.
3).默认路由器地址:该路由器接口地址必须和本网直接相连(一般非本网的数据报被发送到该接口).
ip层找到匹配的ip项后会提取其下一站接口ip地址A(可能不是数据报的最终目的地).
2.链路层从ip层接收ip数据报(若存在ip分片,则为数据分组),因为ip层已决定将该报文发往A,所以链路层在本网内广播一个目的地为A的Arp请求桢, 本网内的每一台主机和路由器的链路层都会接收到该帧,并分用到arp协议,如果本机上的某接口的ip地址和A相符, 就向请求帧的源地址单播一个arp应答帧,告知其物理地址B.
3.链路层收到arp应答帧后会发送一个源ip地址为本机出口ip地址,目的ip地址为A,
源物理地址为本机出口物理地址,目的物理地址为B的帧(依据不同链路协议而定).
注意:1.若目的ip地址为一广播或多播地址,则不需要arp请求/应答过程.
     2.arp维护着一个称之为arp高速缓存的数据表,链路层在实际的arp请求/   应答过程前会先查找该表,若有与A相符的表项,则不需要arp请求/应答过程.该表在arp请求/应答时都会更新.
更具体的解释,请看<<Tcp/Ip技术详解(卷一)>>
     

#1


不会。

#2


不会,非本网又没有设置路由

#3


这根不同IP协议栈的实现有关,WINDOWS的IP协议栈则不会发送ARP请求;如果是UNIX/LINUX,好像将网关的地址设为其本身的IP地址,就会发送ARP请求。

#4


arp是地址转换协议,如果你直接使用IP地址,当然不用转换,即使使用也不会获得MAC地址,你的包传给网关的时候以太网包里是网关的MAC地址,网关传给外部主机的时候甚至不一定是以太网协议,所以你根本不需要获得远程主机的MAC地址。

#5



但不一定每次发送都会

#6


先查找本机的ARP表,如果没有,广播一个ARP请求

#7


会发送ARP包来解析其他机器的IP地址,这样才能得到路由信息。

#8


同意ipnet的

#9


整个发送过程(Start From IP Layer):
1.Ip Layer 接收到Tcp 的数据段或Udp的数据报后,会按照路由策略(ip地址精确匹配,网络号匹配,模认路由器地址匹配)在其路由表中查找下一站地址.
一般windows下的路由表(可用tracert命令查看):
1).本机地址:包括每个接口的地址,环路接口地址.如果该机上有Slip连接还会有Slip接口的ip 地址.若该机加入了多播组,还会有每一个多播组的ip地址.
2).本网地址:包括本网(子网)的ip地址,受限的广播地址,本网的广播地址.
3).默认路由器地址:该路由器接口地址必须和本网直接相连(一般非本网的数据报被发送到该接口).
ip层找到匹配的ip项后会提取其下一站接口ip地址A(可能不是数据报的最终目的地).
2.链路层从ip层接收ip数据报(若存在ip分片,则为数据分组),因为ip层已决定将该报文发往A,所以链路层在本网内广播一个目的地为A的Arp请求桢, 本网内的每一台主机和路由器的链路层都会接收到该帧,并分用到arp协议,如果本机上的某接口的ip地址和A相符, 就向请求帧的源地址单播一个arp应答帧,告知其物理地址B.
3.链路层收到arp应答帧后会发送一个源ip地址为本机出口ip地址,目的ip地址为A,
源物理地址为本机出口物理地址,目的物理地址为B的帧(依据不同链路协议而定).
注意:1.若目的ip地址为一广播或多播地址,则不需要arp请求/应答过程.
     2.arp维护着一个称之为arp高速缓存的数据表,链路层在实际的arp请求/   应答过程前会先查找该表,若有与A相符的表项,则不需要arp请求/应答过程.该表在arp请求/应答时都会更新.
更具体的解释,请看<<Tcp/Ip技术详解(卷一)>>