我在数据包和框架之间有点困惑。混淆是基于,如果交换机是第 2 层设备,它如何从第 3 层设备读取数据包,以及交换机(或第 2 层设备)可以理解的“帧”在哪里?
从我阅读的所有博客和文章中,我得出的结论是,当主机向交换机发送数据包时,它只会将其读取到数据链路层,并且将该数据包从入口端口放到出口端口的过程是使用框架术语。
如果我没有彻底传达我的问题,我很抱歉,但这对我来说有点搞砸了。
我在数据包和框架之间有点困惑。混淆是基于,如果交换机是第 2 层设备,它如何从第 3 层设备读取数据包,以及交换机(或第 2 层设备)可以理解的“帧”在哪里?
从我阅读的所有博客和文章中,我得出的结论是,当主机向交换机发送数据包时,它只会将其读取到数据链路层,并且将该数据包从入口端口放到出口端口的过程是使用框架术语。
如果我没有彻底传达我的问题,我很抱歉,但这对我来说有点搞砸了。
您需要了解层的概念。
应用程序将数据发送到传输层。传输层协议会将数据封装在传输层协议的标头中,并将它们传递给网络层。
网络层会将它接收到的数据报封装在网络层报头中,这些报文称为数据包。数据包将被传递到数据链路层。
数据链路层会将数据包封装在数据链路层报头内,这些报文称为帧。
交换机只查看帧,而不查看数据包。路由器剥离并丢弃帧头,它们只查看数据包。
例如:
主机 A 上的应用程序通过 TCP 向主机 B 上的应用程序发送数据。主机 A 上的应用程序将数据发送到 TCP,TCP 将数据分段为 TCP 段,每个段都有一个 TCP 标头,其中包含源和目标 TCP 地址(端口)。
TCP 将段传递给 IP。IP 将添加 IP 标头,创建 IP 数据包,每个数据包都包含源 IP 地址和目标 IP 地址。
IP 将数据包传递到以太网。以太网将添加以太网标头,创建以太网帧,每个帧都将具有源和目标以太网地址(MAC 地址)。
以太网会将线路上的帧发送到以太网交换机。交换机将检查帧头,并将帧切换到上次看到目标 MAC 地址的接口。如果它没有目标接口,它会将帧泛洪到除接收帧的接口之外的所有接口。
交换机不知道也不关心使用什么网络层协议,因为它对网络层协议一无所知。
当目标主机接收到帧时,它会反转用于封装数据的过程,数据最终会进入目标应用程序。
正如 Ron 指出的那样,交换机封装了来自路由器的数据。您可以将其用作参考:
在应用层(例如这个 Web 浏览器)生成的信息称为数据。
传输层封装它并调用segment
在网络层,它被称为数据包
数据链路层的帧
在物理层,它们只是通过各种机制传输的比特。
如果它是启用了 IP 路由的第 3 层交换机,则它实际上是一个路由器。关于交换机,它处理帧。而已。