2012-01-02 98 views
-1

第2层(以太网层)使用ARP协议识别MAC地址。它会向整个网络发送一个问题,询问:“哪个MAC地址具有IP x?”。这就是它识别目标MAC地址的方式。第3层(网络层)如何识别IP地址?

但是,第3层(IP层)如何知道IP地址?它不从传输层传递给它(第4层)。只有端口号被传递。

我希望我是特定的。提前致谢。

回答

1

有两个IP地址与数据包相关联,即发送(也称为源)IP和目标IP。

发送IP - 发送IP是微不足道的,它是由该分组将被发送的网络接口的配置参数。它通过DHCP在现代网络中进行静态或更典型的配置。

目标IP - 根据目标计算机是本地计算机还是远程计算机,目标IP可能稍微复杂一些。在这种情况下,远程意味着目标计算机与源计算机不在同一个子网中。

对于远程目标DNS服务器用于名称< - > IP解析。 DNS允许人类使用我们的实力,诸如www.espn.com之类的名称,而计算机可以使用它们的强度,比特表示诸如10.5.0.1之类的IP地址。 DNS解析可以用许多不同的方式进行配置,但基本归结为检查本地缓存以查看是否存在先前的解决方案,以及是否查询一个或多个DNS服务器来解析请求。

如果目标机器是本地的,在相同的子网中,然后ARP/RARP用于MAC < - > IP转换。在创建新的ARP请求(从而使用网络带宽)之前,首先检查缓存,在这种情况下是ARP缓存。

我希望这会有所帮助。

+0

谢谢你的回应。 但是,我的实际问题是:第3层从第4层接收的内容不包含有关IP地址(或主机名)的任何内容。那么,它从哪里带来? 换句话说,是否有同时可用的7层信息的共同或全局来源,或者情况是每层只能从上面的信息中获取信息? 我希望我很清楚 – Tony 2012-01-10 08:35:06

+0

@Tony你错误地理解了你的基本主张。 – EJP 2014-10-20 09:18:07

1

每个图层都提供了一个到上述图层的接口。通过这个接口,第4层发送第3层,即目的IP地址。 layer5(应用层)将它想要交谈的目的IP地址发送到layer4,然后layer4将它发送到layer3。三层包括这在IP数据包,并将此包的二层(与其他东西,如目的地等的MAC地址一起..)

这就像当你调用一个函数给出的参数。假设由三层提供的接口是send_packet(),layer4的话来说,可能是像send_packet(srcIP, destIP)

1

但如何做3层(IP层)知道的IP地址?它不从传输层传递给它(第4层)。只有端口号被传递。

这是不正确的。 TCP或UDP都有明确的bind()操作,确实可以传递IP地址。 TCP还具有显式的connect()操作,该操作还传递IP地址,以及隐含的bind()操作,其中源IP地址是从单播IP路由表中计算出来的。