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.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技术详解(卷一)>>
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技术详解(卷一)>>