关于 IPv4 数据包中目标 IP 的问题

网络工程 ip IPv4 IP地址 第 2 层 第 3 层
2022-03-03 08:40:18

我第一次阅读有关链接和网络层的内容,我试图将这些部分放在一起以了解它们如何协同工作。我的问题可能与链接层无关,但我不确定。这是我的担忧:

假设 IP A 想要向目标 IP B 发送数据包。最佳路径(路由)是已知的,包括 IP Ra 的路由器和 IP Rb 的路由器。

所以,我们的路径是 A->Ra->Rb->B。

我知道在 IPv4 数据包格式中,有一个目标 IP 字段。

Q1:对于系统A中的数据包,该字段是否包含IP B或Ra?

Q2:如果B在那个字段中,Ra写在哪里以便在链路层找到正确的MAC地址?路径/路线是在第 3 层还是在第 2 层确定的?如果它是在第 3 层确定的,那么 Ra 的信息必须包含在某个地方,因为它会下降到第 2 层,对吧?

2个回答

IP 被设计为一种端到端的协议。源和目标 IP 地址是实际的源和目标主机 IP 地址。除了 NAT(它打破了 IP 端到端范例)之外,数据包标头中的 IP 地址不会改变。

主机 A 向主机 B 发送数据包将创建具有主机 A 的源 IP 地址和主机 B 的目标 IP 地址的数据包。


编辑:

对于您的新问题,帧获取主机 A 配置网关的 MAC 地址。主机 A 确定主机 B 位于不同的网络上,因此在创建帧时,它使用其配置网关的 MAC 地址作为目标帧中的地址。这与IP数据包无关。

Q1:对于系统A中的数据包,该字段是否包含IP B或Ra?

正如 Ron Maupin 已经写过的,IP 数据包包含 IP 地址 B。

但是,包含这个 IP 数据包的以太网帧将包含 Ra 的 MAC 地址(网络是以太网)。

Q2:……如果在第3层确定,Ra的信息必须包含在某个地方,因为它下降到第2层,对吗?

原则上, IP(IPv4 或 IPv6)网络中的每台计算机都有一个所谓的“路由表”:

此表包含有关到达“最终”目标计算机所需的下一个路由器的信息。

假设“A”的地址是 10.11.20.21,“B”的地址是 10.11.12.13。在计算机“A”中,路由表可能如下所示:

10.11.20.0 - 10.11.21.255: Sent directly over network card #1
10.11.30.0 - 10.11.30.255: Sent over router "Rc" (10.11.20.23)
All others: Sent over router "Ra" (10.11.20.22)

...在路由器“Ra”上,表格可能如下所示:

10.11.20.0 - 10.11.21.255: Sent directly over network card #2
10.11.40.0 - 10.11.41.255: Sent directly over network card #3
10.11.30.0 - 10.11.30.255: Sent over router "Rc" (10.11.20.23)
All others: Sent over router "Rb" (10.11.40.41)

...在路由器“Rb”上,表格可能如下所示:

10.11.12.0 - 10.11.12.255: Sent directly over network card #4
10.11.40.0 - 10.11.41.255: Sent directly over network card #5
10.11.20.0 - 10.11.21.255: Sent over router "Ra" (10.11.40.44)
All others: Sent to internet provider (PPP connection)

此信息不与 IP 数据包一起发送。它甚至不能与 IP 数据包一起发送,因为计算机“A”根本不知道路由器“Rb”。

为了获得属于下一个节点(例如路由器)的IP 地址的MAC 地址,使用了ARP 协议。