首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >详细地讲,路由器如何在局域网上路由流量?

详细地讲,路由器如何在局域网上路由流量?
EN

Network Engineering用户
提问于 2019-10-03 19:33:40
回答 2查看 1.1K关注 0票数 2

这里的电气工程师想要了解一些事情。所以我想这可能很简单或者非常复杂,但是一个路由器如何在局域网上的2台PC之间路由流量呢?

例如:PC-1和PC-2是坐在我面前的桌子上的两台笔记本电脑,它们连接到同一个路由器/调制解调器。PC-1 IP是192.168.10.1 PC-2 IP是192.168.10.2.在阅读了这篇内容丰富的文章之后,这里:https://www.think-like-a-computer.com/2011/07/18/how-routing-works/

据我所知,当他们用200.200.100.3的IP地址进行通信时,路由器将IP地址抽象到子网掩码200.200.100.x,并将其发送到另一个路由器,后者将其发送到另一个路由器,该路由器最终将其路由到连接到PC-3's路由器的子网掩码,地址为200.200.100.x。但最后一步是如何发生的呢?

路由器是用什么语言编写的,C/C++/汇编程序?怎样才能从PC-1到PC-2手动发送数据包(S)?在运行Windows 10的台式机上,通过命令行或程序,这种低级别的通信可能吗?我能读一下这个路由器用来在LAN上路由数据包的源代码吗?或者它在某个地方公开可用?我做了很多搜索,但每个网站基本上都说,‘然后路由器识别包属于PC-x,并发送它的途中’,而没有更详细地说明这是如何发生的,可能是因为普通的谷歌用户故障排除不需要这些知识。非常感谢!

EN

回答 2

Network Engineering用户

发布于 2019-10-04 21:48:35

您(和销售人员)所称的“路由器”可能不仅仅是路由器,它是以太网交换机、支持NAT的路由器、可能是无线接入点等的组合。

当局域网上的两台PC不涉及“路由器”的实际IP路由部分时,这些PC机将产生直接寻址到彼此的MAC地址的以太网帧,它们将只通过您的“路由器”的以太网交换部分。

要发送数据包,主机和路由器将首先查看其路由表。路由表将提供一个接口名称,对于非本地路由将提供一个下一跳IP地址。对于本地连接的网络,路由表中没有下一跳IP地址,而是使用目标地址作为下一跳IP地址。

当通过以太网或类似以太网的接口发送数据包时,需要将下一跳IP地址转换为MAC地址。对于IPv4,系统将首先查看arp表中的接口,如果找到匹配,将发送数据包,否则在发出ARP请求时将排队。当接收到arp响应时,将一个条目添加到ARP表中,并释放排队的数据包。

IPv6的流程在概念上相似,但细节不同。

在过去,互联网上的每一台计算机都有一个可在全球范围内访问的IP地址,但情况已不再如此(至少对IPv4来说是这样)。您的家庭或虚拟路由器通常将配置为执行网络地址转换,本质上从互联网的角度来看,您的局域网上的所有计算机看起来像一台计算机。

另一方面,ISP的路由器一般不会执行地址转换。

票数 3
EN

Network Engineering用户

发布于 2022-05-07 14:24:48

当路由器向未解决的直接连接的主机发送数据包时,它使用的是收集邻接。

维基百科:

收集邻接:当路由器知道目的地IP的子网直接连接到路由器本身,并且不知道目的地设备的MAC地址,或者路由器知道路由器的IP地址以将数据包转发到目的地时,就会创建此邻接。触发此条目的数据包将生成ARP请求。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/62833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档