27

我熟悉基本的 OSI 模型,但我总是感到困惑,数据包如何通过 Internet 从一台机器传输到另一台机器,以及 OSI 层是如何形成的?例如,对于以下拓扑:

机器A<----->交换机<---->路由器<---->路由器<---->路由器<---->交换机<---->机器B

其中显示了多个路由器来代表 Internet,当机器 A 向机器 B 发送数据包(例如通过 FTP 的简单“ls”命令)时,在 OSI 层级别会发生什么。

以上只是一个建议的例子,但如果有人可以用任何其他网络拓扑来解释,那也很好。我正在寻找一个非常基本的解释,说明数据包如何在每个节点(机器、交换机、路由器等)处转换为不同的 OSI 层。

4

3 回答 3

42

路由器使用 IP 层(第 3 层),交换机使用数据链路层(第 2 层)。第 1 层是通过线路的物理 1 和 0,第 2 层是数据链路层,它是以太网和点对点协议 (PPP) 等协议,它在相邻节点之间传输有关 MAC 地址的信息,来自和并允许错误检测和重传。第 3 层是 IP 层,它携带有关数据包在整个网络中的来源和目的地的信息,而不仅仅是当前跃点。

传输将是这样的:

机器 A 想向机器 B 发送一个数据包。机器 A 知道机器 B 的 IP 地址,因此它将它放在第 3 层数据包中。但是,机器 A 需要将下一跳的 MAC 地址放入第 2 层数据包中。如果它不知道,那么它将使用目标 IP 向网络发送一个称为 ARP 请求(地址解析协议,请阅读此处: http ://www.tildefrugal.net/tech/arp.php)的东西。这里会发生几件事之一:

  1. IP是本地的。具有该 IP 的机器将使用其 MAC 地址回复发件人。
  2. IP 是非本地的。网关路由器将检测到这一点并发送其 MAC 地址。
  3. IP 是非本地的,并且机器 A 的默认网关和子网掩码已设置。使用此信息,机器 A 可以确定 IP 地址的非本地性并将其发送到路由器的 MAC 地址(如果还不知道,则为 ARPing)。

(如果机器 A 早先发现了这个,它将在 ARP 缓存中,机器 A 将使用它。)现在 MAC 地址已发送,数据包可以被传输(物理层 1 执行实际的数据传输)电线)。下一站将是开关。交换机知道列为第 2 层目标的 MAC 地址在哪个出站端口上,因为它会跟踪它看到的数据包来自的每个 MAC 地址以及它来自哪个端口 - 如果它不知道,那么它将在每个单一端口,保证它会到达。

因此,数据包到达路由器。IP 模型很酷的地方在于它将网络/世界中的每个 IP 地址划分为层次结构 - 根据定义,子网不能部分重叠子网,它们要么完全包含它们,要么完全包含在它们之中。因此,只要子网遵循这个层次结构,路由器就可以通过查看 IP 将在其表中属于哪个子网,明确地确定 40 亿个可能的 IP 地址中的每一个在网络上的位置!然后将数据包从该端口发送出去。

当数据包通过互连的 ISP 的路由器、骨干基础设施等时,它到达机器 B 的路由器,在那里发生相反的过程 - 路由器 B 看到它的目的地是机器 B 并将其发送到站。(类似地,如果不知道,路由器 B 将不得不使用类似 ARP 的过程来查找机器 B 的 MAC 地址。)从这里开始,其余的应该是微不足道的。

很好的参考:

https://web.archive.org/web/20120129120350/http://www.tildefrugal.net/tech/arp.php

http://en.wikipedia.org/wiki/Data_link_layer

http://en.wikipedia.org/wiki/Network_switch

http://en.wikipedia.org/wiki/Network_layer

http://en.wikipedia.org/wiki/Routing

http://en.wikipedia.org/wiki/Router_(计算)

http://en.wikipedia.org/wiki/Address_Resolution_Protocol

于 2013-04-20T23:10:56.600 回答
0

网络层协议监督数据包从源机器到目的地的传输。数据在传输之前被分解为长达 64 kb 的数据包或数据报,并带有目标 IP 地址的标记,然后转发到网络网关。网关可以是互连网络的路由器。

于 2018-09-11T10:00:33.700 回答
0

唯一可以在铜线上传播的是电脉冲。二进制数 1 由电脉冲或 0 无电脉冲表示。请记住,任何类型的真实数据都不能通过铜线、光纤或空气发送……仅代表先前已转换为 1 或 0 的数据,然后在接收端重新转换回来。

于 2016-08-23T23:21:15.907 回答