networking - 计算机如何知道本地网络上其他计算机的 IP 地址?
问题描述
我目前正在学习 ARP 和 L2/L3 网络 - 有人可以帮忙吗?如果我使用以太网电缆将我的笔记本电脑 (A) 连接到另一台笔记本电脑 (B),它可以使用 ARP 根据 B 的 IP 地址找出 B 的 MAC 地址。然后,任何以太网帧都可以被 B 发送和接受。
但是 A 一开始是如何知道 B 的 IP 地址的呢?如果 A 和 B 之间有一个交换机(L2 设备)怎么办?这会改变答案吗?如果中间有路由器(L3 设备)怎么办?
解决方案
它向广播 MAC 地址发送一个广播数据包,询问“谁拥有 IP 地址 xxxx”,该数据包会发送到该广播域上的所有计算机。如果计算机看到拥有 IP 地址“xxxx”的数据包,它将向原始请求者的 MAC 地址发送一个单播回复,其 MAC 地址将被缓存以供进一步通信。
除非您告诉它,否则它不知道 IP。您说“默认网关是 192.168.1.1”,它将开始尝试与 192.168.1.1 等通信。
如果中间有路由器,则到远程设备的所有流量都将转到路由器的 MAC,并且您的计算机不会在该路由器之外进行任何 ARP 查找。
交换机对此无关紧要,它们所做的只是使广播域更大。使用电缆,广播域就是您和远程设备。使用交换机,它将其扩展到连接到同一交换机(或交换机中的 VLAN)的所有设备
推荐阅读
- flutter - 连接多个文本字段以在 Flutter 中充当单个字段
- python - Python / Pandas:按顺序填充 NaN - 线性插值 --> ffill --> bfill
- matlab - Matlab pdf图形中的标签格式问题
- excel - 用于搜索、查找、复制、粘贴单词和合并单元格的宏
- model-checking - NuSMV:使用参数初始化范围常数
- xsl-fo - XSL-FO - 如何为 fo:region-body 创建静态内容
- excel - VBA - 根据它们的值更改图表上的每个点颜色
- c++ - 使用 Serial.print() 的 millis() 函数输出
- python - python中的字符串格式-使用循环填充
- android - 仅在一侧创建带有圆角的文本视图