网络中的数据包流

use*_*859 2 networking traffic router desktop packet-capture

我无法在脑海中想象网络流量。例如。如果局域网中有 15 台

  • 当数据包从路由器到本地局域网时,它是否通过了所有计算机?
  • 它是否进入每台计算机的以太网卡,并且这些计算机根据其物理地址接受数据包?
  • 数据包将首先到达哪台电脑?到最近的路由器?如果第一台 pc 捕获该数据包(尽管它不是为它准备的)会发生什么?
  • 电脑广播消息时会发生什么?是否必须为所有 pc 生成 14 个数据包或只有一个数据包到达所有 pc?如果它是一个数据包并被第一台电脑捕获,其他电脑如何得到它?

我无法想象这种流量究竟是如何流动的?可能是我的比喻完全错误。有人可以向我解释这个吗?

Ree*_*e45 22

确切的过程取决于网络类型、拓扑结构和设备。我将尝试描述大多数以太网网络的过程。

条款

  • MAC 地址:类似于社会安全号码。它不会随着你移动而改变
  • IP 地址:就像地址一样,当您移动(长距离)时,它会发生变化。
  • TCP 数据包:带有 TCP 端口信息的数据(有时称为 TCP 段)
  • IP 数据报:带有 IP 信息的数据
  • 以太网帧:带有 MAC 信息的数据

IP 地址分为网络和节点两部分。您在计算机或路由器上配置的子网决定了 IP 地址所在的网络。您需要使用 IP 地址(和子网)配置接口以路由到它。

根据您的路由器,接收数据包时可能会发生以下几种情况:

家庭路由器(NAT网关)

  1. 数据包进入路由器
  2. 路由器从 IP 数据报中提取 IP 地址
  3. 路由器检查目的地,3。如果地址不是当前路由器,它通常会丢弃数据包(如果它不仅仅是一个 NAT 网关,请阅读下面的内容)
  4. 路由器从数据包中提取端口号 5 路由器检查转发表以查看该端口是否与内部 IP 地址相关联
  5. 如果是:提供它(见下文)
  6. 否则:丢弃

真正的路由器

  1. 数据包进入路由器
  2. 路由器从 IP 数据报中提取 IP 地址
  3. 路由器检查它是否是目标 IP 网络的一部分
  4. 如果是:交付(见下文)
  5. 否则,检查TTL(也来自 IP 数据报)以查看它是否应该被丢弃或表示为无法传递。
  6. 如果仍然可交付,请检查网络目的地的路由表,如果知道,则将其转发到下一个路由器。
  7. 否则,将其转发到默认网关、丢弃数据包或向其发送无法传递ICMP响应。(取决于配置)

交付(以太网)

  1. 路由器检查 IP 地址是否在其 ARP 表中(IP 地址到 MAC 地址)。
  2. 如果不是,则发送 ARP 请求以定位 MAC 地址。
  3. 收到 ARP 响应后,将数据包发送到该 MAC 地址。

ARP请求是广播帧,所以每一个计算机看到该请求。如果没有响应,它可能会被默默地丢弃或响应。路由器只为广播发送一个帧(如果它也是网桥,它可能会在网桥所在的每个接口上发送它)。要发送广播帧,有一个称为广播地址的特殊地址。在以太网上,地址为 FF:FF:FF:FF:FF:FF(二进制全 1)。

网桥(包括交换机)将发送到 FF:FF:FF:FF:FF:FF 的帧识别为广播,并在每个端口上传输它。一些网桥(如管理型交换机)会自行跟踪 ARP 请求,因此它们不需要广播,只需回复其 ARP 缓存中的内容即可。防火墙可以配置为阻止这些广播,但它可能对 IP 网络产生递减的影响(防火墙的两侧在没有路由器的情况下不能再相互通信)。

从路由器到节点取决于硬件(通常是网桥、交换机或集线器)

网桥从一个端口接收输入,并将其发送到一个(或多个)端口。从技术上讲,交换机是桥梁,但防火墙或无线接入点也是桥梁。

转变

交换机记住哪个端口有哪个 MAC 地址。(通常,它会从 ARP 响应中学习)。交换机会将帧(包含数据包)发送到目标端口。在交换机不知道 MAC 地址的极少数情况下,它的行为类似于集线器并将信息发送到每个地址。

中心

集线器不会记住哪个端口有 MAC 地址。集线器将始终将帧发送到每个端口。有很多与集线器相关的问题(如碰撞)。

交付(再次)

最后,此时的帧将一直持续到集线器和交换机上,直到它到达目的地或被丢弃。诸如STP之类的东西的存在是为了防止它永远被转发。