第3层(网络层)如何识别IP地址?

问题描述 投票:0回答:4

第2层(以太网层)使用ARP协议识别MAC地址。它向整个网络发送一个问题,询问:“哪个MAC地址具有IP x?”。这样便可以识别目标MAC地址。

但是第3层(IP层)如何知道IP地址?它不会从传输层(第4层)传递给它。仅通过端口号。

希望我具体。预先感谢。

networking protocols ip-address osi
4个回答
2
投票

与数据包关联的两个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缓存)。

我希望这会有所帮助。


2
投票

但是第3层(IP层)如何知道IP地址?它不会从传输层(第4层)传递给它。仅通过端口号。

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


1
投票

每一层都提供与上一层的接口。第四层正是通过此接口发送第三层,即目标IP地址。 layer5(应用层)将要与之对话的目标IP地址发送到layer4,后者又将其发送到layer3。第3层将此内容包含在IP数据包中,并将此数据包传递到第2层(以及目的地MAC地址等其他信息。)

就像调用函数时提供参数一样。假设layer3提供的接口是send_packet(),layer4调用它,例如send_packet(srcIP, destIP)


0
投票

我曾在互联网上尝试过许多查询,但没有一个给出答案。 SO i假定第4层调用的功能像数据一样通过参数传递目标IP。还有一件事,就是所使用的协议类型。我还没有检查过任何TCP协议软件。但我猜该功能必须传递至少3个参数像func(Dest.ip,协议类型,数据);不需要源,因为第3层可以从接口spces获取它。

© www.soinside.com 2019 - 2024. All rights reserved.