基于OSI模型,数据包如何通过Internet从一台计算机传输到另一台计算机

问题描述 投票:23回答:3

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

机器A <-----> Switch <----> Router <----> Router <----> Router <----> Switch <----> Machine B

在显示多个路由器代表互联网的情况下,当机器A向机器B发送数据包(比如通过FTP的简单“ls”命令)时,OSI层级会发生什么。

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

networking
3个回答
37
投票

路由器使用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的机器将使用其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_(computing)

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


0
投票

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


0
投票

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

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