ARP协议是通过IP地址对应到该主机的MAC地址,MAC地址仅仅存在于局域网中,当两台主机需要通信时,首先要确定需要通信的两台主机是否在同一个局域网内,然后再确认是否在局域网内直接转发还是通过网关转发。 若想知道发送数据时先进行ARP请求还是建立TCP连接,需要清楚通信的方式再进行判断,两台主机通信时有两种情况: 一、两台主机在同一个局域网内。当主机发送请求连接的报文给目标主机时,该报文达到IP层会确认目标IP地址是否跟自己是同一网段的。若为同一网段,那么使用ARP获取到目标IP地址所对应的MAC地址后,封装成帧进行发送,交换机根据ARP缓存表对应的MAC地址转发到网内的目标主机。 二、两台主机不在同一个局域网内。若目标主机的IP地址不在同一个局域网内,需要将请求的数据报文发送至网关,再通过网关发送到其它路由器进行转发,这时转发只需要清楚网关的MAC地址即可。这种转发方式发送端就是知道目标主机的MAC地址也无法进行转发,只能通过网关转发到目标网络再发送到目标主机。 通过两种通信方式可以很明显的看出,在TCP通信的过程中,是依靠IP来进行的,不可能直接通过MAC地址的,而MAC地址是二层的,IP地址是三层的,TCP协议是工作在四层的。每一层的通信都需要下一层协助完成。因此个人认为是先进行ARP请求和应答,因为不管是否在同一局域网内,都需要进行ARP请求后才能进行转发通信。 |
|
来自: 昵称11935121 > 《未命名》