我必须在几周后教我关于MAC地址和IP地址的第六种形式,我不清楚某些领域,希望你们中的一些人能够为我澄清。我有足够的能力让他们通过课程提纲,但是我希望比规范拥有更多的知识,以便我能以更有意义的方式解释事物的工作方式。

据我所知,当发生以下情况时LAN上的设备通过Internet将数据包/帧发送到另一个单独的LAN上的设备。

在发送端创建了一个带有目的地并发送IP的数据包

第一个问题:目标IP实际上是接收设备的LAN网关的IP地址吗?

然后它变成一个帧,该帧将到达LAN的网关-这发生在数据链路上层和帧上添加了MAC发送和目标地址


第一个问题:目标MAC地址-这是最终的
目标还是网关的目标?


然后将数据包/帧发送到Internet并路由(使用IP地址)到指向最终目标的下一跳


第二个问题:在每个跃点上,数据链路层是否将帧中的
目标MAC地址更改为下一
跃点的MAC地址?


包/ frame被路由到目标地址(这是网关)


第三个问题:一旦帧/数据包到达接收LAN的网关,则是目标MAC地址在
开关使用的框架中,以确保将其放置在正确的设备上?显然,这是
假定路由器没有修改目标MAC地址
,因为帧/数据包遍历了互联网-如果被修改,则
一旦接收网关接收到帧/数据包,它怎么知道
将其发送到哪里?


#1 楼

MAC地址是帧头中的第2层地址。第2层帧封装了第3层IP数据包。在第2/3层边界(例如路由器)剥离第2层帧。如果第3层数据包需要通过另一个第2层域转发,则使用新的第2层域中的MAC地址创建新的第2层帧,以封装第3层数据包。

从概念上讲:

到路由器:

<L2 frame><L3 packet><L4 segment>PAYLOAD DATA</L4 segment></L3 packet></L2 frame>

在路由器中:

<L3 packet><L4 segment>PAYLOAD DATA</L4 segment></L3 packet>

从路由器:

<New L2 frame><L3 packet><L4 segment>PAYLOAD DATA</L4 segment></L3 packet></New L2 frame>

原始的第2层帧将包含发送方的源MAC地址和路由器接口中的目标MAC地址。该第二层域。

新的第二层帧将包含新第二层域中路由器接口的源MAC地址以及新第二层域中下一跳的目标MAC地址。第2层域。

第3层数据包将包含数据包始发者的第3层源IP地址以及最终的第3层目标的第3层目标地址。 br />
第2层MAC地址在沿要路由的第2层/ 3边界处被删除替换为新的源和目标的MAC地址,但第3层IP地址沿路径保持不变(某些例外,如NAT)。

#2 楼


第一个问题:目的地MAC地址-这是网关的最终目的地还是目的地?


MAC地址用于帧的第2层,并且第2层定义本地网络。因此,如果最终目标不在同一LAN上,则目标MAC地址就是网关的地址。


第二个问题:在每一跳上,数据链路层是否都会更改目标是帧中的MAC地址到下一跳的MAC地址吗?


是,如果最终目标的MAC地址在同一LAN上,则为该目标。


第三个问题:帧/数据包到达接收LAN的网关后,交换机使用该帧中的目标MAC地址以确保其到达正确的设备吗?显然,这是假定当帧/数据包遍历Internet时,路由器未修改目标MAC地址-如果对其进行了修改,则一旦接收网关接收到帧/数据包,它怎么知道将其发送到哪里? >

使用最终目标的IP地址及其路由(LAN地址和掩码),路由器可以推断出数据包的目标是否在同一LAN上。如果IP地址在LAN IP地址和掩码的范围内,则表明最终目标位于路由器所连接的LAN中。

#3 楼

只是想添加此动画来补充已接受的答案。



(这个很棒的GIF来自这里。)