局域网中的主机之间通信
局域网中的主机之间通信
- 局域网中的主机间通信分为 2 种:
- 两台主机处于同一网段
- 两台主机之间处于不同网段
局域网中处于同一网段中的主机通信
- 假如:主机
A
要和主机B
通信,主机A
知道主机B
的 IP 地址。知道 IP 地址是通信的前提。首先,要通进行通信,IP 地址和 MAC 地址是必不可少的,IP 地址已经知道了,那么主机A
必须要知道主机B
的 MAC 地址,先在ARP
表中查看有无该 IP 地址,如果有,就找出对应的硬件 MAC 地址,如果没有,主机A
广播发送ARP
请求来获取目的 MAC 地址,说 who is 192.168.1.102 ?
- 当 IP 地址是
192.168.1.102
的主机B
收到后,会回复主机A
,说 “我是192.168.1.102
,我的 MAC 地址是:xx-xx-xx-xx-xx-xx”(ARP应答)。这样一来,主机A
就知道主机B
的 MAC 地址了,当然,由于主机A
在广播发送的ARP
报文时,主机A
的 MAC 地址被作为源 MAC 地址而封装在 MAC 帧中,所以主机B
收到广播报文后也会知道主机A
的 MAC 地址,这时,主机A
的源 IP 地址、目的 IP 地址、源 MAC 地址和目的 MAC 地址都能确定了,就能够进行通信了。这也就是平时说的同一网段中的主机相互通信。
不同网段间主机通信
- 这里的不同网段,指的是不在同一子网下。
- 假如:主机
A
要和主机D
进行通信,那么同样的,主机A
如果广播发送ARP
请求,询问192.168.1.22
在哪里,很显然,主机A
和主机D
不在同一个网段内,路由器默认不转发广播报文,那么主机D
就收不到ARP
请求,也就无法回应主机A
,主机A
也就无从获取主机D
的MAC地址。
- 其实,主机
A
会首先检查目的 IP 地址是否与自己在同一网段,如果在,就直接广播ARP
请求来获取目的主机的 MAC 地址,如果不在同一网段,又配置有网关地址的话,那么主机A
就通过ARP
请求,询问192.168.0.1
(网关)在哪里,网关收到后就会回应主机A
,把网关的 MAC 地址告诉主机A
,当获取到网关的 MAC 地址后,把网关的 MAC 地址作为 MAC 帧中的目的 MAC 地址,然后就把数据丢给网关192.168.0.1
,网关根据路由表,转发给下一个路由器,再由下一个路由器交付给主机D
所在的网络,即网关,网关再通过ARP
,找到目的主机D
,完成数据交付。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SleepyLoser's Blog!
评论